OpenTSN网卡不但需要根据离线规划以时间槽为粒度控制时间敏感(TS)分组的发送时间,同时也需要在接收侧按指定时间将TS分组提交给端系统。本文首先提出TSN网卡实现接收TS分组提交时间控制的必要性,然后分析提交时间控制对TSN支持冗余帧消除的影响,最后给出OpenTSN网卡接收TS分组后,实现提交时间控制的方法。

一、网卡提交时间控制的必要性

TSN网卡会首先缓存每个到达的TS分组,然后根据接收提交时刻表,在指定时刻将分组提交给端系统应用。TSN网卡按时(On time)提交TS分组而不是立刻(assoon as possible)提交的原因有两点,一是精准控制端到端延时抖动,二是增加端到端延时的确定性。

(1)控制端到端延时的抖动

CQF机制将TSN交换系统时间划分为固定大小的时间槽d,交换机确保将第i个时间槽接收到的分组在第i+1个时间槽发出。因此经过h跳交换机的分组延时可以保证在(h-1)*d和(h+1)*d之间。为提高链路有效带宽的利用率,降低CQF队列切换保护带宽的开销比例,CQF的时间槽不能太小。以802.1Qch规范中举例使用的125us时间槽为例,CQF可保证的延时抖动为2d=250us。

       工业互联网、金融、航空电子和自动驾驶等领域对交换有us级抖动的需求,如图1所示(数据摘自Ultra-LowLatency (ULL) Networks: The IEEE TSN and IETF DetNet Standards and Related 5GULL Research,IEEE Communications Surveys &Tutorials, 2019)。因此CQF提供的250us延时抖动保证难以满足应用需求。

图1 典型应用的us级抖动需求

在接收端设置足够大缓存是减小延时抖动的有效方法。由于OpenTSN网卡对主机能力不做假设(主机可能是有缓存能力的服务器,也可能是没有缓存能力的传感器),因此需要网卡对到达分组进行缓存,并按指定时间将分组提交给应用,满足其抖动需求。

(2)提高端到端延时的确定性

       TSN交换的时间确定性是指分组经历的交换延时与预期相符,而不是越短越好。例如从长沙到北京,乘坐高铁虽然时间长(6-7个小时),但可对到达时间的确定性产生分钟级的预期,乘坐飞机虽然时间短(2-3个小时),但到达时间难以精确估计。

       TSN的CQF交换机制提供的延时确定性与网络拓扑(跳数h)和配置的时间槽(d)长度相关。例如,在图2所示TSN网络中,节点A发给节点B的数据流f有两条交换路径,分别为2跳(S1,S2)的路径1和3跳(S3,S4,S5)的路径2。若交换机最小交换延时为25us,当时间槽d=125us时,可以计算路径1可保证的延时范围为(175us,425us),路径2可保证的延时范围是(325us,575us)。如果A和B间应用对TS流的延时确定性要求为1ms,那么就必须在NIC-b上对流f的分组先缓存,再按时提交,最长缓存时间为1ms-175us=825us。

图2 基于CQF的TSN交换场景

二、网卡提交时间控制与冗余帧消除

TSN网卡接收提交时间控制的精度对高层网络服务也有影响。例如当TSN支持帧复制与消除时,Talker A发出的流f在NIC-a中会复制产生两条子流f1和f2,分别沿两条路径传输到Listener节点B,如图2所示。NIC-b要实现冗余帧的消除,设置的观测窗口W大小应该不小于两个复制的分组经不同路径到达NIC-b的最大可能的时间差,即575us-175us=400us。

图3 流f实现帧消除时窗口W的设置

图3给出了三种TSN网卡接收数据提交方式以及需设置的帧冗余窗口W的大小。(a)为没有提交时间控制时,网卡会将接收的分组立即送给冗余帧消除逻辑,因此窗口W需要设置为最大的400us;(b)为网卡按离线配置的时间槽提交接收分组,因此两个复制帧会在相同时间槽提交,帧消除观测窗口W最大为一个时间槽125us;(c)为根据离线配置的时间槽及其内部偏移量进行帧的提交。例如当offset配置的精准粒度为25us时,两个复制帧到达帧冗余消除逻辑的最大时间差为仅为25us。

方案(a)有两个缺点。一是不同应用对流延时的确定性要求不同,没有提交时间控制就无法对延时确定性提供支持;二是不同流交换路径经过的跳数不同,对不同流需要设置的观测窗口W不同,增加了帧消除逻辑的复杂性。

对于方案(b)和(c),由于使用的帧缓存数据结构不同,Rx缓存和帧消除缓存是逻辑上独立的两个缓存。主机能力强时,可考虑帧消除缓存基于主机驱动软件层实现,主机能力弱时,帧消除缓存只能通过网卡实现。

三、OpenTSN网卡的接收提交时间控制

OpenTSN网卡在接收端提交时间控制时,采用了以下三个原则。

(1)全局一致

整个TSN网络中,所有网卡工作的CQF时间槽大小一致,时间边界对齐,且每个调度周期中包含相同数量的时间槽。

(2发送接收关联

对于任意TS流f,离线规划同时计算Talker网卡发送该流分组的时间(发送时间槽),以及每个listener(组播时为多个)网卡向主机提交该分组的时间(接收提交时间槽)。

(3)精准提交

针对每个接收的TS流,在全局分配的接收提交时间槽基础上,进一步配置精准提交偏移量。由于千兆接口头阻塞的长度最大约12us,因此考虑偏移量精度为20us-30us。

需注意的是,TSN网络中TS流发送和接收时间槽的分配是全局的,关系到网络中交换机资源的占用情况,而网卡精准提交的偏移量计算是局部的,与全局时间规划无关。

四、结束语

     对TS流分组的发送和接收提交时间控制是TSN网卡设计的核心。除此之外,TSN网卡还需实现802.1Qcc规范中定义的transformer功能,即将应用数据流分类,并标识成TSN交换机可识别的网络流。OpenTSN网卡的Transformer。

分类: OpenTSN

发表评论

电子邮件地址不会被公开。 必填项已用*标注