概念:Priority 与 Traffic Class
定义
Priority/PCP 是帧上或桥内部使用的优先级分类信号。Traffic class 是桥端口上的输出队列类别。一个帧最终进入哪个 queue,不是只由 PCP 数字大小决定,而是由 priority regeneration 和 traffic class table 共同决定。
直觉解释
可以把 priority 看成“帧带来的标签”,把 traffic class 看成“设备内部实际排队的位置”。标签本身不直接发包,必须先被设备解释成某个队列。
数据路径
frame priority / PCP
-> priority regeneration
-> traffic class mapping
-> traffic class queue
-> transmission selection algorithm
-> egress transmit更细地说:
- VLAN-tagged frame 的 PCP 字段提供 received priority。
- untagged frame 也可能通过端口默认规则获得内部 priority。
- Bridge 可以执行 priority regeneration,得到 regenerated priority。
- 出端口使用 traffic class table,把 priority 映射到 traffic class。
- 帧进入该 traffic class 对应的 queue。
- queue 使用 strict priority、credit-based shaper、ETS、Qbv gate 等机制参与发送选择。
与 SR class 的关系
SR class 是一种带有流预留和信用整形语义的 traffic class。它不是 priority 本身。
priority 3 -> traffic class 7 -> SR class A queue -> credit-based shaper
priority 2 -> traffic class 6 -> SR class B queue -> credit-based shaper这是 8 个 traffic classes 情况下的典型 Qav 推荐结果。不同设备或端口支持的 traffic class 数量不同,映射表也会不同。
为什么 distinction 很重要
如果把 priority 和 traffic class 混为一谈,就容易误判服务质量。例如 SR class A 默认用 priority 3,但它可以通过 Qav 推荐映射进入最高 traffic class;而 priority 7 虽然数值大,但通常保留给 Network Control,并不意味着它应该承载 SR A。
一个具体例子
1. Talker 发出 VLAN-tagged frame,PCP = 3
2. Bridge 收到帧,priority regeneration 后仍为 3
3. 出端口 traffic class table 把 priority 3 映射到 traffic class 7
4. traffic class 7 被配置为 SR class A
5. 帧进入 SR class A queue
6. credit-based shaper 判断 credit 是否允许发送
7. 端口发送该帧常见误解
- priority 不等于 traffic class 编号。
- PCP 数字大小不等于最终队列优先级。
- SR class A/B 不是 VLAN,也不是直接写在帧里的 class 字段。
- Qbv 的 gate、Qci 的 IPV、DCB 的 PFC/ETS 都可能在不同位置影响 priority 到 queue 的解释或发送资格。