CodingBox Документация

VDM и метрики FEC: PAM4-линки

На 50G на канал и выше оптическая мощность перестаёт быть достаточным индикатором здоровья: PAM4-линк с идеальным Rx может быть в одном грязном разъёме от неисправимых ошибок, и первый признак — не дБм, а коэффициент битовых ошибок. Это число дают два источника. Внутри модуля VDM (Versatile Diagnostics Monitoring) CMIS отдаёт BER до FEC, SNR и здоровье лазера по каналам; на хосте декодер FEC считает исправленные и неисправленные кодовые слова. Вместе они показывают, как далеко линк от отказа, пока он ещё несёт трафик без потерь.

Почему FEC изменил диагностику

Каждый PMD Ethernet 25G+ на PAM4 (и большинство на 25G NRZ) предполагает FEC Рида — Соломона. Оптике разрешено выдавать сырой коэффициент ошибок 10⁻⁵–10⁻⁴, потому что FEC чинит его до 10⁻¹² и лучше. Следствие: деградирующий линк показывает MAC вообще ноль ошибок, пока не перейдён предел FEC, а затем отказывает резко. BER до FEC — единственный плавный индикатор запаса.

FECКодИсправляет на кодовое словоПредел BER до FEC для 10⁻¹² на выходе (прибл.)Где
BASE-R («FC-FEC», Clause 74)Fire code (2112, 2080)всплески по 11 бит≈ 10⁻⁷ … 10⁻⁸, выигрыш ~2 дБ10G/25G NRZ, CA-25G-S
RS-FEC KR4 (Clause 91/108)RS(528, 514) над GF(2¹⁰)7 символов≈ 5 × 10⁻⁵25GBASE-CR/SR/LR, 100GBASE-SR4/CWDM4/CR4
RS-FEC KP4 (Clause 119/134)RS(544, 514)15 символов≈ 2,4 × 10⁻⁴все каналы 50G PAM4: 50G/100G/200G/400G/800G
Каскадный / oFEC (когерент)внутренний + внешний коды≈ 10⁻² … 2 × 10⁻²400ZR (CFEC), OpenZR+ (oFEC)

Несовпадения конфигурации: FEC, автосогласование и обучение линка.

VDM — что отдаёт модуль

VDM живёт на страницах CMIS 20h–2Fh (банками по 8 каналов) и объявляется на странице 01h. У каждой наблюдаемой есть дескриптор (тип, канал), живая выборка, четыре порога и флаги — ровно как у классических мониторов.

СтраницыСодержимое
20h–23hдескрипторы: какая наблюдаемая, какой канал, какой набор порогов
24h–27hвыборки (по 2 байта)
28h–2Bhпороги: верхняя/нижняя авария, верхнее/нижнее предупреждение
2Ch–2Fhфлаги и маски

Типы наблюдаемых (CMIS 4.0/5.x)

IDНаблюдаемаяЕдиница / форматЧто говорит
1Возраст лазера% (U16)оценка вендора израсходованной жизни
2Ток TEC% от макс. (S16)нагрузка охладителя — Температура и напряжение
3Ошибка частоты лазераМГц (S16)DWDM/ZR: отклонение от сетки
4Температура лазера°C (S16, 1/256)охлаждаемые лазеры
5 / 6eSNR, вход со стороны среды / хостадБ (U16, 1/256)электрический SNR после эквализации — «высота глаза» PAM4; > 18–20 дБ комфортно, < 15 дБ маргинально (зависит от вендора)
7 / 8Параметр переходов уровней PAM4, среда / хостдБлинейность четырёх уровней
9 / 10BER до FEC минимум, среда / хостF16лучшее за интервал
11 / 12BER до FEC максимумF16худшее за интервал — число, по которому алертить
13 / 14BER до FEC среднееF16
15 / 16BER до FEC текущееF16последняя выборка
17–24FERC (счёт ошибочных кадров) мин / макс / среднее / текущее, среда / хостF16неисправимые кадры после FEC — должно быть 0
128+когерентный набор (CMIS 5.x): смещение модулятора, CD, DGD, SOPMD, OSNR, eSNR, Q-фактор, полная/сигнальная мощность Rx, смещение частоты несущей…разныемодули 400ZR/ZR+

F16 — 16-битный формат отношений CMIS: 5-битная экспонента и 11-битная мантисса, значение = мантисса × 10^(экспонента − 24). BER до FEC 1,5 × 10⁻⁶ хранится как мантисса 1500 при экспоненте 15. Сторона среды = оптическая линия; сторона хоста = электрический интерфейс к ASIC коммутатора — плохой BER на стороне хоста указывает на разъём или плату, а не на волокно.

Счётчики FEC на хосте

Коммутатор или сетевая карта считает на порт и часто на канал:

СчётчикЗдоровоВниманиеОтказ
Исправленные кодовые словарастут медленно (BER до FEC 10⁻⁸ … 10⁻⁶)быстрый рост (10⁻⁵ при KP4)у предела
Неисправимые кодовые слова0любой приростпостоянный прирост = потеря кадров
Ошибки символов по каналамсбалансированыодин канал доминируетволокно/разъём/лазер этого канала
BER до FEC (производный)< 10⁻⁷10⁻⁶ … 10⁻⁵> 10⁻⁴ (KP4)

Где читать: show interfaces … fec / phy detail на большинстве NOS (Проверка оптики), ethtool -S (fec_corrected_blocks, fec_uncorrectable_blocks) и ethtool --show-fec в Linux, show interfaces counters fec в SONiC. Счётчики накопительные — сбрасывайте и смотрите скорость.

Как читать оба вместе

Мощность RxBER до FEC / eSNRНеисправимыеДиагноз
в окне< 10⁻⁷, eSNR высокий0здорово, с запасом
в окне10⁻⁵, eSNR падает на одном канале0канал деградирует: грязное волокно MPO, стареющий VCSEL, маргинальный разъём — чинить до отказа (Поканальная диагностика)
низкаявысокийестьпроблема бюджета — Мощность приёма и бюджет линии
в окне на обоих концахвысокий на стороне хостаестьэлектрика: контакт клетки/разъёма, плата, качество DAC, неверные настройки эквализации
в окневысокий на стороне среды, все каналыестьдисперсия, неверный класс дальности, длина волны мимо мультиплексора, частично неверная полярность
в норме0 ошибок, линк флапает0не сигнал — несовпадение FEC/AN, тепло, софт

Пороги и алерты

Пороги VDM ставит вендор; типичное верхнее предупреждение по BER до FEC — около десятой предела FEC (2 × 10⁻⁵ при KP4). Для алертов используйте скорости и тренды: BER до FEC, растущий на декаду за неделю, — наряд на работу независимо от порогов (Мониторинг). Неисправимые ошибки после FEC — всегда инцидент.

Где VDM нет

У модулей SFF-8472 и SFF-8636 VDM нет: линки 10G/25G/100G NRZ опираются на счётчики FEC хоста и на мощность Rx. Некоторые модули SFF-8636 отдают вендорские SNR или BER на страницах 20h–21h или в вендорских байтах — читается только утилитой вендора. Для NRZ без FEC (10G LR, 1G) счётчики CRC/input errors интерфейса — единственный битовый взгляд.

В CodingBox

Для CMIS-модулей CodingBox читает дескрипторы и выборки VDM и показывает их по каналам рядом с классическими мониторами на DDM, декодируя отношения F16 в обычные числа. Счётчики FEC хоста лежат вне модуля и вне программатора — их даёт коммутатор.