FlexTSN:一种灵活的TSN交换实现模型

杨翔瑞 严锦立 陈 波 彭锦涛 李军帅 全 巍 孙志刚

(国防科技大学计算机学院 长沙 410072)(yangxiangrui11@nudt.edu.cn)

摘 要 时间敏感网络(time-sensitive networking, TSN)的核心是为标准以太网赋予关键流量的确定性转发服务,同时能够实现混合优先级业务流量的一体化传输,从而成为业界和学术界备受关注的新兴技术.相比于标准以太网交换,TSN交换通过引入高精度的时间同步特性提供门控机制和时间感知的分组调度等服务,使得以太网有能力提供确定性延迟的转发服务.目前,IEEE 802.1 TSN工作组从时间同步、流管理、流控制以及可靠性等方面对TSN的设计实现提供较为完善的标准.而现有的工作难以加快TSN技术的实现和应用,其难点在于目前缺少一种面向TSN的通用交换实现模型进行快速的原型系统搭建和关键技术的验证.为此提出一种灵活的TSN交换的实现模型FlexTSN.FlexTSN基于模块化与功能松耦合的思想,将TSN交换节点解耦为通用处理模块和时间感知模块,支持TSN交换机的快速重构.此外,FlexTSN通过扩展PTP同步协议提供一种轻量级高可靠的网络管理机制用于进行细粒度集中式的状态收集和配置.然后基于该模型在可编程的FPGA平台上实现了一种支持简化的循环队列转发模型(cyclical queuing and forwarding, CQF)的TSN原型系统.通过从资源开销和服务质量等方面进行测试评估,实验结果证明FlexTSN能够实现敏捷的原型系统组网及TSN关键技术的快速验证.

关键词 现场可编程逻辑门阵列;时间敏感网络;模型与实现;确定性转发;同步

随着工业物联网(industrial Internet of things, IIoT)[1]需求与技术快速发展,通过一套标准化网络在工控网络中同时实现实时消息确定性转发和非实时消息尽力转发十分重要.2012年,IEEE 802.1的音视频桥接技术工作组(audiovideo bridging systems group, AVB)正式被时间敏感网络(time-sensitive networking, TSN)任务组所代替[2],用于满足工业互联网的上述需要.TSN[3]定义了确定性以太网中2层网桥(bridge)的调度与转发等策略.与传统以太网相比,TSN的最大特点是能保证数据交换确定性,在预知时间敏感数据流传输周期与数据量等特征后,进行端到端基于时间的调度控制.TSN能够保证在确定性延迟范围内(极小的数据抖动)将数据传输到接收方.这有助于将传统由现场总线通信(如IEEE 1394[4],PROFINET[5]等)或专用工业以太网协议(如Ethernet for Control Automation Technology[6])分割的工控网络体系进行整合,打破不同技术路线形成的壁垒,利于工业互联网技术路线的推进.

目前,IEEE TSN工作组制定了一系列草案对TSN中相关技术进行标准化.其中,IEEE 802.1AS[7]对TSN中精确的时钟同步方式进行了规范,802.1Qcc[8]定义了用于网桥状态周期性上报与CNC(central network controller)节点对网桥的配置方式,802.1Qav[8],802.1Qbv[9],802.1Qbu[8]等对TSN中的流控(整形、调度等)进行了规范等.同时,IEEE关于TSN的多数草案仍在快速迭代更新中.例如,TSN工作组的主页显示,目前已经发布的TSN标准共有13个,有17个标准仍在讨论与设计中[10],涉及本地注册管理、服务质量(quality of service, QoS)配置、服务提供商网络的TSN配置说明等方面.上述标准的形成都需要新提出的技术方案在基于硬件的TSN原型系统中进行全面的功能与性能验证.

然而,由于TSN技术刚起步,在时间同步、输入调度、输出调度、状态与资源管理等方面与传统以太网技术区别较大,目前还没有一种通用的模型用于TSN交换原型系统的快速实现.因此,一种便于研究人员进行敏捷、灵活开发的TSN交换模型对于推动TSN技术的实现和应用极为重要.这有利于为研究人员提供灵活的TSN关键技术敏捷验证.NetFPGA[11]与FAST[12]等网络交换原型的开源框架为基于可编程硬件的网络原型系统构建提供了平台,但是缺少对TSN在时间同步、资源与状态管理等方面的抽象支持,难以针对TSN领域特定关键技术进行敏捷验证.

Fig. 1 The functionalities of TSN switching node

图1 TSN交换节点功能示意图

因此,我们提出一种灵活的TSN交换模型FlexTSN,用于为研究人员提供一种敏捷的TSN交换原型系统构建方式.FlexTSN基于FAST[12]开源框架进行设计开发,其实现了一种功能模块松耦合的TSN交换节点.FlexTSN具有的特点为:首先,将TSN转发节点的逻辑功能解耦为时间同步、输入调度、分组交换、输出调度、状态与资源管理5大功能模块(如图1所示),每个模块均支持用户基于新的机制进行重构,从而便于对TSN中新型关键技术进行快速验证;其次,我们为FlexTSN设计了一种基于扩展精确时钟同步协议(precision time protocol, PTP)的轻量级高可靠网络管理机制Beacon,用于对节点的状态信息进行周期性上报,便于用户进行远程遥测与调试;最后,FlexTSN借助FAST中metadata等数据结构进一步抽象出TSN相关核心数据结构,通过中间结果共享简化自定义模块开发.

本文的贡献有3方面:

1) 提出了一种灵活的TSN交换模型FlexTSN及其原型系统[13],便于研究人员对TSN关键技术进行快速验证;

2) 在基于FlexTSN构建的转发节点中,将时间同步、输入调度、输出调度、分组交换与状态、资源管理进行解耦,便于研究人员对特定逻辑功能进行自定义的模块替换或重构;

3) 提出一种基于PTP协议[14]的Beacon机制,通过周期性上报本地状态与配置信息,为用户基于FlexTSN的开发过程提供一种高效的故障诊断与调试机制.

1 动机与方法

本节对灵活的TSN交换模型的研究动机进行介绍,并且对FlexTSN设计中的核心方法进行介绍.

1.1 研究动机

目前关于TSN的相关研究日益丰富,来自业界与学术界的研究人员针对TSN中时间同步、调度机制与资源管理机制等进行了越来越深入的探索.为了对提出的相关算法与机制进行验证,研究人员迫切需要对TSN交换系统进行快速原型设计与搭建.而目前还缺少一种能够灵活支持TSN交换的实现模型.

FPGA为网络交换原型系统提供了良好的可编程性以及与软件相比更高的处理速度.作为主流的基于FPGA的网络实验平台如NetFPGA,FAST等提供了针对以太网数据帧的抽象和易于使用的硬件元数据结构,适用于传统以太网实验环境搭建.然而针对TSN而言,仍然需要用户实现TSN交换节点中输入输出调度、交换、资源管理与时钟同步等功能.而多数研究人员仅针对TSN交换节点中的某一功能进行研究,为了对某一方面的机制或算法进行验证而搭建整个TSN交换原型系统无疑带来大量时间和工程开销.

以时钟同步为例,IEEE 802.1AS[7]规定了TSN使用gPTP[13]协议进行全LAN的时钟同步.gPTP(generic PTP)协议包含基于最优主时钟(best master clock, BMC)算法的主时钟选取和时钟同步算法2部分,而基于FPGA的时钟同步协议的一种简化的典型实现[14]大约包含2 100行verilog代码.而如图1所示,TSN交换节点(在IEEE 802.1中定义为bridge)至少包含时间同步、输入调度、分组交换、输出调度、状态与资源管理5种核心功能,这将为用户带来较多的额外开发和调试负担.

1.2 需求与方法

通过1.1节的动机分析,目前迫切需要一种灵活的TSN交换实现模型对TSN中关键技术进行敏捷测试与验证,为此我们提出了FlexTSN,一种灵活的TSN交换实现模型,使研究人员能够基于所提出算法快速搭建TSN交换的原型系统,从而敏捷地进行算法和机制验证.

为了使得FlexTSN满足该需求,我们对Flex-TSN作出3条需求约束:

1) FlexTSN首先应当实现一种典型的TSN交换原型系统,支持包含时间同步、输入调度、分组交换、输出调度、状态与资源管理5部分核心TSN交换功能,便于用户对多数功能模块进行重用;

2) FlexTSN中各逻辑功能应当采用松耦合的设计模式,保证约束1中任何一种功能模块能够方便地被用户自定义逻辑替换;

3) FlexTSN应当为用户提供一种灵活的状态信息上报机制,从而便于用户对基于FlexTSN的原型系统进行集中式的状态信息采集与调试.

FlexTSN应当作为一种开源与可敏捷重构的TSN测试平台.为了能够满足上述目标,FlexTSN包含了3种关键技术:

1) 基于模块化、松耦合的设计模式.FlexTSN基于FAST的模块化框架设计实现,并对FAST架构进行扩展.通过定义各模块间交互的通用数据结构,保证不同模块间的功能解耦.

2) 基于扩展PTP报文的Beacon机制.FlexTSN对PTP协议数据字段进行扩展,从而将本地状态和资源信息以及透明时钟封装在扩展的PTP报文中,并根据配置进行时钟同步场景下的状态信息周期性上报.

3) 定义了TSN metadata字段,根据时间敏感的调度机制需求将调度关键信息(时钟、流优先级等)封装在TSN metadata中,方便用户对输入、输出等调度算法进行敏捷部署.

2 FlexTSN架构设计

2.1 整体架构

FlexTSN整体流水线架构如图2所示.其中深色为FlexTSN开发模块,白色为通用模块.FlexTSN为了保证全网时间同步的精度与TSN输出调度的精确性,主要有2点关键设计:

1) 将时间同步逻辑(如时钟同步与时间戳标记)部署在数据接口逻辑中,避免跨时钟域,从而保证透明时钟计算的准确性(详见2.2节);

2) 为了支持“确定性转发”的TSN调度机制,输出通道设计为n路(n为端口数量),保证分组在FlexTSN中完成调度后避免block-of-head拥塞,从而进行确定性转发.

Fig. 2 The model of FlexTSN’s pipeline

图2 FlexTSN流水线模型

总的来看,FlexTSN流水线包含FAST基本模块与TSN功能模块2类模块.在可重构的TSN功能模块中,PTP(时间同步模块)靠近接口逻辑,主要负责在网络中与各节点进行全网的时间同步,从而向交换、调度等模块提供同步的精确时间信息.其余模块依次部署在流水线中,便于用户根据自定义需求进行重构.其中,LCM为本地管理模块,负责本地节点的资源与状态管理,并负责周期性向CNC(central network controller)上报本地状态信息;ESW为解析与交换模块,主要负责解析分组并提取metadata(包含优先级、输入端口、流标识等信息),同时根据本地转发表对action字段进行标识;EOS模块为FlexTSN的输出调度模块,是实现TSN调度的核心模块之一,可根据ESW模块提取的metadata信息对分组进行输出调度.

而FAST[12]基本模块中,Pkt Extract模块提取报文体,并将其暂存在Data Cache模块中,并保留metadata与报文头向量用于在EOS模块进行调度.Data Cache模块用于暂存报文体,并将报文暂存地址、报文长度等提供给Pkt Extract模块,用于填充metadata信息.Pkt Restore模块用于根据EOS模块输出进行报文拼装.GOE模块为FlexTSN的输出引擎,它根据报文metadata中action字段值对报文进行向特定端口转发、丢弃、计数等处理.

2.2 核心模块设计

2.2.1 时间同步模块

TSN采用IEEE 802.1AS(gPTP协议)进行TSN中全域的时间同步.因此,在FlexTSN中的PTP模块中也采用gPTP协议用于各节点的时间同步,实现全网各节点亚微秒级的同步,从而为TSN中实时调度提供精确的全局时间.

2.2.2 本地状态与资源管理模块

本地状态与资源管理模块(LCM)负责接收CNC的配置命令并对各功能模块进行配置,另外还收集各功能模块的状态信息,周期性向CNC节点进行上报.该模块的架构如图3所示:

Fig. 3 Architecture of local state and resource management module

图3 本地状态与资源管理模块(LCM)架构

LCM模块分为LReport与LUpdate这2个子功能模块,以及一个本地控制模块LCM_Ctrl.其中LReport模块负责周期性构造包含本地计数器等状态信息的分组,并以组播方式将该分组发送至CNC节点.LUpdate模块负责接收并解析来自CNC节点的控制分组,并根据控制分组中的字段对各模块中的控制寄存器进行配置.而LCM_Ctrl模块是LCM的控制子模块,用于对上报分组的上报周期、Beacon分组的目的MAC(media access control)地址等参数进行配置.

为了能够提供高可扩展的状态信息上报与管理信息配置,我们通过对IEEE 1588同步协议进行扩展设计了Beacon网络管理协议,将在3.1节中进行详细介绍.

2.2.3 解析与交换模块

解析与交换模块(ESW)是FlexTSN的核心交换模块,主要用于对接收的分组类型进行解析、查找转发表、构造TSN输出调度所需的metadata(为了简化设计,也可将输入调度机制部署在ESW中).

ESW的模块架构如图4所示,其主要包含3个子模块:PKE模块用于分组类型解析与转发表的key提取;PFW模块用于根据PKE生成的key字段进行转发表匹配,并根据查表结果生成对应的action字段;PAC模块用于根据action字段生成TSN调度输出所需的metadata,并且根据流水线的数据缓存模块(IBM,即为模型图2中的Pkt Extract模块)的剩余存储空间大小决定对不同优先级的分组进行的操作(丢弃或继续处理).

Fig. 4 Architecture of the parsing and switching module

图4 解析与交换模块(ESW)架构

根据文献[15],TSN使用IEEE 802.3中VLAN(virtual local area network)头中的PCP字段(0~7)标记特定流的优先级.在FlexTSN中,默认将所有数据流的优先级分为3类,如表1所示.PKE接收到输入分组后,提取查表所需的key(包含源、目的MAC地址等信息)并根据表1解析TSN的分组类型,之后将这2个字段以及分组送至PFW模块进行处理.

PFW为FlexTSN中用于查找转发表的模块,其查表逻辑与传统以太网查表逻辑相同,因此该模块也可复用用于传统以太网的查表模块.然而,由于需要支持基于优先级的输出调度策略,在PFW模块查表生成的action字段中需要包含一个3 b的分组协议类型域,用于对该分组属于TSN分组、预约带宽分组或者尽力转发分组进行标识.

Table 1 Relation Between PCP Field and TSN Frame Type

表1 PCP字段与TSN分组类型对应关系表

PCPTSN帧类型02尽力转发帧35带宽保留帧67时间敏感帧None尽力转发帧

PAC模块接收到来自PFW的分组及其携带的action字段后,将根据相关信息生成TSN metadata.TSN metadata在FlexTSN中被用于进行输出调度的关键数据结构,其字段定义如图5所示:

Fig. 5 TSN metadata data structure

图5 TSN metadata数据结构

需要注意的是,TSN metadata字段的7~0位为Buf_ID,代表该metadata所对应的分组在Data Cache中存储的位置.该字段与length字段相结合用于调度完成后从Data Cache读取对应的一个完整分组.

另外,由于Data Cache中的存储空间有限,PAC也需要根据Data Cache中空闲ID的数量决定是否要丢弃当前分组,并且保证高优先级流(TSN流)的无损处理.

2.2.4 输出调度模块

TSN的另一个核心功能是根据分组优先级或类别进行时间敏感的输出调度,该功能在EOS模块中进行实现.EOS模块的设计充分考虑了TSN网络特点,并将门控、流量整形和输出调度的逻辑进行了解耦,分别由不同的子模块实现,便于用户对其中某一部分逻辑进行重构.EOS的整体架构如图6所示.

Fig. 6 The architecture of the output scheduling module

图6 EOS模块整体架构

图6中,队列选择模块(queue select)用于根据metadata中的分组类型字段以及输出端口号将不同类型分组的metadata(TSN分组、带宽预留分组以及尽力转发分组)送至MB模块中的不同队列中.MB中针对每个输出端口维护3个长度为N(N值与Data Cache中ID数相同)的FIFO(first-in-first-out buffer),用于接收并缓存来自Queue Select模块的metadata.EOS中用于门控的模块是Gate Ctrl模块,该模块接收来自PTP模块的精确时钟信息,并根据全局时间、MB中FIFO剩余空间等信息对发送队列进行门控.而Traffic Schedule模块接收来自Gate Ctrl模块的当前可调度队列选项,并依据内部的调度算法对metadata进行调度输出.

在TSN的相关研究中,针对输出调度的研究相对丰富.我们将门控与调度的子功能分别解耦为Gate Ctrl模块与Traffic Schedule模块,并提供便于用户对新的门控与调度算法进行系统验证.在FlexTSN中,我们在EOS中实现了TSN规范中的一种典型调度算法——CQF[16](cyclical queuing and forwarding)调度.

3 关键技术

3.1 基于扩展PTP协议的Beacon机制

为了便于用户对FlexTSN进行调试或配置,同时支持远端CNC节点实时获取TSN交换节点的本地状态信息,我们为FlexTSN平台设计了一种基于扩展的PTP协议的遥测机制,也称为Beacon机制.该机制支持2种关键功能:

1) TSN交换节点当前状态信息周期性上报.TSN节点周期性将本地状态信息填写到Beacon帧(扩展的PTP帧)中,并发送至CNC节点.其本地状态信息包括各队列当前利用率、各端口接收与发送的总分组数等.另外,通过周期性上报也可对各节点的同步精度进行验证.

2) CNC节点对TSN交换节点进行远程配置.CNC节点可将TSN节点的配置信息(MAC地址表、CQF调度时间片大小等)写入Beacon帧中并通过数据通路(通过MAC地址与正常数据帧进行区分)发送到目的TSN节点.TSN节点收到该报文后对本地相关寄存器进行修改.

算法1. 全网当前时间同步精度time_precision().

输入:int N,int time_stamp[N];

输出:int error_range.

① while (i<N) begin

curr_frame=Beacon_recv();

③ if (curr_frame.seq==curr_seq) then

sent_time[i]=time_stamp[i]-

curr_frame.recover_time;

⑤ else

⑥ continue;

⑦ endif

⑧ endwhile

sort_desc(sent_time[i]);

time_precision=sent_time[0]-

sent_time[N-1];

return time_precision.

因此,Beacon在FlexTSN中支持2种CNC bridge的通信场景:周期性上报场景与写寄存器场景.周期性上报场景如图7(a)所示,Beacon协议支持TSN节点对本地参数(如规则表项、计数器等)向CNC集中控制节点以固定时间周期T进行上报.而写寄存器场景如图7(b)所示,支持CNC对TSN交换节点的流表规则、本地MAC地址进行写入或配置,并在下一个周期收到一个特定的响应帧,表明写入完成.需要注意的是,Beacon的写报文采用“完全覆盖”的方式对寄存器进行写操作,即当TSN节点收到CNC写报文时,使用报文中对应的寄存器值全部替换寄存器的当前值.该方式极大简化了控制协议的设计.

Fig. 7 Communication scenario of CNC-bridge using NMAC protocol

图7 CNC-bridge通过NMAC协议的通信场景

由于Beacon帧基于PTP帧进行扩展,因此PTP帧中的时间信息可便于在CNC节点根据上报的Beacon帧计算当前PTP的同步精度.一种可行的方法是对CNC节点接收到的同一序列号的Beacon帧记录时间戳,并将每个Beacon帧的时间戳减去Beacon帧中的修复时间域中的值,获取实际发送时间.由于全网中的交换节点已通过PTP协议与CNC节点进行对时,因此,取所有发送时间,得到最大的差值即为当前全网的时间同步精度.其伪代码如算法1所示.其中,N为当前网络中交换节点数量,time_stamp为接收Beacon报文时CNC的本地时间戳.

Beacon帧基于PTP协议帧进行扩展,并利用PTP帧头中的MsgType字段为0xE与0xF作为Beacon协议的上报帧与更新帧.另外,为了支持对尽可能多的本地状态进行上报,Beacon帧将PTP帧从64 B扩展为144 B,并可根据用户需求进行进一步扩展.

3.2 基于CQF的TSN输出调度机制

基于CQF的输出调度模型是目前TSN标准定义的可实现确定性交换延迟的一种转发模型.在FlexTSN中,我们在EOS模块中实现基于CQF模型的时间控制机制,提供一种基于FlexTSN的输出调度模型示例,满足用户使用FlexTSN进行非输出调度算法验证的需求.

为了简化CQF调度机制,从而便于用户对调度机制进行重构,FlexTSN中对CQF机制进行2点简化:

1) 简化Queue Select模块的入队流控机制,使用令牌桶代替802.1Q-2014中的基于信用整形机制(credit based shaper, CBS),从而减少用户使用时需要配置的参数个数;

2) 使用4个输出队列(时间敏感乒乓队列、带宽预留队列以及尽力转发队列)代替VLAN的PCP中定义的8种优先级队列,从而在满足不同优先级调度需求基础上减小FPGA片上存储资源的开销.

为了保证针对高优先级流(PCP值为6或7)的确定性转发,FlexTSN中采用时间片轮转(时间片大小可由CNC节点进行实时配置)的方式在Gate Ctrl模块中对2个高优先级乒乓队列进行门控选择.如图8所示.即在奇(偶)数时间片调度Q3队列输出,Q2队列不输出;在偶(奇)数时间片调度Q2队列输出,Q3队列不输出.则可知,在一个N跳的网络中,一个TSN分组的转发延迟为((N-1)T,(N+1)T).该机制可以保证FlexTSN为用户提供确定性时延的转发需求.

Fig. 8 The schematic diagram of ping-pong output scheduling

图8 乒乓队列调度输出示意图

4 原型验证

为了对FlexTSN的相关性能与功能正确性进行验证,我们基于OpenBox S4平台[12]对FlexTSN进行了原型系统验证,并对FAST架构下UM内部源码进行了开源[14].本节分别对FlexTSN原型系统的硬件资源开销、Beacon机制有效性以及简化的CQF转发模型的确定性交换效果进行FPGA系统验证.

4.1 资源开销分析与验证

为了保证能够运行在资源受限的FPGA上,并为用户预留足够资源用于自定义的算法验证,FlexTSN在同一时钟域中采取寄存器暂存而非FIFO的方式保证同步逻辑的时序控制,从而尽可能减小片上存储资源的开销.在FAST UM中,仅EOS模块包含了4个宽度为24 b、深度为16 b的FIFO用于支持TSN交换的门控与输出调度机制.基于OpenBox S4(采用Zynq7020 SoC)的一种FlexTSN的原型系统资源开销如图9与表2所示.

在基于OpenBox S4的FlexTSN原型系统中, LUT(look up table)与FF(flip flop)占比均不超过50%,资源开销最高的BRAM也不超过59%.该数据证明FlexTSN在设计与实现上尽可能节省了资源开销,有利于用户基于FlexTSN对更加复杂的算法进行系统验证.

Fig. 9 Resource consumption of FlexTSN based on Zynq7020

图9 基于Zynq7020的FlexTSN原型资源开销

Table 2 Detailed Resource Consumption of FlexTSN ased on Zynq7020

表2 基于Zynq7020的FlexTSN资源开销

类型用量用量在总量中的占比∕%LUT2553648.00FF3736835.12URAM00.00BRAM82.5058.93

4.2 PTP时间同步精度验证

Fig. 10 The topology of FlexTSN testbed

图10 FlexTSN验证平台拓扑

本节对基于PTP的时间同步精度进行验证,其验证平台如图10所示.在该验证平台采用环形拓扑,共包含2~6个TSN交换节点,并外接1个CNC控制节点与摄像头用于产生背景数据流量.主时钟为6个交换节点中任意1台,所有时间同步节点的FPGA时钟频率约束为125 MHz,时间同步的同步周期为200 μs.所有节点从同步后的零时刻开始,每间隔1 s向CNC节点上报1个Beacon帧,CNC节点根据第3节时间同步精度验证算法得到当前全网的同步精度.

为了得到时间同步精度与接入节点数量的关系,我们在环形拓扑中接入共6个FlexTSN节点,并在0号节点的2号端口接入管理节点借助Beacon机制对时间同步精度进行检查.实验中通过摄像头实时提供随机的背景流量.实验中,当主时钟接收到各节点上报的Beacon帧时,对各节点与主时钟(CNC节点)当前的同步精度进行检查,Beacon帧的上报频率设置为5 s.

各节点与主时钟的时钟同步偏移如图11所示.总体上,各节点与主时钟间的同步误差不超过32 ns,并且绝大多数结果都处于(0 ns,16 ns)之间.这验证了基于FlexTSN的时钟同步机制的良好精度,以及通过FlexTSN中的Beacon机制验证对时钟同步精度进行验证的可行性.

Fig. 11 The synchronized time precision of FlexTSN

图11 FlexTSN时间同步精度结果散点图

4.3 简化的CQF转发模型验证

在FlexTSN中,我们默认使用CQF模型支持的TSN的确定性转发的需求,本节对该模型的确定性转发效果进行验证.

根据第3节相关部分,CQF模型可以保证时间敏感流的确定性的转发.为了对基于FlexTSN的CQF调度转发模型进行验证,我们将时间槽设置为不同宽度,并使用开源网络测试仪ANT[17]用于产生不同分组长度的TSN流,并对经过不同转发设备数量的转发延迟进行测量,从而验证TSN流的端到端延迟能否达到((N-1)T,(N+1)T)的约束要求.

首先,我们使用测试仪连接0号与2号设备,从而保证由测试仪产生的TSN流仅经过2次CQF调度,使用测试仪产生长度为512 B的TSN流,并在重复实验中通过Beacon协议将CQF调度时间槽设置为131.072 μs.根据CQF调度机制原理,TSN流的延迟应当在(T,3T)之间.而实验中TSN流在该场景下的延迟如图12所示:

Fig. 12 Latency of TSN frames between node 0 and node 2

图12 由0号转发2号接收的TSN流延迟曲线

由图12显示,经过2个节点转发后产生的延迟全部位于(T,3T)之间,满足CQF转发的理论推导得到的延迟范围.通过对不同大小报文(64 B~1 500 B)与不同节点数量(1~5)进行延迟测试,可以得到所有的转发延迟都满足CQF转发的理论约束.

5 相关研究

2012年,IEEE 802.1的audio video bridging任务组[2]正式被TSN任务组代替[2].TSN的主要工作是定义在在标准以太网上提供确定性转发服务的IEEE标准集合,目标是对“确定性以太网”技术进行标准化,满足工业互联网的需求.目前TSN任务组已经发布的标准中,IEEE 802.1AS[7]用于进行LAN内亚微秒级的时钟同步;IEEE 802.1Qcc[9]设计分布式、集中式和混合式控制方式对流预约协议进行了规范;IEEE 802.1Qcr[9]中定义了per stream filter and policing[18](PSFP)机制进行逐流粒度的过滤与管控;IEEE 802.1Qbv[19]对多样化流量的调度机制进行了规范;另外,IEEE802.1Qbu[20]提出了TSN中的帧剥夺机制,避免低优先级流传输对高优先级流(时间敏感流)的实时性造成影响.目前,TSN任务组已经完成了13项标准的制定[10],仍有17项标准在制定过程中.因此,对TSN中相关关键技术的验证尤为重要.

然而,到目前为止还缺少一种提供给研究人员的灵活的TSN交换模型,从而能够快速搭建原型系统并基于此进行TSN关键技术的快速验证.NetFPGA[11]是由斯坦福大学与剑桥大学开发的一种以太网原型系统验证平台.其在FPGA上提供了针对以太网的2层抽象,便于用户基于verilog语言对分组进行处理.然而,NetFPGA并未针对TSN提供如时间同步、输出调度之类的可重用模块,使得基于NetFPGA进行TSN原型系统构建时间与工程开销较大.FAST[12]是一种基于CPU-FPGA的软硬协同的网络原型开发框架,相比较NetFPGA,FAST提供了更清晰的软硬件接口与模块化抽象,并与特定的FPGA板卡进行了解耦.然而,FAST同样未提供针对TSN原型系统敏捷开发与验证的架构和可重用模块支持.比如,根据FAST规范,时间同步将需要在UM模块中进行开发,由于无法记录从接口进入UM所需的时间,将会导致时间同步的准确性降低.因此,为了解决上述问题,FlexTSN针对FAST架构进行了重构,从而在FPGA平台上支持针对TSN关键技术的敏捷验证.

6 总 结

本文提出了一种基于FPGA的开源TSN验证模型FlexTSN.FlexTSN基于FPGA实现了一种包含时间同步、分组交换、输入调度、输出调度与资源状态管理功能的TSN交换节点原型系统,并且通过松耦合与模块化设计,便于用户对任意部分功能进行重构,从而支持TSN关键技术快速验证.另外,FlexTSN还支持基于扩展的PTP协议的遥测机制,便于用户对原型系统进行集中式的状态采集和远程调试.经过实验验证,FlexTSN能够极大方便用户基于FPGA对TSN关键技术进行敏捷验证.

参考文献

[1]Gao Wei. Industrial Internet promotes the integration of factory networks and the Internet[J]. ZTE Communication Technology, 2016, 22(5): 21-25 (in Chinese)(高巍. 工业互联网推动工厂网络与互联网融合发展[J]. 中兴通讯技术, 2016, 22(5): 21-25)

[2]Laursen S M, Pop P, Steiner W. Routing optimization of AVB streams in TSN networks[J]. ACM SIGBED Review, 2016, 13(4): 43-48

[3]Nasrallah A, Thyagaturu A S, Alharbi Z, et al. Ultra-low latency (ULL) networks: The IEEE TSN and IETF DetNet standards and related 5G ULL research[J]. IEEE Communications Surveys & Tutorials, 2018, 21(1): 88-145

[4]Bloks R H J. The IEEE-1394 high speed serial bus[J]. Philips Journal of Research, 1996, 50(1): 209-216

[5]Feld J. PROFINET—Scalable factory communication for all applications[C] Proc of Int Workshop on Factory Comm-unication Systems. Piscataway, NJ: IEEE, 2004: 33-38

[6]Jansen D, Buttner H. Real-time Ethernet—The EtherCAT solution[J]. Computing & Control Engineering, 2004, 15(1): 16-21

[7]Teener M D J, Garner G M. Overview and timing performance of IEEE 802.1AS[C] Proc of Int Symp on Precision Clock Synchronization for Measurement. Piscataway, NJ: IEEE, 2008: 49-53

[8]Lim H T, Herrscher D, Chaari F. Performance comparison of IEEE 802.1q and IEEE 802.1avb in an Ethernet-based in-vehicle network[C] Proc of the 8th Int Conf on Computing Technology and Information Management (NCM and ICNIT). Piscataway, NJ: IEEE, 2012: 1-6

[9]Gutiérrez M, Ademaj A, Steiner W, et al. Self-configuration of IEEE 802.1 TSN networks[C] Proc of the 22nd IEEE Int Conf on Emerging Technologies and Factory Automation (ETFA). Piscataway, NJ: IEEE, 2017: 1-8

[10]Lee H, Lee J, Park C, et al. Time-aware preemption to enhance the performance of AudioVideo Bridging (avb) in IEEE 802.1 TSN[C] Proc of the 1st IEEE Int Conf on Computer Communication and the Internet (ICCCI). Piscataway, NJ: IEEE, 2016: 80-84

[11]Lockwood J W, Mckeown N, Watson G, et al. NetFPGA--an open platform for gigabit-rate network switching and routing[C] Proc of Int Conf on Microelectronic Systems Education. Piscataway, NJ: IEEE: 2007: 160-161

[12]Yang Xiangrui, Sun Zhigang, Li Junnan, et al. FAST: Enabling fast softwarehardware prototype for network experimentation[C] Proc of Int Symp on Quality of Service (IWQoS). Piscataway, NJ: IEEE, 2019: 1-10

[13]Yang Xiangrui. FlexTSN project[OL]. [2019-06-27]. https:github.comfast-codesignFAST-TSN

[14]Chen Jiayi. Research and implementation of network clock synchronization system based on IEEE1588 protocol[D]. Beijing: Beijing University of Posts and Telecommunications, 2018 (in Chinese)(陈佳艺. 基于IEEE1588协议的网络时钟同步系统的研究及实现[D]. 北京: 北京邮电大学, 2018)

[15]Frantz P J, Thompson G O. VLAN frame format: US, US5,959,990[P]. 1999-09-28

[16]Nasrallah A, Thyagaturu A S, Alharbi Z, et al. Performance comparison of IEEE 802.1 TSN time aware shaper (TAS) and asynchronous traffic shaper (ATS)[J]. IEEE Access, 2019, 7(1): 44165-44181

[17]Yang Xiangrui, Jiang Yue. Agile network tester[OL]. [2019-06-27]. https:github.comWinters123antDev

[18]János F. Introduction to IEEE 802.1: Focus on the TSN task group[OL]. [2019-06-27]. http:www.ieee802.org1filespublicdocs2016tsn-farkas-intro-1116-v02.pdf

[19]Craciunas S S, Oliver R S, Chmelík M, et al. Scheduling real-time communication in IEEE 802.1 Qbv time sensitive networkings[C] Proc of the 24th Int Conf on Real-Time Networks and Systems. New York: ACM, 2016: 183-192

[20]Wan Tao, Ashwood-Smith P. A performance study of CPRI over Ethernet with IEEE 802.1 Qbu and 802.1 Qbv enhancements[C] Proc of IEEE Global Communications Conf (GLOBECOM). Piscataway, NJ: IEEE, 2015: 1-6

FlexTSN: A Flexible TSN Switch Implementation Model

Yang Xiangrui, Yan Jinli, Chen Bo, Peng Jintao, Li Junshuai, Quan Wei, and Sun Zhigang

(College of Computer Science and Technology, National University of Defense Technology, Changsha 410072)

Abstract TSN (time-sensitive networking) has gained increasing attention from both industry and academia because of its ability to enable deterministic switching and best effort switching in the same network. Compared with traditional Ethernet, TSN provides quite different mechanisms ranging from time synchronization, gate control mechanism, to time-aware scheduling. This enables the Ethernet to provide the packet forwarding service with deterministic delay. Currently, IEEE 802.1 TSN Group is working on over 17 standards and drafts about TSN. And academic researchers also put much effort into proposing novel mechanisms from frame preemption to flow scheduling. However, there are rare, if exist, general models that enable rapid prototyping of TSN system. And we find this is quite important for rapid design and validation of key technologies in TSN. In this paper, FlexTSN, a flexible TSN switch model with loose-coupling modular design for TSN evaluation, is proposed. The TSN switch pipeline is decoupled into general processing modules and time-aware modules for supporting the rapid building of TSN switches. Moreover, FlexTSN provides a light-weight high-reliable network management mechanism by extending the PTP synchronization protocol for fine-grained centralized network monitoring and configuration. Furthermore, a simplified CQF (cyclical queuing and forwarding) model is adapted based on the FlexTSN prototype. The evaluation result shows that FlexTSN can provide clear abstractions for re-design and rapid evaluation of novel mechanisms in TSN.

Key words FPGA; time-sensitive networking (TSN); model and implementation; deterministic forwarding; synchronization

收稿日期2019-11-08; 修回日期:2020-06-15

基金项目国家自然科学基金项目(61802417);之江实验室开放课题资助(2020LE0AB01)

This work was supported by the National Natural Science Foundation of China (61802417) and the Open Project Funding of Zhejiang Lab (2020LE0AB01).

通信作者孙志刚(sunzhigang@nudt.edu.cn)

中图法分类号 TP391

Yang Xiangrui, born in 1993. PhD candidate. His main research interests include progra-mmable network, data center network and time-sensitive networking.

杨翔瑞,1993年生.博士研究生.主要研究方向为可编程网络、数据中心网络以及时间敏感网络.

Yan Jinli, born in 1993. PhD candidate. His main research interests include time-sensitive networking, data center network and software-defined network.

严锦立,1993年生.博士研究生.主要研究方向为时间敏感网络、数据中心网络以及软件定义网络.

Chen Bo, born in 1996. Bachelor. His main research interests include time-sensitive networking and FPGA design.

陈 波,1996年生.学士.主要研究方向为时间敏感网络与FPGA设计.

Peng Jintao, born in 1995. Bachelor. His main research interests include time-sensitive networking and FPGA design.

彭锦涛,1995年生.学士.主要研究方向为时间敏感网络与FPGA设计.

Li Junshuai, born in 1995. Bachelor. His main research interests include time-sensitive networking and software-defined network.

李军帅,1995年生.学士.主要研究方向为时间敏感网络与软件定义网络.

Quan Wei, born in 1987. PhD, lecturer. His main research interests include time-sensitive networking, software-defined network and FPGA design.

全 巍,1987年生.博士,助理研究员.主要研究方向为时间敏感网络、软件定义网络、FPGA设计.

Sun Zhigang, born in 1974. PhD, professor. His main research interests include software-defined network, time-sensitive networking, network architecture, FPGA design and network security.

孙志刚,1974年生.博士,研究员.主要研究方向为软件定义网络、时间敏感网络、网络体系结构、FPGA设计以及网络安全.