在802.1Q-2014定义的以太网交换基本模型基础上,针对TSN的特定需求,802.1Qci和802.1Qbv修订对交换模型中分组输出缓存的入队列操作和出队列调度机制进行了扩展,通过使用门控时间列表等机制对时间敏感分组入队和出队操作进行了限制。

FAST 3.0的流水线可以在保持现有模块不变前提下,通过按需扩展插入新的模块支持用户定制的功能,因此可以方便地将TSN交换处理流程映射到FAST流水线上实现。

一、TSN交换处理流程

(1)标准以太网交换流程

802.1Q-2014定义了标准以太网的交换流程,如下图所示。处理流程主要包含10个模块,每个模块的功能见下表。

序号 模块号 功能
1 拓扑管理 处理生成树协议帧,源MAC地址学习。
2 输入过滤 判断输入接口是否在到达帧VID对应的接口集合中,若不在,则丢弃分组。
3 转发交换 根据目的MAC和VID等确定输出接口集合。
4 输出过滤 判断输出接口集合是否在VID对应的接口集合中,去除不在VID端口集合中的输出接口。
5 流量测量 根据目的MAC,VID,源MAC等信息对流量进行测量(metering)。
6 队列选择 根据优先级选择缓存分组的输出队列。
7 输出队列 定义了8个输出队列,分别存放不同优先级分组,例如best effort分组存放在0号队列,视频和音频分组分别存放在3号和4号队列,关键业务分组存放在最高优先级的7号队列。
8 队列管理 根据队列的状态和分组的属性决定是否丢弃分组。
9 输出调度 选择输出分组,支持优先级调度,加权调度等算法。
10 发送控制 将调度的分组发往以太网的MAC层输出

802.1Q规范没有明确定义流量测量的粒度,无法对进入网络的流量进行细粒度的测量和管控。虽然支持多种输出调度算法,但更多是保证输出调度的优先级,或者按照预先确定的权值分配不同优先级队列占用的输出带宽,在调度中没有利用全局时间信息,无法实现确定性的延时控制。软件定义网络技术的应用可以简化交换流程,将生成树管理以及地址学习功能上载到控制器上实现,可以针对每条细粒度的流定义交换行为,但也难以实现确定性的延时控制。

标准的帧交换流程及其TSN扩展

(2)TSN对以太网交换流程的扩充

针对确定性交换的目标,TSN主要在时间同步(802.1AS)、单流的过滤和管控(802.1Qci,Per-Stream Filtering and Policing),时间敏感流量的调度(802.1Qbv Enhancement for scheduled traffic)以及帧剥夺(802.1Qbu)四个方面对标准以太网交换流程进行增强,除了时间同步标准外,其他三个标准都成为802.1Q的修订,并合并到最新的802.1Q-2018中。

时间同步机制采用IEEE 1588的PTP协议,为分组进入队列和输出调度的时间门控逻辑提供精确的全局同步时间。

TSN在转发流程中扩充的单流过滤和管控(PSFP)机制主要实现三个功能,一是单流测量,使用令牌桶机制测量到达的每条流得流量和最大帧长度是否超过预定合约;二是时间门控队列选择机制,即将全局时间(分组到达的时刻)加入队列选择算法中考虑,重新计算分组内部优先级,并根据内部优先级而不是分组VLAN头或IP头中携带的外部优先级选择输出队列号;三是入队测量,基于令牌桶机制对进入特定队列的流量进行测量,保证进入相应队列缓存的分组流量满足一定的合约。

输出时间门控机制将全局时间用于输出调度,对于保存时间敏感帧的特定队列,是有在制定时刻才会打开。输出门控机制实际上是为每个输出队列设置了一个开关,只有开关打开时,队列调度请求才会发送到输出调度模块,该队列中的调度请求才能被响应。

帧剥夺机制主要是避免低优先级的长帧在发送时占用输出接口,影响高优先级帧的发送。例如在某个时刻,高优先级队列门的状态由关闭变成打开,因此输出调度逻辑可调度该队列中的高优先级帧发送。若在高优先级队列门打开前,一个低优先级的帧刚刚被调度,则该帧的发送可以立刻终止,在高优先级帧发送完成后,低优先级的帧可以继续发送。为了使以太网的MAC层支持帧剥夺机制(支持一个帧分多次发送,MAC层负责这些分片的重新组合),802.3工作组也推出了相应的规范(802.3br)。

二、FAST-TSN实现模型

FAST基本流水线包含协议解析(GPP),关键字提取(GKE),匹配查表(GME),通用动作(GAC)和通用输出控制(GOE)五个基本的模块,可为TSN交换提供基本的分组处理功能。而时间同步,以及流的测量整型、时间门控和输出调度逻辑分别由用户定义的PTP UDA、CFQ UDO和PTPUDO模块实现,如下图所示。

 

基于FAST-TSN交换实现模型

FAST-TSN模型的特点是:

  1. 在硬件流水线中插入PTP协议处理模块,完全由硬件实现PTP同步帧(sync/delay-req/delay-resp帧)处理,不需要软件参与,因此支持频率更高的时间同步操作,可获取优于100ns的同步精度。
  2. 将TSN的PSFP机制中的流分类和单流测量映射到FAST基本流水线中实现,通过GME实现基于五元组的流分类功能,为每个分组分配一个flowID并填写到分组的元数据中,后续的GAC、GOE和UDO模块可以利用flowID进行相关的操作。
  3. 采用独立的UDO模块实现核心的TSN门控和调度机制,通过UDO模块的重构可以支持多种TSN实现模型,满足不同TSN交换场景的需求。我们实现的CQF-UDO模型可以保证确定性的端到端交换延时。

我们将在后续文章中,对TSN的CQF转发模型,以及PTP UDA、PTPUDO以及CFQ UDO模块的功能实现进行详细介绍。

分类: TSN switch

发表评论

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