虚拟桥接局域网修正案 12:时间敏感流的转发和排队增强
本标准允许网桥为时间敏感(即有界延迟和延迟变化)对损失敏感的实时提供性能保证时间音频视频(AV)数据流传输(AV流量)。它指定优先级再生和受控带宽队列耗尽算法。虚拟局域网 (VLAN) 标记编码的优先级值被分配在一起,以在支持 AV 流量的队列和支持非 AV 流量的队列之间隔离帧,从而允许同时支持 AV 流量和有线之间的其他桥接流量和无线局域网 (LAN)。为此,它
a)定义允许识别和维护流预留协议 (SRP-参见第 351 条) 域 (6.6.4) 的边界的状态参数
b) 指定在 SRP 域接收的帧中的优先级信息如何重新生成边界端口。
注 1 — 从 SRP 域外部传输到 SRP 域内部网桥的帧中的优先级被重新映射,以确保与预留无关的流量不会中断与预留相关联的流量。因此,进入 SRP 域且使用与保留流量类别相关联的优先级代码点值的流量将被重新映射到与保留流量类别无关的优先级代码点值。
c)指定如何使用优先级信息来确定流量用于时间敏感流的类。
d) 定义基于信用的整形器算法,以根据流预留对流量进行整形。
注 2——基于信用的整形器算法在出站队列上运行;为支持时间敏感的 AV 流量而指定的机制不涉及任何形式的入口计量或监管。
2.规范性参考
IEEE Std 802.1AXTM -2008,IEEE 局域网和城域网标准——链路聚合。
3.定义
本标准使用 IEEE Std 802 中定义的以下术语: — 终端站 —
注 1——延迟有时被称为帧延迟。
注 2——本标准中使用的术语帧是指数据帧,而不是视频帧。
3.5 流预留协议 (SRP) 域核心端口:作为给定 SR 类的 SRP 域成员的站的端口,并通过作为活动拓扑一部分的单个 LAN 连接到端口属于该 SR 类的同一 SRP 域的成员的工作站。注意——术语 SRP 域在 6.6.4 中定义。
3.6 时间敏感流:需要以有限延迟传送的数据帧流。
4. 缩略语
AV 音频/视频
AVB音频/视频桥接
CSN协调共享网络
FQTSS 转发和队列增强
SR 流预留
SRP 流预留协议
TSpec 流量规范
5.一致性
5.4.1 VLAN 感知网桥组件选项
p) 支持时间敏感流的转发和排队 (5.4.1.5)。
5.4.1.5 时间敏感流的转发和排队 - 要求
符合本标准规定的 VLAN 感知桥组件实现,用于时间敏感的转发和排队流应:
a)在所有端口上至少支持两个流量类别,其中 1) 至少一个流量类别支持传输选择的严格优先级算法 (8.6.8.1),以及 2) 一个流量类别是 SR 类别.
b)支持在所有端口上运行基于信用的整形算法(8.6.8.2)作为用于 SR 类的传输选择算法。 c) 支持 6.9.4 中定义的 SRP 域边界端口优先级再生覆盖,以及表 6-6 中定义的默认优先级再生覆盖值,用于 SR 类“B”。
d)支持将优先级映射到第 34.5 节中定义的流量类别的表格和程序。
符合本标准规定的用于时间敏感流的转发和排队的 VLAN 感知桥组件实现可以:
e)通过 17.7.13 中定义的 SNMP MIB 模块支持 12.21 中定义的管理实体。
f)支持两个或更多 SR 类(最多 7 个),并支持在所有端口上运行 creditbased shaper 算法(8.6.8.2)作为用于这些 SR 类的传输选择算法。支持的 SR 类的数量应在 PICS 中说明。
g)支持 6.9.4 中定义的 SRP 域边界端口优先级再生覆盖,以及表 6-6 中定义的默认优先级再生覆盖值,用于 SR 类“A”。如果支持两个以上的 SR 等级,用于附加 SR 等级的默认优先级再生覆盖值应在 PICS 中说明。
5.18 终端站要求——时间敏感流的转发和排队 符合本标准规定的时间敏感流转发和排队的终端站实现应:
a) 在所有端口上至少支持两个流量类别,其中 1) 至少一个流量类别支持传输选择的严格优先级算法 (8.6.8.1),以及 2) 一个流量类别是 SR 类别。
b) 支持基于信用的整形算法(8.6.8.2)的操作,作为传输选择算法,用于为与 SR 类相关的每个流传输的帧。
c) 支持在所有端口上运行基于信用的整形算法(8.6.8.2)作为用于 SR 类的传输选择算法。
d) 使用与 SR 类“B”相关的默认优先级,如表 6-6 所示,作为传输的 SR 类“B”数据帧中携带的优先级值。符合本标准对时间敏感流的转发和排队规定的终端站实现可以:
e) 支持两个或更多 SR 类(最多七个),并支持基于 credits 的整形算法的操作 (8.6. 8.2) 在所有端口上作为用于那些 SR 类的传输选择算法。支持的 SR 类的数量应在 PICS 中说明。
f) 使用与 SR 类“A”相关的默认优先级,如表 6-6 所示,作为传输的 SR 类“A”数据帧中携带的优先级值。如果支持两个以上的 SR 类别,则在 PICS 中应说明附加 SR 类别的传输数据帧中携带的优先级值。
6. MAC 服务的支持
6.6 内部子层服务
6.6.4 流预留协议 (SRP) 域状态参数 流预留协议 (SRP) 域是一组站(终端站和/或网桥)、它们的端口和连接的单个 LAN,它们满足给定 SR 类的所有以下条件: a) 传输流的那些站都支持 8.6.8 中定义的基于信用的整形算法,作为传输SR类的选择方法。 b) 站都支持第 35 条中定义的 SRP,作为为 SR 类创建带宽预留的方法。 c) 那些传输流的站都将相同的优先级值与 SR 类别相关联。 d) 集合中的每个端口要么是 SRP 域核心端口,要么是 SRP 域边界端口。 e) 集合中的每个 SRP 域核心端口通过作为活动拓扑一部分的单独 LAN 连接到集合中另一个站的 SRP 域核心端口。在支持流预留协议 (SRP) 的网桥中,对于网桥支持的每个 SR 类,一个 SRPdomainBoundaryPort 参数与网桥的每个端口相关联。每个 SRPdomainBoundaryPort 参数都有一个布尔值。如果 SRP 的操作已确定该端口是该 SR 类的 SRP 域边界端口 (3.4),则给定 SR 类的 SRPdomainBoundaryPort 参数的值为 TRUE;否则,该端口要么是该 SR 类的 SRP 域核心端口 (3.5),要么不是该 SRP 域的一部分,并且 SRPdomainBoundaryPort 参数值为 FALSE。
6.9 EISS 的支持
6.9.4 重新生成优先级
使用帧中包含的优先级信息和优先级再生表重新生成每个接收帧的优先级为接收端口。对于每个接收端口,优先级再生表有八个条目,对应于八个可能的优先级值(0 到 7)。对于给定的接收优先级值,每个条目指定相应的重新生成值。对于未标记的帧,在相应的 M_UNITDATA.indication 中发出信号的优先级参数被视为接收到的优先级。对于带标签的帧,在标签头的 PCP 字段中表示的优先级被视为接收的优先级。
注 1——IEEE 802 LAN 技术最多发送八个优先级值。附件 G 进一步解释了优先级值的使用以及它们如何映射到流量类别。表 6-5 为接收到的优先级的八个可能值中的每一个指定了默认重新生成的优先级值。这些默认值应用作每个端口的优先级再生表的相应条目的初始值。管理层可以修改优先级再生表中的值,如第 12 条所述。如果提供了这种能力,则表条目的值应为每个接收端口和每个接收到的优先级值独立设置,并且网桥应能够使用表 6-5 中规定的参数范围内的全部值。
注 2——网桥内优先级的再生和映射应与该优先级在桥接局域网的其余部分中的端到端重要性一致。重新生成的优先级值用于:通过流量类别表 (8.6.6) 确定给定出站端口的流量类别,以及通过固定的、特定于 MAC 类型的映射 (6.7) 确定将要访问的访问优先级用于某些媒体访问方法。
在支持 SRP 的网桥中,为每个接收端口维护一个 SRP 域边界端口优先级再生覆盖表。此表将优先级值与网桥支持的每个 SR 类相关联,并指定优先级值用作重新生成的优先级,优先于 Priority Regeneration 表中的值,当该 SR 类的 SRPdomainBoundaryPort 参数具有值时真的。表 6-6 指定了两个 SR 类(SR 类 A 和 SR 类 B)的优先级和重新生成优先级的默认值。在仅支持 SR 类 B 的情况下,仅使用表中显示的 SR 类 B 的默认值。
包含在 SRP 域边界端口优先级再生覆盖表中的优先级值可以由管理人员修改,如第 12 章所述。如果提供此能力,则表条目的值应为每个接收端口和每个支持的端口独立设置SR 类,并且网桥应能够使用表 6-6 中指定的参数范围内的全部值范围。
注 3—为 SRP 域边界端口优先级重新生成表指定的默认值将入站 PCP 值映射到可用的下一个最低优先级,其余优先级值保持不变。这种重新映射的结果是进入带有与该域相关联的优先级值的 SRP 域的流量由域边界处的网桥使用较低优先级转发。当帧从 SRP 域退出时,无法将这些优先级值映射回其原始值。默认映射基于以下假设:通常,两个 SR 类(A 和 B)用于支持已预留带宽的流量;如果仅支持较低的类 (B),则不适用不支持的 A 类的默认覆盖值。
注 4——优先级再生表可以由管理层自由修改,这意味着可以创建映射,使保留和非保留流量共享相同的优先级。这将对网络的行为产生不可预知的影响,即可以为保留流量假设的最坏情况延迟。
8.桥接操作的原理
8.6 转发过程
8.6.6 排队帧
转发过程为排队的帧提供存储,等待提交这些帧以供传输。
a)具有给定 VID、优先级以及目标地址和源地址组合的单播帧应保留在同一桥接端口上接收的帧顺序;
b)具有给定 VID、优先级和目标地址的多播帧。
转发过程为给定的桥接端口提供一个或多个队列,每个队列对应于不同的流量类别。使用端口的流量类别表和帧的优先级将每个帧映射到一个流量类别。可以管理流量类别表。表 8-3 显示了在不支持基于信用的整形器传输选择算法 (8.6.8.2) 的实现中实现的类数量的推荐映射。在支持基于信用的整形器传输选择算法的实现中,对流量类映射的优先级要求在 34.5 中定义。最多可支持八个流量类别,允许为每个优先级设置单独的队列。
注——这些映射的基本原理在附录 G(资料性)中讨论。
注意——不同的端口可以实现不同数量的流量类别。具有支持单一传输优先级的媒体访问方法(例如 CSMA/CD)的端口可以支持多个流量类别。
8.6.8 传输选择 对于每个端口,根据该端口支持的流量类别和该端口上相应队列支持的传输选择算法的操作选择帧进行传输。对于给定的端口和支持的流量类别值,当且仅当 a) 该队列支持的传输选择算法的操作确定有帧可用于传输时,才会从相应的队列中选择帧进行传输; b) 对于每个对应于端口支持的数值较高的业务类别值的队列,该队列支持的传输选择算法的操作确定没有可用于传输的帧。
8.6.8.1 中定义的严格优先传输选择算法应被所有网桥支持作为选择传输帧的默认算法。除了严格优先级算法之外,还可以支持 8.6.8.2 中定义的基于信用的整形器传输选择算法。只要满足 8.6.6 的要求,可由管理装置选择的进一步传输选择算法可以是实施选项。给定端口的传输选择算法表为端口支持的每个流量类别分配传输选择算法,该算法将用于从相应队列中选择用于传输的帧。可以管理传输选择算法表,并允许识别供应商特定的传输选择算法。传输选择算法在传输选择算法表中通过整数标识符进行标识,如表 8-4 中所定义。
在不支持基于信用的整形器传输选择算法的实现中,传输选择算法表的推荐默认配置是将严格优先级传输选择算法分配给所有支持的流量类别。在支持基于信用的整形器传输选择算法的实现中,传输选择算法表的推荐默认配置在 34.5 中定义。
8.6.8.1 严格优先级算法
对于支持严格优先级传输选择的给定队列,如果队列包含一个或多个帧,该算法确定有一个帧可用于传输。从队列中选择帧进行传输的顺序应保持 8.6.6 中规定的顺序要求。
8.6.8.2 基于信用的整形器算法
对于支持基于信用的整形器传输选择的给定队列,如果以下条件都为真,该算法确定一个帧可用于传输:
a) 队列包含一个或多个帧。
b) 队列的transmitAllowed 信号为TRUE。
从队列中选择帧进行传输的顺序应保持 8.6.6 中规定的顺序要求。
以下外部参数与支持基于信用的整形算法操作的每个队列相关联:
c) portTransmitRate。支持通过端口传输的底层 MAC 服务提供的传输速率,以比特/秒为单位。该参数的值由 MAC 的操作决定。
d) 空闲坡度。当信用值增加时(即,当传输为 FALSE 时)信用的变化率,以每秒比特数为单位。 idleSlope 的值永远不能超过 portTransmitRate。给定队列的 idleSlope 值由该队列的 operIdleSlope(N) 参数值确定,如 34.3 中所定义。以下内部参数与支持基于信用的整形器算法的每个队列相关联:
e) 传输。在从队列中传输帧的持续时间内取值为 TRUE;当队列中的任何帧传输完成时为 FALSE。
f)信用。当前可用于队列的传输信用,以比特为单位。如果在任何时候队列中都没有帧,并且传输参数为 FALSE,并且 credit 为正,则 credit 设置为零。
g) 发送斜率。当信用值减少时(即,当传输为真时)信用的变化率,以每秒比特数为单位。
sendSlope 的值定义如下: sendSlope = (idleSlope – portTransmitRate)
h) transmitAllowed。当 credit 参数为零或正时取值为 TRUE;当信用参数为负时为 FALSE。注 1——信用值自然受算法操作参数的限制,也受使用该算法的任何更高优先级队列的操作的限制。 credit 可以达到的最低值取决于 sendSlope 和将从队列中传输的最大帧。这个最大的帧大小是使用队列传输的流量类型的结果,而不是算法或管理施加的限制。可以在信用中累积的最高值取决于 idleSlope 以及当队列不为空且有其他流量通过端口传输时算法可能必须等待的时间长度;对于任何给定的队列,该时间长度是有界的,如附录 L 中所讨论的,该附录 L 还说明了算法如何在不同条件下运行,以及它的运行如何影响 SR 流量可以经历的最大延迟。
注 2——为了使基于信用的整形算法按预期运行,支持该算法的所有流量类别在数值上必须高于支持 8.6.8.1 中定义的严格优先级算法的任何流量类别。优先级到业务类别的映射,以及支持特定传输选择算法的业务类别的选择在 34.5 中定义。
8.8 过滤数据库
过滤数据库支持通过转发进程进行帧过滤(8.6.3)查询,以确定接收到的帧是否具有给定的目标 MAC 地址和 VID 值,是否要通过给定潜在的传输端口(8.6.2、8.6.3、8.6.4)。它 过滤数据库包含过滤条目形式的过滤信息,这些条目要么是
a) 静态的,要么由管理操作显式配置;或者
b) 动态的,通过网桥的正常运行和它支持的协议自动进入过滤数据库。
两种条目类型用于表示静态过滤信息。静态过滤条目代表过滤数据库中个人和组 MAC 地址的静态信息。它允许对
c)具有特定目标地址的帧的转发进行管理控制;
d) 在过滤数据库中包含与扩展过滤服务相关的动态过滤信息,以及该信息的使用。
过滤数据库应包含静态过滤条目类型的条目。静态 VLAN 注册条目代表 VLAN 过滤数据库中的所有静态信息。它允许对
e) 具有特定 VID 的帧的转发进行管理控制;
f) 在转发帧中包含/删除标签头;
g) 在过滤数据库中包含动态 VLAN 成员信息,以及该信息的使用。
过滤数据库可能包含静态 VLAN 注册条目类型的条目。静态过滤信息仅在显式管理控制下添加、修改和从过滤数据库中删除。它不应被任何老化机制自动去除。静态过滤信息的管理可以通过使用桥管理(8.12)提供的远程管理功能,使用第 12 章中规定的操作来执行。
四种条目类型用于表示动态过滤信息:
h)每个动态过滤条目都指定了一个端口,通过该端口已经或可以接收到具有给定单个源 MAC 地址和 VID 的帧。动态过滤条目可以由学习过程 (8.7) 创建和更新。由学习过程更新并会被过滤数据库老化和删除的条目。
i) MAC 地址注册条目支持 MAC 地址的注册。它们由 MMRP 协议创建、更新和删除以支持扩展过滤服务(8.8.4;和第 10 条),如果 Restricted_MAC_Address_Registration 管理控制 (10.12.2.3) 为 TRUE,则不允许创建 MAC 地址注册条目,除非存在允许相关 MAC 地址动态注册的静态过滤条目。
j) 动态 VLAN 注册条目用于指定 VLAN 成员已动态注册的端口。它们由 MVRP 协议创建、更新和删除,以支持自动 VLAN 成员资格配置(第 11 条),受 Restricted_VLAN_Registration 管理控制 (11.2.3.2.3) 的状态约束。如果该控件的值为 TRUE,则不允许创建动态 VLAN 注册条目,除非存在允许相关 VLAN 动态注册的静态 VLAN 注册条目。
k) 动态预留条目用于指定已进行流预留的端口。它们由第 35 条中定义的 SRP 操作创建、更新和删除。
静态过滤条目和 MAC 地址注册条目包括
l) MAC 地址规范; m) VLAN 标识符(VID);
n) 端口映射,每个出站端口都有一个控制元素,以指定对该 MAC 地址规范和 VID 的过滤。动态过滤条目包括
o) MAC 地址规范;
p) 局部有效过滤标识符(FID;见 8.8.9);
q) 端口映射,每个出站端口都有一个控制元素,用于指定在分配给该 FID 的 VLAN 中对该 MAC 地址规范的过滤。
动态过滤条目中的端口映射可能包含每个出站端口的 connection_identifier (8.8.11)。静态和动态 VLAN 注册条目包括
r) VLAN 标识符;
s) 端口映射,每个出站端口都有一个控制元素,用于指定 VLAN 的过滤。
动态保留条目包括
t) MAC 地址规范;
u) 一个视频;
v) 端口映射,每个出站端口都有一个控制元素,以指定对 VLAN 标识符指定的 VLAN 中的 MAC 地址规范的过滤。
动态过滤信息可以通过使用桥管理(8.12)提供的远程管理功能使用第 12 条中指定的操作来读取。
桥支持的过滤服务(基本和扩展过滤服务)确定桥的默认行为关于以组 MAC 地址为目的地的帧的转发。在支持扩展过滤服务的网桥中,组 MAC 地址、每个端口和每个 VID 的默认转发行为可以通过静态过滤条目和/或 MAC 地址注册条目进行静态和动态配置,这些条目可以携带遵循 MAC 地址规范:
w) 所有组地址,不存在更多特定的静态过滤条目;
x) 所有未注册的组地址(即,不存在 MAC 地址注册条目的所有组 MAC 地址),不存在更具体的静态过滤条目。
注 1——项目 sw) 中的所有组地址规范,当在具有适当控制规范的静态过滤条目中使用时,提供了将支持扩展过滤服务的网桥配置为仅支持基本过滤服务的网桥的能力。它的部分或全部端口。这可能是出于以下原因:
— 相关端口为希望接收多播流量但无法注册组成员资格的“传统”设备提供服务;
— 相关端口为需要接收所有多播流量的设备提供服务,例如路由器或诊断设备。
过滤数据库应支持通过学习过程(8.7)创建、更新和删除动态过滤条目。在支持扩展过滤服务的网桥中,过滤数据库应支持 MMRP(第 10 条)创建、更新和删除 MAC 地址注册条目。
在支持 SRP 的网桥中,过滤数据库应支持 SRP 对动态预留条目的创建、更新和删除(第 35 条)。
图 8-3 说明了转发进程在具有两个端口的网桥端口之间的帧中继的单个实例中使用过滤数据库。
图 8-4 说明了学习过程在过滤数据库中创建或更新动态条目。过滤数据库中的条目允许通过将 MAC 地址与获知该地址的 VLAN 或 VLAN 组相关联,为每个 VLAN 或 VLAN 组独立地学习 MAC 地址信息。
注 2——创建与 VLAN 相关的过滤数据库条目的能力允许网桥支持
——具有相同单独 MAC 地址的多个终端站驻留在不同的 VLAN 上;
— 具有多个接口的终端站,每个接口使用相同的单独 MAC 地址,只要不超过一个使用给定 MAC 地址的终端站或接口驻留在给定 VLAN 中。图 8-5 说明了生成树协议实体 (8.10) 的操作,该实体操作生成树算法和协议,并通知过滤数据库由该协议发出的活动拓扑变化的通知。
在声称符合本标准的实现中,过滤数据库的大小没有标准化限制。附件 A 中的 PICS 形式要求为给定的实现指定以下内容:
y) 条目总数(静态过滤条目、动态过滤条目、MAC 地址注册条目、静态 VLAN 注册条目和动态 VLAN 注册条目,以及过滤数据库的实现可以支持的动态保留条目,以及
z) 在该总数中,过滤数据库可以支持的 VLAN 注册条目(静态和动态)的总数。
适用于目标 MAC 地址是特定组 MAC 地址的帧的过滤数据库条目(如果存在)是静态过滤条目和 MAC 地址注册条目(对于帧的 VID 和通配符 VID),其地址规范是该组 MAC地址或“所有组地址”或“所有未注册的组地址”。仅当特定 VID 没有适用的静态过滤条目时,通配符 VID 的静态过滤条目才适用,MAC 地址注册条目不使用通配符 VID。表 8-6 指定了给定出站网桥端口已注册或未注册的结果,组合“所有组地址”的条目和组合“所有未注册的组地址”的条目。表 8-7 将这些结果与特定组 MAC 地址的条目相结合。 “所有组地址”的表 8-6 的结果可以总结如下:
— 如果“所有组地址”的静态条目和帧的 VID 指定转发(固定注册),那么“所有组地址”被注册;
— ELSE 如果“所有组地址”的静态条目和帧的 VID 指定过滤器(禁止注册),则“所有组地址”未注册;
— ELSE 如果“所有组地址”的动态(MAC 地址注册)条目和帧的 VID 指定转发(已注册),则“所有组地址”已注册;
— ELSE“所有组地址”未注册。
注 1——“所有未注册的组地址”的结果是通过用该地址规范替换整个摘要中的“所有组地址”来给出的
表 8-7 的结果可以总结如下:
— IF 特定组地址的静态条目和帧的 VID 指定 Forward THEN Forward;
— ELSE IF 特定组地址的静态条目和帧的 VID 指定 Filter THEN Filter;
— ELSE IF 特定组地址的静态条目和通配符 VID 指定 Forward THEN Forward;
— ELSE IF 特定组地址的静态条目和通配符 VID 指定 Filter THEN Filter;
— ELSE 如果“所有组地址”的表 8-6 结果已注册,则转发;
— ELSE 如果“所有未注册的组地址”的表 8-6 结果已注册,则转发;
— ELSE IF 针对特定组地址的动态(MAC 地址注册)条目和帧的 VID 指定 Forward THEN Forward;
—ELSE 过滤器。
当转发或过滤带有目的组 MAC 地址的帧时,可识别 VLAN 的网桥可以:
a) 忽略 VID 到 FID 的分配,直接使用表 8-7 作为帧的 VID;或
b) 对分配给任何给定 FID 的所有 VID 采取相同的决定,如果表 8-7 为分配给与帧的 VID 相同的 FID 的任何 VID 指定转发,则转发,否则进行过滤。
对于给定的目标 MAC 地址和 VID,过滤数据库中可能存在动态预留条目 (8.8.7),通过其端口映射指示哪些端口具有有效的带宽预留。如果过滤数据库中存在该 MAC 地址和 VID 的动态预留条目,则动态预留条目中的端口映射用于防止帧在不存在预留的端口上转发。表 8-8 将表 8-5(对于单个 MAC 地址)或表 8-7(对于组 MAC 地址)的输出与动态预留条目相结合,以指定具有该目标 MAC 的帧的转发或过滤通过出站端口的地址和 VID。
注 2——如果组 MAC 地址用作保留流量的目标地址,SRP 使用的保留机制将防止使用相同的 MAC 地址和 VID 组合为多个流进行保留。然后,动态保留条目可以控制与 MAC 地址和 VID 关联的流被允许通过哪些端口传输。防止多个流使用同一组 MAC 地址/VID 的限制是必要的,因为这些不同的流可能发往不同的目标端口;如果不施加限制,则无法区分哪些帧属于哪些流,因此无法区分它们应该通过哪些端口传输。