阈值、告警与标志位 · DDM/DOM 诊断 · 光模块与线缆 · 文档 · CodingBox
CodingBox 文档

阈值、告警与标志位

光模块不仅报告数值,还携带用于判断这些数值的限值,并在超出限值时置位标志位。交换机从模块存储器中读取这一切,不会凭空生成任何内容。这就是为什么两个外观相同的光模块在同一条链路上可能表现不同。

每个参数的四个阈值

每个 DDM 参数都有四个出厂编程的限值:

阈值含义
高告警数值高于此限 → 模块可能出现故障或链路不可用
高预警接近高限值
低预警接近低限值
低告警数值低于此限 → 例如 Rx 低于接收灵敏度

这四个阈值划出三个区间:正常(两个预警值之间)、预警(预警值与对应告警值之间)和告警(超出告警值)。一款健康的 10 km 模块的 Rx 阈值大致为 +0.5 / −2 / −18 / −22 dBm(HA / HW / LW / LA),但具体数值由各厂商自行设定。

存储位置 — SFF-8472

A2h byte 0–39,每个阈值占两个字节,单位与监测值相同(参数与单位):

字节参数(HA、LA、HW、LW)
0–7温度
8–15Vcc
16–23Tx 偏置电流
24–31Tx 功率
32–39Rx 功率
40–55可选扩展阈值(激光器温度、TEC)

每组内部的顺序为高告警、低告警、高预警、低预警。

标志位 — 主机实际依据的内容

A2h 字节内容
110状态/控制:TX_DISABLE 状态、RS0/RS1 状态、TX_FAULT、RX_LOS、data-ready
112–113告警标志位 — 每个参数各占一位,分高、低
116–117预警标志位 — 每个参数各占一位,分高、低

数值越过阈值时,模块置位对应标志位,数值恢复时清零。主机显示"Rx power low alarm",实际只是读取了 byte 113 的第 1 位,仅此而已。标志位是否实现,由 A0h byte 93 第 7 位声明。

QSFP 与 CMIS

同样的模型也适用,只是标志位按通道划分:

  • SFF-8636 — 模块阈值位于上层页 03h byte 128–175(温度、Vcc),通道阈值位于 byte 176–223(Rx power、Tx bias、Tx power);标志位位于下层页 byte 3–14(LOS/fault/LOL 位于 3–5,温度和 Vcc 告警位于 6–7,各通道功率和偏置告警位于 9–14)。
  • CMIS — 模块阈值位于 page 02h,通道阈值位于同一页后续位置;模块标志位位于下层 byte 8–13,通道标志位位于 page 11h byte 134–153。

参见多通道诊断。

为什么"无告警"不等于"健康"

阈值是模块厂商对自身限值的判断,而不是对链路的判断。常见后果:

  • 阈值设置宽松 — 某模块的 Rx 低告警设在 −24 dBm,而接收端在 −20 dBm 时已经开始出错,此时模块仍不会告警。
  • 虚假的 Tx 读数 — 固定不变的 Tx 数值永远不会越过阈值。
  • 链路预算关乎余量,而非限值:一条链路在 −17 dBm 运行、告警设在 −18 dBm,只有 1 dB 余量,接头稍有污染就会失效。

因此,运维告警应基于自有基线和变化量(监测),将模块标志位作为兜底手段。

编辑阈值

由于阈值存放在模块存储器中,可以读取和改写。合理的用途包括:为写入全零的模块恢复合理限值、统一一批模块的设置,或收紧预警值以更早获得提醒。受保护的 A2h 区域通常需要模块的密码。

在 CodingBox 中

DDM 界面直接在曲线图上绘出模块的告警和预警阈值,并按区间对数值着色。阈值 byte 0–39 和标志位 112–117 在 EEPROM editor 中可见可编辑,写入时自动重新计算校验和 CC_DMI(byte 95)。

每个阈值、标志位和掩码的确切字节位置:SFF-8472 A2h 映射表、 SFF-8636 下层页与 03h 页、 CMIS 02h 页与 11h 页。


如果您发现本资料中有不准确之处或错误,请选中相应片段并按 Ctrl+Enter,即可。