摘要

  • RFC 5287 明确指出:TDM 互通功能正常时,不建议再用 PW Status TLV 报告同类状态,以免数据面与控制面的状态指示发生竞争。带内控制字是日常报告者。
  • 当 IWF 本身失效、但 PWE3 控制面仍可工作时,TLV 才成为兜底报告者,并保守地置起相关故障位。这个消息证明“兜底告警已发出”,不证明五个物理故障分别被测量,也不证明远端采取了动作。

最后写入者并不自动拥有真相

很多监控系统把多条采集路径汇入一列:pseudowire_status。控制面适配器写一次,包处理适配器再写一次,时间戳较新的值覆盖旧值。这样的设计看起来消除了冲突,实际上消除了判断冲突所需的证据。

RFC 5287 为 TDM 伪线扩展了基于 LDP 的 PWE3 建立过程。两端必须同意 PW 类型;TDM 封装总是使用控制字;不同模式还要检查有效载荷大小、逻辑比特率、AAL 模式、RTP 使用、时间戳频率、CAS/信令行为和分片条件。C-bit 为零会得到 Illegal C-Bit,参数不一致会拒绝建立。

这些检查证明两端在约定的表示上相容。它们并不证明接入电路此刻健康,不证明包已送达,不证明抖动缓冲区稳定,不证明时钟恢复合格,更不证明客户设备接受了重建后的业务。LDP 会话活着,只说明信令进程还能交谈。

SAToP、CESoPSN 与 TDMoIP 的控制字(control word)会随数据携带状态。接入侧故障与 PSN 侧故障因此可以在带内传播。PWE3 也定义了通过控制面传递的 PW Status TLV。两条路径描述的范围有重叠,但它们的时延、代次和故障依赖不同。把它们当成两个等价投票者,恰恰忽略了标准最关心的边界。

报告权随故障边界转移

RFC 5287 的日常规则很具体:只要 TDM PW 的 IWF 仍在工作,就不建议使用 Status TLV,目的是避免数据面与控制面报告的状态发生竞争。这里没有宣称“控制面永远不可信”。标准只是让仍在执行 TDM 互通的机制报告其直接观察到的状态。

例外更能说明结构。如果 IWF 自身失败,但 PWE3 控制面仍工作,信令 PE 应发送 PW Status TLV,并把五类状态全部置起:伪线不转发;本地接入电路入口接收故障;本地接入电路出口发送故障;本地 PSN 侧入口接收故障;本地 PSN 侧出口发送故障。

“全位置起”是一层保守包络,不等于五个独立探针同时确认五种硬件损坏。能够给出精细带内状态的功能已经失效,幸存的控制面告诉远端:不要把沉默当成正常。若告警系统把五个位拆成五起经独立确认的事故,它就在增加来源没有提供的事实。

反方向同样危险。IWF 正常、控制字正在报告故障时,一个较旧或更粗的 TLV 不应仅因为更容易进入管理平台就覆盖带内观察。采集便利性不等于证据权威。

因此,状态链条至少应是:

对象代次 -> 报告者 -> 报告者健康 -> 原始状态 -> 仲裁规则 -> 动作 -> 独立结果

少了“报告者健康”,系统只能设置永久优先级;少了原始状态,事后就无法知道一个告警被抑制、延迟、扩展还是覆盖。

沉默不是清零

两个状态源的时间戳也不能自动解决问题。旧 FEC/Label 代次的 TLV 可能晚到;带内状态停止可能是包流消失,而不是故障位清零;采集器重启可能把历史值赋予新的接收时间;LDP 邻接恢复时,抖动缓冲与时钟恢复仍可能在重新获取阶段。

共享记录应保存本地与远端 PE、接入电路标识、FEC、标签与代次、PW 类型、方向、报告者、原始位、源时间与接收时间、IWF 自身健康、过期条件和仲裁结果。最终页面仍可以显示一个颜色,但必须能沿记录反向恢复当时收到的每条观察。

RFC 的措辞是“不建议”,不是“禁止”。实现可以同时公开两个通道。那就必须明确:IWF 健康时谁优先;IWF 失败由什么事件证明;同一报告者是否负责清除自己提出的告警;换标签后旧状态何时失效;单向故障如何表示;控制面与带内报告不同步多久才算异常。

灵活性把判断留给本地系统,但没有授权本地系统隐藏判断。

两条伪线构成一个承诺

RFC 5287 还规定了一个容易被单对象监控遗漏的场景。基本 CESoPSN NxDS0 业务可以用一条 PW 承载 TDM 数据,用另一条关联 PW 承载 CE 应用信令。两者必须使用相同的 PW 类型、建立方法与相关接口参数,只有表示数据/信令角色的位互补。

在 PWId FEC 下,数据 PW 使用偶数 ID,信令 PW 使用紧随其后的奇数 ID。广义 FEC 没有统一的配对编码,正确关联依赖实现机制。资产系统如果不保存关联,事件发生后很难仅凭两个标签重建它们是否属于同一服务。

更关键的是失败规则:一条建立而另一条建立失败时,已经建立的成员必须拆除;两条都建立后任何一条失败,幸存成员也必须拆除。标准不允许把“仍有一个绿色运输对象”冒充完整服务。

拆除命令只证明发出了动作。本地 readback 才能证明状态改变;远端观察才能证明另一端也一致;数据、CE 信令、时序与客户结果还需要各自的证据。一次动作不能自动完成整个证明链。

不同接收条不能互相冒名

完整顺序可以写成:

已配置 -> 标签协商 -> 参数相容 -> 配对完整 -> 报告者有效 -> 状态到达 -> 动作执行 -> 包转发 -> 时序恢复 -> 电路结果

VCCV 检查伪线连通通道,BFD 可以快速发现连续性问题,OAM 映射可以在技术之间转译缺陷,preferential forwarding 状态可以影响路径选择。这些都是有用接收条,却不能自动取代 TDM 控制字,也不能把控制会话存活提升为电路健康。

带内状态清洁也不等于时钟质量合格。包可以持续到达而时延变化过大;缓冲区可以工作而输出频率不符合要求。这一层属于已经保留的 RFC 5143 文章。本篇的独立问题发生得更早:在解释值之前,先证明产生它的报告者仍有资格发言。

冲突本身应被保留

数据治理常把矛盾视为脏数据。对状态系统而言,矛盾可能是最高价值的信号:IWF 已死、TLV 过期、配对错误、代次不匹配、方向丢失,或适配器把五个位压成了一个名称。删除“落败”的那条记录,会让面板更平静,却让基础设施更不可知。

每个观察事件都应独立存在。仲裁应是另一个带版本的事件,记录规则、理由、有效期、所有者与发布值。动作再形成第三个事件,并附本地读回与独立结果。共享层保存事实,业务层可以判断,但判断不能伪装成唯一原始事实。

本证据包没有说明任何具名运营商或产品发生过这种事故,也没有提供普遍传播时延或发生率。可以确认的是标准定义了两种报告路径及其故障依赖。文章只讨论机制与验证方法,不编造生产事故。