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

Коды соответствия: байты 3–10, 36 и расширенные таблицы

Хост узнаёт, что перед ним, не из имени вендора, а из кодов соответствия: битовых полей, которые говорят «я 10GBASE-LR» или «я медный SFP 1000BASE-T», плюс одного расширенного кода для всего, что придумали после того, как в битовых полях закончилось место. Хосты по ним называют тип модуля, решают, какие скорости предложить, выбирают FEC и breakout, а на строгих платформах — отказывают модулю, коды которого не совпадают с портом. Правильно их выставить — самая важная часть кодирования модуля.

Два поколения кодирования

МеханизмГдеКак работает
Классические битовые поляSFF-8472 байты 3–10; SFF-8636 байты 131–138 и 164по биту на стандарт; может быть установлено несколько (двухскоростные, многопротокольные)
Расширенное соответствие спецификациямSFF-8472 байт 36; SFF-8636 байт 192одно значение из SFF-8024 Table 4-4: 25G, 100G, 200G, 400G, PMD из MSA
Применениядескрипторы CMISID интерфейса хоста + ID медиа-интерфейса + число каналов, по нескольку на модуль — см. CMIS

Модуль 25G или 100G оставляет большинство классических битов сброшенными и кладёт свою идентичность в байт 36 или 192; модуль 10G/1G делает наоборот. Двухскоростные 10G/25G используют оба механизма.

SFF-8472 байты 3–10 (семейство SFP)

БайтБит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0
3 — 10G Ethernet / InfiniBand10GBASE-ER10GBASE-LRM10GBASE-LR10GBASE-SRIB 1X SXIB 1X LXIB 1X медь активнаяIB 1X медь пассивная
4 — ESCON / SONETESCON MMF 1310 LEDESCON SMF 1310 лазерOC-192 short reachбит 1 дальности SONETбит 2 дальности SONETOC-48 longOC-48 intermediateOC-48 short
5 — SONETрезервOC-12 SM longOC-12 SM intermediateOC-12 shortрезервOC-3 SM longOC-3 SM intermediateOC-3 short
6 — EthernetBASE-PXBASE-BX10100BASE-FX100BASE-LX/LX101000BASE-T1000BASE-CX1000BASE-LX1000BASE-SX
7 — FC длина линии / технологияочень длинная (V)короткая (S)средняя (I)длинная (L)medium (M)резервкоротковолновый лазер, линейный Rx (SA)длинноволновый лазер (LC)
8 — FC технология / кабельэлектрический межшкафный (EL)коротковолновый лазер без OFC (SN)коротковолновый лазер с OFC (SL)длинноволновый лазер (LL)активный кабельпассивный кабельрезерврезерв
9 — FC средаtwin axial (TW)витая пара (TP)миниатюрный коаксиал (MI)видеокоаксиал (TV)многомод 62,5 мкм (M6)многомод 50 мкм (M5/M5E)резерводномод (SM)
10 — FC скорость1200 МБ/с800 МБ/с1600 МБ/с400 МБ/с3200 МБ/с200 МБ/ссм. байт 62100 МБ/с

Байт 62 (Fibre Channel speed 2) продолжает список скоростей для 64GFC и выше. Байт 36 несёт расширенный код. Байт 12 задаёт номинальную скорость в ×100 Мбит/с (FFh → байт 66 в ×250 Мбит/с), байт 11 — кодирование, байт 13 — идентификатор скорости для выбора скорости.

Типовые кодировки SFP

МодульБайт 3Байт 6Байт 8Байт 36Байт 12Байт 11Длина волны
1000BASE-SX00h01h00h00h0Dh (1,3 Гбит/с)01h 8B/10B850 нм
1000BASE-LX00h02h00h00h0Dh01h1310 нм
1000BASE-T медь00h08h00h00h0Dh01h0 (н/п)
10GBASE-SR10h00h00h00h67h (10,3 Гбит/с)06h 64B/66B850 нм
10GBASE-LR20h00h00h00h67h06h1310 нм
Пассивный DAC 10G00h00h04h00h67h06h0, байт 60 = соответствие кабеля
25GBASE-SR00h00h00h02hFFh (байт 66 = 67h → 25,75 Гбит/с)06h850 нм
25GBASE-LR00h00h00h03hFFh / 67h06h1310 нм
Пассивный DAC 25G CA-25G-N00h00h04h0DhFFh / 67h06h0
Двухскоростной SR 10G/25G10h00h00h02hFFh / 67h06h850 нм

Байты длин 14–19 должны согласоваться: SR-модуль объявляет дальность OM3/OM4, LR — километры, DAC — метры в байте 18.

SFF-8636 байты 131–138, 164 (семейство QSFP)

БайтСодержимое
131 — 10/40G Ethernetбит 7 расширенный (смотреть байт 192), 6 10GBASE-LRM, 5 10GBASE-LR, 4 10GBASE-SR, 3 40GBASE-CR4, 2 40GBASE-SR4, 1 40GBASE-LR4, 0 активный кабель 40G (XLPPI)
132 — SONETOC-48 long / intermediate / short reach, 40G OTN
133 — SAS/SATASAS 6 / 12 / 24 Гбит/с
134 — Gigabit Ethernetбит 3 1000BASE-T, 2 1000BASE-CX, 1 1000BASE-LX, 0 1000BASE-SX
135 — FC длина линии и технологияте же биты, что байт 7 SFP
136 — FC технология передатчикабиты EL, SN, SL, LL как в байте 8 SFP
137 — FC средаTW, TP, MI, TV, M6, M5, OM3, SM
138 — FC скорость100 … 3200 МБ/с, флаг расширения
164 — Расширенный модульскорости InfiniBand: SDR, DDR, QDR, FDR, EDR
192 — Расширенное соответствиезначение Table 4-4

Типично: 40GBASE-SR4 → байт 131 = 04h, байт 192 = 00h; 100GBASE-SR4 → байт 131 = 80h (расширенный), байт 192 = 02h; 100G CWDM4 → 80h / 06h; DAC 100GBASE-CR4 → 80h / 0Bh с разъёмом 23h.

CMIS — применения вместо битов

CMIS-модуль перечисляет до 15 применений, каждое — пара электрического интерфейса хоста и медиа-интерфейса (оба — коды SFF-8024) с числом каналов. Модуль 400G DR4 может объявить 400GAUI-8 ↔ 400GBASE-DR4 (8:4) и 100GAUI-2 ↔ 100GBASE-DR (2:1, для breakout 4×100G). Хост выбирает по одному на тракт; что не объявлено — настроить нельзя. Детали и процесс выбора: CMIS.

Как хосты используют коды

  • Именование — строка типа в CLI (10GBASE-LR, QSFP-100G-SR4) выводится из этих байтов, часто по первому установленному биту в фиксированном порядке.
  • Предложение скоростей — хост перечисляет только скорости с присутствующим кодом; модулю 25G с байтом 36 = 02h без бита в байте 3 не предложат 10G (Скорость и режимы).
  • Выбор FEC — расширенные коды несут предположение о FEC (CA-25G-L/S/N; CAUI-4 с RS-FEC или без), и некоторые хосты ставят FEC по ним (FEC и обучение линка).
  • Медь или оптика — биты 2–3 байта 8, разъём 23h и медные технологии байта 147 переключают хост на обработку DAC (автосогласование, обучение линка).
  • Политика — строгие платформы сравнивают коды с режимом порта и своей базой совместимости; несовпадение даёт unsupported или speed and type not supported даже при принятом блоке вендора (Вендор-лок).

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

  1. Ставьте только биты, которым железо реально соответствует; объявленный 10GBASE-LR на SR-модуле превращает «нет линка» в «линк с ошибками».
  2. Держите всю идентификацию согласованной: соответствие ↔ длина волны ↔ длины ↔ кодирование ↔ номинальная скорость ↔ разъём ↔ технология передатчика.
  3. Для 25G+ заполняйте байт 36 / 192 и ставьте байт 12 / 140 в FFh со скоростью ×250 Мбит/с в байте 66 / 222.
  4. Для DAC кодируйте биты кабельной технологии, длину в метрах, разъём 23h и байты затухания/соответствия вместо длины волны.
  5. После этого пересчитайте контрольные суммы (Контрольные суммы).

В CodingBox

Экран Check transceiver декодирует каждый бит выше в понятные имена и перечисляет применения CMIS; редактор EEPROM правит байты кодов по полям, показывает получающуюся строку типа и исправляет CC_BASE и CC_EXT при записи.