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,即可