CMIS: конечный автомат, VDM и управление прошивкой

До CMIS модуль 400G был чёрным ящиком с прикрученным датчиком температуры. После — документированным конечным автоматом, который можно опрашивать по линиям.

Спросите трёх вендоров про «карту регистров» модуля 800G, и вы получите три документа, ни один из которых не полон. Это не противодействие вендоров; это то, что происходит, когда модуль содержит восемь линий, две прошивки, программируемый datapath и протокол согласования питания, а интерфейс управления был спроектирован для мира фиксированных регистров. CMIS — ответ отрасли, спецификация, поддерживаемая параллельно с поправками IEEE 802.3 PMD, — и её чтение меняет то, как вы эксплуатируете эти модули: конкретнее, оно превращает «модуль в порядке?» из тикета в скрипт.

Проблема, которую решал CMIS

Предыдущее поколение интерфейсов управления отображало функции модуля на фиксированные адреса памяти. Это работало, когда модуль был: один лазерный путь на вход, один на выход, одно состояние питания, может быть четыре линии. Модуль 400G или 800G ломает каждое из этих допущений:

CMIS отвечает на все четыре одной моделью: модуль — маленький компьютер с документированным конечным автоматом, и хост говорит с ним соответственно.

Конечный автомат — это контракт

Часть CMIS, объясняющая большую часть полевого поведения, — модель состояний модуля и datapath. Модуль проходит через явные состояния, и от хоста ожидается оркестрация переходов — а не предположение, что модуль просто «поднят».

СостояниеЧто делает модульЧто должен делать хост
ModuleLowPwrВыключен или низкомощный простой после вставкиПрочитать идентичность, согласовать класс мощности
ModulePwrUpПотребляет полную выделенную мощностьЖдать; пока не выдавать команд datapath
ModuleReadyГотов к конфигурации datapathНастроить линии, затем запустить init
Состояния Datapath (по группе)DPInit → Deinit → Initialized → TxTurnOn → TxTurnedOff → ReadyПоднимать только когда Ready; сбои init всплывают здесь первыми
ModulePwrDnВыключение по запросу хостаДемонтаж до извлечения, где поддерживается

Два операционных следствия стоит усвоить.

Сбои init — это фича

Когда группа линий не доходит до Ready, CMIS говорит вам, в каком состоянии она застряла. «Застрял в DPInit» — несравнимо лучший симптом, чем «нет линка», потому что обычно означает несоответствие конфигурации — неподдерживаемое отображение линий, неподдерживаемая скорость, — а не мёртвый кремний.

Поведение брейкаута согласуется, а не магия

Разбиение модуля 800G на 2x400G — это акт конфигурации datapath. Если ПО коммутатора и модуль не согласны по назначению линий, несогласие всплывает в этих состояниях, что также объясняет, почему та же пара деталей, работающая в одном шасси, может отказать в другом со старым ПО.

Классы мощности: согласование, а не ярлык

CMIS определяет классы мощности, чтобы хост мог забюджетировать слот до включения модуля. Классы, релевантные текущим развёртываниям:

КлассМакс. мощностьРоль в развёртываниях 2026
Класс 57 ВтДетали класса 400G, устаревшие кейджи
Класс 610 ВтНизкомощные дизайны 400G/800G
Класс 715 ВтОсновной 800G DR8/FR4
Класс 820 ВтВысокомощные детали; нужен подтверждённый обдув на слот

Механизм важнее чисел: модуль объявляет свой класс, хост выделяет мощность, и состояния datapath не завершатся, если выделение так и не произошло. Модуль, включающийся на стенде, но сидящий в ModuleLowPwr в конкретном слоте шасси, обычно говорит вам, что хост отказал или не смог выделить класс — решение бюджета слота или квалификации, а не аппаратный сбой. Та же телеметрия — основа диагностики теплового отключения, где класс мощности и измеренная температура читаются вместе.

VDM: телеметрия, ловящая деградирующие лазеры

Vendor Defined Mechanisms — наименее гламурно названная и наиболее операционно ценная часть CMIS. Они дают стандартный способ раскрывать измерения сверх фиксированного обязательного набора, адресуемые по дескриптору, с определёнными единицами и масштабом.

Пример VDMЧто измеряетПочему вам не всё равно
TX-мощность по линиямФактическая мощность запуска на линиюЛовит деградирующий драйвер до падения линка
Входная мощность по линиямПринятая мощность на линиюОтделяет «слабый свет» от «грязного разъёма»
Пред-FEC битовые ошибки / исправленные битыКачество канала до коррекции ошибокСамый ранний количественный сигнал износа линии
Запас сигнал-шумОценка качества на стороне приёмникаПредсказывает, какие линки упадут первыми при добавленных потерях

Счётчики пред-FEC ошибок заслуживают акцента.

Исправленные ошибки молчаливы

Исправленные ошибки невидимы для линка (для этого и нужен FEC), что значит, линия может деградировать месяцами, пока порт рапортует здоровым. Ночной скрипт, сэмплирующий дельты исправленных бит по линиям, превращает эту молчаливую деградацию в линию тренда, а линии тренда — то, что позволяет заменить модуль по своему графику, а не по графику линка.

Доступность VDM — по детали

Не каждый модуль реализует каждый VDM — стандарт определяет контейнер и контракт отчётности, а не обязательный список измерений. Часть квалификации модуля — записать, какие VDM раскрывает данный SKU, чтобы ваш мониторинг не предполагал телеметрию, которой никогда не было.

Прошивка: два образа и бит коммита

Управление прошивкой CMIS следует модели run/commit, знакомой по ПО коммутаторов:

Дисциплина, избегающая неприятностей:

Инвентаризация до трогания чего-либо

Соберите рабочие и закоммиченные версии по флоту; смешанные версии распространены больше, чем кто-либо признаёт, и обычно — причина «одна полка ведёт себя иначе».

Канарейка, выдержка, коммит

Обновляйте в канарейной группе, активируйте и выдерживайте, коммитьте только после периода выдержки, включающего как минимум одну переустановку и один цикл питания шасси. Коммит в тот же день, что и активация, — как латентное несоответствие образа становится сюрпризом на весь флот.

Держите семейства образов едиными на рельс

Никогда не мешайте семейства образов по рельсу — то же правило, что со смешиванием вендоров модулей, по той же причине: пороги аварии и поведение телеметрии дрейфуют между версиями.

Чего CMIS не решает

Три границы стоит обозначить, чтобы никто не преувеличивал:

Источники

Детали реализации варьируются по ревизии CMIS и вендору. Сверяйте имена состояний, доступность VDM и поведение прошивки с точной ревизией спецификации, которую реализуют ваши модули.

FAQ

Это CMIS то же самое, что MSA QSFP-DD или OSFP?
Нет. MSA определяют механический и электрический конверт; CMIS — спецификация интерфейса управления, публикуемая через ту же отраслевую группу и используемая на QSFP-DD, OSFP и других модулях 100G на линию. У модуля есть форм-фактор, и он работает на CMIS — двое отвечают на разные вопросы.
Какая минимальная версия CMIS нужна при покупке?
CMIS 4.0 — практический пол для закупок 800G: она довела до ума управление состояниями datapath и диагностику линий, от которых зависят брейкауты и скриптуемая диагностика. Версия 5.x добавляет улучшения в телеметрии и работе с прошивкой. Старые детали 400G с реализациями эпохи 3.x могут вести себя несогласованно между вендорами.
Что такое VDM в одном предложении?
Vendor Defined Mechanism: стандартизированный контейнер для измерений модуля, которые стандарт не фиксирует заранее — такие как счётчики пред-FEC битовых ошибок по линиям, — чтобы вендоры могли раскрывать реальную диагностику, не ломая интерфейс.
Может ли обновление прошивки CMIS завершиться крахом и превратить модуль в кирпич?
Правильная реализация обновляет неактивный образ прошивки и переключается при коммите, поэтому прерванное обновление оставляет рабочий образ нетронутым. Операционный риск — не в «окирпичивании» одного модуля; он в выкатке незакоммиченного или несоответствующего образа на флот с обнаружением только при следующей переустановке.
Применим ли CMIS также к модулям 100G и 400G?
Да. CMIS безразличен к скорости и появляется на модулях 100G на линию нескольких форм-факторов. Он важнее всего на 400G и выше, потому что именно там многолинейные datapath, классы мощности и брейкауты делают старую модель фиксированных регистров неработоспособной.