SFF-8024 — таблицы кодов
SFF-8024, SFF Module Management Reference Code Tables, — общий реестр однобайтовых кодов, на который ссылаются все остальные спецификации управления. Он не описывает раскладку памяти, а присваивает смысл значениям: что за тип модуля 18h, какой разъём означает 0Ch, что стоит за расширенным кодом соответствия 06h. Поскольку реестр живёт в одном документе, SFF-8472, SFF-8636, CMIS, MIS и INF-8077i трактуют один и тот же байт одинаково, а новые форм-факторы и PMD регистрируются однократно. Документ пересматривают несколько раз в год; декодируйте всегда по свежей ревизии.
Где используется каждая таблица
| Таблица | Название | SFP (SFF-8472) | QSFP (SFF-8636) | CMIS |
|---|---|---|---|---|
| 4-1 | Идентификатор | A0h байт 0 | байт 0 / 128 | байт 0 / 128 |
| 4-2 | Кодирование | байт 11 | байт 139 | — (следует из применения) |
| 4-3 | Разъём | байт 2 | байт 130 | страница 00h байт 203 |
| 4-4 | Расширенное соответствие спецификациям | байт 36 | байт 192 | — |
| 4-5 | ID электрического интерфейса хоста | — | — | дескрипторы применений (байт 86 + 4n) |
| 4-6 … | ID медиа-интерфейсов (MMF, SMF, пассивная медь, активный кабель, BASE-T) | — | — | дескрипторы применений (байт 87 + 4n), таблица выбирается байтом типа среды 85 |
Таблица 4-1 — значения идентификатора
| Код | Модуль | Код | Модуль |
|---|---|---|---|
| 00h | неизвестно / не задано | 11h | QSFP28 (SFF-8636) |
| 01h | GBIC | 12h | CXP2 / CXP28 |
| 02h | модуль, распаянный на плате | 13h | CDFP style 1/2 |
| 03h | SFP / SFP+ / SFP28 (SFF-8472) | 14h | shielded mini multilane HD 4X fanout |
| 04h | 300-pin XBI | 15h | shielded mini multilane HD 8X fanout |
| 05h | XENPAK | 16h | CDFP style 3 |
| 06h | XFP (INF-8077i) | 17h | microQSFP |
| 07h | XFF | 18h | QSFP-DD (CMIS) |
| 08h | XFP-E | 19h | OSFP 8X (CMIS) |
| 09h | XPAK | 1Ah | SFP-DD (MIS) |
| 0Ah | X2 | 1Bh | DSFP |
| 0Bh | DWDM-SFP / SFP+ (не по SFF-8472) | 1Ch | x4 MiniLink / OcuLink |
| 0Ch | QSFP (INF-8438) | 1Dh | x8 MiniLink |
| 0Dh | QSFP+ (SFF-8636 / SFF-8436) | 1Eh | QSFP+ и новее с CMIS |
| 0Eh | CXP | 1Fh | SFP-DD с CMIS |
| 0Fh | shielded mini multilane HD 4X | 20h | SFP+ и новее с CMIS (SFP112 и подобные) |
| 10h | shielded mini multilane HD 8X | 21h | OSFP-XD с CMIS |
Свежие ревизии добавляют после 21h другие форм-факторы под CMIS. Коды 80h–FFh — вендорские. Какой форм-фактор какой: Форм-факторы.
Таблица 4-2 — кодирование
| Код | SFF-8472 (SFP, байт 11) | SFF-8636 (QSFP, байт 139) |
|---|---|---|
| 00h | не задано | не задано |
| 01h | 8B/10B | 8B/10B |
| 02h | 4B/5B | 4B/5B |
| 03h | NRZ | NRZ |
| 04h | Manchester | SONET scrambled |
| 05h | SONET scrambled | 64B/66B |
| 06h | 64B/66B | Manchester |
| 07h | 256B/257B (транскодирование FEC) | 256B/257B |
| 08h | PAM4 | PAM4 |
Столбцы расходятся на 04h–06h — классический источник «неверного кодирования», когда шаблон QSFP переиспользуют для SFP.
Таблица 4-3 — типы разъёмов
| Код | Разъём | Код | Разъём |
|---|---|---|---|
| 00h | неизвестно | 0Ch | MPO 1×12 |
| 01h | SC | 0Dh | MPO 2×16 |
| 02h | Fibre Channel style 1, медь | 20h | HSSDC II |
| 03h | Fibre Channel style 2, медь | 21h | медный пигтейл |
| 04h | BNC/TNC | 22h | RJ45 |
| 05h | коаксиальные разъёмы Fibre Channel | 23h | без отделяемого разъёма (DAC, AOC, модули-пигтейлы) |
| 06h | Fiber Jack | 24h | MXC 2×16 |
| 07h | LC | 25h | CS |
| 08h | MT-RJ | 26h | SN (бывший mini CS) |
| 09h | MU | 27h | MPO 2×12 |
| 0Ah | SG | 28h | MPO 1×16 |
| 0Bh | оптический пигтейл | — | — |
Фото и сочетания с волокном: Разъёмы и волокно.
Таблица 4-4 — расширенное соответствие спецификациям (выборка)
Используется в байте 36 SFP и байте 192 QSFP; одно значение, не битовое поле.
| Код | Смысл | Код | Смысл |
|---|---|---|---|
| 01h | 100G AOC / 25GAUI C2M AOC (BER 5·10⁻⁵) | 1Fh | 40G SWDM4 |
| 02h | 100GBASE-SR4 / 25GBASE-SR | 20h | 100G SWDM4 |
| 03h | 100GBASE-LR4 / 25GBASE-LR | 21h | 100G PAM4 BiDi |
| 04h | 100GBASE-ER4 / 25GBASE-ER | 22h–24h | 4WDM-10 / -20 / -40 MSA |
| 05h | 100GBASE-SR10 | 25h | 100GBASE-DR |
| 06h | 100G CWDM4 | 26h | 100G-FR / 100GBASE-FR1 |
| 07h | 100G PSM4 | 27h | 100G-LR / 100GBASE-LR1 |
| 08h | 100G ACC / 25GAUI C2M ACC (BER 5·10⁻⁵) | 30h–33h | активная медь и AOC 50G/100G/200G при заданных BER |
| 0Bh | 100GBASE-CR4 / 25GBASE-CR CA-25G-L / 50GBASE-CR2 (RS-FEC) | 40h | 50GBASE-CR / 100GBASE-CR2 / 200GBASE-CR4 |
| 0Ch | 25GBASE-CR CA-25G-S / 50GBASE-CR2 (BASE-R FEC) | 41h | 50GBASE-SR / 100GBASE-SR2 / 200GBASE-SR4 |
| 0Dh | 25GBASE-CR CA-25G-N / 50GBASE-CR2 (без FEC) | 42h | 50GBASE-FR / 200GBASE-DR4 |
| 10h | 40GBASE-ER4 | 43h | 200GBASE-FR4 |
| 11h | 4×10GBASE-SR | 44h | 200G 1550 нм PSM4 |
| 12h | 40G PSM4 | 45h | 50GBASE-LR |
| 13h–15h | ITU-T G.959.1 P1I1-2D1 / P1S1-2D2 / P1L1-2D2 | 46h | 200GBASE-LR4 |
| 16h | 10GBASE-T с SFI | 47h | 400GBASE-DR4 |
| 17h | 100G CLR4 | 48h | 400GBASE-FR4 |
| 18h | 100G AOC / 25GAUI AOC (BER 10⁻¹²) | 49h | 400GBASE-LR4-10 |
| 19h | 100G ACC / 25GAUI ACC (BER 10⁻¹²) | 4Ah | 400GBASE-ZR |
| 1Ah | 100GE-DWDM2 | 7Fh | 256GFC-SW4 |
| 1Bh | 100G 1550 нм WDM (4 λ) | 80h | способен на 64GFC |
| 1Ch–1Eh | 10GBASE-T SR / 5GBASE-T / 2.5GBASE-T | 81h | способен на 128GFC |
Именно эта таблица вообще делает возможной идентификацию 25G и 100G: в классических битовых полях SFF-8472 байтов 3–10 для них нет места. Как сочетаются оба механизма: Коды соответствия.
Таблицы с 4-5 — ID интерфейсов CMIS (выборка)
CMIS описывает возможности модуля как применения: электрический интерфейс хоста в паре с медиа-интерфейсом. Обе половины — коды SFF-8024.
| Электрический интерфейс хоста (4-5) | Код |
|---|---|
| 1000BASE-CX | 01h |
| XAUI | 02h |
| XFI | 03h |
| SFI | 04h |
| 25GAUI C2M | 05h |
| XLAUI C2M | 06h |
| XLPPI | 07h |
| LAUI-2 C2M | 08h |
| 50GAUI-2 C2M | 09h |
| 50GAUI-1 C2M | 0Ah |
| CAUI-4 C2M | 0Bh |
| 100GAUI-4 C2M | 0Dh |
| 100GAUI-2 C2M | 0Eh |
| 200GAUI-8 C2M | 0Fh |
| 200GAUI-4 C2M | 10h |
| 400GAUI-16 C2M | 11h |
| 400GAUI-8 C2M | 12h |
| 400GAUI-4 C2M | 13h–14h (короткий / длинный) |
| 800G C2M (8 × 100G) | 15h–16h |
| Медиа-интерфейс | Таблица MMF | Таблица SMF |
|---|---|---|
| 10GBASE-SR / 10GBASE-LR | 02h | 04h |
| 25GBASE-SR / 25GBASE-LR | 03h | 07h |
| 40GBASE-SR4 / 40GBASE-LR4 | 04h | 09h |
| 100GBASE-SR4 / 100GBASE-LR4 | 09h | 0Dh |
| 100G SWDM4 / 100G CWDM4 | 0Ah | 10h |
| 100GBASE-SR2 / 100GBASE-DR | 0Ch | 14h |
| 100G-SR / 100G-FR | 0Dh | 15h |
| 200GBASE-SR4 / 200GBASE-DR4 | 0Eh | 17h |
| 400GBASE-SR8 / 400GBASE-DR4 | 10h | 1Ch |
| 400G-SR4 / 400G-FR4 | 11h | 1Dh |
| 800G-SR8 / 800G-DR8 | 12h | (коды 800G следуют далее) |
У пассивной меди, активных кабелей и BASE-T свои короткие таблицы; какая применяется, задаёт байт типа среды CMIS 85 (01h MMF, 02h SMF, 03h пассивная медь, 04h активный кабель, 05h BASE-T). Полные списки меняются с каждой ревизией SFF-8024 — считайте таблицы выше ориентиром, а не реестром. Как применения объявляются и выбираются: CMIS.
Практические замечания
- Хост со старой прошивкой показывает незнакомые коды как unknown — для чтения безвредно, но некоторые платформы отказываются поднимать модуль, тип которого не могут назвать.
- Кодируя модуль, выбирайте коды, описывающие реальное железо; хосты сверяют идентификатор, разъём, кодирование и соответствие друг с другом (Скорость и режимы).
- Зарезервированные и вендорские диапазоны (80h–FFh) легальны, но декодируются в ничто полезное.
В CodingBox
CodingBox содержит таблицы SFF-8024 и использует их, чтобы подписывать идентификатор, разъём, кодирование, расширенное соответствие и поля применений CMIS в редакторе EEPROM и на Check transceiver, так что сырое 12h в дескрипторе применения QSFP-DD читается как 400GAUI-8 C2M.
Идентификатор 21h на практике: OSFP-XD; OSFP на 200G/канал сохраняет 19h — OSFP224.
Идентификатор 1Bh на практике: DSFP — два канала в габарите SFP, управление на основе CMIS.