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:
- Check out to
legacybranch. - Download
data.gzfrom git-lfs, and unzip it todatafolder. (Or generate it usingdata/input/generate_data.ipynb) - Go
srcfoder and runpython 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1156e3c9caa93aa37759712473d84d661dcec82380ed68e42143157e800c848
|
|
| MD5 |
84297a587060cbfbd94a21f30de65601
|
|
| BLAKE2b-256 |
d9a61ecd21c617b190768a7af63dd8aac78bfe768127036fceb7bb9b88dd949e
|
File details
Details for the file tsnkit-0.3.0-cp311-cp311-macosx_15_0_arm64.whl.
File metadata
- Download URL: tsnkit-0.3.0-cp311-cp311-macosx_15_0_arm64.whl
- Upload date:
- Size: 201.2 kB
- Tags: CPython 3.11, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8618af018e4ed5e3d6b69bfd798cf564d3262122b8f9d1c586f2db3f8eb2e123
|
|
| MD5 |
b24da9dc433cb79248b1e32849e55c66
|
|
| BLAKE2b-256 |
42f0d7fecc82f3aff50df728bc842247af34e769d6429d72780bef3e56231942
|