测试内容

设备: 思博伦TSN交换机

测试: 时钟偏差、延迟、抖动、丢包率

Qbv测试

时钟同步相关一致性测试

配置IEEE 802.1AS 后从 Talker ---> Bridge ---> Listener进行时钟同步时的OFFSET基本维持在20ns内,以此证明时钟相关一致性测试通过。

注意:最开始的OFFSET是一个很大的值,随后会迅速收敛,趋于稳定,并在数值0的上下波动。

与LinuxPTP测试基本一致。

Qbv 异步测试

测试前提:要开启IEEE 802.1AS 时钟同步,base-time设置为0,其门控的系统时间设置为1970-1-1,门控设置在TSN交换机上,测试为Talker ---> Bridge ---> Listener

Q0申请100us,Q7申请900us,门控cycle time加起来正好是1ms。因为从T->L发送数据表的落点不可控。先不开启Qbv时,测得其延迟在1us以下。当开启Qbv时,经过多次发送通道0类型的数据包。其落点有两种情况,当落点在Q0内,则当前数据包可以立即发送到L,测得延迟在1us以下;或者当落点在Q7内,则测得当前数据包的延迟范围应该在100us-901us范围内。通过这两种情况,可得知Qbv门控列表生效。

Qbv 一致性测试

关键词: 开门时间精度测试 容忍度 稳定性

Q0申请100us,Q7申请900us,门控cycle time加起来正好是1ms。每隔100us发送一个数据包,1ms内正好能够发送10个数据包。当Qbv门控关的时候,在1个cycle time内可以观察到有10个数据包已传输完毕,并且在多个cycle time内数据包传送的时间基本对齐,其时间偏差很小。表明数据包的接收是稳定的。然后,开启Qbv门控,发送通道0类型的数据包,则在Q0,即在100us的时间片内,会收到突发的10个流量包,因为上一个cycle time的Q7的时间片不允许传输,故落点在cycle time的100us-1000us的数据包不允许传输,会积累到下一个cycle time突发传输,因此能够在下一个cycle time看到突发的10个数据包。表明Qbv一致性测试通过。并且在cycle time的Q1门开的时间片内,可以看到一个间隔时间,大概在700us左右,它受到链路延迟时间、转发时延、物理介质、开门控时间、时钟同步的偏差等一系列的影响,但是只要它是趋于稳定的,在一个容忍的时间范围内,则也是可以接受的。其容忍时间越小,多个间隔时间的偏差越小,则说明门控时间精度越高,数据包的传输越稳定。

2K2000 无法精确的知道是通过哪个队列发送的,因为是直接修改的数据包,数据包中附带的队列信息不一定百分之百精准,所以可能存在偏差。比如原本应该使用队列2发送数据包,结果因为数据包由DMA到达网卡发送队列时存在的延迟或者CPU处理数据包时的延迟,造成了原本应该使用队列2发送,结果却使用了队列3发送该数据包。

Qbv 组网测试

两个终端设备的Qbv门控测试,由Talker ---> Listener 经过伪装,变更为 Talker ---> Null再经过Talker` ---> Listener

组网测试:Talker ---> Bridge ---> ... ---> Bridge ---> Listener,受Bridge ---> ... ---> Bridge的影响更多。(没有太大必要进行测试?)

Qav 测试

配置CBS之后,发送特定通道的数据包能够观察到限速,即可验证Qav的一致性测试通过。

附录:名词解释

一致性测试:是协议测试的一个重要方面,是性能测试、互操作性测试和健壮性测试的基础,是协议开发人员首要关心的问题。 一致性测试旨在检验所实现的协议实体(或系统)与协议规范的符合程度(而验证则是检查形式化规范的内部一致性),即测试一个协议给定实现的外部行为是否符合协议的规范。

异步测试:是指测试方法或框架,用于对异步代码进行测试。异步代码是指在执行过程中不会阻塞程序执行的代码,通常用于处理事件、网络通信和其他涉及长时间操作的任务。

在异步测试中,测试程序会等待异步代码执行完成后才会继续执行下一步操作。这可以通过使用回调函数、Promise对象、async/await关键字等技术来实现。

标签: tsn

添加新评论