Пороги, аварии и флаги
Модуль не просто сообщает значения — он несёт и пределы, по которым эти значения оцениваются, и поднимает флаги, когда предел пересечён. Коммутатор читает всё это из памяти модуля; сам он ничего не придумывает. Поэтому два внешне одинаковых модуля могут вести себя на одной линии по-разному.
Четыре порога на параметр
У каждого параметра DDM четыре заводских предела:
| Порог | Смысл |
|---|---|
| High alarm | значение выше → модуль, возможно, отказывает или линия непригодна |
| High warning | приближение к верхнему пределу |
| Low warning | приближение к нижнему пределу |
| Low alarm | значение ниже → например, Rx ниже чувствительности приёмника |
Они задают три зоны: норма (между предупреждениями), предупреждение (между предупреждением и соответствующей аварией) и авария (за аварией). Исправный модуль на 10 км может иметь пороги Rx около +0,5 / −2 / −18 / −22 дБм (HA / HW / LW / LA) — но каждый вендор задаёт свои.
Где хранятся — SFF-8472
A2h байты 0–39, по два байта на порог, единицы те же, что у мониторов (Параметры и единицы):
| Байты | Параметр (HA, LA, HW, LW) |
|---|---|
| 0–7 | Температура |
| 8–15 | Vcc |
| 16–23 | Ток смещения Tx |
| 24–31 | Мощность Tx |
| 32–39 | Мощность Rx |
| 40–55 | опциональные расширенные пороги (темп. лазера, TEC) |
Порядок внутри группы: high alarm, low alarm, high warning, low warning.
Флаги — на что реально реагирует хост
| Байты A2h | Содержимое |
|---|---|
| 110 | статус/управление: состояние TX_DISABLE, RS0/RS1, TX_FAULT, RX_LOS, готовность данных |
| 112–113 | флаги аварий — по биту на параметр, high и low |
| 116–117 | флаги предупреждений — по биту на параметр, high и low |
Модуль выставляет флаг при пересечении порога и снимает при возврате. Хост, показывающий «Rx power low alarm», читает бит 1 байта 113 — и ничего больше. Реализованы ли флаги вообще, объявляет байт 93 A0h, бит 7.
QSFP и CMIS
Та же модель, но с поканальными флагами:
- SFF-8636 — пороги модуля на верхней странице 03h, байты 128–175 (температура, Vcc), пороги каналов — байты 176–223 (мощность Rx, ток смещения, мощность Tx); флаги — в нижней странице, байты 3–14 (LOS/fault/LOL в 3–5, аварии температуры и Vcc в 6–7, поканальные аварии мощности и тока в 9–14).
- CMIS — пороги модуля на странице 02h, пороги каналов дальше на той же странице; флаги модуля в нижних байтах 8–13, флаги каналов на странице 11h, байты 134–153.
Почему «нет аварии» ≠ «исправно»
Пороги — мнение производителя модуля о его собственных пределах, а не о линии. Типичные следствия:
- Щедрые пороги — модуль с аварией низкого Rx на −24 дБм будет молчать на приёмнике, который уже ошибается при −20 дБм.
- Фиктивный Tx — константа никогда не пересечёт порог.
- Бюджет линии — про запас, а не про пределы: линия на −17 дБм при предупреждении −18 дБм имеет 1 дБ запаса и упадёт на первом грязном разъёме.
Поэтому эксплуатационные оповещения должны опираться на ваши базы и дельты (Мониторинг), а флаги модуля — страховка.
Правка порогов
Поскольку пороги живут в памяти модуля, их можно прочитать и переписать. Законные случаи: вернуть вменяемые пределы модулю, закодированному нулями, выровнять парк или задать более узкое предупреждение для раннего сигнала. Защищённая область A2h обычно требует пароль модуля.
В CodingBox
Экран DDM наносит пороги аварий и предупреждений модуля прямо на графики и раскрашивает значения по зонам. Байты порогов 0–39 и флаги 112–117 видны и редактируемы в редакторе EEPROM с пересчётом контрольной суммы CC_DMI (байт 95) при записи.