# OpenPlanner2.0 **Repository Path**: fanda123/open-planner2.0 ## Basic Information - **Project Name**: OpenPlanner2.0 - **Description**: An open-source TSN planner. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-06-01 - **Last Updated**: 2025-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 概述 OpenPlanner是一个开源的时间敏感网络(TSN)规划器,用于自动化生成满足时序约束的交换机调度配置,它的核心功能包括: 1. 时隙调度生成:根据网络拓扑、流量需求和时序约束,自动生成用于TSN调度器的门控列表配置 2. 与TSN交换机配置对接:生成的调度结果支持导出为交换机要求的配置格式,可用部署在真实的TSN设备上 3. 支持用户集成自研的规划算法和规划结果编译工具 # 功能 * 集成五种规划算法 * frame demo:复现了参考文献1的算法 * window demo:复现了参考文献2的算法 * ITP demo:自研算法(参考文献3) ``` @inproceedings{itp, author={Yan, Jinli and Quan, Wei and Jiang, Xuyan and Sun, Zhigang}, title={Injection Time Planning: Making CQF Practical in Time-Sensitive Networking}, booktitle={Proceedings of the IEEE Conference on Computer Communications (INFOCOM)}, year={2020} } ``` * XZ-Plan:复现了参考文献4的算法 * NBS:自研算法(参考文献5) ``` @inproceedings{nbs, author={Yang, Qian and Jiang, Xuyan and Quan, Wei and Liu, Rulin and Sun, Zhigang}, title={Node Bundle Scheduling: An Ultra-Low Latency Traffic Scheduling Algorithm for TAS-based Time-Sensitive Networks}, booktitle={Proceedings of the International European Conference on Parallel and Distributed Computing (Euro-Par)}, year={2024} } ``` * TWO-STEP:自研算法(*work-in-progress*) * 支持生成多种拓扑,包括线型、环型、雪花型、Orion CEV、列车、汽车六种拓扑 * 支持在上述拓扑上随机生成不同特征的单播或组播流 * 支持用户集成自研算法 # 运行方法 * bin目录下的py文件可直接运行:python main.py * main.py中输入的配置文件,位于config/demo目录下。配置文件的详细说明,请参考docs/目录下的配置文件注释 # 依赖包的安装 命令:pip install -r requirement.txt *NOTE:如果使用了虚拟环境(如pycharm的venv),请使用虚拟环境下的pip进行安装。激活虚拟环境的命令如下:* ```shell # Windows .\venv\Scripts\activate # 如果提示“因为在此系统上禁止运行脚本”错误,需要以管理员身份运行PowerShell,运行以下命令 set-ExecutionPolicy RemoteSigned # Linux source venv/bin/activate ``` # 目录结构 * algorithm_component_lib:算法构件库 * frame_demo * window_demo * itp_demo * bin:存放主程序 * builder_component_lib:编译构件库 * OpenTSNv4_demo * config:存放配置文件 * demo:存放frame、window和itp算法的配置文件 * core:源码 * api:开发人员编程接口 * logs:存放日志文件 * res:存放典型拓扑场景的文件 * src:存放各个层级的源代码 * debug:调试代码 * docs:白皮书和开发指南 * topo_fig:支持的典型场景的拓扑图 * scenario_component_lib:场景构件库 * usr:存放开发人员实现的自定义算法 * util:工具代码,包括显示拓扑图、计算调度周期的函数等 * LICENSE:枫林许可证 * requirements.txt:需要安装的依赖包 * setup.py * README.md # 许可证说明 OpenPlanner2.0开源项目遵循“枫林临时许可证 第一版”许可证 ## 🔗相关链接 1. [z3py tutorial](https://ericpony.github.io/z3py-tutorial/guide-examples.htm) 2. [Programming Z3](https://theory.stanford.edu/~nikolaj/programmingz3.html) # 参考文献 1. Craciunas S S, Oliver R S, Chmelík M, et al. **Scheduling Real-Time Communication in IEEE 802.1Qbv Time Sensitive Networks**. Proc of the RTNS'16. 2. Oliver R S, Craciunas S S, Steiner W. **IEEE 802.1Qbv Gate Control List Synthesis Using Array Theory Encoding**. Proc of IEEE RTAS’18 (CCF B). 3. Yan Jinli, Quan Wei, Jiang Xuyan, et al. **Injection Time Planning: Making CQF Practical in Time-Sensitive Networking**. Proc of IEEE INFOCOM’20 (CCF A). 4. 湖南华芯通. **开源TTE规划软件(XZ-Plan)技术白皮书**[EB/OL]. [2023-09-06]. http://www.c2comm.cn/resource_centre/XZ-Plan.pdf 5. Qian Yang, Xuyan Jiang, Wei Quan, Rulin Liu, and Zhigang Sun. **Node Bundle Scheduling: An Ultra-Low Latency Traffic Scheduling Algorithm for TAS-based Time-Sensitive Networks**. Proc of Euro-Par'24 (CCF B). # 贡献 欢迎任何贡献!我们诚邀您将自己的调度算法集成到OpenPlanner! *请参考 `docs/开发指南.md` 文件实现所需要的接口*