天天看点

基于FAST的TSN交换(3)TSN循环队列转发(CQF)原理 基于FAST的TSN交换(3)TSN循环队列转发(CQF)原理

基于FAST的TSN交换(3)TSN循环队列转发(CQF)原理

    为了支持确定性的交换,TSN对802.1Q-2014标准进行了扩充。其中单流过滤和管控机制(PSFP)中的时间门控逻辑控制了时间敏感分组进入缓存队列的时间,而时间敏感流增强调度(EST)机制中的输出门控机制控制了分组离开输出队列的时间。基于对PSFP和EST机制的不同配置,TSN交换机可以实现多样的确定性转发,满足不同场景的需求。

    CQF是802.1Qch定义的一种对PSPF和EST机制的配置,可以通过简单的计算实现确定性的转发延时。CQF也是目前TSN规范中确定的唯一配置方式。

一、CQF工作原理

     尽管对PSFP和ETS功能进行不同的配置可以实现不同的TSN控制,但CQF是目前TSN规范中给出的唯一一个实现模型,其最大特点是计算和配置简单,可以保证分组端到端交换的确定性延时。

(1)延时保证

    CQF模型将全网时间划分为长度为d的连续时间槽,用i,i+1…,i+N表示,若交换机S0在时间槽i中的t1时刻从链路上接收到数据帧p,则必须在i+1时间槽中的某个时刻t2输出到链路上,如下图所示。

基于FAST的TSN交换(3)TSN循环队列转发(CQF)原理 基于FAST的TSN交换(3)TSN循环队列转发(CQF)原理

    假设t1和t2可在时间槽i和i+1中任意分布,因此帧p经S0交换的延时t2-t1上限为2d,下限为0。同理,交换机S1必须在时间槽i+2中的某个点t3完成交换并输出到链路上,因此p经S0和S1交换机的延时t3-t1最大为3d,最小为d。更为一般的,基于CQF模型,帧p在网络中交换的最大延时为(h+1)*d,最小延时为(h-1)*d,其中h为传输路径跳数。

(2)时间敏感帧的处理

    支持CQF模型的交换机只要在输出端口为时间敏感帧设置两个由时间门控制的队列Q0和Q1。偶数时间槽,队列Q0保存输入端口接收的帧(接收模式,不发送帧),同时队列Q1发送在上一个奇数时间槽缓存的数据帧(发送模式,不接收帧);奇数时间槽,两个队列的操作正好相反。因此,两个队列循环的进行分组缓存和调度输出操作,这也是CQF名称的来由。

基于FAST的TSN交换(3)TSN循环队列转发(CQF)原理 基于FAST的TSN交换(3)TSN循环队列转发(CQF)原理

CQF定义的循环队列结构及工作原理

    针对CQF转发模型,PSFP和EST机制定义的输入门控表和输出门控表示如图所示。在偶数时间槽,按照T0表项定义的动作执行,在奇数时间槽,按照T1表项定义的动作执行,具体操作如下表所示。

偶数时间槽(T0) 奇数时间槽(T1)
入队门控逻辑 所有到达时间敏感分组进入Q0队列,关闭Q1队列入口 所有到达时间敏感分组进入Q1队列,关闭Q0队列入口
出队门控逻辑 将Q1输出请求发送给输出调度逻辑,屏蔽Q0的输出调度请求 将Q0输出请求发送给输出调度逻辑,屏蔽Q1的输出调度请求

    显然,根据上面操作,每个时间敏感分组在交换中的延时不超过2个时间槽。当然设备间时间同步精度,非时间敏感帧传输占用输出链路对时间敏感帧的干扰,链路上分配的时间敏感业务量大小等因素都会对CQF模型中时间槽大小,Q0/Q1队列长度等参数的选择有影响,具体分析我们在后续文章中给出。

二、支持CQF的交换机输出接口模型

(1)队列模型和入队出队控制交换机每个输出接口除了时间敏感流量外,还有其他非时间敏感流量,如best effort流量,带宽预约流量等。为此,802.1Q-2014 的Annex I(Priority and drop precedence)定义了8个优先级队列,分别缓存不同类型和优先级的流量,其中Q7的优先级最高,其次是Q6,Q5…,优先级最低的是Q1。802.1Q-2014规范中解释了Q0优先级高于Q1的原因。主要是网卡默认发出的best effort流量采用默认优先级0,对应Q0,而Q1用于存储优先级最低的背景流量,因此Q1的调度优先级低于Q0。为支持CQF模型,可将其中的两个最高优先级队列Q7和Q6设置缓存时间敏感流量。此时的交换机输出接口模型如下图所示。

基于FAST的TSN交换(3)TSN循环队列转发(CQF)原理 基于FAST的TSN交换(3)TSN循环队列转发(CQF)原理

支持CQF的交换机输出接口模型

由上图可以看出以下几点。

    一是优先级最高的Q7和第二高的Q6队列用于存储时间敏感流,而且只有这两个队列需要入队和出队的时间门控机制。由于不同的时间敏感流数据可能具有不同的发送周期(例如第一个流的周期时125us,第二个流的周期是250us),因此入队控制需要不同的门控逻辑。

    二是Q5,Q4和Q3保存预约带宽的非时间敏感流量,其中Q5和Q4分别保存延时受限的音频和视频流,因此调度优先级比Q3要高。对于这些流量,在入队控制时需要增加流量测量逻辑,避免由于来自多个输入端口的多个单流汇聚后的流量超过输出接口预约的流量,同时在出队需要增加整型逻辑,减小流量的突发。

    三是进出三个低优先级队列Q2,Q0和Q1的流量没有任何控制。当然,在队列将满时,队列管理逻辑会根据一定的算法选择分组丢弃。由于优先级低,这几个队列的流量也不会影响时间敏感流量和预约带宽的流量。

    四是输出调度可采用绝对优先级调度。由于对高优先级队列采用了输出时间门控和输出整型机制,因此不会因为异常到达的高优先级流量“饿死”低优先级的流量。

(2)接口的配置管理

    CQF交换的输出接口是可管理的,即用户可以对优先级分类、入队门控,出队门控、入队测量和输出整型逻辑进行配置管理。

    涉及的主要数据结构包括入队/出队门控列表,流量测量和整型的令牌桶参数,队列管理参数等。我们将在后续文章中对CQF输出接口的配置管理抽象进行进一步介绍。

继续阅读