TSNKit is an open-source scheduling and benchmarking toolkit for Time-Sensitive Networking (TSN), written in Python. It provides a unified interface for developing, testing, and benchmarking scheduling algorithms for IEEE 802.1Qbv and related standards.
- Open-source Implementations: Ready-to-use implementations of state-of-the-art TSN scheduling methods.
- Unified Interface: Standardized typing and commandline interface for algorithms.
- Built-in Simulation: Built-in simulator to validate scheduling outputs against network constraints.
- Benchmarking Tools: Tools for performance comparison among scheduling methods.
Documentation: https://tsnkit.readthedocs.io
Demo: Check in Colab
Install from source (recommended):
git clone https://github.com/ChuanyuXue/tsnkit
cd tsnkit
pip install .
From pip:
pip install -U tsnkit
## Generate data
python3 -m tsnkit.data.generator
## Run scheduling algorithm
python3 -m tsnkit.algorithms.ls 1_task.csv 1_topo.csv
## Run simulation
python3 -m tsnkit.simulation.tas ./1_task.csv ./
## Run benchmark
python -m tsnkit.test.benchmark --methods ALL --ins 1-16
- OMNeT_TSNkit: Integrating TSNkit into OMNeT++ for simulation.
- VisTSN: Displaying TSN real-world testbed status when TSNKit results applies.
If you use TSNKit in your research, please cite our RTAS 2024 paper:
@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
Contributions are welcome! Feel free to add your own scheduling algorithm in this toolkit. Please reach out to me if you need any help or have any suggestions [email protected].