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

Поля вендора: имя, OUI, PN, SN, дата

Блок вендора — это то, что хост показывает в show interface transceiver и с чем сравнивает его политика совместимости. Спецификации точно задают поля, их длины и кодировку — а хосты беспощадны к паддингу, регистру и лишним байтам. Здесь собраны правила, диапазоны байтов по спецификациям и ошибки, из-за которых исправный модуль читается как мусор.

Поля

ПолеSFF-8472 (SFP, A0h)SFF-8636 (QSFP, страница 00h)CMIS (страница 00h)INF-8077i (XFP)Формат
Имя вендора20–35148–163129–144148–16316 ASCII
OUI вендора37–39165–167145–147165–1673 байта, выдаётся IEEE
Партномер40–55168–183148–163168–18316 ASCII
Ревизия56–59184–185164–165184–1854 / 2 / 2 / 2 ASCII
Серийный номер68–83196–211166–181196–21116 ASCII
Код даты84–91212–219182–189212–2198 ASCII
Код CLEIстраница 02h, при бите 4 байта 129190–19910 ASCII
Вендорская область96–127 (A0h), пользовательская EEPROM A2h 128–247224–255, страница 02h223–255, пользовательские страницы224–255свободно

Побайтовые карты: Карта памяти.

Правила кодировки

  • Только ASCII, печатный диапазон 20h–7Eh. Никаких NUL (00h), FFh и управляющих символов.
  • Выравнивание влево, паддинг пробелами (20h) до полной длины поля. За партномером из 10 символов идут шесть пробелов, а не шесть нулей.
  • Имя вендора — имя производителя (или владельца бренда) как зарегистрировано; именно эту строку хосты сравнивают, как правило с учётом регистра.
  • OUI — 24-битный организационный идентификатор IEEE компании из поля имени, старший байт первым; 00-00-00 означает «не задано». Хосты редко его проверяют, но несовпадение OUI и имени — простой отпечаток перекодированного модуля.
  • Ревизия свободной формы (часто A, 01, 1.0), пробелы, если нет.
  • Серийный номер должен быть уникален у вендора; многие зашивают год/неделю и счётчик; некоторые хосты по его структуре распознают свои модули.
  • Код датыГГММДД и 2-символьный код лота вендора (пробелы, если нет): 240315 = 15 марта 2024.
  • CLEI (Common Language Equipment Identifier) — 10-символьный телеком-код актива, встречается в основном у модулей для операторов.

С чем сверяются хосты

Поведение хостаЧто сравниваетТипично для
Поиск по имени + PNимя вендора и партномер по таблице совместимостибольшинства корпоративных коммутаторов
Префикс / семейство PNпервые символы PNплатформ с широкими списками «поддерживаемых семейств»
Вендорская сигнатурахеш или магическое значение в вендорской области, вычисленное из SN и других полейстрогих OEM-локов
Шаблон SNструктура серийного номеранекоторых OEM, для гарантии и подлинности
OUIидентификатор IEEEредко; часть сетевых карт и NOS
Ничегопринимает всё с валидными контрольными суммамиоткрытых коммутаторов, большинства NIC с разрешёнными сторонними SFP

Какая платформа что делает и как отвечать — тема материалов Вендор-лок и Сторонние модули.

Частые ошибки

ОшибкаСимптом на хосте
Паддинг NUL вместо пробеловобрезанное или искажённое имя, модуль помечен unsupported
Поле на байт длиннее, залезло в соседнееиспорчен OUI или PN, несовпадение контрольной суммы
Регистр отличается от эталонаPN не найден в таблице совместимости
Байты не ASCII (UTF-8, кириллица)вопросительные знаки или отказ
Буквы в цифровых позициях кода датыошибки отображения; часть хостов отвергает
Блок вендора изменён, контрольные суммы нетмодуль invalid — см. Контрольные суммы
Имя изменено, вендорская сигнатура оставленапо-прежнему unsupported на строгих платформах
Идентификация противоречит кодам соответствия или длине волныspeed and type not supported — см. Коды соответствия

Вендорские области

Спецификации намеренно оставляют вендорские области неопределёнными. Производители хранят там резервные копии калибровки, производственные данные, конфигурацию контроллера и — у залоченных модулей — данные аутентификации. Слепая перезапись может убить модуль или сломать проверку лока; копирование из эталонного модуля без совпадающего серийника часто всё равно проверку не проходит. Считайте их непрозрачными, пока не знаете раскладку вендора (Перекодировка EEPROM).

В CodingBox

Редактор EEPROM правит каждое поле вендора как текст, добивает пробелами до точной длины, отказывается от ввода не-ASCII и пересчитывает контрольные суммы при записи. База кодов хранит полные идентификации, так что заведомо рабочий блок вендора применяется за один шаг.