Skip to main content

A simple scheduling toolkit for time-sensitive network in Python.

Project description

tsnkit

A scheduling and benchmark toolkit for Time-Sensitive Networking in Python

@inproceedings{xue2024real,
  title={Real-time scheduling for 802.1 Qbv time-sensitive networking (TSN): A systematic review and experimental study},
  author={Xue, Chuanyu and Zhang, Tianyu and Zhou, Yuanbin and Nixon, Mark and Loveless, Andrew and Han, Song},
  booktitle={2024 IEEE 30th Real-Time and Embedded Technology and Applications Symposium (RTAS)},
  pages={108--121},
  year={2024},
  organization={IEEE}
}

Paper link: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=10568056

Documentation (work-in-progress): https://tsnkit.readthedocs.io

Install

Install from source (recommended):

git clone https://github.com/ChuanyuXue/tsnkit
cd tsnkit
pip install .

From pip:

pip install -U tsnkit

Usage

Testing:

python3 -m tsnkit.algorithms.[METHOD] [STREAM PATH] [NETWORK PATH]

Reproducing benchmark paper results:

  1. Check out to legacy branch.
  2. Download data.gz from git-lfs, and unzip it to data folder. (Or generate it using data/input/generate_data.ipynb)
  3. Go src foder and run python main.py --method=ALL --start=0 --end=38400.

Both main and legacy branches use the same logic (models & algorithms). However, we have refined the organization in the main branch by introducing a unified interface and standardized type notation to enhance maintainability and simplify the efforts to add new methods. The legacy branch houses the source code record used in the paper.

Code structure:

  • tsnkit/algorithms: Inplementations of all supported scheduling methods.
  • tsnkit/simulation: TSN simulator to validate the scheduling output.
  • tsnkit/core: Data structures and helper functions.

Related projects:

  • OMNeT_TSNkit: Integrating TSNkit into OMNeT++ for simulation.
  • VisTSN: Displaying TSN real-world testbed status when TSNKit results applies.

Contribute

Contributions are welcome! Feel free to add your own scheduling algorithm in this toolkit. And contact me to update your new scheduling method into our benchmark paper!

Refer to tsnkit/algorithms/__init__.py to implement the required interface and benchmark entrance.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tsnkit-0.3.0.tar.gz (145.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tsnkit-0.3.0-cp311-cp311-macosx_15_0_arm64.whl (201.2 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

File details

Details for the file tsnkit-0.3.0.tar.gz.

File metadata

  • Download URL: tsnkit-0.3.0.tar.gz
  • Upload date:
  • Size: 145.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for tsnkit-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a1156e3c9caa93aa37759712473d84d661dcec82380ed68e42143157e800c848
MD5 84297a587060cbfbd94a21f30de65601
BLAKE2b-256 d9a61ecd21c617b190768a7af63dd8aac78bfe768127036fceb7bb9b88dd949e

See more details on using hashes here.

File details

Details for the file tsnkit-0.3.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for tsnkit-0.3.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8618af018e4ed5e3d6b69bfd798cf564d3262122b8f9d1c586f2db3f8eb2e123
MD5 b24da9dc433cb79248b1e32849e55c66
BLAKE2b-256 42f0d7fecc82f3aff50df728bc842247af34e769d6429d72780bef3e56231942

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page