Skip to content

ChuanyuXue/tsnkit

Repository files navigation

tsnkit

Build Status PyPI version Documentation Status License: MIT Python 3.8+

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

Installation

Install from source (recommended):

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

From pip:

pip install -U tsnkit

Usage

## 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

Related projects:

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

Reference

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

Contribute

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].

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published