6.8.7. Transmitting BFD Control Packets (发送 BFD 控制包)
6.8.7. Transmitting BFD Control Packets (发送 BFD 控制包)
除本节其余部分列出的例外情况外, 系统不能以小于 bfd.DesiredMinTxInterval 和 bfd.RemoteMinRxInterval 中较大者的间隔传输 BFD 控制包, 减去应用的抖动 (见下文)。换句话说, 报告较慢速率的系统决定传输速率。
BFD 控制包的周期性传输必须在每个数据包的基础上进行抖动, 最多 25%, 即间隔必须减少 0 到 25% 的随机值, 以避免与同一子网上的其他系统自同步。因此, 数据包之间的平均间隔将比协商的间隔少约 12.5%。
如果 bfd.DetectMult 等于 1, 则传输的 BFD 控制包之间的间隔必须不超过协商的传输间隔的 90%, 并且必须不少于协商的传输间隔的 75%。这是为了确保在远程系统上, 计算的检测时间不会在接收到下一个 BFD 控制包之前过期。
每当 bfd.DesiredMinTxInterval 更改时, 或每当 bfd.RemoteMinRxInterval 更改时, 都必须重新计算传输间隔, 并且等于这两个值中的较大者。有关传输定时器的详细信息, 请参见第 6.8.2 和 6.8.3 节。
如果 bfd.RemoteDiscr 为零并且系统采取被动角色, 则系统不能传输 BFD 控制包。
如果 bfd.RemoteMinRxInterval 为零, 则系统不能周期性地传输 BFD 控制包。
如果按需模式在远程系统上激活 (bfd.RemoteDemandMode 为 1, bfd.SessionState 为 Up, 并且 bfd.RemoteSessionState 为 Up) 并且没有传输轮询序列, 则系统不能周期性地传输 BFD 控制包。
如果接收到设置了 Poll (P) 位为 1 的 BFD 控制包, 则接收系统必须尽快传输清除 Poll (P) 位并设置 Final (F) 位的 BFD 控制包, 而不考虑传输定时器或任何其他传输限制, 不考虑会话状态, 并且不考虑任一系统上是否激活按需模式。系统可以限制传输此类数据包的速率。如果速率限制生效, Desired Min TX Interval 的宣传值必须大于或等于速率限制功能强加的传输数据包之间的间隔。
除非 bfd.DemandMode 为 1, bfd.SessionState 为 Up, 并且 bfd.RemoteSessionState 为 Up, 否则系统不能设置 Demand (D) 位。
当该数据包的内容与先前传输的数据包 (Poll 和 Final 位除外) 的内容不同时, 应该在周期性控制包传输之间的间隔期间传输 BFD 控制包, 以更快速地传达状态变化。
传输的 BFD 控制包的内容必须设置如下:
Version
设置为当前版本号 (1)。
Diagnostic (Diag)
设置为 bfd.LocalDiag。
State (Sta)
设置为 bfd.SessionState 指示的值。
Poll (P)
如果本地系统正在发送轮询序列, 则设置为 1, 否则设置为 0。
Final (F)
如果本地系统正在响应设置了 Poll (P) 位的接收到的控制包, 则设置为 1, 否则设置为 0。
Control Plane Independent (C)
如果本地系统的 BFD 实现独立于控制平面 (它可以在控制平面中断的情况下继续运行), 则设置为 1。
Authentication Present (A)
如果此会话上正在使用认证 (bfd.AuthType 非零), 则设置为 1, 否则设置为 0。
Demand (D)
如果 bfd.SessionState 为 Up 并且 bfd.RemoteSessionState 为 Up, 则设置为 bfd.DemandMode。否则, 设置为 0。
Multipoint (M)
设置为 0。
Detect Mult
设置为 bfd.DetectMult。
Length
设置为适当的长度, 基于固定头部长度 (24) 加上任何认证段。
My Discriminator
设置为 bfd.LocalDiscr。
Your Discriminator
设置为 bfd.RemoteDiscr。
Desired Min TX Interval
设置为 bfd.DesiredMinTxInterval。
Required Min RX Interval
设置为 bfd.RequiredMinRxInterval。
Required Min Echo RX Interval
设置为此会话所需的最小回显包接收间隔。如果此字段设置为零, 则本地系统不愿意或无法将 BFD 回显包回环到远程系统, 并且远程系统将不发送回显包。
Authentication Section
如果正在使用认证 (bfd.AuthType 非零), 则根据第 6.7 节中的规则包含并设置。否则, 此段不存在。