基于FAST的TSN交换(3)TSN循环队列转发(CQF)原理(lǐ)
发布时间:2019-1-15
CQF為(wèi)了支持确定性的交换,TSN对802.1Q-2014标准进行了扩充。其中单流过滤和管控机制(PSFP)中的时间门控逻辑控制了时间敏感分(fēn)组进入缓存队列的时间,而时间敏感流增强调度(EST)机制中的输出门控机制控制了分(fēn)组离开输出队列的时间。基于对PSFP和EST机制的不同配置,TSN交换机可(kě)以实现多(duō)样的确定性转发,满足不同场景的需求。
CQF是802.1Qch定义的一种对PSPF和EST机制的配置,可(kě)以通过简单的计算实现确定性的转发延时。CQF也是目前TSN规范中确定的唯一配置方式。
一、CQF工作原理(lǐ)
尽管对PSFP和ETS功能(néng)进行不同的配置可(kě)以实现不同的TSN控制,但CQF是目前TSN规范中给出的唯一一个实现模型,其最大特点是计算和配置简单,可(kě)以保证分(fēn)组端到端交换的确定性延时。
(1)延时保证
CQF模型将全网时间划分(fēn)為(wèi)長(cháng)度為(wèi)d的连续时间槽,用(yòng)i,i+1…,i+N表示,若交换机S0在时间槽i中的t1时刻从链路上接收到数据帧p,则必须在i+1时间槽中的某个时刻t2输出到链路上,如下图所示。

图1 CQF对交换机转发延时的要求
假设t1和t2可(kě)在时间槽i和i+1中任意分(fēn)布,因此帧p经S0交换的延时t2-t1上限為(wèi)2d,下限為(wèi)0。同理(lǐ),交换机S1必须在时间槽i+2中的某个点t3完成交换并输出到链路上,因此p经S0和S1交换机的延时t3-t1最大為(wèi)3d,最小(xiǎo)為(wèi)d。更為(wèi)一般的,基于CQF模型,帧p在网络中交换的最大延时為(wèi)(h+1)*d,最小(xiǎo)延时為(wèi)(h-1)*d,其中h為(wèi)传输路径跳数。
(2)时间敏感帧的处理(lǐ)
支持CQF模型的交换机只要在输出端口為(wèi)时间敏感帧设置两个由时间门控制的队列Q0和Q1。偶数时间槽,队列Q0保存输入端口接收的帧(接收模式,不发送帧),同时队列Q1发送在上一个奇数时间槽缓存的数据帧(发送模式,不接收帧);奇数时间槽,两个队列的操作正好相反。因此,两个队列循环的进行分(fēn)组缓存和调度输出操作,这也是CQF名称的来由。

图2 CQF定义的循环队列结构及工作原理(lǐ)
针对CQF转发模型,PSFP和EST机制定义的输入门控表和输出门控表示如图所示。在偶数时间槽,按照T0表项定义的动作执行,在奇数时间槽,按照T1表项定义的动作执行,具體(tǐ)操作如下表所示。
显然,根据上面操作,每个时间敏感分(fēn)组在交换中的延时不超过2个时间槽。当然设备间时间同步精度,非时间敏感帧传输占用(yòng)输出链路对时间敏感帧的干扰,链路上分(fēn)配的时间敏感业務(wù)量大小(xiǎo)等因素都会对CQF模型中时间槽大小(xiǎo),Q0/Q1队列長(cháng)度等参数的选择有(yǒu)影响,具體(tǐ)分(fēn)析我们在后续文(wén)章中给出。
二、支持CQF的交换机输出接口模型
(1)队列模型和入队出队控制
交换机每个输出接口除了时间敏感流量外,还有(yǒu)其他(tā)非时间敏感流量,如best effort流量,带宽预约流量等。為(wèi)此,802.1Q-2014 的Annex I(Priority and drop precedence)定义了8个优先级队列,分(fēn)别缓存不同类型和优先级的流量,其中Q7的优先级最高,其次是Q6,Q5…,优先级最低的是Q1。802.1Q-2014规范中解释了Q0优先级高于Q1的原因。主要是网卡默认发出的best effort流量采用(yòng)默认优先级0,对应Q0,而Q1用(yòng)于存储优先级最低的背景流量,因此Q1的调度优先级低于Q0。
為(wèi)支持CQF模型,可(kě)将其中的两个最高优先级队列Q7和Q6设置缓存时间敏感流量。此时的交换机输出接口模型如下图所示。

图3 支持CQF的交换机输出接口模型
由上图可(kě)以看出以下几点。
一是优先级最高的Q7和第二高的Q6队列用(yòng)于存储时间敏感流,而且只有(yǒu)这两个队列需要入队和出队的时间门控机制。由于不同的时间敏感流数据可(kě)能(néng)具有(yǒu)不同的发送周期(例如第一个流的周期时125us,第二个流的周期是250us),因此入队控制需要不同的门控逻辑。
二是Q5,Q4和Q3保存预约带宽的非时间敏感流量,其中Q5和Q4分(fēn)别保存延时受限的音频和视频流,因此调度优先级比Q3要高。对于这些流量,在入队控制时需要增加流量测量逻辑,避免由于来自多(duō)个输入端口的多(duō)个单流汇聚后的流量超过输出接口预约的流量,同时在出队需要增加整型逻辑,减小(xiǎo)流量的突发。
三是进出三个低优先级队列Q2,Q0和Q1的流量没有(yǒu)任何控制。当然,在队列将满时,队列管理(lǐ)逻辑会根据一定的算法选择分(fēn)组丢弃。由于优先级低,这几个队列的流量也不会影响时间敏感流量和预约带宽的流量。
四是输出调度可(kě)采用(yòng)绝对优先级调度。由于对高优先级队列采用(yòng)了输出时间门控和输出整型机制,因此不会因為(wèi)异常到达的高优先级流量“饿死”低优先级的流量。
(2)接口的配置管理(lǐ)
CQF交换的输出接口是可(kě)管理(lǐ)的,即用(yòng)户可(kě)以对优先级分(fēn)类、入队门控,出队门控、入队测量和输出整型逻辑进行配置管理(lǐ)。
涉及的主要数据结构包括入队/出队门控列表,流量测量和整型的令牌桶参数,队列管理(lǐ)参数等。我们将在后续文(wén)章中对CQF输出接口的配置管理(lǐ)抽象进行进一步介绍。