Коды соответствия: байты 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 |
| Применения | дескрипторы CMIS | ID интерфейса хоста + 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 / InfiniBand | 10GBASE-ER | 10GBASE-LRM | 10GBASE-LR | 10GBASE-SR | IB 1X SX | IB 1X LX | IB 1X медь активная | IB 1X медь пассивная |
| 4 — ESCON / SONET | ESCON MMF 1310 LED | ESCON SMF 1310 лазер | OC-192 short reach | бит 1 дальности SONET | бит 2 дальности SONET | OC-48 long | OC-48 intermediate | OC-48 short |
| 5 — SONET | резерв | OC-12 SM long | OC-12 SM intermediate | OC-12 short | резерв | OC-3 SM long | OC-3 SM intermediate | OC-3 short |
| 6 — Ethernet | BASE-PX | BASE-BX10 | 100BASE-FX | 100BASE-LX/LX10 | 1000BASE-T | 1000BASE-CX | 1000BASE-LX | 1000BASE-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 МБ/с | см. байт 62 | 100 МБ/с |
Байт 62 (Fibre Channel speed 2) продолжает список скоростей для 64GFC и выше. Байт 36 несёт расширенный код. Байт 12 задаёт номинальную скорость в ×100 Мбит/с (FFh → байт 66 в ×250 Мбит/с), байт 11 — кодирование, байт 13 — идентификатор скорости для выбора скорости.
Типовые кодировки SFP
| Модуль | Байт 3 | Байт 6 | Байт 8 | Байт 36 | Байт 12 | Байт 11 | Длина волны |
|---|---|---|---|---|---|---|---|
| 1000BASE-SX | 00h | 01h | 00h | 00h | 0Dh (1,3 Гбит/с) | 01h 8B/10B | 850 нм |
| 1000BASE-LX | 00h | 02h | 00h | 00h | 0Dh | 01h | 1310 нм |
| 1000BASE-T медь | 00h | 08h | 00h | 00h | 0Dh | 01h | 0 (н/п) |
| 10GBASE-SR | 10h | 00h | 00h | 00h | 67h (10,3 Гбит/с) | 06h 64B/66B | 850 нм |
| 10GBASE-LR | 20h | 00h | 00h | 00h | 67h | 06h | 1310 нм |
| Пассивный DAC 10G | 00h | 00h | 04h | 00h | 67h | 06h | 0, байт 60 = соответствие кабеля |
| 25GBASE-SR | 00h | 00h | 00h | 02h | FFh (байт 66 = 67h → 25,75 Гбит/с) | 06h | 850 нм |
| 25GBASE-LR | 00h | 00h | 00h | 03h | FFh / 67h | 06h | 1310 нм |
| Пассивный DAC 25G CA-25G-N | 00h | 00h | 04h | 0Dh | FFh / 67h | 06h | 0 |
| Двухскоростной SR 10G/25G | 10h | 00h | 00h | 02h | FFh / 67h | 06h | 850 нм |
Байты длин 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 — SONET | OC-48 long / intermediate / short reach, 40G OTN |
| 133 — SAS/SATA | SAS 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 даже при принятом блоке вендора (Вендор-лок).
Правила кодирования
- Ставьте только биты, которым железо реально соответствует; объявленный 10GBASE-LR на SR-модуле превращает «нет линка» в «линк с ошибками».
- Держите всю идентификацию согласованной: соответствие ↔ длина волны ↔ длины ↔ кодирование ↔ номинальная скорость ↔ разъём ↔ технология передатчика.
- Для 25G+ заполняйте байт 36 / 192 и ставьте байт 12 / 140 в FFh со скоростью ×250 Мбит/с в байте 66 / 222.
- Для DAC кодируйте биты кабельной технологии, длину в метрах, разъём 23h и байты затухания/соответствия вместо длины волны.
- После этого пересчитайте контрольные суммы (Контрольные суммы).
В CodingBox
Экран Check transceiver декодирует каждый бит выше в понятные имена и перечисляет применения CMIS; редактор EEPROM правит байты кодов по полям, показывает получающуюся строку типа и исправляет CC_BASE и CC_EXT при записи.