34.1 Overview
本章描述了一组可以用于支持对time-sensitive streams 的转发(forwarding)和排队(queuing)要求。在本章,“time-sensitive stream”是指从单个source station,发往已过或多个destation stations的traffic stream,其中,该traffic stream对timely delivery敏感,特别是需要transmission latency。这样的streams包括videa 或者audio data streams,在receiving station中期望对buffering 数量的限制。
为了解决Bridge中此类流量的需求,the following are provided:
a)一种检测一组支持SRP(SRP域)的网桥与不支持SRP的周围网桥之间的边界的方法。(该mechanism 34.2介绍);
b)每个端口的一组parameters 用来记录给定outboud queue中可用的最大带宽以及该队列保留的实际带宽。(该parameter 34.3介绍)
c)在8.6.8.1中定义的credit-based shaper algorithm,用于根据已保留在给定outband queue中的bandwidth来整形(shape)基于stream的traffic;
d)在layer2一个frame中的“paylord”(MSDU)的大小与在特定端口上传输该MSDU时将消耗的实际带宽之间的关系的一个descussion (34.4)介绍。
e)用于确定与接收到的帧相关的优先级到网桥的传输端口上可用的流量类别的一种算法(34.5介绍)。
f)在end station所需要的行为的definition,充当time-sensitive data stream的source。
34.2 Detection of SRP domains
AV streams 的概念,Stream Reservation Protocol(SRP),以及支持traffic 传输的 forwarding 和shaping function(参考6.9.4和8.6.8.1),依赖于每个bridge检测其每个端口是否可用的能力。 处于在特定优先级上支持SRP的连接网桥区域的边缘,因此与进入SRP域(3.176)的流量相关联的优先级代码点(PCP)值可以在该域的边界处适当地重新生成,例如 在6.9.4中描述。
Bridge 通过observing SRP的behavior来检测SRP domain,如果一个Bridge通过一个特定的priority接收到了一个SRP registrations,那么就可以合理的认为他们是从具有SRP功能的device中接收的。因此,SRP engine能够发信号通知Bridge的哪些端口位于SRP domain的边界。per-port, per-SR class,SRPdomainBoundaryPort 参数决定是否将port视为在SRP domain的edge或者是domain的core内,如6.6.4中所定义。这些参数由SRP的操作控制。
34.3 The bandwidth availability parameters
对于支持基于 credit-based shapter algorithm的每个Port和每个 traffic class N,存在以下带宽可用性参数。
a) portTransmitRate ,as defined in 8.6.8.2;
b) deltaBandwidth(N): 除了与较高优先级队列关联的deltaBandwidth(N)值之外,可以保留附加带宽(表示为portTransmitRate的百分比),以供与流量类别N相关联的队列使用。 对于给定的流量类别N,可以保留的总带宽是流量类别N和所有较高流量类别的deltaBandwidth值的总和,减去支持基于信用整形算法的较高流量类别所保留的任何带宽(请参阅34.3.1)。
c) adminIdleSlope(N): 管理已请求保留以与流量类别N相关联的队列使用的带宽(以每秒比特数为单位)。如果SRP正在运行,则此参数无效;否则,此参数无效。 如果SRP未运行,则operIdleSlope(N)的值始终等于adminIdleSlope(N)的值。
d) operIdleSlope(N): 当前保留给与流量类别N相关联的队列使用的实际带宽(以每秒比特为单位)。基于信用的整形算法(8.6.8.2)使用此值作为相应队列的idleSlope。
在所有情况下,带宽是根据通过端口传输帧时消耗的实际带宽来定义的,而不是根据这些帧中携带的MSDU“有效负载”的大小来定义。 34.4讨论了MSDU大小与实际消耗的带宽之间的关系
34.3.1 Relationships among bandwidth availability parameters
对于支持的编号最高的流量类别,建议的deltaBandwidth(N)默认默认值为75%,对于任何编号较低的流量类别,建议的默认值为0%。 给定N的deltaBandwidth(N)以及任何更高优先级队列(N的较大值)的deltaBandwidth(N)值定义了可为该队列和所有更高优先级队列保留的端口带宽的总百分比。 对于最高优先级队列,这意味着operIdleSlope(N)的最大值为portTransmitRate的deltaBandwidth(N)%。 但是,如果operIdleSlope(N)实际上小于此最大值,则任何支持基于信用的整形算法的较低优先级队列都可以利用较高优先级队列未使用的可保留带宽。 因此,对于队列N-1,(operIdleSlope(N)+ operIdleSlope(N-1))的最大值为portTransmitRate的(deltaBandwidth(N)+ deltaBandwidth(N-1))%。
34.3.2 Bandwidth availability parameter
deltaBandwidth(N) 和adminIdleSlope(N)的值能够使用12.20中定义management来更改。如果支持在SRP中定义的(流预留机制)stream reservation mechanisms , 那么operIdleSlope(N)的值仅由SRP的操作确定。如果不支持stream reservation mechanisms,那么operIdleSlope(N)的值等于management在相应adminIdleSlop(N)参数中请求的值。
由于基础MAC服务的正常运行(例如,由于IEEE 802.1AX链路聚合的操作,或者由于带宽的动态变化, 物理层技术本身的功能,例如无线局域网技术中可能发生的情况)port的portTransmitRate值可能会发生变化; management也可以更改port的deltaBandwidth(N)的值。 不论发生哪种情况,结果都可能是以下之一:
a)端口的operIdleSlope(N)值的总和现在可以超过该端口允许的总可预留带宽,或者给定队列的operIdleSlope(N)值现在可以超过该队列允许的可预留带宽(已定义) 在34.3.1。 因此,端口上可能存在当前活动的流,这些流不再受支持。
b)现在给定队列可用的带宽可能意味着端口上当前支持某些当前不活动的流。
c)更改后继续受支持的活动流可能会看到其延迟保证发生更改。
无论哪种情况,都需要通过管理或SRP中定义的流保留机制采取纠正措施,以将参数恢复为一组一致的值。 为了指示带宽可用性数据库中已有更改,每当更改带宽可用性参数portTransmitRate或deltaBandwidth(N)时,就会为每个Port生成一个信号widthAvailabilityChanged。 SRP使用此信号来触发可在端口上保留的一组流的重新计算。
34.4 Deriving actual bandwidth requirements from the size of the MSDU
本节中定义的转发和排队机制使用的带宽参数是根据在支持通过端口提供的MAC服务的介质上传输帧时使用的实际带宽来定义的。 相反,流保留协议(SRP)针对每个流使用流量规范(TSpec),该流规范定义了由网桥的中继功能中继的mac_service_data_unit参数的每帧最大位数(MaxFrameSize), 该流的最大帧速率(MaxIntervalFrames),以每个类测量间隔的帧为单位; 即,TSpec不考虑与通过给定介质传输MSDU相关的每帧开销。 但是,当SRP确定要用于与给定队列关联的operIdleSlope(N)参数的值时,此值必须包括在该端口上传输帧时将产生的每帧开销。
34.5 Mapping priorities to traffic classes for time-sensitive streams
在支持对时间敏感的流进行转发和排队的网桥中,优先级到流量类别的默认映射满足以下约束:
a)当第2层有效负载通过端口协议栈中的各种服务接口时,添加到第2层有效负载的任何VLAN标记和安全标记(请参阅IEEE Std 802.1AE [B7])。
b)由基础MAC服务添加的MAC成帧(报头和尾八位位组,以及满足最小帧大小限制所需的任何填充八位位组)。
c)任何物理层开销,例如前导字符和帧间间隙。
表34-1中显示了支持SR类A(使用优先级3)和SR类B(使用优先级2)的系统对流量类映射建议的默认优先级。 表34-2中显示了仅支持SR类B(使用优先级2)的系统对流量类映射建议的默认优先级。传输选择算法表(参见8.6.8)的相应默认配置是流量 表中阴影部分的类别配置为使用基于信用的整形算法,其余流量类别配置为使用严格优先级算法
34.6 End station behavior
为了使end station成功参与对时间敏感的流的发送和接收,它们的行为必须与网桥中使用的转发和排队机制的操作兼容。 对参与“Talkers”的终端站(即时间敏感流的源)的要求与适用于“Listeners”(即流的目标站)的要求不同。
34.6.1 Talker behavior
为了使源自Talker的data stream能够利用网桥中基于credit的shaper行为,Talker需要使用网络中网桥识别为与SR类相关联的优先级来专门传输流数据 。 对Talker和到Listener的路径中的网桥,也有必要具有必要的common view of the bandwidth,以便传输Talker's stream,并在通往Listener流的路径上保留该带宽。 可以通过诸如SRP中定义的流保留机制或其他管理手段来满足后一个需求。
作为Talker的终端站应在与时间敏感的流有关的帧中表现出传输行为,这与credit-based的算法的操作一致,无论从它们传输作为单个数据流一部分的帧的方式而言 ,以及它们从端口传输流数据帧的方式。 实际上,可以考虑将Talker端口以及给定优先级的排队模型看起来像图34-1。
Talker将frames放入与单个基于的Tspec流相关联的队列中, 也就是说,在每个类测量间隔内,它最多可以将MaxIntervalFrames个数据帧放置在该流的队列中,每个数据帧的长度不超过MaxFrameSize。
与每个单独的流相关联的队列使用credit-based shaper algorithm,并将idleSlope设置为该传输端口上该流的带宽要求,以此作为确定该流的数据帧放置在出站速率的方式 将流使用的优先级排队。 该优先级的出站队列进而使用基于信用的整形算法,将idleSlope设置为在该传输端口上使用该优先级的所有流的idleSlope值的总和,作为确定速率的方法。 选择该流的哪些数据帧进行传输。
Taker的Transmission selection 操作和Bridge的操作相同,从这个角度看,可以将Talker视为single-port Bridge。
对于使用SR ClassA或SR ClassB的流,要求选择任何给定流的帧以放置在其每个流队列中的速率不超过为该流保留的带宽 SR类的类测量间隔(SR classA为125μs,SR classB为250μs。)对于流带宽要求和传输端口数据速率的某些组合,这可能会在传输流数据时限制可使用的帧大小。
34.6.2 Listener behavior
对Listener station的主要要求是它能够缓冲在一段时间内流可传输的数据量,该时间量等于在Talker和Listener之间传输中的流数据帧可能经历的累积最大抖动。 从对时间敏感流的转发和排队要求的规范的角度来看,假定Listener将评估该流所需的缓冲,作为实现所采用的stream bandwidth reservation mechanisms的一部分。