返回学习路径

learn

base time 与 offset:窗口从什么时候开始才算对

理解 Qbv 调度表里的 base time、cycle offset 和多设备窗口相位,避免每台设备都正确却端到端错位。

第五章:时间感知调度核心机制IEEE 802.1QbvTAS20 分钟

本节学习目标

  • 理解 base time 决定调度表从哪个共同时间点开始生效。
  • 知道多跳路径上的窗口不能简单复制同一相位。
  • 能把 offset 和路径传播、交换处理、同步误差联系起来。

建议先读

核心概念

base timecycle offsetphase alignmentpath propagation

本章目录

  1. 01GCL、cycle 与窗口:Qbv 的最小心智模型从 Gate Control List 的周期、base time、窗口和队列状态理解 Time-Aware Shaper。
  2. 02guard band 与路径接力:Qbv 真正难在端到端理解普通大帧跨窗、窗口余量、路径传播延迟和多跳接力如何影响 Qbv 可行性。
  3. 03base time 与 offset:窗口从什么时候开始才算对理解 Qbv 调度表里的 base time、cycle offset 和多设备窗口相位,避免每台设备都正确却端到端错位。
  4. 04调度可行性:标准定义机制,不替你求解排表理解 Qbv 真正困难的是多流、多跳、多约束下的可行排表,标准机制本身不会自动产生日程。
  5. 05流量模型与 flow set:排表前先把输入说清楚理解 Qbv 排表需要准确的周期、帧长、deadline、路径和优先级输入,flow set 描述不清会让调度结论失效。
  6. 06运行时更新与切换:新旧 GCL 混用会怎样出错理解 Qbv 配置变更时的 base time、版本一致性和回滚问题,避免多设备更新过程中出现短暂窗口错位。
  7. 07Qbv 调试信号:迟到时先看哪几类证据把 Qbv 失败拆成时间同步、队列映射、窗口相位、guard band、流量模型和设备执行几类证据,形成调试路径。

解决什么问题

Qbv 的窗口不是只看长度,还要看从什么时候开始。两台交换机都配置了 100 us 关键窗口,但如果窗口相位不对,前一跳刚发出的关键帧到达后一跳时,后一跳的窗口可能已经关闭。

本节解决的是窗口相位问题。单台设备 GCL 正确,只能说明这台设备按自己的表开关 gate;端到端正确,还要让每一跳窗口在共同时间上接力。

背景与直觉

想象一条多路口绿波。每个路口绿灯长度都一样并不够,绿灯开始时间必须根据车辆到达时间错开。如果所有路口同时绿,第一辆车离开第一个路口,到第二个路口时可能已经遇到红灯。

Qbv 的 base time 和 offset 就是在共同时间上安排这种相位关系。

怎么解决

base time 定义调度表从哪个共同时间点开始,cycle 定义表多久重复一次,offset 则描述某个窗口相对周期起点的位置。设计多跳路径时,可以从 talker 的发送窗口开始,逐跳加上发送时间、传播延迟、交换处理、同步误差和执行误差。

作用设计时要问
base time调度表开始生效的共同时间所有设备是否使用同一时间域
cycle timeGCL 重复周期是否匹配流周期或其公倍数
window offset窗口在周期内的位置是否接住前一跳到达
window widthgate 打开的持续时间是否覆盖发送和误差预算

一个简化设计是:第一跳窗口从 100 us 开始,关键帧发送需要 5 us,链路和处理预计 20 us,加上 10 us 误差余量,那么第二跳窗口不应该也从 100 us 开始,而应围绕大约 125 us 之后的位置设计。

带来了什么新问题

offset 设计会让调度从单点配置变成路径问题。路径一变,窗口相位可能要重算;设备处理延迟不确定,余量要增加;同步误差变大,窗口要变宽或风险上升。

此外,base time 更新本身也要小心。如果不同设备在不同时间应用新表,短时间内可能出现旧表和新表混用,导致关键帧错过窗口。

检查点

  • 为什么所有设备使用相同 GCL 周期,仍然可能端到端失败?
  • 设计第二跳窗口 offset 时,至少要考虑前一跳发送时间、路径延迟和哪些误差?

掌握检查

读完本节后,先用下面这些问题校准自己,而不是只确认“看过了”。

  1. 1能解释为什么所有设备使用同一个 cycle 仍可能窗口错位。
  2. 2能说明后续跳的窗口为什么通常要相对前一跳偏移。