diff --git a/content/device/_index.md b/content/device/_index.md index 18d725c..76556df 100644 --- a/content/device/_index.md +++ b/content/device/_index.md @@ -1,3 +1,151 @@ ---- + +
+ +# ZIGGO Device: A flexible and standard-compliant toolkit for TSN performance evaluation. + +
+ +

+ Project Page | + Paper | + ZIGGO-CaaS-Switch | + ZIGGO-Device +

+ +![](figs/banner.jpg) + +## Table of Contents + +- [ZIGGO Device: A flexible and standard-compliant toolkit for TSN performance evaluation.](#ziggo-device-a-flexible-and-standard-compliant-toolkit-for-tsn-performance-evaluation) + - [Table of Contents](#table-of-contents) + - [Introduction](#introduction) + - [ZIGGO Open Platform](#ziggo-open-platform) + - [Demo](#demo) + - [Features](#features) + - [Read before start](#read-before-start) + - [Getting Started](#getting-started) + - [System Design](#system-design) + - [Demo APP Tutorial](#demo-app-tutorial) + - [License and Citation](#license-and-citation) + - [TODO List](#todo-list) + - [Contributing](#contributing) + +## Introduction + +ZIGGO is a `flexible`, `standard-compliant`, and `control-function-virtualized` TSN switch platform ready for **industrial control**, **automotive electronics**, and other **time-sensitive applications**. + +This is the document for the ZIGGO Device. (We also offer [ZIGGO-CaaS-Switch](https://github.com/Mobisense/Ziggo-CaaS-Switch) that comply with the IEEE 802.1 TSN standard.) Our Device supports testing all standards-compliant switches. + +## ZIGGO Open Platform + +![](figs/demo-app.png) + +The construction of the ZIGGO Open Platform consists of three levels: network device, management tools, and a Demo App: + +- The software and hardware projects, along with the development board startup [tutorial](/ZIGGO_WEB/device/getting-started/), provide instructions for setting up an individual network device. + +- The [CNC User Manual](docs/cnc-manual.md) and [Device User Manual](/ZIGGO_WEB/device/getting-started/) cover system configuration and management tools. + +- Lastly, we offer a comprehensive [Demo App building tutorial](/ZIGGO_WEB/device/testbed/) that instructs how to + collaboratively build a complete and functional Demo using network devices and + management tools. + +## Demo + +We provide a demonstration video of the TSN switch. It demonstrates the superior performance of the `ZIGGO-CaaS-Switch` compared to the normal switch. + +The left side of the picture is the ZYNQ development board we use, and the right side is the TSN display board we built. + +[![Watch the video](figs/testbed.jpg)](https://cloud.tsinghua.edu.cn/f/b307da6840d84e5f9ff1/) + +> Click the pic to watch the video! Or just click [here](https://cloud.tsinghua.edu.cn/f/b307da6840d84e5f9ff1/). + +## Features + +* ZIGGO supports the simultaneous transmission of both `Information Technology (IT)` and `Operation Technology (OT)` data traffic with QoS guarantee. + +* ZIGGO complies with IEEE standards `802.1AS`, `Qav`, `Qbv`, and `Qcc`. + +* ZIGGO provides `Real-time` and `Deterministic` Ethernet transport + + * ZIGGO achieve **Zero Packet Loss** , **Microsecond-level Latency** with **Nanosecond-level Jitter Gate Ability**. + * ZIGGO guarantee **Gigabit Throughput**. + * ZIGGO provide gate accuracy applicable to **All Ethernet Frame Sizes**. + +## Read before start + +Getting started with ZIGGO-CaaS-Switch/ZIGGO-Device is a ***pretty hard*** task. Users/developers need to have sufficient basic knowledge and be prepare to for a long periond of learning and debugging. + +Please refer to [basic_knowledge.md](/ZIGGO_WEB/device/basic_knowledge/) to check if you have ability to use ZIGGO competently. + +## Getting Started + +Please refer to [required.md](/ZIGGO_WEB/device/require/) to get prepared. + +After that, please refer to [getting_started.md](/ZIGGO_WEB/device/getting-started/) for the build and run a single ZIGGO Device. + +## System Design + +ZIGGO is implemented on ZYNQ-7000 SoC and exploits ZYNQ's both hardware and software programmability. + +![framework](figs/framework.jpg) + +We also provide more in-depth [documentation](/ZIGGO_WEB/device/system-design/) explaining specific design principles for ZIGGO Device. + +## Demo APP Tutorial + +We also provide a [testbed build document](/ZIGGO_WEB/device/testbed/) that allows you to build a real-time Ethernet system using the ZIGGO swtich and Device. + +Through this platform, we can measure the `delay` and `jitter` of TSN time-critcial traffic, the switch's `gating capability`, `bandwidth guarantee` and `gating accuracy`. + +Replacing ZIGGO CaaS switches with commercial TSN switches can also test its above capabilities. + +## License and Citation + +ZIGGO is released under a [MIT license](https://github.com/MobiSense/Ziggo-Device/blob/main/LICENSE.txt). + +Please consider citing our papers if the project helps your research with the following BibTex: + +```bibtex +@inproceedings{caas, + author={Yang, Zheng and Zhao, Yi and Dang, Fan and He, Xiaowu and Wu, Jiahang and Cao, Hao and Wang, Zeyu and Liu, Yunhao}, + booktitle={IEEE INFOCOM 2023 - IEEE Conference on Computer Communications}, + title={CaaS: Enabling Control-as-a-Service for Time-Sensitive Networking}, + year={2023}, + pages={1-10}, + doi={10.1109/INFOCOM53939.2023.10228980}} +``` + +```bibtex +@inproceedings{etsn, + author={Zhao, Yi and Yang, Zheng and He, Xiaowu and Wu, Jiahang and Cao, Hao and Dong, Liang and Dang, Fan and Liu, Yunhao}, + booktitle={IEEE ICDCS 2022 - IEEE International Conference on Distributed Computing Systems}, + title={E-TSN: Enabling Event-triggered Critical Traffic in Time-Sensitive Networking for Industrial Applications}, + year={2022}, + volume={}, + number={}, + pages={691-701}, + doi={10.1109/ICDCS54860.2022.00072}} +``` + +## TODO List + +- [x] ZIGGO CaaS Switch Release +- [x] ZIGGO Device Release +- [x] ZIGGO Device Source Code +- [x] Tutorial for build a testbed +- [ ] Test Case for TSN + +> We will expand each test in the tutorial to multiple test cases to cover different edge cases and comprehensively test the performance of TSN switches. + +- [ ] Support Device List + +> At present, we have only tested our own Ziggo switches and are testing other commercial switches (such as Huawei ,H3C and NXP). We expect to maintain a list of test results in the future. + +## Contributing + +Please see the [guide](/ZIGGO_WEB/device/contributing/) for information on how to ask for help or contribute to the development of ZIGGO! + +> The development team will only answer questions on github issues and reject other forms of questions. \ No newline at end of file diff --git a/content/device/figs/Alinx7021.png b/content/device/figs/Alinx7021.png new file mode 100644 index 0000000..8156f7b Binary files /dev/null and b/content/device/figs/Alinx7021.png differ diff --git a/content/device/figs/FPGA_boot_mode_switch.png b/content/device/figs/FPGA_boot_mode_switch.png new file mode 100644 index 0000000..2f74d61 Binary files /dev/null and b/content/device/figs/FPGA_boot_mode_switch.png differ diff --git a/content/device/figs/analyse_result.png b/content/device/figs/analyse_result.png new file mode 100644 index 0000000..80efff1 Binary files /dev/null and b/content/device/figs/analyse_result.png differ diff --git a/content/device/figs/banner.jpg b/content/device/figs/banner.jpg new file mode 100644 index 0000000..c94260d Binary files /dev/null and b/content/device/figs/banner.jpg differ diff --git a/content/device/figs/demo-app.png b/content/device/figs/demo-app.png new file mode 100644 index 0000000..046fb88 Binary files /dev/null and b/content/device/figs/demo-app.png differ diff --git a/content/device/figs/device_arch.png b/content/device/figs/device_arch.png new file mode 100644 index 0000000..730bb7b Binary files /dev/null and b/content/device/figs/device_arch.png differ diff --git a/content/device/figs/device_test_demo.png b/content/device/figs/device_test_demo.png new file mode 100644 index 0000000..33f1164 Binary files /dev/null and b/content/device/figs/device_test_demo.png differ diff --git a/content/device/figs/download_petalinux.PNG b/content/device/figs/download_petalinux.PNG new file mode 100644 index 0000000..4131d41 Binary files /dev/null and b/content/device/figs/download_petalinux.PNG differ diff --git a/content/device/figs/example_pkt_gen_period.png b/content/device/figs/example_pkt_gen_period.png new file mode 100644 index 0000000..a157918 Binary files /dev/null and b/content/device/figs/example_pkt_gen_period.png differ diff --git a/content/switch/software_build/example_topology.png b/content/device/figs/example_topology.png similarity index 100% rename from content/switch/software_build/example_topology.png rename to content/device/figs/example_topology.png diff --git a/content/device/figs/export_bitstream.png b/content/device/figs/export_bitstream.png new file mode 100644 index 0000000..9c7c556 Binary files /dev/null and b/content/device/figs/export_bitstream.png differ diff --git a/content/device/figs/framework.jpg b/content/device/figs/framework.jpg new file mode 100644 index 0000000..5986d4e Binary files /dev/null and b/content/device/figs/framework.jpg differ diff --git a/content/device/figs/moba_serial.png b/content/device/figs/moba_serial.png new file mode 100644 index 0000000..4dbb934 Binary files /dev/null and b/content/device/figs/moba_serial.png differ diff --git a/content/device/figs/offline_analyse.png b/content/device/figs/offline_analyse.png new file mode 100644 index 0000000..19b38f7 Binary files /dev/null and b/content/device/figs/offline_analyse.png differ diff --git a/content/device/figs/online_analyse.png b/content/device/figs/online_analyse.png new file mode 100644 index 0000000..85c91e4 Binary files /dev/null and b/content/device/figs/online_analyse.png differ diff --git a/content/switch/system_design/switch_fabric.png b/content/device/figs/switch_fabric.png similarity index 100% rename from content/switch/system_design/switch_fabric.png rename to content/device/figs/switch_fabric.png diff --git a/content/device/figs/testbed.jpg b/content/device/figs/testbed.jpg new file mode 100644 index 0000000..78bb234 Binary files /dev/null and b/content/device/figs/testbed.jpg differ diff --git a/content/switch/system_design/time_sync_state_machine.png b/content/device/figs/time_sync_state_machine.png similarity index 100% rename from content/switch/system_design/time_sync_state_machine.png rename to content/device/figs/time_sync_state_machine.png diff --git a/content/device/figs/topo.PNG b/content/device/figs/topo.PNG new file mode 100644 index 0000000..404865e Binary files /dev/null and b/content/device/figs/topo.PNG differ diff --git a/content/device/figs/topo_config.png b/content/device/figs/topo_config.png new file mode 100644 index 0000000..0f4dc56 Binary files /dev/null and b/content/device/figs/topo_config.png differ diff --git a/content/device/figs/vivado_bitstream.png b/content/device/figs/vivado_bitstream.png new file mode 100644 index 0000000..a05b890 Binary files /dev/null and b/content/device/figs/vivado_bitstream.png differ diff --git a/content/device/figs/vivado_tcl_console.png b/content/device/figs/vivado_tcl_console.png new file mode 100644 index 0000000..e8ed104 Binary files /dev/null and b/content/device/figs/vivado_tcl_console.png differ diff --git a/content/device/figs/vivado_workdir.png b/content/device/figs/vivado_workdir.png new file mode 100644 index 0000000..48167c1 Binary files /dev/null and b/content/device/figs/vivado_workdir.png differ diff --git a/content/switch/system_design/zynq.png b/content/device/figs/zynq.png similarity index 100% rename from content/switch/system_design/zynq.png rename to content/device/figs/zynq.png diff --git a/content/switch/_index.md b/content/switch/_index.md index 399a7a8..7c64a15 100644 --- a/content/switch/_index.md +++ b/content/switch/_index.md @@ -1,3 +1,152 @@ ---- + +
+ +# ZIGGO CaaS Switch: A flexible, standard-compliant, and control-function-virtualized TSN switch platform + +
+ +

+ Project Page | + Paper | + ZIGGO-CaaS-Switch | + ZIGGO-Device +

+ + + +![](figs/banner.jpg) + +## Table of Contents + +- [ZIGGO CaaS Switch: A flexible, standard-compliant, and control-function-virtualized TSN switch platform](#ziggo-caas-switch-aflexiblestandard-compliant-andcontrol-function-virtualizedtsn-switch-platform) + - [Table of Contents](#table-of-contents) + - [Introduction](#introduction) + - [ZIGGO Open Platform](#ziggo-open-platform) + - [Demo](#demo) + - [Features](#features) + - [Read before start](#read-before-start) + - [Getting Started](#getting-started) + - [System Design](#system-design) + - [Demo APP Tutorial](#demo-app-tutorial) + - [License and Citation](#license-and-citation) + - [TODO List](#todo-list) + - [Contributing](#contributing) + +## Introduction + +ZIGGO is a `flexible`, `standard-compliant`, and `control-function-virtualized` TSN switch platform ready for **industrial control**, **automotive electronics**, and other **time-sensitive applications**. + +This is the document for the ZIGGO CaaS Switch. (We also offer [ZIGGO-Device](https://github.com/Mobisense/Ziggo-Device) that comply with the IEEE 802.1 TSN standard.) + +## ZIGGO Open Platform + +![](figs/demo-app.png) + +The construction of the ZIGGO Open Platform consists of three levels: network device, management tools, and a Demo App. More details in [ZIGGO-Device](https://github.com/Mobisense/Ziggo-Device). + +## Demo + +We provide a demonstration video of the TSN switch. It demonstrates the superior performance of the `ZIGGO-CaaS-Switch` compared to the normal switch. + +The left side of the picture is the ZYNQ development board we use, and the right side is the TSN display board we built. + +[![Watch the video](figs/testbed.jpg)](https://cloud.tsinghua.edu.cn/f/b307da6840d84e5f9ff1/) + +> Click the pic to watch the video! Or just click [here](https://cloud.tsinghua.edu.cn/f/b307da6840d84e5f9ff1/). + +## Features + +* ZIGGO supports the simultaneous transmission of both `Information Technology (IT)` and `Operation Technology (OT)` data traffic with QoS guarantee. + +* ZIGGO complies with IEEE standards `802.1AS`, `Qav`, `Qbv`, and `Qcc`. + +* ZIGGO provides `Real-time` and `Deterministic` Ethernet transport + + * ZIGGO achieve **Zero Packet Loss** , **Microsecond-level Latency** with **Nanosecond-level Jitter Gate Ability**. + + * ZIGGO guarantee **Gigabit Throughput**. + + * ZIGGO provide gate accuracy applicable to **All Ethernet Frame Sizes**. + +## Read before start + +Getting started with ZIGGO-CaaS-Switch/ZIGGO-Device is a ***pretty hard*** task. Users/developers need to have sufficient basic knowledge and be prepare to for a long periond of learning and debugging. + +Please refer to [basic_knowledge.md](/ZIGGO_WEB/switch/basic_knowledge/) to check if you have ability to use ZIGGO competently. + +## Getting Started + +Please refer to [required.md](/ZIGGO_WEB/switch/require/) to get prepared. + +Please refer to [hardware-build.md](/ZIGGO_WEB/switch/require/) for the build hardware for ZIGGO Evaluation Toolkit and [software-build.md](/ZIGGO_WEB/switch/software-build/) to run time synchronization logic and set up TSN GCL . + +## System Design + +ZIGGO is implemented on ZYNQ-7000 SoC and exploits ZYNQ's both hardware and software programmability. + +![framework](figs/framework.jpg) + +We also provide more in-depth [documentation](/ZIGGO_WEB/switch/system-design/) explaining specific design principles for ZIGGO CaaS Switch. + +## Demo APP Tutorial + +We also provide a [testbed build document](https://github.com/Mobisense/Ziggo-Device/blob/main/docs/testbed.md)(in ZIGGO Device) that allows you to build a real-time Ethernet system using the ZIGGO swtich and ZIGGO Device. + +Through this platform, we can measure the `delay` and `jitter` of TSN time-critcial traffic, the switch's `gating capability`, `bandwidth guarantee` and `gating accuracy`. + +Replacing ZIGGO CaaS switches with commercial TSN switches can also test its above capabilities. + +## License and Citation + +ZIGGO is released under a [MIT license]([LICENSE.txt](https://github.com/MobiSense/Ziggo-Switch/blob/main/LICENSE.txt)). + +Please consider citing our papers if the project helps your research with the following BibTex: + +```bibtex +@inproceedings{caas, +  author={Yang, Zheng and Zhao, Yi and Dang, Fan and He, Xiaowu and Wu, Jiahang and Cao, Hao and Wang, Zeyu and Liu, Yunhao}, +  booktitle={IEEE INFOCOM 2023 - IEEE Conference on Computer Communications}, +  title={CaaS: Enabling Control-as-a-Service for Time-Sensitive Networking}, +  year={2023}, +  pages={1-10}, +  doi={10.1109/INFOCOM53939.2023.10228980} +} +``` + +```bibtex +@inproceedings{etsn, + author={Zhao, Yi and Yang, Zheng and He, Xiaowu and Wu, Jiahang and Cao, Hao and Dong, Liang and Dang, Fan and Liu, Yunhao}, + booktitle={IEEE ICDCS 2022 - IEEE International Conference on Distributed Computing Systems}, + title={E-TSN: Enabling Event-triggered Critical Traffic in Time-Sensitive Networking for Industrial Applications}, + year={2022}, + volume={}, + number={}, + pages={691-701}, + doi={10.1109/ICDCS54860.2022.00072}} +``` + +## TODO List + +- [x] ZIGGO CaaS Switch Release + +- [x] ZIGGO Evaluation Toolkit Release + +- [x] ZIGGO Evaluation Toolkit Source Code + +- [x] Tutorial for build a testbed + +- [ ] Test Case for TSN + +> We will expand each test in the tutorial to multiple test cases to cover different edge cases and comprehensively test the performance of TSN switches. + +- [ ] Support Device List + +> At present, we have only tested our own Ziggo switches and are testing other commercial switches (such as Huawei ,H3C and NXP). We expect to maintain a list of test results in the future. + +## Contributing + +Please see the [guide](/ZIGGO_WEB/switch/contributing/) for information on how to ask for help or contribute to the development of ZIGGO! + +> The development team will only answer questions on github issues and reject other forms of questions. diff --git a/content/switch/figs/Alinx7021.png b/content/switch/figs/Alinx7021.png new file mode 100644 index 0000000..8156f7b Binary files /dev/null and b/content/switch/figs/Alinx7021.png differ diff --git a/content/switch/figs/FPGA_boot_mode_switch.png b/content/switch/figs/FPGA_boot_mode_switch.png new file mode 100644 index 0000000..2f74d61 Binary files /dev/null and b/content/switch/figs/FPGA_boot_mode_switch.png differ diff --git a/content/switch/figs/banner.jpg b/content/switch/figs/banner.jpg new file mode 100644 index 0000000..c94260d Binary files /dev/null and b/content/switch/figs/banner.jpg differ diff --git a/content/switch/figs/demo-app.png b/content/switch/figs/demo-app.png new file mode 100644 index 0000000..046fb88 Binary files /dev/null and b/content/switch/figs/demo-app.png differ diff --git a/content/switch/figs/example_topology.png b/content/switch/figs/example_topology.png new file mode 100644 index 0000000..623e464 Binary files /dev/null and b/content/switch/figs/example_topology.png differ diff --git a/content/switch/figs/framework.jpg b/content/switch/figs/framework.jpg new file mode 100644 index 0000000..5986d4e Binary files /dev/null and b/content/switch/figs/framework.jpg differ diff --git a/content/switch/figs/moba_serial.png b/content/switch/figs/moba_serial.png new file mode 100644 index 0000000..4dbb934 Binary files /dev/null and b/content/switch/figs/moba_serial.png differ diff --git a/content/switch/figs/switch_fabric.png b/content/switch/figs/switch_fabric.png new file mode 100644 index 0000000..b2f4f13 Binary files /dev/null and b/content/switch/figs/switch_fabric.png differ diff --git a/content/switch/figs/testbed.jpg b/content/switch/figs/testbed.jpg new file mode 100644 index 0000000..78bb234 Binary files /dev/null and b/content/switch/figs/testbed.jpg differ diff --git a/content/switch/system_design/featured.png b/content/switch/figs/time_sync_state_machine.png similarity index 100% rename from content/switch/system_design/featured.png rename to content/switch/figs/time_sync_state_machine.png diff --git a/content/switch/figs/zynq.png b/content/switch/figs/zynq.png new file mode 100644 index 0000000..a3943d4 Binary files /dev/null and b/content/switch/figs/zynq.png differ diff --git a/content/switch/software-build/example_topology.png b/content/switch/software-build/example_topology.png new file mode 100644 index 0000000..623e464 Binary files /dev/null and b/content/switch/software-build/example_topology.png differ diff --git a/content/switch/software_build/featured.jpg b/content/switch/software-build/featured.jpg similarity index 100% rename from content/switch/software_build/featured.jpg rename to content/switch/software-build/featured.jpg diff --git a/content/switch/software_build/index.md b/content/switch/software-build/index.md similarity index 100% rename from content/switch/software_build/index.md rename to content/switch/software-build/index.md diff --git a/content/switch/system-design/featured.png b/content/switch/system-design/featured.png new file mode 100644 index 0000000..e07a690 Binary files /dev/null and b/content/switch/system-design/featured.png differ diff --git a/content/switch/system_design/index.md b/content/switch/system-design/index.md similarity index 100% rename from content/switch/system_design/index.md rename to content/switch/system-design/index.md diff --git a/content/switch/system-design/switch_fabric.png b/content/switch/system-design/switch_fabric.png new file mode 100644 index 0000000..b2f4f13 Binary files /dev/null and b/content/switch/system-design/switch_fabric.png differ diff --git a/content/switch/system-design/time_sync_state_machine.png b/content/switch/system-design/time_sync_state_machine.png new file mode 100644 index 0000000..e07a690 Binary files /dev/null and b/content/switch/system-design/time_sync_state_machine.png differ diff --git a/content/switch/system-design/zynq.png b/content/switch/system-design/zynq.png new file mode 100644 index 0000000..a3943d4 Binary files /dev/null and b/content/switch/system-design/zynq.png differ diff --git a/content/tsnperf/manual/index.md b/content/tsnperf/manual/index.md index e510e5e..2434149 100644 --- a/content/tsnperf/manual/index.md +++ b/content/tsnperf/manual/index.md @@ -18,19 +18,13 @@ tags: weight: 10 --- -## 时间同步测试 - -本节将介绍使用TSNPerf测试待测设备时间同步功能的方法。 - -TBD - ## 流量整形测试 本节将介绍使用TSNPerf测试待测设备流量整形功能的方法。本章节中的测试参数均为参考配置,使用者可根据实际需求修改参数。 ### 基准测试 -**目的:**测试**无**背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。 +**目的:** 测试 **无** 背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。 **方案:** 使用如下拓扑,按照配置文档中的介绍发送关键数据包,记录关键数据包的端到端时延、抖动和丢包率。 @@ -64,16 +58,20 @@ sport: 10000 dport: 10000 ``` +该配置中,`packet-size`可以根据需要改变,推荐可以设置为 64 Byte(最小以太网帧长)、100 Byte、500 Byte、1000 Byte、1500 Byte等。 + 每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。 ### 门控能力 **目的:** 测试**有**背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。 -**方案:** 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,打满网络带宽,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。 +**方案:** 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。 ![alt text](./qbv-withbackground.png) +为了全面测试待测设备地门控能力,可以调整Injector向网络中注入的背景流量带宽,以千兆网络为例,可以分别检查背景流量为 250 Mbps、500 Mbps、750 Mbps、1000 Mbps的情况下,关键数据包的时延抖动。 + TSNPerf程序的配置参数可参考上一小节。如果待测设备功能正常,则测试结果应与**基准测试**中得到的结果一致。 ### 门控精度 @@ -111,6 +109,10 @@ dport: 10000 Publisher向Recorder打满关键流量,Recorder处统计接收到的关键数据包的时间戳。预期每个周期(1毫秒)可以接收到两个关键数据包。 +另外,还可以在不同的拓扑下,更细粒度地验证待测设备的门控精度。在下图拓扑上,以千兆以太网、1500Byte测试包为例,我们配置 DUT1 在周期的 0~16us 打开关键流量门控,DUT2 在周期的 15~31us 打开关键流量门控吗。期望,关键数据包能够不丢包地通过网络设备,并且端到端时延与门控全开时的结果一致。 + +![·](qbv-2hop.png) + ### 带宽保障 **目的:** 测试待测交换机是否可以为关键流量预留固定的带宽 @@ -153,8 +155,10 @@ dport: 10000 ``` 如果待测交换机是存储转发(store-and-forward)模式的,则预期每个数据包的端到端时延会因包的大小而有所不同。如果待测交换机是直通转发(cut-through)模式的,则预期数据包的端到端时延抖动是很小的。 -## 网络配置测试 +## 超参数汇总 -本节将介绍使用TSNPerf测试待测设备网络配置功能的方法。 +除了上文中给的TSNPerf程序配置,还有一些参数在测试用例中经常需要根据需求改动,现将之罗列于下: -TBD \ No newline at end of file +* packet-size:该参数设置了测试包的大小,用于验证待测设备转发不同数据包的能力。推荐的配置有:64 Byte(最小以太网帧长)、100 Byte、500 Byte、1000 Byte、1500 Byte等。 +* 背景流量大小:该参数设置了网络中的背景流量大小,用于验证待测设备能否保障关键流量的低延迟、低抖动传输。可以根据实际网络带宽的大小,配置背景流量分别占用 0%、25%、50%、75%、100% 的网络带宽。 +* 拓扑:拓扑决定了关键流量在网络中的传输路径。在不同拓扑上测试可以更加全面地验证待测设备的门控能力、门控精度。本文限于篇幅,仅使用了 一跳测试拓扑 和 两跳测试拓扑,使用者可以根据需要,改变测试拓扑。 diff --git a/content/tsnperf/manual/index_backup.md b/content/tsnperf/manual/index_backup.md new file mode 100644 index 0000000..e510e5e --- /dev/null +++ b/content/tsnperf/manual/index_backup.md @@ -0,0 +1,160 @@ +--- +title: ⌚ TSNPerf 检测内容及使用表 +summary: 时间同步测试,流量整形测试,网络配置测试 +date: 2024-05-01 + +# Featured image +# Place an image named `featured.jpg/png` in this page's folder and customize its options here. +image: + caption: 'TBD' + +authors: + - admin + +tags: + - TSNPerf + - Test case + - Markdown +weight: 10 +--- + +## 时间同步测试 + +本节将介绍使用TSNPerf测试待测设备时间同步功能的方法。 + +TBD + +## 流量整形测试 + +本节将介绍使用TSNPerf测试待测设备流量整形功能的方法。本章节中的测试参数均为参考配置,使用者可根据实际需求修改参数。 + +### 基准测试 + +**目的:**测试**无**背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。 + +**方案:** +使用如下拓扑,按照配置文档中的介绍发送关键数据包,记录关键数据包的端到端时延、抖动和丢包率。 + +![alt text](./qbv-basictest.png) + +下面给出TSNPerf程序的参考参数配置: +```bash +mode: 0 +tx-mode: 2 +verbose: true +use-ziggo-analysis: false +pcap-filename: "/home/i210/launchtimedemo/captured_10w_1500Byte.pcap" +interface: "enp1s0" +smac: "00:1b:21:77:ac:ae" +dmac: "00:1b:21:76:ae:75" +ethertype: 0xb62c +socket-priority: 0 +vlan-priority: 0 +offset: 150000 +early-offset: 300000 +use-launchtime: true +basetime: 1684559640000000100L +packet-size: 1500 +packets-to-send: 10000 +interval: 1000000 +use-udp: false +sip: "192.168.16.10" +dip: "192.168.16.11" +sport: 10000 +dport: 10000 +``` + +每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。 + +### 门控能力 + +**目的:** 测试**有**背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。 + +**方案:** 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,打满网络带宽,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。 + +![alt text](./qbv-withbackground.png) + +TSNPerf程序的配置参数可参考上一小节。如果待测设备功能正常,则测试结果应与**基准测试**中得到的结果一致。 + +### 门控精度 + +**目的:** 测试交换机门控的精度,即能否通过预期数量和大小的以太网帧 + +**方案:** 每个周期预留16384ns的门控给关键流量,理论上每个周期可以通过2个1500Byte的以太网帧。 + +下面给出TSNPerf程序的参考参数配置: +```bash +mode: 0 +tx-mode: 3 +verbose: true +use-ziggo-analysis: false +pcap-filename: "/home/i210/launchtimedemo/captured_10w_1500Byte.pcap" +interface: "enp1s0" +smac: "00:1b:21:77:ac:ae" +dmac: "00:1b:21:76:ae:75" +ethertype: 0xb62c +socket-priority: 0 +vlan-priority: 0 +offset: 150000 +early-offset: 300000 +use-launchtime: false +basetime: 1684559640000000100L +packet-size: 1500 +packets-to-send: 100000 +interval: 1000000 +use-udp: false +sip: "192.168.16.10" +dip: "192.168.16.11" +sport: 10000 +dport: 10000 +``` + +Publisher向Recorder打满关键流量,Recorder处统计接收到的关键数据包的时间戳。预期每个周期(1毫秒)可以接收到两个关键数据包。 + +### 带宽保障 + +**目的:** 测试待测交换机是否可以为关键流量预留固定的带宽 + +**方案:** +1. 配置待测交换机的门控,为关键数据预留25%、50%、75%的带宽。 +2. 从Injector处向Recorder打满背景流量。 +3. 用TSNPerf,从Publisher向Recorder发送关键流量,配置参数可参考上一小节。 +4. Recorder处用tcpdump/wireshark记录带宽使用情况。以千兆带宽为例,预期关键数据会分别占用 250Mbps、500Mbps、750Mbps 的带宽。 + +### 视频流量测试 + +**目的:** 测试以太网帧大小不同的视频流量经过一跳交换机的端延迟、抖动和丢包率 + +**方案:** 测试拓扑参考**基准测试**章节。准备好一个视频流量的pcap文件`H264.pcap`,TSNPerf程序的参数配置如下: +```bash +mode: 0 +tx-mode: 0 +verbose: true +use-ziggo-analysis: false +pcap-filename: "/home/i210/launchtimedemo/H264.pcap" +interface: "enp1s0" +smac: "00:1b:21:77:ac:ae" +dmac: "00:1b:21:76:ae:75" +ethertype: 0xb62c +socket-priority: 0 +vlan-priority: 0 +offset: 150000 +early-offset: 300000 +use-launchtime: true +basetime: 1684559640000000100L +packet-size: 1500 +packets-to-send: 10000 +interval: 1000000 +use-udp: true +sip: "192.168.16.10" +dip: "192.168.16.11" +sport: 10000 +dport: 10000 +``` +如果待测交换机是存储转发(store-and-forward)模式的,则预期每个数据包的端到端时延会因包的大小而有所不同。如果待测交换机是直通转发(cut-through)模式的,则预期数据包的端到端时延抖动是很小的。 + +## 网络配置测试 + +本节将介绍使用TSNPerf测试待测设备网络配置功能的方法。 + +TBD \ No newline at end of file diff --git a/content/tsnperf/manual/qbv-2hop.png b/content/tsnperf/manual/qbv-2hop.png new file mode 100644 index 0000000..c0c9a67 Binary files /dev/null and b/content/tsnperf/manual/qbv-2hop.png differ diff --git a/hugo_stats.json b/hugo_stats.json index 5f373eb..3bc4676 100644 --- a/hugo_stats.json +++ b/hugo_stats.json @@ -283,6 +283,7 @@ "mt-1", "mt-10", "mt-12", + "mt-16", "mt-2", "mt-24", "mt-3", @@ -472,9 +473,12 @@ "building-and-starting-the-tsnperf", "config", "contact", + "contributing", "contributing-to-ziggos-code", "copy-files-into-sd-card", "correspondence-between-software-and-hardware-registers", + "demo", + "demo-app-tutorial", "evaluation-method", "features", "figure-launchtime原理", @@ -486,11 +490,14 @@ "file-downloading", "folder-structure", "gate-control", + "getting-started", "hide-button", "install-vivado", + "introduction", "introduction-to-git-branches", "launch-the-board-and-log-in", "launch-the-switch", + "license-and-citation", "mac-forwarding", "mobaxterm", "module-design", @@ -503,6 +510,7 @@ "petalinux", "products", "publication", + "read-before-start", "reporting-a-bug", "run", "sd-card-partition", @@ -520,17 +528,23 @@ "source-code-description", "sun", "switch-fabric--gate-control", + "system-design", "table-of-content", + "table-of-contents", "test-data-frame-data-structure", "testbed简单介绍", "testbed运行流程", "time-sync-state-machine", "time-synchronization", + "todo-list", "top", "uio-addresses", "vivada-开发环境", "vivado-project-construction", + "ziggo-caas-switch-aflexiblestandard-compliant-andcontrol-function-virtualizedtsn-switch-platform", + "ziggo-device-a-flexible-and-standard-compliant-toolkit-for-tsn-performance-evaluation", "ziggo-device-directly-analyzes-latency-and-jitter", + "ziggo-open-platform", "互联互通测试项目介绍", "优化网络栈", "修改配置文件", @@ -549,7 +563,6 @@ "必要的线材", "性能验证", "控制脚本准备", - "时间同步测试", "普通交换机", "流量整形测试", "现有方案的局限", @@ -559,11 +572,11 @@ "硬件知识", "系统准备", "绑定-queue-0-中断到隔离核心并设置优先级", - "网络配置测试", "背景流量发送", "视频流量测试", "解决方案", "设备参数设置与部署", + "超参数汇总", "软件环境清单", "软件知识", "门控精度", diff --git a/layouts/dfdffff/index.html b/layouts/dfdffff/index.html deleted file mode 100644 index fbee122..0000000 --- a/layouts/dfdffff/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Welcome to My Site - - -

Hello, Welcome to My Custom Page!

-

This is a custom HTML page for my Hugo site.

- - \ No newline at end of file diff --git a/public/404.html b/public/404.html index 3e5685c..fd32dc8 100644 --- a/public/404.html +++ b/public/404.html @@ -1,6 +1,6 @@ - @@ -4069,24 +4069,24 @@

Latest

  • ZIGGO TSNPerf
  • -
  • ZIGGO Switch
  • - -
  • ZIGGO Device
  • -
  • 👩🏼‍🏫 准备清单
  • 🧠 基础知识列表
  • 📈 TSNPerf 设计原理
  • -
  • 🔨 System Design —— PL & PS Co-operate
  • +
  • 🔨 System Design —— PL & PS Co-operate
  • 💪 Hardware:FPGA bitstream & Petalinux system rootfs for TSN Evaluation Toolkit
  • -
  • 💦 Software:Time Sync + Config for CaaS Switches
  • +
  • 💦 Software:Time Sync + Config for CaaS Switches
  • 🎉 How to contribute
  • +
  • 📈 TSNPerf 使用指南
  • + +
  • 🧠 基础知识列表
  • + diff --git a/public/categories/index.html b/public/categories/index.html index bb7930b..7a12711 100644 --- a/public/categories/index.html +++ b/public/categories/index.html @@ -1,6 +1,6 @@ - diff --git a/public/device/basic_knowledge/index.html b/public/device/basic_knowledge/index.html index f8a298f..61374b5 100644 --- a/public/device/basic_knowledge/index.html +++ b/public/device/basic_knowledge/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4188,7 +4188,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4204,7 +4204,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4220,7 +4220,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4264,25 +4264,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/device/cnc_manual/index.html b/public/device/cnc_manual/index.html index d06a224..ead68a7 100644 --- a/public/device/cnc_manual/index.html +++ b/public/device/cnc_manual/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4218,7 +4218,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4234,7 +4234,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4250,7 +4250,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4294,25 +4294,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/device/contributing/index.html b/public/device/contributing/index.html index 2389e04..f53752d 100644 --- a/public/device/contributing/index.html +++ b/public/device/contributing/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4188,7 +4188,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4204,7 +4204,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4220,7 +4220,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4264,25 +4264,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/device/figs/Alinx7021.png b/public/device/figs/Alinx7021.png new file mode 100644 index 0000000..8156f7b Binary files /dev/null and b/public/device/figs/Alinx7021.png differ diff --git a/public/device/figs/FPGA_boot_mode_switch.png b/public/device/figs/FPGA_boot_mode_switch.png new file mode 100644 index 0000000..2f74d61 Binary files /dev/null and b/public/device/figs/FPGA_boot_mode_switch.png differ diff --git a/public/device/figs/analyse_result.png b/public/device/figs/analyse_result.png new file mode 100644 index 0000000..80efff1 Binary files /dev/null and b/public/device/figs/analyse_result.png differ diff --git a/public/device/figs/banner.jpg b/public/device/figs/banner.jpg new file mode 100644 index 0000000..c94260d Binary files /dev/null and b/public/device/figs/banner.jpg differ diff --git a/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_1200x1200_fit_q95_h2_lanczos.webp b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_1200x1200_fit_q95_h2_lanczos.webp new file mode 100644 index 0000000..8c678dd Binary files /dev/null and b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_1200x1200_fit_q95_h2_lanczos.webp differ diff --git a/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_33b5f2e9c0f36c72e8e11e0b39c975af.webp b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_33b5f2e9c0f36c72e8e11e0b39c975af.webp new file mode 100644 index 0000000..f46c2cc Binary files /dev/null and b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_33b5f2e9c0f36c72e8e11e0b39c975af.webp differ diff --git a/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_4f7d22bd8c54a3be79e63efc01caebdd.webp b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_4f7d22bd8c54a3be79e63efc01caebdd.webp new file mode 100644 index 0000000..f46c2cc Binary files /dev/null and b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_4f7d22bd8c54a3be79e63efc01caebdd.webp differ diff --git a/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_cf213c76eab420cdf28ae2af39a4c104.webp b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_cf213c76eab420cdf28ae2af39a4c104.webp new file mode 100644 index 0000000..3531aee Binary files /dev/null and b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_cf213c76eab420cdf28ae2af39a4c104.webp differ diff --git a/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_dba7161a3c141c359eb3ef524d1802dd.webp b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_dba7161a3c141c359eb3ef524d1802dd.webp new file mode 100644 index 0000000..3531aee Binary files /dev/null and b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_dba7161a3c141c359eb3ef524d1802dd.webp differ diff --git a/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_eea74d0812295a4a35a8a3884fd6389a.webp b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_eea74d0812295a4a35a8a3884fd6389a.webp new file mode 100644 index 0000000..3531aee Binary files /dev/null and b/public/device/figs/banner_hue235954a5fca819b133e75f7bc7c6695_993120_eea74d0812295a4a35a8a3884fd6389a.webp differ diff --git a/public/device/figs/demo-app.png b/public/device/figs/demo-app.png new file mode 100644 index 0000000..046fb88 Binary files /dev/null and b/public/device/figs/demo-app.png differ diff --git a/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_1200x1200_fit_q95_h2_lanczos_3.webp b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_1200x1200_fit_q95_h2_lanczos_3.webp new file mode 100644 index 0000000..6004a8e Binary files /dev/null and b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_1200x1200_fit_q95_h2_lanczos_3.webp differ diff --git a/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_17314cba4a13ced3c3a46e240c03aef7.webp b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_17314cba4a13ced3c3a46e240c03aef7.webp new file mode 100644 index 0000000..07645c3 Binary files /dev/null and b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_17314cba4a13ced3c3a46e240c03aef7.webp differ diff --git a/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_2b4bc378b2720e127cf87ee9d934502d.webp b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_2b4bc378b2720e127cf87ee9d934502d.webp new file mode 100644 index 0000000..07645c3 Binary files /dev/null and b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_2b4bc378b2720e127cf87ee9d934502d.webp differ diff --git a/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_667596c90afcb819a0e8f14df4309a5f.webp b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_667596c90afcb819a0e8f14df4309a5f.webp new file mode 100644 index 0000000..bbbf29c Binary files /dev/null and b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_667596c90afcb819a0e8f14df4309a5f.webp differ diff --git a/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_bf2c3b8722f4bdd3d9a675d5459add4c.webp b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_bf2c3b8722f4bdd3d9a675d5459add4c.webp new file mode 100644 index 0000000..bbbf29c Binary files /dev/null and b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_bf2c3b8722f4bdd3d9a675d5459add4c.webp differ diff --git a/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_e18c12b606f88df3fa8e42e9baf71473.webp b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_e18c12b606f88df3fa8e42e9baf71473.webp new file mode 100644 index 0000000..bbbf29c Binary files /dev/null and b/public/device/figs/demo-app_hu2cc2b16c6692306aefa560f8d4880713_44605_e18c12b606f88df3fa8e42e9baf71473.webp differ diff --git a/public/device/figs/device_arch.png b/public/device/figs/device_arch.png new file mode 100644 index 0000000..730bb7b Binary files /dev/null and b/public/device/figs/device_arch.png differ diff --git a/public/device/figs/device_test_demo.png b/public/device/figs/device_test_demo.png new file mode 100644 index 0000000..33f1164 Binary files /dev/null and b/public/device/figs/device_test_demo.png differ diff --git a/public/device/figs/download_petalinux.PNG b/public/device/figs/download_petalinux.PNG new file mode 100644 index 0000000..4131d41 Binary files /dev/null and b/public/device/figs/download_petalinux.PNG differ diff --git a/public/device/figs/example_pkt_gen_period.png b/public/device/figs/example_pkt_gen_period.png new file mode 100644 index 0000000..a157918 Binary files /dev/null and b/public/device/figs/example_pkt_gen_period.png differ diff --git a/public/device/figs/example_topology.png b/public/device/figs/example_topology.png new file mode 100644 index 0000000..623e464 Binary files /dev/null and b/public/device/figs/example_topology.png differ diff --git a/public/device/figs/export_bitstream.png b/public/device/figs/export_bitstream.png new file mode 100644 index 0000000..9c7c556 Binary files /dev/null and b/public/device/figs/export_bitstream.png differ diff --git a/public/device/figs/framework.jpg b/public/device/figs/framework.jpg new file mode 100644 index 0000000..5986d4e Binary files /dev/null and b/public/device/figs/framework.jpg differ diff --git a/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_1200x1200_fit_q95_h2_lanczos.webp b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_1200x1200_fit_q95_h2_lanczos.webp new file mode 100644 index 0000000..75b7fcb Binary files /dev/null and b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_1200x1200_fit_q95_h2_lanczos.webp differ diff --git a/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_a2e2433c1500dc014fe9acc8caa39a46.webp b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_a2e2433c1500dc014fe9acc8caa39a46.webp new file mode 100644 index 0000000..253be1c Binary files /dev/null and b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_a2e2433c1500dc014fe9acc8caa39a46.webp differ diff --git a/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_a5f0b994a8a3b16b4d893f7c259edafa.webp b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_a5f0b994a8a3b16b4d893f7c259edafa.webp new file mode 100644 index 0000000..253be1c Binary files /dev/null and b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_a5f0b994a8a3b16b4d893f7c259edafa.webp differ diff --git a/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_b91224639736c3537a33a7177328db3d.webp b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_b91224639736c3537a33a7177328db3d.webp new file mode 100644 index 0000000..253be1c Binary files /dev/null and b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_b91224639736c3537a33a7177328db3d.webp differ diff --git a/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_e03d3f297f0ec3557ae9aa40b5aedb5a.webp b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_e03d3f297f0ec3557ae9aa40b5aedb5a.webp new file mode 100644 index 0000000..5181ad5 Binary files /dev/null and b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_e03d3f297f0ec3557ae9aa40b5aedb5a.webp differ diff --git a/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_e841ff7b05d0cd540cff972b086ad766.webp b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_e841ff7b05d0cd540cff972b086ad766.webp new file mode 100644 index 0000000..5181ad5 Binary files /dev/null and b/public/device/figs/framework_hu664a27794008b1b6b3c568fd63fa5bdf_1005838_e841ff7b05d0cd540cff972b086ad766.webp differ diff --git a/public/device/figs/moba_serial.png b/public/device/figs/moba_serial.png new file mode 100644 index 0000000..4dbb934 Binary files /dev/null and b/public/device/figs/moba_serial.png differ diff --git a/public/device/figs/offline_analyse.png b/public/device/figs/offline_analyse.png new file mode 100644 index 0000000..19b38f7 Binary files /dev/null and b/public/device/figs/offline_analyse.png differ diff --git a/public/device/figs/online_analyse.png b/public/device/figs/online_analyse.png new file mode 100644 index 0000000..85c91e4 Binary files /dev/null and b/public/device/figs/online_analyse.png differ diff --git a/public/device/figs/switch_fabric.png b/public/device/figs/switch_fabric.png new file mode 100644 index 0000000..b2f4f13 Binary files /dev/null and b/public/device/figs/switch_fabric.png differ diff --git a/public/device/figs/testbed.jpg b/public/device/figs/testbed.jpg new file mode 100644 index 0000000..78bb234 Binary files /dev/null and b/public/device/figs/testbed.jpg differ diff --git a/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_078f56a4be34c77b30f3cc43da5e7e69.webp b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_078f56a4be34c77b30f3cc43da5e7e69.webp new file mode 100644 index 0000000..80ee162 Binary files /dev/null and b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_078f56a4be34c77b30f3cc43da5e7e69.webp differ diff --git a/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_1200x1200_fit_q95_h2_lanczos.webp b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_1200x1200_fit_q95_h2_lanczos.webp new file mode 100644 index 0000000..b4b8105 Binary files /dev/null and b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_1200x1200_fit_q95_h2_lanczos.webp differ diff --git a/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_2140a4e296a5d5666c23becf9e45d177.webp b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_2140a4e296a5d5666c23becf9e45d177.webp new file mode 100644 index 0000000..37ce6bc Binary files /dev/null and b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_2140a4e296a5d5666c23becf9e45d177.webp differ diff --git a/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_5096b279ce6fdad8da3f3ae43b6291aa.webp b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_5096b279ce6fdad8da3f3ae43b6291aa.webp new file mode 100644 index 0000000..37ce6bc Binary files /dev/null and b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_5096b279ce6fdad8da3f3ae43b6291aa.webp differ diff --git a/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_7ef4130cd43b682b03d9bd9c6534f46d.webp b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_7ef4130cd43b682b03d9bd9c6534f46d.webp new file mode 100644 index 0000000..37ce6bc Binary files /dev/null and b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_7ef4130cd43b682b03d9bd9c6534f46d.webp differ diff --git a/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_d51c78b586dfce9d633be357432a3b25.webp b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_d51c78b586dfce9d633be357432a3b25.webp new file mode 100644 index 0000000..80ee162 Binary files /dev/null and b/public/device/figs/testbed_hu151abc6c7d00e9a41cda441b6c35f177_1024606_d51c78b586dfce9d633be357432a3b25.webp differ diff --git a/public/device/figs/time_sync_state_machine.png b/public/device/figs/time_sync_state_machine.png new file mode 100644 index 0000000..e07a690 Binary files /dev/null and b/public/device/figs/time_sync_state_machine.png differ diff --git a/public/device/figs/topo.PNG b/public/device/figs/topo.PNG new file mode 100644 index 0000000..404865e Binary files /dev/null and b/public/device/figs/topo.PNG differ diff --git a/public/device/figs/topo_config.png b/public/device/figs/topo_config.png new file mode 100644 index 0000000..0f4dc56 Binary files /dev/null and b/public/device/figs/topo_config.png differ diff --git a/public/device/figs/vivado_bitstream.png b/public/device/figs/vivado_bitstream.png new file mode 100644 index 0000000..a05b890 Binary files /dev/null and b/public/device/figs/vivado_bitstream.png differ diff --git a/public/device/figs/vivado_tcl_console.png b/public/device/figs/vivado_tcl_console.png new file mode 100644 index 0000000..e8ed104 Binary files /dev/null and b/public/device/figs/vivado_tcl_console.png differ diff --git a/public/device/figs/vivado_workdir.png b/public/device/figs/vivado_workdir.png new file mode 100644 index 0000000..48167c1 Binary files /dev/null and b/public/device/figs/vivado_workdir.png differ diff --git a/public/device/figs/zynq.png b/public/device/figs/zynq.png new file mode 100644 index 0000000..a3943d4 Binary files /dev/null and b/public/device/figs/zynq.png differ diff --git a/public/device/getting-started/index.html b/public/device/getting-started/index.html index bac0870..5b98943 100644 --- a/public/device/getting-started/index.html +++ b/public/device/getting-started/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4200,7 +4200,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4216,7 +4216,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4232,7 +4232,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4276,25 +4276,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/device/hardware-build/index.html b/public/device/hardware-build/index.html index ae6dace..59350d8 100644 --- a/public/device/hardware-build/index.html +++ b/public/device/hardware-build/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4212,7 +4212,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4228,7 +4228,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4244,7 +4244,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4288,25 +4288,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/device/index.html b/public/device/index.html index 2f6b5c9..1a1a3f0 100644 --- a/public/device/index.html +++ b/public/device/index.html @@ -1,6 +1,6 @@ - @@ -189,7 +189,7 @@ - + @@ -203,7 +203,7 @@ - ZIGGO Device | Creator's Landing Page | Hugo Theme + Creator's Landing Page | Hugo Theme @@ -4061,8 +4061,246 @@
    -

    ZIGGO Device

    - +

    + +
    +

    ZIGGO Device: A flexible and standard-compliant toolkit for TSN performance evaluation.

    +
    +

    + Project Page | + Paper | + ZIGGO-CaaS-Switch | + ZIGGO-Device +

    +

    + + + + + + + + + + + + + + + +

    +
    +
    +
    +

    +

    Table of Contents

    + +

    Introduction

    +

    ZIGGO is a flexible, standard-compliant, and control-function-virtualized TSN switch platform ready for industrial control, automotive electronics, and other time-sensitive applications.

    +

    This is the document for the ZIGGO Device. (We also offer ZIGGO-CaaS-Switch that comply with the IEEE 802.1 TSN standard.) Our Device supports testing all standards-compliant switches.

    +

    ZIGGO Open Platform

    +

    + + + + + + + + + + + + + + + +

    +
    +
    +
    +

    +

    The construction of the ZIGGO Open Platform consists of three levels: network device, management tools, and a Demo App:

    + +

    Demo

    +

    We provide a demonstration video of the TSN switch. It demonstrates the superior performance of the ZIGGO-CaaS-Switch compared to the normal switch.

    +

    The left side of the picture is the ZYNQ development board we use, and the right side is the TSN display board we built.

    +

    + + + + + + + + + + + + + + + +

    +
    +
    Watch the video
    +
    +

    +
    +

    Click the pic to watch the video! Or just click here.

    +
    +

    Features

    + +

    Read before start

    +

    Getting started with ZIGGO-CaaS-Switch/ZIGGO-Device is a pretty hard task. Users/developers need to have sufficient basic knowledge and be prepare to for a long periond of learning and debugging.

    +

    Please refer to basic_knowledge.md to check if you have ability to use ZIGGO competently.

    +

    Getting Started

    +

    Please refer to required.md to get prepared.

    +

    After that, please refer to getting_started.md for the build and run a single ZIGGO Device.

    +

    System Design

    +

    ZIGGO is implemented on ZYNQ-7000 SoC and exploits ZYNQ’s both hardware and software programmability.

    +

    + + + + + + + + + + + + + + + +

    +
    +
    framework
    +
    +

    +

    We also provide more in-depth documentation explaining specific design principles for ZIGGO Device.

    +

    Demo APP Tutorial

    +

    We also provide a testbed build document that allows you to build a real-time Ethernet system using the ZIGGO swtich and Device.

    +

    Through this platform, we can measure the delay and jitter of TSN time-critcial traffic, the switch’s gating capability, bandwidth guarantee and gating accuracy.

    +

    Replacing ZIGGO CaaS switches with commercial TSN switches can also test its above capabilities.

    +

    License and Citation

    +

    ZIGGO is released under a MIT license.

    +

    Please consider citing our papers if the project helps your research with the following BibTex:

    +
    @inproceedings{caas,
    +  author={Yang, Zheng and Zhao, Yi and Dang, Fan and He, Xiaowu and Wu, Jiahang and Cao, Hao and Wang, Zeyu and Liu, Yunhao},
    +  booktitle={IEEE INFOCOM 2023 - IEEE Conference on Computer Communications}, 
    +  title={CaaS: Enabling Control-as-a-Service for Time-Sensitive Networking}, 
    +  year={2023},
    +  pages={1-10},
    +  doi={10.1109/INFOCOM53939.2023.10228980}}
    +
    @inproceedings{etsn,
    +  author={Zhao, Yi and Yang, Zheng and He, Xiaowu and Wu, Jiahang and Cao, Hao and Dong, Liang and Dang, Fan and Liu, Yunhao},
    +  booktitle={IEEE ICDCS 2022 - IEEE International Conference on Distributed Computing Systems}, 
    +  title={E-TSN: Enabling Event-triggered Critical Traffic in Time-Sensitive Networking for Industrial Applications}, 
    +  year={2022},
    +  volume={},
    +  number={},
    +  pages={691-701},
    +  doi={10.1109/ICDCS54860.2022.00072}}
    +

    TODO List

    + +
    +

    We will expand each test in the tutorial to multiple test cases to cover different edge cases and comprehensively test the performance of TSN switches.

    +
    + +
    +

    At present, we have only tested our own Ziggo switches and are testing other commercial switches (such as Huawei ,H3C and NXP). We expect to maintain a list of test results in the future.

    +
    +

    Contributing

    +

    Please see the guide for information on how to ask for help or contribute to the development of ZIGGO!

    +
    +

    The development team will only answer questions on github issues and reject other forms of questions.

    +
    +
    diff --git a/public/device/index.xml b/public/device/index.xml index 23fca7c..a6d3ea5 100644 --- a/public/device/index.xml +++ b/public/device/index.xml @@ -1,14 +1,14 @@ - ZIGGO Device | Creator's Landing Page | Hugo Theme + Creator's Landing Page | Hugo Theme http://localhost:1313/device/ - ZIGGO Device + Creator's Landing Page | Hugo Theme Hugo Blox Builder (https://hugoblox.com)en-usWed, 01 May 2024 00:00:00 +0000 http://localhost:1313/media/logo.svg - ZIGGO Device + Creator's Landing Page | Hugo Theme http://localhost:1313/device/ diff --git a/public/device/require/index.html b/public/device/require/index.html index bf0b30d..d8bc841 100644 --- a/public/device/require/index.html +++ b/public/device/require/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4188,7 +4188,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4204,7 +4204,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4220,7 +4220,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4264,25 +4264,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/device/software-build/index.html b/public/device/software-build/index.html index d176021..796b1f8 100644 --- a/public/device/software-build/index.html +++ b/public/device/software-build/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4206,7 +4206,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4222,7 +4222,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4238,7 +4238,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4282,25 +4282,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/device/system-design/index.html b/public/device/system-design/index.html index 7c01c75..5b6cd06 100644 --- a/public/device/system-design/index.html +++ b/public/device/system-design/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4200,7 +4200,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4216,7 +4216,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4232,7 +4232,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4276,25 +4276,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/device/testbed/index.html b/public/device/testbed/index.html index b14096b..796b842 100644 --- a/public/device/testbed/index.html +++ b/public/device/testbed/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4206,7 +4206,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4222,7 +4222,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4238,7 +4238,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4282,25 +4282,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/device/ziggo_device_manual/index.html b/public/device/ziggo_device_manual/index.html index 912a196..e11b547 100644 --- a/public/device/ziggo_device_manual/index.html +++ b/public/device/ziggo_device_manual/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4188,7 +4188,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4204,7 +4204,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4220,7 +4220,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4264,25 +4264,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/index.html b/public/index.html index 99eff07..7a8a83b 100644 --- a/public/index.html +++ b/public/index.html @@ -1,6 +1,6 @@ - diff --git a/public/index.xml b/public/index.xml index 3185862..c747d22 100644 --- a/public/index.xml +++ b/public/index.xml @@ -51,161 +51,6 @@ - - ⌚ TSNPerf 检测内容及使用表 - http://localhost:1313/tsnperf/manual/ - Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/tsnperf/manual/ - <h2 id="时间同步测试">时间同步测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备时间同步功能的方法。</p> -<p>TBD</p> -<h2 id="流量整形测试">流量整形测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备流量整形功能的方法。本章节中的测试参数均为参考配置,使用者可根据实际需求修改参数。</p> -<h3 id="基准测试">基准测试</h3> -<p><strong>目的:<strong>测试</strong>无</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> -<p><strong>方案:</strong> -使用如下拓扑,按照配置文档中的介绍发送关键数据包,记录关键数据包的端到端时延、抖动和丢包率。</p> -<p> - - - - - - - - - - - - - - - -<figure > - <div class="flex justify-center "> - <div class="w-100" ><img src="./qbv-basictest.png" alt="alt text" loading="lazy" data-zoomable /></div> - </div></figure> -</p> -<p>下面给出TSNPerf程序的参考参数配置:</p> -<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">tx-mode: <span class="m">2</span> -</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/captured_10w_1500Byte.pcap&#34;</span> -</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> -</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> -</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> -</span></span><span class="line"><span class="cl">ethertype: 0xb62c -</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> -</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> -</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L -</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> -</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> -</span></span><span class="line"><span class="cl">use-udp: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> -</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> -</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。</p> -<h3 id="门控能力">门控能力</h3> -<p><strong>目的:</strong> 测试<strong>有</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> -<p><strong>方案:</strong> 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,打满网络带宽,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。</p> -<p> - - - - - - - - - - - - - - - -<figure > - <div class="flex justify-center "> - <div class="w-100" ><img src="./qbv-withbackground.png" alt="alt text" loading="lazy" data-zoomable /></div> - </div></figure> -</p> -<p>TSNPerf程序的配置参数可参考上一小节。如果待测设备功能正常,则测试结果应与<strong>基准测试</strong>中得到的结果一致。</p> -<h3 id="门控精度">门控精度</h3> -<p><strong>目的:</strong> 测试交换机门控的精度,即能否通过预期数量和大小的以太网帧</p> -<p><strong>方案:</strong> 每个周期预留16384ns的门控给关键流量,理论上每个周期可以通过2个1500Byte的以太网帧。</p> -<p>下面给出TSNPerf程序的参考参数配置:</p> -<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">tx-mode: <span class="m">3</span> -</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/captured_10w_1500Byte.pcap&#34;</span> -</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> -</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> -</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> -</span></span><span class="line"><span class="cl">ethertype: 0xb62c -</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> -</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> -</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L -</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> -</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">100000</span> -</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> -</span></span><span class="line"><span class="cl">use-udp: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> -</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> -</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>Publisher向Recorder打满关键流量,Recorder处统计接收到的关键数据包的时间戳。预期每个周期(1毫秒)可以接收到两个关键数据包。</p> -<h3 id="带宽保障">带宽保障</h3> -<p><strong>目的:</strong> 测试待测交换机是否可以为关键流量预留固定的带宽</p> -<p><strong>方案:</strong></p> -<ol> -<li>配置待测交换机的门控,为关键数据预留25%、50%、75%的带宽。</li> -<li>从Injector处向Recorder打满背景流量。</li> -<li>用TSNPerf,从Publisher向Recorder发送关键流量,配置参数可参考上一小节。</li> -<li>Recorder处用tcpdump/wireshark记录带宽使用情况。以千兆带宽为例,预期关键数据会分别占用 250Mbps、500Mbps、750Mbps 的带宽。</li> -</ol> -<h3 id="视频流量测试">视频流量测试</h3> -<p><strong>目的:</strong> 测试以太网帧大小不同的视频流量经过一跳交换机的端延迟、抖动和丢包率</p> -<p><strong>方案:</strong> 测试拓扑参考<strong>基准测试</strong>章节。准备好一个视频流量的pcap文件<code>H264.pcap</code>,TSNPerf程序的参数配置如下:</p> -<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">tx-mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/H264.pcap&#34;</span> -</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> -</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> -</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> -</span></span><span class="line"><span class="cl">ethertype: 0xb62c -</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> -</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> -</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L -</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> -</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> -</span></span><span class="line"><span class="cl">use-udp: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> -</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> -</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>如果待测交换机是存储转发(store-and-forward)模式的,则预期每个数据包的端到端时延会因包的大小而有所不同。如果待测交换机是直通转发(cut-through)模式的,则预期数据包的端到端时延抖动是很小的。</p> -<h2 id="网络配置测试">网络配置测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备网络配置功能的方法。</p> -<p>TBD</p> - - - 💦 互联互通测试TestBed搭建流程 http://localhost:1313/device/testbed/ @@ -1769,9 +1614,9 @@ Device1每次发送1个1500B的数据包,每个Switch都预留了1个时隙, 💦 Software:Time Sync + Config for CaaS Switches - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ <p>This repo contains source code to enable CaaS Switches&rsquo; time synchronization logic and set up TSN GCL (gate control list), switch forwarding rules (including to dual-DMA).</p> <h2 id="build">Build</h2> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir build @@ -2104,9 +1949,9 @@ Device1每次发送1个1500B的数据包,每个Switch都预留了1个时隙, 🔨 System Design —— PL & PS Co-operate - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ <p>The CaaS/TSN Switch is developed based on the ZYNQ platform. The diagram below shows the composition of the ZYNQ chip. ZYNQ mainly consists of a Processing System (PS) and Programmable Logic (PL). The PS and PL mainly communicate with each other through the high-performance Advanced eXtensible Interface (AXI), which is more efficient than using FPGA directly as a peripheral. The PS contains an ARM-based processor suitable for running applications, drivers, and operating systems, while the PL contains FPGA suitable for running low-level hardware logic with high real-time performance requirements.</p> <p> @@ -2507,5 +2352,192 @@ Our GCL is represented by 9 bits, with the highest bit representing whether the + + + http://localhost:1313/tsnperf/manual/ + Mon, 01 Jan 0001 00:00:00 +0000 + http://localhost:1313/tsnperf/manual/ + <h2 id="流量整形测试">流量整形测试</h2> +<p>本节将介绍使用TSNPerf测试待测设备流量整形功能的方法。本章节中的测试参数均为参考配置,使用者可根据实际需求修改参数。</p> +<h3 id="基准测试">基准测试</h3> +<p><strong>目的:</strong> 测试 <strong>无</strong> 背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> +<p><strong>方案:</strong> +使用如下拓扑,按照配置文档中的介绍发送关键数据包,记录关键数据包的端到端时延、抖动和丢包率。</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="flex justify-center "> + <div class="w-100" ><img src="./qbv-basictest.png" alt="alt text" loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>下面给出TSNPerf程序的参考参数配置:</p> +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> +</span></span><span class="line"><span class="cl">tx-mode: <span class="m">2</span> +</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> +</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> +</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/captured_10w_1500Byte.pcap&#34;</span> +</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> +</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> +</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> +</span></span><span class="line"><span class="cl">ethertype: 0xb62c +</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> +</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> +</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> +</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> +</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">true</span> +</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L +</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> +</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">10000</span> +</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> +</span></span><span class="line"><span class="cl">use-udp: <span class="nb">false</span> +</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> +</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> +</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> +</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> +</span></span></code></pre></div><p>该配置中,<code>packet-size</code>可以根据需要改变,推荐可以设置为 $64$ Byte(最小以太网帧长)、$100$ Byte、$500$ Byte、$1000$ Byte、$1500$ Byte等。</p> +<p>每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。</p> +<h3 id="门控能力">门控能力</h3> +<p><strong>目的:</strong> 测试<strong>有</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> +<p><strong>方案:</strong> 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="flex justify-center "> + <div class="w-100" ><img src="./qbv-withbackground.png" alt="alt text" loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<p>为了全面测试待测设备地门控能力,可以调整Injector向网络中注入的背景流量带宽,以千兆网络为例,可以分别检查背景流量为 $250$ Mbps、$500$ Mbps、$750$ Mbps、$1000$ Mbps的情况下,关键数据包的时延抖动。</p> +<p>TSNPerf程序的配置参数可参考上一小节。如果待测设备功能正常,则测试结果应与<strong>基准测试</strong>中得到的结果一致。</p> +<h3 id="门控精度">门控精度</h3> +<p><strong>目的:</strong> 测试交换机门控的精度,即能否通过预期数量和大小的以太网帧</p> +<p><strong>方案:</strong> 每个周期预留16384ns的门控给关键流量,理论上每个周期可以通过2个1500Byte的以太网帧。</p> +<p>下面给出TSNPerf程序的参考参数配置:</p> +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> +</span></span><span class="line"><span class="cl">tx-mode: <span class="m">3</span> +</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> +</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> +</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/captured_10w_1500Byte.pcap&#34;</span> +</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> +</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> +</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> +</span></span><span class="line"><span class="cl">ethertype: 0xb62c +</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> +</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> +</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> +</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> +</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">false</span> +</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L +</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> +</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">100000</span> +</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> +</span></span><span class="line"><span class="cl">use-udp: <span class="nb">false</span> +</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> +</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> +</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> +</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> +</span></span></code></pre></div><p>Publisher向Recorder打满关键流量,Recorder处统计接收到的关键数据包的时间戳。预期每个周期(1毫秒)可以接收到两个关键数据包。</p> +<p>另外,还可以在不同的拓扑下,更细粒度地验证待测设备的门控精度。在下图拓扑上,以千兆以太网、1500Byte测试包为例,我们配置 DUT1 在周期的 0~16us 打开关键流量门控,DUT2 在周期的 15~31us 打开关键流量门控吗。期望,关键数据包能够不丢包地通过网络设备,并且端到端时延与门控全开时的结果一致。</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="flex justify-center "> + <div class="w-100" ><img alt="·" srcset=" + /tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_601005af135bc3df5453435c5823e90a.webp 400w, + /tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_fd592e120a90b8b5c4e834886d8fd6cc.webp 760w, + /tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_1200x1200_fit_q95_h2_lanczos_3.webp 1200w" + src="http://localhost:1313/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_601005af135bc3df5453435c5823e90a.webp" + width="760" + height="165" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> +<h3 id="带宽保障">带宽保障</h3> +<p><strong>目的:</strong> 测试待测交换机是否可以为关键流量预留固定的带宽</p> +<p><strong>方案:</strong></p> +<ol> +<li>配置待测交换机的门控,为关键数据预留25%、50%、75%的带宽。</li> +<li>从Injector处向Recorder打满背景流量。</li> +<li>用TSNPerf,从Publisher向Recorder发送关键流量,配置参数可参考上一小节。</li> +<li>Recorder处用tcpdump/wireshark记录带宽使用情况。以千兆带宽为例,预期关键数据会分别占用 250Mbps、500Mbps、750Mbps 的带宽。</li> +</ol> +<h3 id="视频流量测试">视频流量测试</h3> +<p><strong>目的:</strong> 测试以太网帧大小不同的视频流量经过一跳交换机的端延迟、抖动和丢包率</p> +<p><strong>方案:</strong> 测试拓扑参考<strong>基准测试</strong>章节。准备好一个视频流量的pcap文件<code>H264.pcap</code>,TSNPerf程序的参数配置如下:</p> +<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> +</span></span><span class="line"><span class="cl">tx-mode: <span class="m">0</span> +</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> +</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> +</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/H264.pcap&#34;</span> +</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> +</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> +</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> +</span></span><span class="line"><span class="cl">ethertype: 0xb62c +</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> +</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> +</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> +</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> +</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">true</span> +</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L +</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> +</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">10000</span> +</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> +</span></span><span class="line"><span class="cl">use-udp: <span class="nb">true</span> +</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> +</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> +</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> +</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> +</span></span></code></pre></div><p>如果待测交换机是存储转发(store-and-forward)模式的,则预期每个数据包的端到端时延会因包的大小而有所不同。如果待测交换机是直通转发(cut-through)模式的,则预期数据包的端到端时延抖动是很小的。</p> +<h2 id="超参数汇总">超参数汇总</h2> +<p>除了上文中给的TSNPerf程序配置,还有一些参数在测试用例中经常需要根据需求改动,现将之罗列于下:</p> +<ul> +<li>packet-size:该参数设置了测试包的大小,用于验证待测设备转发不同数据包的能力。推荐的配置有:$64$ Byte(最小以太网帧长)、$100$ Byte、$500$ Byte、$1000$ Byte、$1500$ Byte等。</li> +<li>背景流量大小:该参数设置了网络中的背景流量大小,用于验证待测设备能否保障关键流量的低延迟、低抖动传输。可以根据实际网络带宽的大小,配置背景流量分别占用 0%、25%、50%、75%、100% 的网络带宽。</li> +<li>拓扑:拓扑决定了关键流量在网络中的传输路径。在不同拓扑上测试可以更加全面地验证待测设备的门控能力、门控精度。本文限于篇幅,仅使用了 一跳测试拓扑 和 两跳测试拓扑,使用者可以根据需要,改变测试拓扑。</li> +</ul> + + +
    diff --git a/public/privacy/index.html b/public/privacy/index.html index acf97bb..128ebbb 100644 --- a/public/privacy/index.html +++ b/public/privacy/index.html @@ -1,6 +1,6 @@ - @@ -4082,7 +4082,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4174,7 +4174,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4190,7 +4190,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4206,7 +4206,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4250,25 +4250,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/sitemap.xml b/public/sitemap.xml index 427a17f..4418409 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -9,10 +9,6 @@ http://localhost:1313/device/contributing/ 2024-05-01T00:00:00+00:00 weekly - - http://localhost:1313/tsnperf/manual/ - 2024-05-01T00:00:00+00:00 - weekly http://localhost:1313/device/testbed/ 2024-05-01T00:00:00+00:00 @@ -58,7 +54,7 @@ 2024-05-01T00:00:00+00:00 weekly - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ 2024-05-01T00:00:00+00:00 weekly @@ -66,7 +62,7 @@ 2024-05-01T00:00:00+00:00 weekly - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ 2024-05-01T00:00:00+00:00 weekly @@ -82,39 +78,35 @@ 2024-05-01T00:00:00+00:00 weekly - http://localhost:1313/tag/basic/ - 2024-05-01T00:00:00+00:00 - weekly - - http://localhost:1313/tag/cnc/ + http://localhost:1313/device/ 2024-05-01T00:00:00+00:00 weekly - http://localhost:1313/tag/markdown/ + http://localhost:1313/switch/ 2024-05-01T00:00:00+00:00 weekly - http://localhost:1313/tags/ + http://localhost:1313/tag/basic/ 2024-05-01T00:00:00+00:00 weekly - http://localhost:1313/tag/test-case/ + http://localhost:1313/tag/cnc/ 2024-05-01T00:00:00+00:00 weekly - http://localhost:1313/tag/tsnperf/ + http://localhost:1313/tag/markdown/ 2024-05-01T00:00:00+00:00 weekly - http://localhost:1313/tag/ziggo/ + http://localhost:1313/tags/ 2024-05-01T00:00:00+00:00 weekly - http://localhost:1313/device/ + http://localhost:1313/tag/tsnperf/ 2024-05-01T00:00:00+00:00 weekly - http://localhost:1313/switch/ + http://localhost:1313/tag/ziggo/ 2024-05-01T00:00:00+00:00 weekly @@ -141,6 +133,9 @@ http://localhost:1313/ 2023-10-24T00:00:00+00:00 weekly + + http://localhost:1313/tsnperf/manual/ + weekly http://localhost:1313/categories/ weekly diff --git a/public/switch/basic_knowledge/index.html b/public/switch/basic_knowledge/index.html index 7691d5f..d03944e 100644 --- a/public/switch/basic_knowledge/index.html +++ b/public/switch/basic_knowledge/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4173,7 +4173,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4189,7 +4189,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4205,7 +4205,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4264,25 +4264,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • @@ -4674,7 +4674,7 @@

    软件知识

    - + diff --git a/public/switch/contributing/index.html b/public/switch/contributing/index.html index d48d143..d060ccc 100644 --- a/public/switch/contributing/index.html +++ b/public/switch/contributing/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4173,7 +4173,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4204,7 +4204,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4220,7 +4220,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4264,25 +4264,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • @@ -4679,7 +4679,7 @@

    Contributing to ZIGGO’s code

    - + - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4173,7 +4173,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4189,7 +4189,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4232,7 +4232,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4276,25 +4276,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • @@ -4788,7 +4788,7 @@

    4. Run the Software

    - + @@ -4807,7 +4807,7 @@

    4. Run the Software

    - + - @@ -189,7 +189,7 @@ - + @@ -203,7 +203,7 @@ - ZIGGO Switch | Creator's Landing Page | Hugo Theme + Creator's Landing Page | Hugo Theme @@ -4061,8 +4061,251 @@
    -

    ZIGGO Switch

    - +

    + +
    +

    ZIGGO CaaS Switch: A flexible, standard-compliant, and control-function-virtualized TSN switch platform

    +
    +

    + Project Page | + Paper | + ZIGGO-CaaS-Switch | + ZIGGO-Device +

    + +

    + + + + + + + + + + + + + + + +

    +
    +
    +
    +

    +

    Table of Contents

    + +

    Introduction

    +

    ZIGGO is a flexible, standard-compliant, and control-function-virtualized TSN switch platform ready for industrial control, automotive electronics, and other time-sensitive applications.

    +

    This is the document for the ZIGGO CaaS Switch. (We also offer ZIGGO-Device that comply with the IEEE 802.1 TSN standard.)

    +

    ZIGGO Open Platform

    +

    + + + + + + + + + + + + + + + +

    +
    +
    +
    +

    +

    The construction of the ZIGGO Open Platform consists of three levels: network device, management tools, and a Demo App. More details in ZIGGO-Device.

    +

    Demo

    +

    We provide a demonstration video of the TSN switch. It demonstrates the superior performance of the ZIGGO-CaaS-Switch compared to the normal switch.

    +

    The left side of the picture is the ZYNQ development board we use, and the right side is the TSN display board we built.

    +

    + + + + + + + + + + + + + + + +

    +
    +
    Watch the video
    +
    +

    +
    +

    Click the pic to watch the video! Or just click here.

    +
    +

    Features

    +
      +
    • +

      ZIGGO supports the simultaneous transmission of both Information Technology (IT) and Operation Technology (OT) data traffic with QoS guarantee.

      +
    • +
    • +

      ZIGGO complies with IEEE standards 802.1AS, Qav, Qbv, and Qcc.

      +
    • +
    • +

      ZIGGO provides Real-time and Deterministic Ethernet transport

      +
        +
      • +

        ZIGGO achieve Zero Packet Loss , Microsecond-level Latency with Nanosecond-level Jitter Gate Ability.

        +
      • +
      • +

        ZIGGO guarantee Gigabit Throughput.

        +
      • +
      • +

        ZIGGO provide gate accuracy applicable to All Ethernet Frame Sizes.

        +
      • +
      +
    • +
    +

    Read before start

    +

    Getting started with ZIGGO-CaaS-Switch/ZIGGO-Device is a pretty hard task. Users/developers need to have sufficient basic knowledge and be prepare to for a long periond of learning and debugging.

    +

    Please refer to basic_knowledge.md to check if you have ability to use ZIGGO competently.

    +

    Getting Started

    +

    Please refer to required.md to get prepared.

    +

    Please refer to hardware-build.md for the build hardware for ZIGGO Evaluation Toolkit and software-build.md to run time synchronization logic and set up TSN GCL .

    +

    System Design

    +

    ZIGGO is implemented on ZYNQ-7000 SoC and exploits ZYNQ’s both hardware and software programmability.

    +

    + + + + + + + + + + + + + + + +

    +
    +
    framework
    +
    +

    +

    We also provide more in-depth documentation explaining specific design principles for ZIGGO CaaS Switch.

    +

    Demo APP Tutorial

    +

    We also provide a testbed build document(in ZIGGO Device) that allows you to build a real-time Ethernet system using the ZIGGO swtich and ZIGGO Device.

    +

    Through this platform, we can measure the delay and jitter of TSN time-critcial traffic, the switch’s gating capability, bandwidth guarantee and gating accuracy.

    +

    Replacing ZIGGO CaaS switches with commercial TSN switches can also test its above capabilities.

    +

    License and Citation

    +

    ZIGGO is released under a MIT license.

    +

    Please consider citing our papers if the project helps your research with the following BibTex:

    +
    @inproceedings{caas,
    +  author={Yang, Zheng and Zhao, Yi and Dang, Fan and He, Xiaowu and Wu, Jiahang and Cao, Hao and Wang, Zeyu and Liu, Yunhao},
    +  booktitle={IEEE INFOCOM 2023 - IEEE Conference on Computer Communications},
    +  title={CaaS: Enabling Control-as-a-Service for Time-Sensitive Networking},
    +  year={2023},
    +  pages={1-10},
    +  doi={10.1109/INFOCOM53939.2023.10228980}
    +}
    +
    @inproceedings{etsn,
    +  author={Zhao, Yi and Yang, Zheng and He, Xiaowu and Wu, Jiahang and Cao, Hao and Dong, Liang and Dang, Fan and Liu, Yunhao},
    +  booktitle={IEEE ICDCS 2022 - IEEE International Conference on Distributed Computing Systems}, 
    +  title={E-TSN: Enabling Event-triggered Critical Traffic in Time-Sensitive Networking for Industrial Applications}, 
    +  year={2022},
    +  volume={},
    +  number={},
    +  pages={691-701},
    +  doi={10.1109/ICDCS54860.2022.00072}}
    +

    TODO List

    +
      +
    • +

      ZIGGO CaaS Switch Release

      +
    • +
    • +

      ZIGGO Evaluation Toolkit Release

      +
    • +
    • +

      ZIGGO Evaluation Toolkit Source Code

      +
    • +
    • +

      Tutorial for build a testbed

      +
    • +
    • +

      Test Case for TSN

      +
    • +
    +
    +

    We will expand each test in the tutorial to multiple test cases to cover different edge cases and comprehensively test the performance of TSN switches.

    +
    +
      +
    • Support Device List
    • +
    +
    +

    At present, we have only tested our own Ziggo switches and are testing other commercial switches (such as Huawei ,H3C and NXP). We expect to maintain a list of test results in the future.

    +
    +

    Contributing

    +

    Please see the guide for information on how to ask for help or contribute to the development of ZIGGO!

    +
    +

    The development team will only answer questions on github issues and reject other forms of questions.

    +
    +
    @@ -4141,13 +4384,13 @@

    ZIGGO Switch

    - +
    - 🔨 System Design —— PL & PS Co-operate + 🔨 System Design —— PL & PS Co-operate
    @@ -4197,13 +4440,13 @@

    ZIGGO Switch

    -
    +
    - 💦 Software:Time Sync + Config for CaaS Switches + 💦 Software:Time Sync + Config for CaaS Switches
    diff --git a/public/switch/index.xml b/public/switch/index.xml index ed4449f..843f0d8 100644 --- a/public/switch/index.xml +++ b/public/switch/index.xml @@ -1,14 +1,14 @@ - ZIGGO Switch | Creator's Landing Page | Hugo Theme + Creator's Landing Page | Hugo Theme http://localhost:1313/switch/ - ZIGGO Switch + Creator's Landing Page | Hugo Theme Hugo Blox Builder (https://hugoblox.com)en-usWed, 01 May 2024 00:00:00 +0000 http://localhost:1313/media/logo.svg - ZIGGO Switch + Creator's Landing Page | Hugo Theme http://localhost:1313/switch/ @@ -44,9 +44,9 @@ 💦 Software:Time Sync + Config for CaaS Switches - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ <p>This repo contains source code to enable CaaS Switches&rsquo; time synchronization logic and set up TSN GCL (gate control list), switch forwarding rules (including to dual-DMA).</p> <h2 id="build">Build</h2> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir build @@ -379,9 +379,9 @@ 🔨 System Design —— PL & PS Co-operate - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ <p>The CaaS/TSN Switch is developed based on the ZYNQ platform. The diagram below shows the composition of the ZYNQ chip. ZYNQ mainly consists of a Processing System (PS) and Programmable Logic (PL). The PS and PL mainly communicate with each other through the high-performance Advanced eXtensible Interface (AXI), which is more efficient than using FPGA directly as a peripheral. The PS contains an ARM-based processor suitable for running applications, drivers, and operating systems, while the PL contains FPGA suitable for running low-level hardware logic with high real-time performance requirements.</p> <p> diff --git a/public/switch/require/index.html b/public/switch/require/index.html index 5c07fa3..ebde6c6 100644 --- a/public/switch/require/index.html +++ b/public/switch/require/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4173,7 +4173,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4189,7 +4189,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4205,7 +4205,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4264,25 +4264,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/switch/software-build/example_topology.png b/public/switch/software-build/example_topology.png new file mode 100644 index 0000000..623e464 Binary files /dev/null and b/public/switch/software-build/example_topology.png differ diff --git a/public/switch/software-build/featured.jpg b/public/switch/software-build/featured.jpg new file mode 100644 index 0000000..abb4d2f Binary files /dev/null and b/public/switch/software-build/featured.jpg differ diff --git a/public/switch/software-build/featured_hu5459c0360c2b0cb7a147d2df0eb350ca_3367253_5418f950db7a40015db4c1813fef05d0.webp b/public/switch/software-build/featured_hu5459c0360c2b0cb7a147d2df0eb350ca_3367253_5418f950db7a40015db4c1813fef05d0.webp new file mode 100644 index 0000000..adde394 Binary files /dev/null and b/public/switch/software-build/featured_hu5459c0360c2b0cb7a147d2df0eb350ca_3367253_5418f950db7a40015db4c1813fef05d0.webp differ diff --git a/public/switch/software-build/featured_hu5459c0360c2b0cb7a147d2df0eb350ca_3367253_5b7d550aaa0cc5da27254b5b9fc8d76b.webp b/public/switch/software-build/featured_hu5459c0360c2b0cb7a147d2df0eb350ca_3367253_5b7d550aaa0cc5da27254b5b9fc8d76b.webp new file mode 100644 index 0000000..e3142d5 Binary files /dev/null and b/public/switch/software-build/featured_hu5459c0360c2b0cb7a147d2df0eb350ca_3367253_5b7d550aaa0cc5da27254b5b9fc8d76b.webp differ diff --git a/public/switch/software-build/index.html b/public/switch/software-build/index.html new file mode 100644 index 0000000..0f1a22e --- /dev/null +++ b/public/switch/software-build/index.html @@ -0,0 +1,5026 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 💦 Software:Time Sync + Config for CaaS Switches | Creator's Landing Page | Hugo Theme + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    + + + + + + + + + + +
    +
    + + + +

    💦 Software:Time Sync + Config for CaaS Switches

    + +
    May 1, 2024· + + + +
    + + + ZHENG YANG | 杨铮 + +
    ZHENG YANG | 杨铮
    +
    + + + + + · + + 5 min read + + +
    + + + + + + + + + + + + + + + + + +
    +
    + + TBD +
    +
    + + +
    +

    This repo contains source code to enable CaaS Switches’ time synchronization logic and set up TSN GCL (gate control list), switch forwarding rules (including to dual-DMA).

    +

    Build

    +
    mkdir build
    +cd build
    +cmake ..
    +make
    +

    After successfully build, there should be two executables: “time_sync_app” & “switch_config”

    +

    Config

    +

    The “config” directory contains topology & TSN/CaaS schedule results.

    +

    This document takes the following topology as an example to give example configurations:

    +

    + + + + + + + + + + + + + + + +

    +
    +
    topology
    +
    +

    +
      +
    • +

      ***-config.json: Mainly describes the network’s topology, including the type of each node (device or switch), MAC address, PTP port status, and other node information, topology information, and MAC forwarding table. Example and explanation are as follows (note that the comments in the file are just for explanation, do not have such comments in actual use):

      +
      {
      +    "nodes": [ // Used to describe the information of each node in the network
      +        {
      +            "id": 10, // Node ID, corresponding to "src" and "dst" below
      +            "type": "switch", // Node type, divided into "switch" and "device"
      +            "mac": "00:0a:35:00:00:10", // Node's physical MAC address
      +            "ptp_ports": [
      +                1,
      +                0,
      +                3,
      +                0,
      +                3
      +            ] // Node's PTP port status
      +            // The quintuple represents the clock status of [local, ETH1, ETH2, ETH3, ETH4]
      +            // Number meaning: (0: MASTER, 1: SLAVE, 2: PASSIVE, 3: DISABLED)
      +            // If local is 1, it means that the node is the master clock node;
      +            // If local is 0, it means that the node is the slave clock node.
      +        },
      +        {
      +            "id": 14,
      +            "type": "device",
      +            "mac": "00:0a:35:00:00:14"
      +        },
      +        {
      +            "id": 15,
      +            "type": "device",
      +            "mac": "00:0a:35:00:00:15"
      +        }
      +    ],
      +    "links": [  // Topology information, composed of each link, each link is a directed edge
      +        {
      +            "id": 0, // link ID
      +            "src": 14, // Source node ID of the link
      +            "src_port": 0, // Port number of the source node
      +                           // port 0,1,2,3 correspond to ETH1,2,3,4 in reality
      +            "dst": 10, // Destination node ID of the link
      +            "dst_port": 0 // Port number of the destination node
      +        },
      +        {
      +            "id": 1,
      +            "src": 10,
      +            "src_port": 0,
      +            "dst": 14,
      +            "dst_port": 0
      +        },
      +        {
      +            "id": 2,
      +            "src": 10,
      +            "src_port": 2,
      +            "dst": 15,
      +            "dst_port": 0
      +        },
      +        {
      +            "id": 3,
      +            "src": 15,
      +            "src_port": 0,
      +            "dst": 10,
      +            "dst_port": 2
      +        }
      +    ],
      +    "fwd": [ // Forwarding table, which can be generated by the scheduling algorithm in CNC
      +        // In the forwarding table where you send to yourself, the port is 4 (caas) / 5 (PS ETH for new hardware)
      +        {
      +            "src": 10, // Current node ID
      +            "dst": 14, // Output port number
      +            "id": 0, // Entry ID
      +            "src_port": 0 // Destination node ID
      +        },
      +        {
      +            "src": 14,
      +            "dst": 10,
      +            "id": 1,
      +            "src_port": 0
      +        },
      +        {
      +            "src": 10,
      +            "dst": 15,
      +            "id": 2,
      +            "src_port": 2
      +        },
      +        {
      +            "src": 15,
      +            "dst": 10,
      +            "id": 3,
      +            "src_port": 0
      +        }
      +    ]
      +}
      +

      If the master clock selection algorithm is used, only the configuration of nodes is different, and the rest are the same. The newly added externalPortConfigurationEnabled and system_identity fields are optional items, as shown in the example below:

      +
      {
      +    "nodes": [
      +        {
      +            "type": "switch",
      +            "id": 0,
      +            "mac": "00:00:00:00:02:01",
      +            "ptp_ports": [0,0,0,0,0], 
      +            "externalPortConfigurationEnabled": 1, // 1: Manually configure the master-slave relationship, 0: Configure the master-slave relationship through the master clock selection algorithm, if this item is not written, the default is 0, that is, configure the master-slave relationship through the master clock selection
      +            "system_identity": { // Clock node's clock parameters, used for comparison in the master clock selection algorithm, if this item is not written, the default is the configuration written below
      +                "priority1": 254, // First priority
      +                "clockClass": 248, // Clock level
      +                "clockAccuracy": 254, // Clock accuracy
      +                "offsetScaledLogVariance": 17258, // Clock variance
      +                "priority2": 247, // Second priority
      +                "clock_identity": [0,0,0,0,0,0,0,0] // Clock identifier, different clocks should have different parameters
      +            }
      +        }
      +    ],
      +    "links": [
      +    ],
      +    "fwd": [
      +    ]
      +}
      +
    • +
    • +

      ***-schedule.json: schedule file, contains each links’ schedule time interval & each CaaS switch’s computation time interval.

      +
      [
      +    {// All switches need to be listed to facilitate software recognition of configuration information
      +        "type": "switch",  // Node type, divided into "switch" and "device"
      +        "id": 10, // Node ID, corresponding to "src" and "dst" below
      +        "mac": "00:0a:35:00:00:10", // Node's physical MAC address
      +        "schedule": [
      +        ] // Can be empty, not used
      +    },
      +    {
      +        "type": "link", // Type is link, used to describe scheduling information
      +        "from": 14, // Source node ID of the link
      +        "to": 10, // Destination node ID of the link
      +        "from_port": 0, // Output port number
      +        "id": 3, 
      +        "schedule": [ // Scheduling information
      +            {
      +                "period": 2048, // Scheduling cycle
      +                "start": 0, // Start time relative to the entire cycle
      +                "end": 5, // End time relative to the entire cycle
      +                "job_id": 0, // Job ID in CaaS, if not needed, it can be omitted
      +                "flow_id": 0 // Data stream ID
      +
      +            }
      +        ]
      +    },
      +    {
      +        "type": "link",
      +        "from": 10,
      +        "to": 15,
      +        "from_port": 2,
      +        "id": 0,
      +        "schedule": [
      +            {
      +                "period": 2048,
      +                "start": 1,
      +                "end": 6,
      +                "job_id": 0,
      +                "flow_id": 0,
      +                "pkt_size": 1500 // Packet length, if not written, the default is 1500B, this item only exists on the path from Device to Switch
      +            }
      +        ]
      +    }
      +]
      +
    • +
    +

    Run

    +
      +
    • Copy topology & schedule file to build dir:
    • +
    +
    cp [topology name]-config.json build/config.json
    +cp [topology name]-schedule.json build/schedule.json
    +
      +
    • Start time synchronization and initialize GCL and MAC forwarding table according to the configuration (it is recommended to run the time synchronization program on a core (with taskset -c 1 command) to prevent kernel errors and crashes due to time synchronization):
    • +
    +
    taskset -c 1 ./time_sync
    +
      +
    • The log output level is categorized into three types: WARN, INFO, and TRACE. The default log output level is TRACE (the most comprehensive output information, including DEBUG logs). The log output level can be set with the -l parameter:
    • +
    +
    taskset -c 1 ./time_sync -l w # WARN level
    +taskset -c 1 ./time_sync -l i # INFO level
    +taskset -c 1 ./time_sync -l t # TRACE level
    +

    Notice that the time sync logic is supposed to run indefinitely as the node should sync to its neighbors again and again.

    +
      +
    • Update GCL & switch forwarding rules:
    • +
    +
    ./switch_config
    +
    +
    + + + + +
    + +
    + + + + + +
    + + ZIGGO-SWITCH + + ZIGGO + + Markdown + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + ZHENG YANG | 杨铮 + +
    +
    + Authors +
    + + + +
    + Associate Professor, IEEE Fellow +
    + + + + +
    His research interests include Internet of Things, Industrial Internet, sensing and positioning, edge computing, etc.
    + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + diff --git a/public/switch/software_build/index.html b/public/switch/software_build/index.html index 8cc7037..5d0e436 100644 --- a/public/switch/software_build/index.html +++ b/public/switch/software_build/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4173,7 +4173,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > diff --git a/public/switch/system-design/featured.png b/public/switch/system-design/featured.png new file mode 100644 index 0000000..e07a690 Binary files /dev/null and b/public/switch/system-design/featured.png differ diff --git a/public/switch/system-design/featured_hue43e8f3150b641a7d354bfeeeec5c59d_25334_3c756fbcde5e29c86021692a20d9998e.webp b/public/switch/system-design/featured_hue43e8f3150b641a7d354bfeeeec5c59d_25334_3c756fbcde5e29c86021692a20d9998e.webp new file mode 100644 index 0000000..099de17 Binary files /dev/null and b/public/switch/system-design/featured_hue43e8f3150b641a7d354bfeeeec5c59d_25334_3c756fbcde5e29c86021692a20d9998e.webp differ diff --git a/public/switch/system-design/featured_hue43e8f3150b641a7d354bfeeeec5c59d_25334_63f16844f4f9226d20a9914d77e9abe5.webp b/public/switch/system-design/featured_hue43e8f3150b641a7d354bfeeeec5c59d_25334_63f16844f4f9226d20a9914d77e9abe5.webp new file mode 100644 index 0000000..5daa8a0 Binary files /dev/null and b/public/switch/system-design/featured_hue43e8f3150b641a7d354bfeeeec5c59d_25334_63f16844f4f9226d20a9914d77e9abe5.webp differ diff --git a/public/switch/system-design/index.html b/public/switch/system-design/index.html new file mode 100644 index 0000000..6f3820e --- /dev/null +++ b/public/switch/system-design/index.html @@ -0,0 +1,5061 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 🔨 System Design —— PL & PS Co-operate | Creator's Landing Page | Hugo Theme + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    + + + + + + + + + + +
    +
    + + + +

    🔨 System Design —— PL & PS Co-operate

    + +
    May 1, 2024· + + + +
    + + + ZHENG YANG | 杨铮 + +
    ZHENG YANG | 杨铮
    +
    + + + + + · + + 8 min read + + +
    + + + + + + + + + + + + + + + + + +
    +
    + + TBD +
    +
    + + +
    +

    The CaaS/TSN Switch is developed based on the ZYNQ platform. The diagram below shows the composition of the ZYNQ chip. ZYNQ mainly consists of a Processing System (PS) and Programmable Logic (PL). The PS and PL mainly communicate with each other through the high-performance Advanced eXtensible Interface (AXI), which is more efficient than using FPGA directly as a peripheral. The PS contains an ARM-based processor suitable for running applications, drivers, and operating systems, while the PL contains FPGA suitable for running low-level hardware logic with high real-time performance requirements.

    +

    + + + + + + + + + + + + + + + +

    +
    +
    +
    +

    +

    For the Switch, the PL part mainly implements:

    +
      +
    1. the real-time clock module and timestamp cache module in time synchronization;
    2. +
    3. the basic forwarding function and traffic control function of the switch.
    4. +
    +

    The PS part mainly implements:

    +
      +
    1. the state machine logic related to time synchronization;
    2. +
    3. the configuration program of the switch.
    4. +
    +

    Time Synchronization

    +

    Please refer to the Wikipedia for basic knowledge about clock synchronization .

    +

    The TSN switch complies with IEEE 802.1AS standards. It synchronize neighbor clocks in a decentralized manner and achieves clock accuracy in the sub-microsecond range, making it suitable for measurement and control systems. For each pair of connected devices, their time synchronization state machine will measure link delay and update their local RTC (real-time clock) according to Master clock.

    +

    The overall design of the time synchronization module is shown in the diagram below. The PS mainly consists of time synchronization state machine modules, which mainly run the state machine logic defined in the 802.1AS standard. The PL mainly consists of real-time clock modules and timestamp cache modules, which are mainly responsible for running the real-time clock and recording the time when data frames enter and exit the switch port.

    +

    + + + + + + + + + + + + + + + +

    +
    +
    +
    +

    +

    After the data frame enters the PL from the input port of the switch, the timestamp cache module will record and cache the timestamp when the data frame enters the hardware. The switch’s exchange module will determine whether the data frame is related to time synchronization. Time synchronization data frames will be forwarded from the PL to the PS for processing through the Direct Memory Access (DMA) channel. In the PS, the time synchronization state machine module needs to obtain the real-time clock information of the underlying PL and the hardware timestamps corresponding to different data frames through the AXI4-Lite interface. When the switch needs to send time synchronization-related data frames, the PS is responsible for encapsulating the sent data frames and then forwarding them to the PL for processing through the DMA channel. Since time synchronization also needs to record the sending time of messages such as Sync and Pdelay_Req, the timestamp cache module will still cache the sending timestamp before the data frame is sent from the output port, so that the PS can use it later.

    +

    Switch Fabric & Gate Control

    +

    The overall design of the switch fabric and gate control module is shown in the diagram below. The PS part mainly includes a configuration module, which is used for software-level configuration of the switch’s Gate Control List (GCL) and MAC forwarding table; the PL part mainly consists of the switch fabric and the gate control module, which are responsible for port forwarding and real-time control of traffic.

    +

    + + + + + + + + + + + + + + + +

    +
    +
    +
    +

    +

    After the data frame enters the PL from the input port, both ordinary traffic and key traffic will enter the switch fabric. The switch fabric will look up the corresponding output port based on the destination MAC address in the data frame, and then put the data frame into the priority queue in the gate module. The gate control module will control the gate state of each priority queue according to the pre-configured GCL, and then forward the data frame from the corresponding port. In the above process, the gate control module needs to obtain the globally synchronized time from the time synchronization module. The configuration module in the PS part mainly modifies the registers related to GCL (tsn_drivers\gcl.c) and MAC forwarding table (tsn_drivers\switch_rules.c) through the UIO driver and AXI4-Lite interface, thereby controlling the parameters in the switch fabric and gate module in the PL part.

    +

    Source Code Description

    +

    Time Sync State Machine

    +

    The main function for time synchronization is located in time_sync_main_loop.c. It is implemented based on IEEE 802.1AS 2020 standard. The following table introduces the relationship between the state machine code in the code and the state machine in the standard.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Code Filename (.c/.h)Corresponding Section in 802.1AS-2020
    site_sync_sync_sm10.2.7 SiteSyncSync
    port_sync_sync_receive_sm10.2.8 PortSyncSyncReceive
    clock_master_sync_send_sm10.2.9 ClockMasterSyncSend
    clock_master_sync_receive_sm10.2.11 ClockMasterSyncReceive
    port_sync_sync_send_sm10.2.12 PortSyncSyncSend
    clock_slave_sync_sm10.2.13 ClockSlaveSync
    port_announce_information_sm10.3.12 PortAnnounceInformation
    port_state_selection_sm10.3.13 PortStateSelection
    port_announce_information_ext_sm10.3.14 PortAnnounceInformationExt
    port_announce_transmit_sm10.3.16 PortAnnounceTransmit
    md_sync_receive_sm11.2.14 MDSyncReceiveSM
    md_sync_send_sm11.2.15 MDSyncSendSM
    md_pdelay_req_sm11.2.19 MDPdelayReq
    md_pdelay_resp_sm11.2.20 MDPdelayResp
    +

    UIO addresses

    +

    The UIO driver is mainly used to map logical addresses to physical addresses, thereby controlling the registers of modules such as TSU, RTC, GCL, etc. The driver code is located in the tsn_drivers folder. The correspondence between the register addresses in the software part and the hardware are described in the header files.

    +

    For example, in the tsn_drivers\rtc.h file, the address of the RTC module is defined as follows:

    +
    // define RTC address values
    +#define RTC_CTRL       0x00000000
    +#define RTC_NULL_0x04  0x00000004
    +#define RTC_NULL_0x08  0x00000008
    +#define RTC_NULL_0x0C  0x0000000C
    +#define RTC_TIME_SEC_H 0x00000010
    +#define RTC_TIME_SEC_L 0x00000014
    +#define RTC_TIME_NSC_H 0x00000018
    +#define RTC_TIME_NSC_L 0x0000001C
    +#define RTC_PERIOD_H   0x00000020
    +#define RTC_PERIOD_L   0x00000024
    +#define RTC_ADJPER_H   0x00000028
    +#define RTC_ADJPER_L   0x0000002C
    +#define RTC_ADJNUM     0x00000030
    +#define RTC_OFFSET_S_H 0x00000034
    +#define RTC_OFFSET_S_L 0x00000038
    +#define RTC_OFFSET_NS  0x0000003C
    +

    MAC Forwarding

    +

    The MAC address forwarding table configured in the switch_rules.c/h file actually operates the registers in swtich datapath and gate control list. These registers are in pairs, the first register represents the network byte order of the last 32 bits of the destination MAC address, and the second register represents the forwarding port.

    +

    The CaaS switch has 7 ports, of which 4 are external physical ports, and 3 are virtual ports inside the switch connecting PL and PS. The 3 internal virtual ports specifically include:

    +
      +
    • Time Synchronization DMA: Used for transferring time synchronization data frames between PS and PL.
    • +
    • PS ETH: Used for communication between PL’s physical network port and PS’s operating system (for example, using an SSH client to remotely log in and access the switch’s PS).
    • +
    • PLC DMA: Used in CaaS to transfer input and output of control tasks.
    • +
    +

    The following interface is provided to control the switch fabric’s forwarding rule:

    +
    int push_switch_rule(char *mac_addr, int output_port) {
    +    /* 
    +        Push a switch rule to the rule table
    +        mac_addr: 6 byte destination mac address.
    +        output_port: 0 -> to Port 0
    +                    1 -> to Port 1
    +                    2 -> to Port 2
    +                    3 -> to Port 3
    +                    4 -> to PLC DMA
    +        The switch rule for PTP frames are fixed in hardware, no need to specify explicitly.
    +    */
    +   ...
    +}
    +

    Gate Control

    +

    TSN critical traffic data frames adopt the standard VLAN data frame format, and the priority is defined in the VLAN tag. VLAN refers to Virtual Local Area Network technology, defined in the 802.1Q standard. As shown in the figure below, the standard VLAN data frame contains a 4-byte VLAN tag, the TPID field represents the VLAN data frame type (0x8100), and the priority of critical traffic is defined in the PRI field, with a value range of [0, 7], corresponding to 8 priority queues. The output queue module identifies the priority of data frames based on the VLAN field in the critical data frame, and then places the data frame in the corresponding output port’s priority queue waiting for transmission.

    +

    Notice: According to the IEEE 802.1Qbv standard, priority = 1 maps to priority 0; priority = 0 maps to priority 1; other priorities map to the corresponding queues. Therefore, normal traffic will default to entering priority queue 1 of the corresponding port.

    +

    The CaaS Switch’s gate control module implements the Time Aware Shaper defined by 802.1Qbv, which is used to execute hardware gate scheduling according to the TSN schedule table configured by PS, to ensure the deterministic transmission of critical traffic. +Our GCL is represented by 9 bits, with the highest bit representing whether the Guardband is enabled, and the remaining 8 bits representing the gate switches. For example, 9'1_0000_0001 means that the Guardband is enabled, and only the gate switch of the first queue is open.

    +

    Notice that the time unit of GCL in hardware is 2^11 ns, while the time unit in the configuration file issued is 2^14 ns.

    +

    The following interfaces in gcl.c/h are provided to get/set the hardware GCL (set the gate state and time interval seperately):

    +
    /**
    + * @description: This function is used to get gcl values of the port [portNumber].
    + * @param {uint16_t} portNumber port's number.
    + * @return {*} 0 by default.
    + */
    +int get_gcl(uint16_t portNumber) {
    +  ...
    +}
    +
    /**
    + * @description: This function is used to set GCL's value, set port [portNumber] 's GCL[gcl_id] to [value].
    + * @param {uint16_t} portNumber port number, start from 0.
    + * @param {uint16_t} gcl_id GCL index.
    + * @param {uint16_t} value the GCL value to set.
    + * @return {*} 0 by default.
    + */
    +int set_gcl(uint16_t portNumber, uint16_t gcl_id, uint16_t value) {
    +    ...
    +}
    +
    /**
    + * @description: This function is used to get all GCL time intervals of port [portNumber]. Consider we get time interval is x, the real time interval is (x * 2^8 * 8) nanoseconds.
    + * @param {uint16_t} portNumber port number, start from 0.
    + * @return {*} 0 by default.
    + */
    +int get_gcl_time_interval(uint16_t portNumber)
    +{
    +    ...
    +}
    +
    /**
    + * @description: This function is used to set GCL's time interval, set port [portNumber] 's GCL time interval[gcl_id] to [value].
    + * @param {uint16_t} portNumber port number, start from 0.
    + * @param {uint16_t} gcl_id GCL index.
    + * @param {uint16_t} value the GCL time interval x to set. The real time interval is (x * 2^8 * 8) nanoseconds.
    + * @return {*} 0 by default.
    + */
    +int set_gcl_time_interval(uint16_t portNumber, uint16_t gcl_id, uint16_t value)
    +{
    +    ...
    +}
    +
    +
    + + + + +
    + +
    + + + + + +
    + + ZIGGO-SWITCH + + ZIGGO + + Markdown + +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + ZHENG YANG | 杨铮 + +
    +
    + Authors +
    + + + +
    + Associate Professor, IEEE Fellow +
    + + + + +
    His research interests include Internet of Things, Industrial Internet, sensing and positioning, edge computing, etc.
    + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + diff --git a/public/switch/system-design/switch_fabric.png b/public/switch/system-design/switch_fabric.png new file mode 100644 index 0000000..b2f4f13 Binary files /dev/null and b/public/switch/system-design/switch_fabric.png differ diff --git a/public/switch/system-design/time_sync_state_machine.png b/public/switch/system-design/time_sync_state_machine.png new file mode 100644 index 0000000..e07a690 Binary files /dev/null and b/public/switch/system-design/time_sync_state_machine.png differ diff --git a/public/switch/system-design/zynq.png b/public/switch/system-design/zynq.png new file mode 100644 index 0000000..a3943d4 Binary files /dev/null and b/public/switch/system-design/zynq.png differ diff --git a/public/switch/system_design/index.html b/public/switch/system_design/index.html index a590e9b..362bb33 100644 --- a/public/switch/system_design/index.html +++ b/public/switch/system_design/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4173,7 +4173,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4184,14 +4184,6 @@ href="/switch/contributing/" >🎉 How to contribute - - -
  • 💦 Software:Time Sync + Config for CaaS Switches
  • - diff --git a/public/tag/cnc/index.html b/public/tag/cnc/index.html index 18f0cd0..9acf9df 100644 --- a/public/tag/cnc/index.html +++ b/public/tag/cnc/index.html @@ -1,6 +1,6 @@ - diff --git a/public/tag/markdown/index.html b/public/tag/markdown/index.html index 5f34b44..1a1906f 100644 --- a/public/tag/markdown/index.html +++ b/public/tag/markdown/index.html @@ -1,6 +1,6 @@ - @@ -4113,13 +4113,13 @@

    Markdown

    -
    +
    - 🔨 System Design —— PL & PS Co-operate + 🔨 System Design —— PL & PS Co-operate
    @@ -4169,13 +4169,13 @@

    Markdown

    -
    +
    - 💦 Software:Time Sync + Config for CaaS Switches + 💦 Software:Time Sync + Config for CaaS Switches
    diff --git a/public/tag/markdown/index.xml b/public/tag/markdown/index.xml index d491a7d..f13372a 100644 --- a/public/tag/markdown/index.xml +++ b/public/tag/markdown/index.xml @@ -21,161 +21,6 @@ - - ⌚ TSNPerf 检测内容及使用表 - http://localhost:1313/tsnperf/manual/ - Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/tsnperf/manual/ - <h2 id="时间同步测试">时间同步测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备时间同步功能的方法。</p> -<p>TBD</p> -<h2 id="流量整形测试">流量整形测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备流量整形功能的方法。本章节中的测试参数均为参考配置,使用者可根据实际需求修改参数。</p> -<h3 id="基准测试">基准测试</h3> -<p><strong>目的:<strong>测试</strong>无</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> -<p><strong>方案:</strong> -使用如下拓扑,按照配置文档中的介绍发送关键数据包,记录关键数据包的端到端时延、抖动和丢包率。</p> -<p> - - - - - - - - - - - - - - - -<figure > - <div class="flex justify-center "> - <div class="w-100" ><img src="./qbv-basictest.png" alt="alt text" loading="lazy" data-zoomable /></div> - </div></figure> -</p> -<p>下面给出TSNPerf程序的参考参数配置:</p> -<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">tx-mode: <span class="m">2</span> -</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/captured_10w_1500Byte.pcap&#34;</span> -</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> -</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> -</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> -</span></span><span class="line"><span class="cl">ethertype: 0xb62c -</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> -</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> -</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L -</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> -</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> -</span></span><span class="line"><span class="cl">use-udp: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> -</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> -</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。</p> -<h3 id="门控能力">门控能力</h3> -<p><strong>目的:</strong> 测试<strong>有</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> -<p><strong>方案:</strong> 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,打满网络带宽,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。</p> -<p> - - - - - - - - - - - - - - - -<figure > - <div class="flex justify-center "> - <div class="w-100" ><img src="./qbv-withbackground.png" alt="alt text" loading="lazy" data-zoomable /></div> - </div></figure> -</p> -<p>TSNPerf程序的配置参数可参考上一小节。如果待测设备功能正常,则测试结果应与<strong>基准测试</strong>中得到的结果一致。</p> -<h3 id="门控精度">门控精度</h3> -<p><strong>目的:</strong> 测试交换机门控的精度,即能否通过预期数量和大小的以太网帧</p> -<p><strong>方案:</strong> 每个周期预留16384ns的门控给关键流量,理论上每个周期可以通过2个1500Byte的以太网帧。</p> -<p>下面给出TSNPerf程序的参考参数配置:</p> -<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">tx-mode: <span class="m">3</span> -</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/captured_10w_1500Byte.pcap&#34;</span> -</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> -</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> -</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> -</span></span><span class="line"><span class="cl">ethertype: 0xb62c -</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> -</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> -</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L -</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> -</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">100000</span> -</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> -</span></span><span class="line"><span class="cl">use-udp: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> -</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> -</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>Publisher向Recorder打满关键流量,Recorder处统计接收到的关键数据包的时间戳。预期每个周期(1毫秒)可以接收到两个关键数据包。</p> -<h3 id="带宽保障">带宽保障</h3> -<p><strong>目的:</strong> 测试待测交换机是否可以为关键流量预留固定的带宽</p> -<p><strong>方案:</strong></p> -<ol> -<li>配置待测交换机的门控,为关键数据预留25%、50%、75%的带宽。</li> -<li>从Injector处向Recorder打满背景流量。</li> -<li>用TSNPerf,从Publisher向Recorder发送关键流量,配置参数可参考上一小节。</li> -<li>Recorder处用tcpdump/wireshark记录带宽使用情况。以千兆带宽为例,预期关键数据会分别占用 250Mbps、500Mbps、750Mbps 的带宽。</li> -</ol> -<h3 id="视频流量测试">视频流量测试</h3> -<p><strong>目的:</strong> 测试以太网帧大小不同的视频流量经过一跳交换机的端延迟、抖动和丢包率</p> -<p><strong>方案:</strong> 测试拓扑参考<strong>基准测试</strong>章节。准备好一个视频流量的pcap文件<code>H264.pcap</code>,TSNPerf程序的参数配置如下:</p> -<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">tx-mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/H264.pcap&#34;</span> -</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> -</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> -</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> -</span></span><span class="line"><span class="cl">ethertype: 0xb62c -</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> -</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> -</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L -</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> -</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> -</span></span><span class="line"><span class="cl">use-udp: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> -</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> -</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>如果待测交换机是存储转发(store-and-forward)模式的,则预期每个数据包的端到端时延会因包的大小而有所不同。如果待测交换机是直通转发(cut-through)模式的,则预期数据包的端到端时延抖动是很小的。</p> -<h2 id="网络配置测试">网络配置测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备网络配置功能的方法。</p> -<p>TBD</p> - - - 💦 互联互通测试TestBed搭建流程 http://localhost:1313/device/testbed/ @@ -1091,9 +936,9 @@ Device1每次发送1个1500B的数据包,每个Switch都预留了1个时隙, 💦 Software:Time Sync + Config for CaaS Switches - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ <p>This repo contains source code to enable CaaS Switches&rsquo; time synchronization logic and set up TSN GCL (gate control list), switch forwarding rules (including to dual-DMA).</p> <h2 id="build">Build</h2> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir build @@ -1426,9 +1271,9 @@ Device1每次发送1个1500B的数据包,每个Switch都预留了1个时隙, 🔨 System Design —— PL & PS Co-operate - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ <p>The CaaS/TSN Switch is developed based on the ZYNQ platform. The diagram below shows the composition of the ZYNQ chip. ZYNQ mainly consists of a Processing System (PS) and Programmable Logic (PL). The PS and PL mainly communicate with each other through the high-performance Advanced eXtensible Interface (AXI), which is more efficient than using FPGA directly as a peripheral. The PS contains an ARM-based processor suitable for running applications, drivers, and operating systems, while the PL contains FPGA suitable for running low-level hardware logic with high real-time performance requirements.</p> <p> diff --git a/public/tag/markdown/page/2/index.html b/public/tag/markdown/page/2/index.html index fe0de89..08cf987 100644 --- a/public/tag/markdown/page/2/index.html +++ b/public/tag/markdown/page/2/index.html @@ -1,6 +1,6 @@ - diff --git a/public/tag/test-case/index.html b/public/tag/test-case/index.html index 090f00d..b07a564 100644 --- a/public/tag/test-case/index.html +++ b/public/tag/test-case/index.html @@ -1,6 +1,6 @@ - diff --git a/public/tag/test-case/index.xml b/public/tag/test-case/index.xml index 041d1d0..f1ba21e 100644 --- a/public/tag/test-case/index.xml +++ b/public/tag/test-case/index.xml @@ -17,13 +17,10 @@ http://localhost:1313/tsnperf/manual/ Wed, 01 May 2024 00:00:00 +0000 http://localhost:1313/tsnperf/manual/ - <h2 id="时间同步测试">时间同步测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备时间同步功能的方法。</p> -<p>TBD</p> -<h2 id="流量整形测试">流量整形测试</h2> + <h2 id="流量整形测试">流量整形测试</h2> <p>本节将介绍使用TSNPerf测试待测设备流量整形功能的方法。本章节中的测试参数均为参考配置,使用者可根据实际需求修改参数。</p> <h3 id="基准测试">基准测试</h3> -<p><strong>目的:<strong>测试</strong>无</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> +<p><strong>目的:</strong> 测试 <strong>无</strong> 背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> <p><strong>方案:</strong> 使用如下拓扑,按照配置文档中的介绍发送关键数据包,记录关键数据包的端到端时延、抖动和丢包率。</p> <p> @@ -71,10 +68,11 @@ </span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> </span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> </span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。</p> +</span></span></code></pre></div><p>该配置中,<code>packet-size</code>可以根据需要改变,推荐可以设置为 $64$ Byte(最小以太网帧长)、$100$ Byte、$500$ Byte、$1000$ Byte、$1500$ Byte等。</p> +<p>每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。</p> <h3 id="门控能力">门控能力</h3> <p><strong>目的:</strong> 测试<strong>有</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> -<p><strong>方案:</strong> 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,打满网络带宽,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。</p> +<p><strong>方案:</strong> 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。</p> <p> @@ -96,6 +94,7 @@ <div class="w-100" ><img src="./qbv-withbackground.png" alt="alt text" loading="lazy" data-zoomable /></div> </div></figure> </p> +<p>为了全面测试待测设备地门控能力,可以调整Injector向网络中注入的背景流量带宽,以千兆网络为例,可以分别检查背景流量为 $250$ Mbps、$500$ Mbps、$750$ Mbps、$1000$ Mbps的情况下,关键数据包的时延抖动。</p> <p>TSNPerf程序的配置参数可参考上一小节。如果待测设备功能正常,则测试结果应与<strong>基准测试</strong>中得到的结果一致。</p> <h3 id="门控精度">门控精度</h3> <p><strong>目的:</strong> 测试交换机门控的精度,即能否通过预期数量和大小的以太网帧</p> @@ -125,6 +124,35 @@ </span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> </span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> </span></span></code></pre></div><p>Publisher向Recorder打满关键流量,Recorder处统计接收到的关键数据包的时间戳。预期每个周期(1毫秒)可以接收到两个关键数据包。</p> +<p>另外,还可以在不同的拓扑下,更细粒度地验证待测设备的门控精度。在下图拓扑上,以千兆以太网、1500Byte测试包为例,我们配置 DUT1 在周期的 0~16us 打开关键流量门控,DUT2 在周期的 15~31us 打开关键流量门控吗。期望,关键数据包能够不丢包地通过网络设备,并且端到端时延与门控全开时的结果一致。</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="flex justify-center "> + <div class="w-100" ><img alt="·" srcset=" + /tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_e736de5977f6559dbbbf2d449183f558.webp 400w, + /tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_25915464366ac3bedf237dfc663dac1c.webp 760w, + /tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_1200x1200_fit_q95_h2_lanczos_3.webp 1200w" + src="http://localhost:1313/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_e736de5977f6559dbbbf2d449183f558.webp" + width="760" + height="165" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> <h3 id="带宽保障">带宽保障</h3> <p><strong>目的:</strong> 测试待测交换机是否可以为关键流量预留固定的带宽</p> <p><strong>方案:</strong></p> @@ -161,9 +189,13 @@ </span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> </span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> </span></span></code></pre></div><p>如果待测交换机是存储转发(store-and-forward)模式的,则预期每个数据包的端到端时延会因包的大小而有所不同。如果待测交换机是直通转发(cut-through)模式的,则预期数据包的端到端时延抖动是很小的。</p> -<h2 id="网络配置测试">网络配置测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备网络配置功能的方法。</p> -<p>TBD</p> +<h2 id="超参数汇总">超参数汇总</h2> +<p>除了上文中给的TSNPerf程序配置,还有一些参数在测试用例中经常需要根据需求改动,现将之罗列于下:</p> +<ul> +<li>packet-size:该参数设置了测试包的大小,用于验证待测设备转发不同数据包的能力。推荐的配置有:$64$ Byte(最小以太网帧长)、$100$ Byte、$500$ Byte、$1000$ Byte、$1500$ Byte等。</li> +<li>背景流量大小:该参数设置了网络中的背景流量大小,用于验证待测设备能否保障关键流量的低延迟、低抖动传输。可以根据实际网络带宽的大小,配置背景流量分别占用 0%、25%、50%、75%、100% 的网络带宽。</li> +<li>拓扑:拓扑决定了关键流量在网络中的传输路径。在不同拓扑上测试可以更加全面地验证待测设备的门控能力、门控精度。本文限于篇幅,仅使用了 一跳测试拓扑 和 两跳测试拓扑,使用者可以根据需要,改变测试拓扑。</li> +</ul> diff --git a/public/tag/tsnperf/index.html b/public/tag/tsnperf/index.html index a16ae41..d97be78 100644 --- a/public/tag/tsnperf/index.html +++ b/public/tag/tsnperf/index.html @@ -1,6 +1,6 @@ - @@ -4309,19 +4309,19 @@

    TSNPerf

    - +
    - ⌚ TSNPerf 检测内容及使用表 + 🎉 How to contribute
    -
    ⌚ TSNPerf 检测内容及使用表
    +
    🎉 How to contribute

    - 时间同步测试,流量整形测试,网络配置测试

    + How to report a bug or contribute to ZIGGO's code

    May 1, 2024

    @@ -4337,19 +4337,19 @@

    TSNPerf

    -
    +
    - 🎉 How to contribute + ☀ 某品牌交换机报告
    -
    🎉 How to contribute
    +
    ☀ 某品牌交换机报告

    - How to report a bug or contribute to ZIGGO's code

    + TSNPerf 使用网卡硬件时间戳功能达到纳秒级抖动

    May 1, 2024

    @@ -4361,15 +4361,6 @@

    TSNPerf

    -
    -
    diff --git a/public/tag/tsnperf/index.xml b/public/tag/tsnperf/index.xml index 9244176..acc8a1c 100644 --- a/public/tag/tsnperf/index.xml +++ b/public/tag/tsnperf/index.xml @@ -51,161 +51,6 @@ - - ⌚ TSNPerf 检测内容及使用表 - http://localhost:1313/tsnperf/manual/ - Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/tsnperf/manual/ - <h2 id="时间同步测试">时间同步测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备时间同步功能的方法。</p> -<p>TBD</p> -<h2 id="流量整形测试">流量整形测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备流量整形功能的方法。本章节中的测试参数均为参考配置,使用者可根据实际需求修改参数。</p> -<h3 id="基准测试">基准测试</h3> -<p><strong>目的:<strong>测试</strong>无</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> -<p><strong>方案:</strong> -使用如下拓扑,按照配置文档中的介绍发送关键数据包,记录关键数据包的端到端时延、抖动和丢包率。</p> -<p> - - - - - - - - - - - - - - - -<figure > - <div class="flex justify-center "> - <div class="w-100" ><img src="./qbv-basictest.png" alt="alt text" loading="lazy" data-zoomable /></div> - </div></figure> -</p> -<p>下面给出TSNPerf程序的参考参数配置:</p> -<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">tx-mode: <span class="m">2</span> -</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/captured_10w_1500Byte.pcap&#34;</span> -</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> -</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> -</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> -</span></span><span class="line"><span class="cl">ethertype: 0xb62c -</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> -</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> -</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L -</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> -</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> -</span></span><span class="line"><span class="cl">use-udp: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> -</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> -</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。</p> -<h3 id="门控能力">门控能力</h3> -<p><strong>目的:</strong> 测试<strong>有</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> -<p><strong>方案:</strong> 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,打满网络带宽,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。</p> -<p> - - - - - - - - - - - - - - - -<figure > - <div class="flex justify-center "> - <div class="w-100" ><img src="./qbv-withbackground.png" alt="alt text" loading="lazy" data-zoomable /></div> - </div></figure> -</p> -<p>TSNPerf程序的配置参数可参考上一小节。如果待测设备功能正常,则测试结果应与<strong>基准测试</strong>中得到的结果一致。</p> -<h3 id="门控精度">门控精度</h3> -<p><strong>目的:</strong> 测试交换机门控的精度,即能否通过预期数量和大小的以太网帧</p> -<p><strong>方案:</strong> 每个周期预留16384ns的门控给关键流量,理论上每个周期可以通过2个1500Byte的以太网帧。</p> -<p>下面给出TSNPerf程序的参考参数配置:</p> -<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">tx-mode: <span class="m">3</span> -</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/captured_10w_1500Byte.pcap&#34;</span> -</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> -</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> -</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> -</span></span><span class="line"><span class="cl">ethertype: 0xb62c -</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> -</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> -</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L -</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> -</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">100000</span> -</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> -</span></span><span class="line"><span class="cl">use-udp: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> -</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> -</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>Publisher向Recorder打满关键流量,Recorder处统计接收到的关键数据包的时间戳。预期每个周期(1毫秒)可以接收到两个关键数据包。</p> -<h3 id="带宽保障">带宽保障</h3> -<p><strong>目的:</strong> 测试待测交换机是否可以为关键流量预留固定的带宽</p> -<p><strong>方案:</strong></p> -<ol> -<li>配置待测交换机的门控,为关键数据预留25%、50%、75%的带宽。</li> -<li>从Injector处向Recorder打满背景流量。</li> -<li>用TSNPerf,从Publisher向Recorder发送关键流量,配置参数可参考上一小节。</li> -<li>Recorder处用tcpdump/wireshark记录带宽使用情况。以千兆带宽为例,预期关键数据会分别占用 250Mbps、500Mbps、750Mbps 的带宽。</li> -</ol> -<h3 id="视频流量测试">视频流量测试</h3> -<p><strong>目的:</strong> 测试以太网帧大小不同的视频流量经过一跳交换机的端延迟、抖动和丢包率</p> -<p><strong>方案:</strong> 测试拓扑参考<strong>基准测试</strong>章节。准备好一个视频流量的pcap文件<code>H264.pcap</code>,TSNPerf程序的参数配置如下:</p> -<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">tx-mode: <span class="m">0</span> -</span></span><span class="line"><span class="cl">verbose: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">use-ziggo-analysis: <span class="nb">false</span> -</span></span><span class="line"><span class="cl">pcap-filename: <span class="s2">&#34;/home/i210/launchtimedemo/H264.pcap&#34;</span> -</span></span><span class="line"><span class="cl">interface: <span class="s2">&#34;enp1s0&#34;</span> -</span></span><span class="line"><span class="cl">smac: <span class="s2">&#34;00:1b:21:77:ac:ae&#34;</span> -</span></span><span class="line"><span class="cl">dmac: <span class="s2">&#34;00:1b:21:76:ae:75&#34;</span> -</span></span><span class="line"><span class="cl">ethertype: 0xb62c -</span></span><span class="line"><span class="cl">socket-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">vlan-priority: <span class="m">0</span> -</span></span><span class="line"><span class="cl">offset: <span class="m">150000</span> -</span></span><span class="line"><span class="cl">early-offset: <span class="m">300000</span> -</span></span><span class="line"><span class="cl">use-launchtime: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">basetime: 1684559640000000100L -</span></span><span class="line"><span class="cl">packet-size: <span class="m">1500</span> -</span></span><span class="line"><span class="cl">packets-to-send: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">interval: <span class="m">1000000</span> -</span></span><span class="line"><span class="cl">use-udp: <span class="nb">true</span> -</span></span><span class="line"><span class="cl">sip: <span class="s2">&#34;192.168.16.10&#34;</span> -</span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> -</span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> -</span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>如果待测交换机是存储转发(store-and-forward)模式的,则预期每个数据包的端到端时延会因包的大小而有所不同。如果待测交换机是直通转发(cut-through)模式的,则预期数据包的端到端时延抖动是很小的。</p> -<h2 id="网络配置测试">网络配置测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备网络配置功能的方法。</p> -<p>TBD</p> - - - 👍Hardware:Build the CaaS Device http://localhost:1313/device/hardware-build/ diff --git a/public/tag/tsnperf/page/2/index.html b/public/tag/tsnperf/page/2/index.html index 4f3083a..fffb8a1 100644 --- a/public/tag/tsnperf/page/2/index.html +++ b/public/tag/tsnperf/page/2/index.html @@ -1,6 +1,6 @@ - diff --git a/public/tag/ziggo-device/index.html b/public/tag/ziggo-device/index.html index f9101e0..567a47e 100644 --- a/public/tag/ziggo-device/index.html +++ b/public/tag/ziggo-device/index.html @@ -1,6 +1,6 @@ - diff --git a/public/tag/ziggo-device/page/2/index.html b/public/tag/ziggo-device/page/2/index.html index 37601bb..e38ae9a 100644 --- a/public/tag/ziggo-device/page/2/index.html +++ b/public/tag/ziggo-device/page/2/index.html @@ -1,6 +1,6 @@ - diff --git a/public/tag/ziggo-switch/index.html b/public/tag/ziggo-switch/index.html index 36bb838..7d87473 100644 --- a/public/tag/ziggo-switch/index.html +++ b/public/tag/ziggo-switch/index.html @@ -1,6 +1,6 @@ - @@ -4085,13 +4085,13 @@

    ZIGGO-SWITCH

    - +
    - 🔨 System Design —— PL & PS Co-operate + 🔨 System Design —— PL & PS Co-operate
    @@ -4141,13 +4141,13 @@

    ZIGGO-SWITCH

    -
    +
    - 💦 Software:Time Sync + Config for CaaS Switches + 💦 Software:Time Sync + Config for CaaS Switches
    diff --git a/public/tag/ziggo-switch/index.xml b/public/tag/ziggo-switch/index.xml index f3e0f96..db67da9 100644 --- a/public/tag/ziggo-switch/index.xml +++ b/public/tag/ziggo-switch/index.xml @@ -312,9 +312,9 @@ Device1每次发送1个1500B的数据包,每个Switch都预留了1个时隙, 💦 Software:Time Sync + Config for CaaS Switches - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ <p>This repo contains source code to enable CaaS Switches&rsquo; time synchronization logic and set up TSN GCL (gate control list), switch forwarding rules (including to dual-DMA).</p> <h2 id="build">Build</h2> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir build @@ -647,9 +647,9 @@ Device1每次发送1个1500B的数据包,每个Switch都预留了1个时隙, 🔨 System Design —— PL & PS Co-operate - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ <p>The CaaS/TSN Switch is developed based on the ZYNQ platform. The diagram below shows the composition of the ZYNQ chip. ZYNQ mainly consists of a Processing System (PS) and Programmable Logic (PL). The PS and PL mainly communicate with each other through the high-performance Advanced eXtensible Interface (AXI), which is more efficient than using FPGA directly as a peripheral. The PS contains an ARM-based processor suitable for running applications, drivers, and operating systems, while the PL contains FPGA suitable for running low-level hardware logic with high real-time performance requirements.</p> <p> diff --git a/public/tag/ziggo/index.html b/public/tag/ziggo/index.html index 8b82224..6ca7821 100644 --- a/public/tag/ziggo/index.html +++ b/public/tag/ziggo/index.html @@ -1,6 +1,6 @@ - @@ -4113,13 +4113,13 @@

    ZIGGO

    -
    +
    - 🔨 System Design —— PL & PS Co-operate + 🔨 System Design —— PL & PS Co-operate
    @@ -4169,13 +4169,13 @@

    ZIGGO

    -
    +
    - 💦 Software:Time Sync + Config for CaaS Switches + 💦 Software:Time Sync + Config for CaaS Switches
    diff --git a/public/tag/ziggo/index.xml b/public/tag/ziggo/index.xml index 5b535ad..fe73fa3 100644 --- a/public/tag/ziggo/index.xml +++ b/public/tag/ziggo/index.xml @@ -936,9 +936,9 @@ Device1每次发送1个1500B的数据包,每个Switch都预留了1个时隙, 💦 Software:Time Sync + Config for CaaS Switches - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/switch/software_build/ + http://localhost:1313/switch/software-build/ <p>This repo contains source code to enable CaaS Switches&rsquo; time synchronization logic and set up TSN GCL (gate control list), switch forwarding rules (including to dual-DMA).</p> <h2 id="build">Build</h2> <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mkdir build @@ -1271,9 +1271,9 @@ Device1每次发送1个1500B的数据包,每个Switch都预留了1个时隙, 🔨 System Design —— PL & PS Co-operate - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ Wed, 01 May 2024 00:00:00 +0000 - http://localhost:1313/switch/system_design/ + http://localhost:1313/switch/system-design/ <p>The CaaS/TSN Switch is developed based on the ZYNQ platform. The diagram below shows the composition of the ZYNQ chip. ZYNQ mainly consists of a Processing System (PS) and Programmable Logic (PL). The PS and PL mainly communicate with each other through the high-performance Advanced eXtensible Interface (AXI), which is more efficient than using FPGA directly as a peripheral. The PS contains an ARM-based processor suitable for running applications, drivers, and operating systems, while the PL contains FPGA suitable for running low-level hardware logic with high real-time performance requirements.</p> <p> diff --git a/public/tags/index.html b/public/tags/index.html index b0522af..202b135 100644 --- a/public/tags/index.html +++ b/public/tags/index.html @@ -1,6 +1,6 @@ - @@ -4087,21 +4087,14 @@

    Tags

    Markdown - 11 - - - - - Test case - - 1 + 10 TSNPerf - 11 + 10 diff --git a/public/terms/index.html b/public/terms/index.html index 09d6ed7..50b9ae5 100644 --- a/public/terms/index.html +++ b/public/terms/index.html @@ -1,6 +1,6 @@ - @@ -4082,7 +4082,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4174,7 +4174,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4190,7 +4190,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4206,7 +4206,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4250,25 +4250,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • diff --git a/public/tsnperf/configuration/index.html b/public/tsnperf/configuration/index.html index 6df9508..d8974ee 100644 --- a/public/tsnperf/configuration/index.html +++ b/public/tsnperf/configuration/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4173,7 +4173,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4189,7 +4189,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4205,7 +4205,7 @@
  • 🔨 System Design —— PL & PS Co-operate diff --git a/public/tsnperf/index.html b/public/tsnperf/index.html index a40ccae..bee8c9b 100644 --- a/public/tsnperf/index.html +++ b/public/tsnperf/index.html @@ -1,6 +1,6 @@ - diff --git a/public/tsnperf/index.xml b/public/tsnperf/index.xml index 0963fcf..1f87fb0 100644 --- a/public/tsnperf/index.xml +++ b/public/tsnperf/index.xml @@ -26,13 +26,10 @@ http://localhost:1313/tsnperf/manual/ Wed, 01 May 2024 00:00:00 +0000 http://localhost:1313/tsnperf/manual/ - <h2 id="时间同步测试">时间同步测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备时间同步功能的方法。</p> -<p>TBD</p> -<h2 id="流量整形测试">流量整形测试</h2> + <h2 id="流量整形测试">流量整形测试</h2> <p>本节将介绍使用TSNPerf测试待测设备流量整形功能的方法。本章节中的测试参数均为参考配置,使用者可根据实际需求修改参数。</p> <h3 id="基准测试">基准测试</h3> -<p><strong>目的:<strong>测试</strong>无</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> +<p><strong>目的:</strong> 测试 <strong>无</strong> 背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> <p><strong>方案:</strong> 使用如下拓扑,按照配置文档中的介绍发送关键数据包,记录关键数据包的端到端时延、抖动和丢包率。</p> <p> @@ -80,10 +77,11 @@ </span></span><span class="line"><span class="cl">dip: <span class="s2">&#34;192.168.16.11&#34;</span> </span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> </span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> -</span></span></code></pre></div><p>每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。</p> +</span></span></code></pre></div><p>该配置中,<code>packet-size</code>可以根据需要改变,推荐可以设置为 64 Byte(最小以太网帧长)、100 Byte、500 Byte、1000 Byte、1500 Byte等。</p> +<p>每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。</p> <h3 id="门控能力">门控能力</h3> <p><strong>目的:</strong> 测试<strong>有</strong>背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。</p> -<p><strong>方案:</strong> 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,打满网络带宽,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。</p> +<p><strong>方案:</strong> 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。</p> <p> @@ -105,6 +103,7 @@ <div class="w-100" ><img src="./qbv-withbackground.png" alt="alt text" loading="lazy" data-zoomable /></div> </div></figure> </p> +<p>为了全面测试待测设备地门控能力,可以调整Injector向网络中注入的背景流量带宽,以千兆网络为例,可以分别检查背景流量为 250 Mbps、500 Mbps、750 Mbps、1000 Mbps的情况下,关键数据包的时延抖动。</p> <p>TSNPerf程序的配置参数可参考上一小节。如果待测设备功能正常,则测试结果应与<strong>基准测试</strong>中得到的结果一致。</p> <h3 id="门控精度">门控精度</h3> <p><strong>目的:</strong> 测试交换机门控的精度,即能否通过预期数量和大小的以太网帧</p> @@ -134,6 +133,35 @@ </span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> </span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> </span></span></code></pre></div><p>Publisher向Recorder打满关键流量,Recorder处统计接收到的关键数据包的时间戳。预期每个周期(1毫秒)可以接收到两个关键数据包。</p> +<p>另外,还可以在不同的拓扑下,更细粒度地验证待测设备的门控精度。在下图拓扑上,以千兆以太网、1500Byte测试包为例,我们配置 DUT1 在周期的 0~16us 打开关键流量门控,DUT2 在周期的 15~31us 打开关键流量门控吗。期望,关键数据包能够不丢包地通过网络设备,并且端到端时延与门控全开时的结果一致。</p> +<p> + + + + + + + + + + + + + + + +<figure > + <div class="flex justify-center "> + <div class="w-100" ><img alt="·" srcset=" + /tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_e736de5977f6559dbbbf2d449183f558.webp 400w, + /tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_25915464366ac3bedf237dfc663dac1c.webp 760w, + /tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_1200x1200_fit_q95_h2_lanczos_3.webp 1200w" + src="http://localhost:1313/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_e736de5977f6559dbbbf2d449183f558.webp" + width="760" + height="165" + loading="lazy" data-zoomable /></div> + </div></figure> +</p> <h3 id="带宽保障">带宽保障</h3> <p><strong>目的:</strong> 测试待测交换机是否可以为关键流量预留固定的带宽</p> <p><strong>方案:</strong></p> @@ -170,9 +198,13 @@ </span></span><span class="line"><span class="cl">sport: <span class="m">10000</span> </span></span><span class="line"><span class="cl">dport: <span class="m">10000</span> </span></span></code></pre></div><p>如果待测交换机是存储转发(store-and-forward)模式的,则预期每个数据包的端到端时延会因包的大小而有所不同。如果待测交换机是直通转发(cut-through)模式的,则预期数据包的端到端时延抖动是很小的。</p> -<h2 id="网络配置测试">网络配置测试</h2> -<p>本节将介绍使用TSNPerf测试待测设备网络配置功能的方法。</p> -<p>TBD</p> +<h2 id="超参数汇总">超参数汇总</h2> +<p>除了上文中给的TSNPerf程序配置,还有一些参数在测试用例中经常需要根据需求改动,现将之罗列于下:</p> +<ul> +<li>packet-size:该参数设置了测试包的大小,用于验证待测设备转发不同数据包的能力。推荐的配置有:64 Byte(最小以太网帧长)、100 Byte、500 Byte、1000 Byte、1500 Byte等。</li> +<li>背景流量大小:该参数设置了网络中的背景流量大小,用于验证待测设备能否保障关键流量的低延迟、低抖动传输。可以根据实际网络带宽的大小,配置背景流量分别占用 0%、25%、50%、75%、100% 的网络带宽。</li> +<li>拓扑:拓扑决定了关键流量在网络中的传输路径。在不同拓扑上测试可以更加全面地验证待测设备的门控能力、门控精度。本文限于篇幅,仅使用了 一跳测试拓扑 和 两跳测试拓扑,使用者可以根据需要,改变测试拓扑。</li> +</ul> diff --git a/public/tsnperf/manual/index.html b/public/tsnperf/manual/index.html index 3287017..78fed63 100644 --- a/public/tsnperf/manual/index.html +++ b/public/tsnperf/manual/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4173,7 +4173,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4189,7 +4189,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4205,7 +4205,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4255,12 +4255,6 @@ @@ -4328,9 +4322,6 @@

    On this page

    @@ -4392,7 +4383,7 @@

    · - 1 min read + 2 min read

    @@ -4422,13 +4413,10 @@

    -

    时间同步测试

    -

    本节将介绍使用TSNPerf测试待测设备时间同步功能的方法。

    -

    TBD

    -

    流量整形测试

    +

    流量整形测试

    本节将介绍使用TSNPerf测试待测设备流量整形功能的方法。本章节中的测试参数均为参考配置,使用者可根据实际需求修改参数。

    基准测试

    -

    目的:测试背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。

    +

    目的: 测试 背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。

    方案: 使用如下拓扑,按照配置文档中的介绍发送关键数据包,记录关键数据包的端到端时延、抖动和丢包率。

    @@ -4476,10 +4464,11 @@

    基准测试

    dip: "192.168.16.11" sport: 10000 dport: 10000 -
  • 每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。

    +

    该配置中,packet-size可以根据需要改变,推荐可以设置为 64 Byte(最小以太网帧长)、100 Byte、500 Byte、1000 Byte、1500 Byte等。

    +

    每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。

    门控能力

    目的: 测试背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。

    -

    方案: 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,打满网络带宽,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。

    +

    方案: 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。

    @@ -4501,6 +4490,7 @@

    门控能力

    alt text

    +

    为了全面测试待测设备地门控能力,可以调整Injector向网络中注入的背景流量带宽,以千兆网络为例,可以分别检查背景流量为 250 Mbps、500 Mbps、750 Mbps、1000 Mbps的情况下,关键数据包的时延抖动。

    TSNPerf程序的配置参数可参考上一小节。如果待测设备功能正常,则测试结果应与基准测试中得到的结果一致。

    门控精度

    目的: 测试交换机门控的精度,即能否通过预期数量和大小的以太网帧

    @@ -4530,6 +4520,35 @@

    门控精度

    sport: 10000 dport: 10000

    Publisher向Recorder打满关键流量,Recorder处统计接收到的关键数据包的时间戳。预期每个周期(1毫秒)可以接收到两个关键数据包。

    +

    另外,还可以在不同的拓扑下,更细粒度地验证待测设备的门控精度。在下图拓扑上,以千兆以太网、1500Byte测试包为例,我们配置 DUT1 在周期的 0~16us 打开关键流量门控,DUT2 在周期的 15~31us 打开关键流量门控吗。期望,关键数据包能够不丢包地通过网络设备,并且端到端时延与门控全开时的结果一致。

    +

    + + + + + + + + + + + + + + + +

    +
    +
    ·
    +
    +

    带宽保障

    目的: 测试待测交换机是否可以为关键流量预留固定的带宽

    方案:

    @@ -4566,9 +4585,13 @@

    视频流量测试

    sport: 10000 dport: 10000

    如果待测交换机是存储转发(store-and-forward)模式的,则预期每个数据包的端到端时延会因包的大小而有所不同。如果待测交换机是直通转发(cut-through)模式的,则预期数据包的端到端时延抖动是很小的。

    -

    网络配置测试

    -

    本节将介绍使用TSNPerf测试待测设备网络配置功能的方法。

    -

    TBD

    +

    超参数汇总

    +

    除了上文中给的TSNPerf程序配置,还有一些参数在测试用例中经常需要根据需求改动,现将之罗列于下:

    +
      +
    • packet-size:该参数设置了测试包的大小,用于验证待测设备转发不同数据包的能力。推荐的配置有:64 Byte(最小以太网帧长)、100 Byte、500 Byte、1000 Byte、1500 Byte等。
    • +
    • 背景流量大小:该参数设置了网络中的背景流量大小,用于验证待测设备能否保障关键流量的低延迟、低抖动传输。可以根据实际网络带宽的大小,配置背景流量分别占用 0%、25%、50%、75%、100% 的网络带宽。
    • +
    • 拓扑:拓扑决定了关键流量在网络中的传输路径。在不同拓扑上测试可以更加全面地验证待测设备的门控能力、门控精度。本文限于篇幅,仅使用了 一跳测试拓扑 和 两跳测试拓扑,使用者可以根据需要,改变测试拓扑。
    • +
    diff --git a/public/tsnperf/manual/qbv-2hop.png b/public/tsnperf/manual/qbv-2hop.png new file mode 100644 index 0000000..c0c9a67 Binary files /dev/null and b/public/tsnperf/manual/qbv-2hop.png differ diff --git a/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_1200x1200_fit_q95_h2_lanczos_3.webp b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_1200x1200_fit_q95_h2_lanczos_3.webp new file mode 100644 index 0000000..1a9a781 Binary files /dev/null and b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_1200x1200_fit_q95_h2_lanczos_3.webp differ diff --git a/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_25915464366ac3bedf237dfc663dac1c.webp b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_25915464366ac3bedf237dfc663dac1c.webp new file mode 100644 index 0000000..da3bd24 Binary files /dev/null and b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_25915464366ac3bedf237dfc663dac1c.webp differ diff --git a/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_5915821f9020be2cb3299e6b15f1c26f.webp b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_5915821f9020be2cb3299e6b15f1c26f.webp new file mode 100644 index 0000000..d5601cd Binary files /dev/null and b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_5915821f9020be2cb3299e6b15f1c26f.webp differ diff --git a/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_601005af135bc3df5453435c5823e90a.webp b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_601005af135bc3df5453435c5823e90a.webp new file mode 100644 index 0000000..d5601cd Binary files /dev/null and b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_601005af135bc3df5453435c5823e90a.webp differ diff --git a/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_e736de5977f6559dbbbf2d449183f558.webp b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_e736de5977f6559dbbbf2d449183f558.webp new file mode 100644 index 0000000..d5601cd Binary files /dev/null and b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_e736de5977f6559dbbbf2d449183f558.webp differ diff --git a/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_fd592e120a90b8b5c4e834886d8fd6cc.webp b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_fd592e120a90b8b5c4e834886d8fd6cc.webp new file mode 100644 index 0000000..da3bd24 Binary files /dev/null and b/public/tsnperf/manual/qbv-2hop_hu02a5609289a06381d04cccd70f101d5b_113816_fd592e120a90b8b5c4e834886d8fd6cc.webp differ diff --git "a/public/tsnperf/manual/\346\234\252\347\241\256\350\256\244 457581.crdownload" "b/public/tsnperf/manual/\346\234\252\347\241\256\350\256\244 457581.crdownload" new file mode 100644 index 0000000..e510e5e --- /dev/null +++ "b/public/tsnperf/manual/\346\234\252\347\241\256\350\256\244 457581.crdownload" @@ -0,0 +1,160 @@ +--- +title: ⌚ TSNPerf 检测内容及使用表 +summary: 时间同步测试,流量整形测试,网络配置测试 +date: 2024-05-01 + +# Featured image +# Place an image named `featured.jpg/png` in this page's folder and customize its options here. +image: + caption: 'TBD' + +authors: + - admin + +tags: + - TSNPerf + - Test case + - Markdown +weight: 10 +--- + +## 时间同步测试 + +本节将介绍使用TSNPerf测试待测设备时间同步功能的方法。 + +TBD + +## 流量整形测试 + +本节将介绍使用TSNPerf测试待测设备流量整形功能的方法。本章节中的测试参数均为参考配置,使用者可根据实际需求修改参数。 + +### 基准测试 + +**目的:**测试**无**背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。 + +**方案:** +使用如下拓扑,按照配置文档中的介绍发送关键数据包,记录关键数据包的端到端时延、抖动和丢包率。 + +![alt text](./qbv-basictest.png) + +下面给出TSNPerf程序的参考参数配置: +```bash +mode: 0 +tx-mode: 2 +verbose: true +use-ziggo-analysis: false +pcap-filename: "/home/i210/launchtimedemo/captured_10w_1500Byte.pcap" +interface: "enp1s0" +smac: "00:1b:21:77:ac:ae" +dmac: "00:1b:21:76:ae:75" +ethertype: 0xb62c +socket-priority: 0 +vlan-priority: 0 +offset: 150000 +early-offset: 300000 +use-launchtime: true +basetime: 1684559640000000100L +packet-size: 1500 +packets-to-send: 10000 +interval: 1000000 +use-udp: false +sip: "192.168.16.10" +dip: "192.168.16.11" +sport: 10000 +dport: 10000 +``` + +每一个关键数据包中,从第26个字节开始的8个字节是数据包的发送时间戳,用tcpdump抓取对应的接收时间戳,进而求得每个数据包的端到端时延。统计发送出的10000个数据包,可以得到平均时延和抖动(方差/标准差),以及丢包率。 + +### 门控能力 + +**目的:** 测试**有**背景流量情况下,高优先级流量经过一跳交换机(待测设备)的端到端延迟、抖动和丢包率。 + +**方案:** 使用如下拓扑进行测试。从Injector向Recorder发送背景流量,打满网络带宽,同时从Publisher向Recorder发送关键流量,记录关键数据包的端到端时延、抖动和丢包率。 + +![alt text](./qbv-withbackground.png) + +TSNPerf程序的配置参数可参考上一小节。如果待测设备功能正常,则测试结果应与**基准测试**中得到的结果一致。 + +### 门控精度 + +**目的:** 测试交换机门控的精度,即能否通过预期数量和大小的以太网帧 + +**方案:** 每个周期预留16384ns的门控给关键流量,理论上每个周期可以通过2个1500Byte的以太网帧。 + +下面给出TSNPerf程序的参考参数配置: +```bash +mode: 0 +tx-mode: 3 +verbose: true +use-ziggo-analysis: false +pcap-filename: "/home/i210/launchtimedemo/captured_10w_1500Byte.pcap" +interface: "enp1s0" +smac: "00:1b:21:77:ac:ae" +dmac: "00:1b:21:76:ae:75" +ethertype: 0xb62c +socket-priority: 0 +vlan-priority: 0 +offset: 150000 +early-offset: 300000 +use-launchtime: false +basetime: 1684559640000000100L +packet-size: 1500 +packets-to-send: 100000 +interval: 1000000 +use-udp: false +sip: "192.168.16.10" +dip: "192.168.16.11" +sport: 10000 +dport: 10000 +``` + +Publisher向Recorder打满关键流量,Recorder处统计接收到的关键数据包的时间戳。预期每个周期(1毫秒)可以接收到两个关键数据包。 + +### 带宽保障 + +**目的:** 测试待测交换机是否可以为关键流量预留固定的带宽 + +**方案:** +1. 配置待测交换机的门控,为关键数据预留25%、50%、75%的带宽。 +2. 从Injector处向Recorder打满背景流量。 +3. 用TSNPerf,从Publisher向Recorder发送关键流量,配置参数可参考上一小节。 +4. Recorder处用tcpdump/wireshark记录带宽使用情况。以千兆带宽为例,预期关键数据会分别占用 250Mbps、500Mbps、750Mbps 的带宽。 + +### 视频流量测试 + +**目的:** 测试以太网帧大小不同的视频流量经过一跳交换机的端延迟、抖动和丢包率 + +**方案:** 测试拓扑参考**基准测试**章节。准备好一个视频流量的pcap文件`H264.pcap`,TSNPerf程序的参数配置如下: +```bash +mode: 0 +tx-mode: 0 +verbose: true +use-ziggo-analysis: false +pcap-filename: "/home/i210/launchtimedemo/H264.pcap" +interface: "enp1s0" +smac: "00:1b:21:77:ac:ae" +dmac: "00:1b:21:76:ae:75" +ethertype: 0xb62c +socket-priority: 0 +vlan-priority: 0 +offset: 150000 +early-offset: 300000 +use-launchtime: true +basetime: 1684559640000000100L +packet-size: 1500 +packets-to-send: 10000 +interval: 1000000 +use-udp: true +sip: "192.168.16.10" +dip: "192.168.16.11" +sport: 10000 +dport: 10000 +``` +如果待测交换机是存储转发(store-and-forward)模式的,则预期每个数据包的端到端时延会因包的大小而有所不同。如果待测交换机是直通转发(cut-through)模式的,则预期数据包的端到端时延抖动是很小的。 + +## 网络配置测试 + +本节将介绍使用TSNPerf测试待测设备网络配置功能的方法。 + +TBD \ No newline at end of file diff --git a/public/tsnperf/principle/index.html b/public/tsnperf/principle/index.html index e927f98..66f8f2f 100644 --- a/public/tsnperf/principle/index.html +++ b/public/tsnperf/principle/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4173,7 +4173,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4189,7 +4189,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4205,7 +4205,7 @@
  • 🔨 System Design —— PL & PS Co-operate diff --git a/public/tsnperf/report/index.html b/public/tsnperf/report/index.html index 08532f3..d8f873e 100644 --- a/public/tsnperf/report/index.html +++ b/public/tsnperf/report/index.html @@ -1,6 +1,6 @@ - @@ -4081,7 +4081,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/device/" - >ZIGGO Device + > @@ -4173,7 +4173,7 @@ text-gray-500 hover:bg-gray-100 hover:text-gray-900 dark:text-gray-300 dark:hover:bg-primary-800 dark:hover:text-gray-50" href="/switch/" - >ZIGGO Switch + > @@ -4189,7 +4189,7 @@
  • 💦 Software:Time Sync + Config for CaaS Switches @@ -4205,7 +4205,7 @@
  • 🔨 System Design —— PL & PS Co-operate @@ -4250,25 +4250,25 @@
  • ⌚ TSNPerf 检测内容及使用表 + >📈 TSNPerf 使用指南
  • 📈 TSNPerf 使用指南 + >📈 TSNPerf 设计原理
  • 📈 TSNPerf 设计原理 + >index
  • @@ -4638,11 +4638,11 @@

    - + ⌚ TSNPerf 检测内容及使用表📈 TSNPerf 使用指南