Skip to main content

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.

Metadata

Release files for tsnkit 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tsnkit 0.3.0
File Size Uploaded
tsnkit-0.3.0.tar.gz 145.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tsnkit 0.3.0
File Interpreter ABI Platform
tsnkit-0.3.0-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details

Total release size: 346.8 kB

Release files / tsnkit-0.3.0.tar.gz

Download URL tsnkit-0.3.0.tar.gz
Size 145.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a1156e3c9caa93aa37759712473d84d661dcec82380ed68e42143157e800c848
BLAKE2b-256 checksum
How to use checksums
d9a61ecd21c617b190768a7af63dd8aac78bfe768127036fceb7bb9b88dd949e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / tsnkit-0.3.0-cp311-cp311-macosx_15_0_arm64.whl

Download URL tsnkit-0.3.0-cp311-cp311-macosx_15_0_arm64.whl
Size 201.2 kB
Tags CPython 3.11 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
8618af018e4ed5e3d6b69bfd798cf564d3262122b8f9d1c586f2db3f8eb2e123
BLAKE2b-256 checksum
How to use checksums
42f0d7fecc82f3aff50df728bc842247af34e769d6429d72780bef3e56231942
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page