本节书摘来自异步社区《思科数据中心I/O整合》一书中的第2章,第2.8节,作者【美】Silvano Gai , Claudio DeSanti,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.8 基于优先级的流量控制(PFC)
思科数据中心I/O整合
基于优先级的流量控制(PFC),也称为按优先级暂停(Per Priority Pause,PPP),这是一种精细的流控制机制。IEEE 802.1Q定义了一个标签(如图2-5所示),其中包含了3个比特(bits)的优先级字段(即它最多支持8种优先级)。PFC能够基于优先级启用PAUSE功能。
如果将不同的流量类型映射到不同的优先级,那么就不会出现流量干扰问题。例如,在图2-6中,存储流量映射到优先级3,并且它是PAUSE的,同时IPC流量映射到优先级6,它会被转发,然后是IP流量,它会被映射到优先级1。
PFC需要为每一种优先级设置更为复杂的数据平面,并且基于每个优先级配置专用的资源(例如,缓存区、队列等等)。
PFC基于思科公司的提案,并且得到了广泛的业界支持,也成为了IEEE 802.1数据中心桥接工作小组802.1Qbb项目的基础。
PFC帧格式如图2-7所示,它与PAUSE帧类似。
Ethertype = 0x8808与PAUSE(MAC控制帧)是相同的,但是Opcode = 0x0101则有所不同。这里有8个时间域,分别对应8个优先级。为了支持灵活的实现方式,PFC帧可以为一个、多个或所有优先级传输时间信息,这是通过创建一个类启用向量(class enable vector)来实现的,其中每一个优先级对应一个比特位(one bit)。对于指定的优先级,这个比特位表示时间字段是否有效。