在《车载以太网交换机入门基本功(3)》介绍了交换机端口属性和实际的VLAN转发过程。但是,当存在多个待转发的报文时,既要考虑到报文的及时性,又要考虑到转发效率,因此,如何进行有效调度就成了重要问题。一个解决办法是进行优先级设计。
优先级设计
优先级设计包括报文PCP字段和交换机队列两个部分。报文PCP字段可以回顾《交换机入门基本功-2》,如图 1所示:
图 1 携带VLAN的MAC报文格式
PCP优先级长度为3bit,取值在0-7之间共八个取值。通常来说值越大则优先级越高,越快被转发。由于以太网是串行通信,所以当不同优先级的报文发送到交换机端口上时,需要“排队出门”。
在交换机端口上存在多个队列,队列也存在优先级之分,值越大则优先级越高,越快被转发。PCP优先级和队列优先级不是一一对应的,存在映射关系。如图 2所示,左侧第一列是PCP优先级(从0-7),第一行是端口的队列个数(从1-8),根据队列个数进行映射。
图 2 PCP优先级和队列优先级映射表
以端口包含4个队列为例:PCP=0和1映射到队列优先级0,PCP=2和3映射到队列优先级1,PCP=4和5映射到队列优先级2,PCP=6和7映射到队列优先级3。映射完成后,队列优先级3的报文较快转发,而队列优先级0的报文较慢转发。同一个队列下的报文按照进入队列的早晚进行转发。如图 3所示:
图 3 端口的队列转发
考虑到转发实时性和效率,可以针对性地设计队列调度规则。这里介绍两种常见的队列调度机制:优先级队列调度(PQ, Priority Queuing)和加权循环调度(WRR, Weight Round Robin)。
· 优先级队列调度(PQ, Priority Queuing)
严格按照队列优先级大小进行调度。只有高优先级队列的报文全部转发完毕,低优先级队列的报文才会开始转发。这种调度方式方便配置,对于低延时的数据非常有用,如音视频数据等。但当高优先级的数据过多时,会一直占用调度窗口,导致低优先级的数据“永无出头之日”。低优先级并不意味着不重要,如邮件不追求时效,但它很有可能包含诸如开会时间的重要信息。另一种队列调度机制可以有效缓解这一问题。
· 加权循环调度(WRR, Weight Round Robin)
不同队列给予不同的初始权值,每次调度时,权值不为0的队列都调度一次;每调度一轮则权值减1,权值减到0的队列不参与调度;当所有队列的权值均减到0时,重置队列的权值,开启新一轮的调度。为了便于理解,假设有三个队列A、B、C,权值分别是2、3、4,调度过程如图 4所示:
第一、二次调度:ABC,队列权值连续减1,A=0,B=1,C=2;
第三次:A权值为0,不参与调度,实际调度B和C,队列权值减1,A=0,B=0,C=1;
第四次:A、B不参与调度,实际调度C,队列权值减1,A=0,B=0,C=0;
重置,A=2,B=3,C=4,重复上述过程。
图 4 WRR队列调度
WRR调度机制让每个队列都有调度机会,机会大小取决于权值大小。因此,低优先级队列的数据也能转发。WRR机制会跳过空的队列并切换到下个队列,保证带宽充分利用。
报文优先级、交换机队列和调度机制相配合,可以实现报文的高效转发,提高带宽资源利用率。交换机芯片通过硬件设计实现上述功能,之后需要经过测试进行验证,才能真正派上用场。
TC11交换机芯片VLAN测试规范
在《交换机入门基本功(1)》提到,交换机芯片依据的是OPEN联盟TC11工作小组制定的测试规范“Switch Semiconductor Test Specification”,其中VLAN测试包括八个部分:
在802.1Q配置测试部分,细分17个测试内容,如表2所示,定义了入口、转发、出口过程的配置情况:
在具体测试中,根据交换机功能选择相应测试用例,开展测试。
总结
通过《交换机入门基本功》4篇文章了解到:交换机是基于以太网点对点通信机制的背景下诞生的,包括学习、记忆、接收、查表、转发的五个工作过程,具备端口过滤、镜像、禁用/启用、转发等功能。交换机实现了物理通信区域的隔离,即局域网,而VLAN则实现了逻辑区域的隔离。VLAN通过报文Tag、交换机端口属性、交换机端口过滤功能得以实现,并通过优先级和队列实现转发的有效调度。为了验证交换机芯片的功能实现,需要参考OPEN联盟的TC11交换机芯片测试规范,包括通用测试、地址解析、VLAN等9个方面,此外,实时更进规范修改方案并与读者分享。
感谢读者们对本系列的支持!希望大家通过阅读本文,可以对交换机形成整体的认识,之后通过不断学习实现自我升级,成为一名资深的工程师!
经纬恒润作为OPEN联盟会员和AUTOSAR联盟的高级合作伙伴,长期为国内外各大OEM和供应商提供涵盖TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS等技术领域的设计和测试咨询服务,积极研发和探索车载网络前沿技术和工程应用。通过多个项目的实践经验,已建立了高质量、本土化的设计与测试一体化解决方案,为整车网络架构提供可靠支持。
了解更多
请致电010-64840808转6117 或发送邮件至market_dept@hirain.com(联系时请说明来自中国自动化网)