概念:Priority 的使用管理
定义
Priority 是 802.1Q 桥接网络中用于表达帧服务需求的优先级信号。对于 VLAN-tagged frame,它通常由 tag 中的 PCP 字段携带,PCP 有 3 bit,可编码 0-7 八个值。进入桥以后,priority 还可能经过 priority regeneration,成为内部用于 traffic class mapping 的值。
直觉解释
PCP 不是“数字越大必然服务越好”的绝对标尺。它更像一个跨设备传递的分类标签。设备需要通过表项把这个标签解释成内部 priority,再映射到输出端口上的 traffic class。
默认 traffic type 习惯
802.1Q Annex I 给出一组默认 traffic type 习惯:
| Priority | 典型 traffic type |
|---|---|
| 7 | Network Control |
| 6 | Internetwork Control |
| 5 | Voice |
| 4 | Video |
| 3 | Critical Applications |
| 2 | Excellent Effort |
| 0 | Best Effort |
| 1 | Background |
因此 priority 7 和 priority 6 通常保留给控制类流量,不适合随意拿来承载普通时间敏感业务。
为什么 SR class A 默认用 priority 3
802.1Qav 推荐:
SR class A -> priority 3
SR class B -> priority 2这不是因为 3 天然比 5/6/7 更适合实时流,而是因为 Qav 会通过 priority-to-traffic-class mapping 把 priority 3/2 映射到支持 credit-based shaper 的高编号 traffic classes。服务质量来自映射和队列算法,而不是 PCP 数字本身。
priority regeneration
桥收到帧后,可以用 priority regeneration table 把 received priority 改成 regenerated priority。这个机制在 SRP domain boundary 特别重要:
外部帧携带与 SR class 相同的 PCP
-> 进入 SRP domain boundary port
-> priority regeneration override 生效
-> 被重映射到较低 priority
-> 避免未预约流量伪装成预约流管理要点
- 同一 SRP domain 内,同一 SR class 应使用一致 priority,否则 Talker、Bridge、Listener 对流的分类会不一致。
- priority-to-traffic-class mapping 必须和 transmission selection algorithm 配套,否则 priority 3/2 不一定进入 SR class queue。
- 边界端口需要使用 priority regeneration override,保护预约域。
- 如果网络使用 drop eligibility 或不同 PCP encoding/decoding,边界处需要统一解释规则,避免乱序或服务保证失效。
常见误解
- 误解:PCP 7 一定是最高业务优先级,所以实时流应该用 7。
- 更准确:7 通常保留给 Network Control;Qav 使用 3/2 作为 SR A/B 的默认信号,再映射到最高的 CBS traffic classes。
- 误解:priority 就是 queue 编号。
- 更准确:priority 需要经过 traffic class table 才决定输出队列。