一、概述
TSN(Time-Sensitive Networking)时间敏感网络,即在非确定性的以太网中实现确定性的最小时间延时的协议族,是IEEE 802.1工作组中的TSN工作组开发的一套协议标准,定义了以太网数据传输的时间敏感机制,为标准以太网增加了确定性和可靠性,以确保数据实时、确定和可靠地传输。
TSN是符合IEEE802.1Q标准的VLAN,在标准的以太帧中插入4个字节长度的VLAN tag。TSN通过VLAN tag中的PCP(Priority Code Point)和VID(VLAN ID)定义流的不同优先级。
TSN VLAN tag各字段的含义如下:
1)Tag Protocol Indentifier:16bit长度,标签协议识别,标识TSN网络,数值为0X8100。
2)Priority Code Point:3bit长度,优先级代码,标识流量优先级,3位PCP定义了8个优先级,传输类型对应关系参见:
表1:TSN优先级与传输类型的对应关系
3)Drop Eligible Indicator:1bit长度,丢弃标识位,对于低QoS要求的数据可置位,网络拥塞时可丢弃,以确保高优先级数据的QoS。
4)VLAN Identifier(VID):12bit长度,VLAN网络的识别号。VID=0用于识别帧优先级,VID=FFF作为预留,其余值用于标识VLAN。
TSN需要硬件的支持配合才能实现,不能单纯在软件中实现,需要硬件来加速。TSN主要用于解决以太网网络的确定性及QoS问题。
1.1 TSN的组成
TSN主要由5部分组成:时间同步、延时控制、安全、可靠性、资源管理,其中每个部分所包含的协议组成如下:
其中已发布的标准如下:
部分继承AVB的标准(Referred to AVB standards)如下:
以上部分不是所有协议都需要去了解,我们只需要学习一些关键的协议标准:
-
802.1 AS——时间同步协议
-
802.1 Qbv——时间感知整形器(Time Aware Shaper)
-
802.1 Qav——基于信用的整形器(Credit Based Shaper)
其中流量整形(Qbv、Qav)用于控制通信的带宽和延时,Qbv用于塑造每种流量类的时隙,Qav用于限制每种流量类的带宽(解决突发问题)。
那么,在以太网的接受和发送过程中,TSN在其中充当怎样的角色,又是如何工作的呢?下面讲述一下关键协议在收发过程中充当的角色。
1.2 接收过程简述
1.3 发送过程简述
发送过程如下图所示。在单port发送过程中,Tx队列数量=DMA通道数量,因此DMA通道ID与队列ID是一一对应的,DMA0对应的队列0,以此类推。在队列中,通过MTL_Txn_Operation_Mode寄存器将一个队列映射到一个流量类,可以将一个或多个队列映射到一个流量类,8个队列,因此最多对应8个流量类。通过MTL_TCn_Quantum_Weight寄存器来编程每个流量类所需的带宽。
DMA的发送与接收都需要仲裁,根据DMA的通道号不同而确定,执行的是固定优先级仲裁,以下是发送的DMA通道优先级方案。
注:WRR加权循环仲裁针对的是多通道DMA。
可以为所有队列禁用CBS算法,也可以为一部分较低优先级的队列禁用CBS算法(注:要禁用就禁用更低id号的优先级队列,即不能在比禁用的这个优先级队列id更低的id队列中启用的情况),禁用CBS算法的通道默认使用SP算法,通过配置,也可以配置为WRR算法。
1.4 算法类型简述
-
1)基于信用的整形算法——credit-based shaper algorithm(CBS):Qav中的算法,可用于传输通道
基于信用的整形算法,传输条件为:队列包含多个数据包、队列的信用是正的。
-
2)严格的优先级算法——Strict priority algorithm(SP):Qav中的算法,可用于传输通道
-
3)加权循环仲裁算法—— Weighted Round Robin arbitration(WRR):以太网中的DMA仲裁
未完待续。。。