SFF-8024 — code tables
Đội ngũ của chúng tôi đang thực hiện bản dịch. Bài viết này tạm thời chưa có bản tiếng Việt và đang được hiển thị bằng tiếng Anh.
SFF-8024, SFF Module Management Reference Code Tables, is the shared registry of one-byte codes that every other management specification points to. It does not describe a memory layout; it assigns meaning to values — what module type 18h is, which connector 0Ch means, what extended compliance code 06h stands for. Because the registry lives in one document, SFF-8472, SFF-8636, CMIS, MIS and INF-8077i all interpret the same byte the same way, and new form factors or PMDs are registered once. The document is revised several times a year; always decode against a recent revision.
Where each table is used
| Table | Name | SFP (SFF-8472) | QSFP (SFF-8636) | CMIS |
|---|---|---|---|---|
| 4-1 | Identifier | A0h byte 0 | byte 0 / 128 | byte 0 / 128 |
| 4-2 | Encoding | byte 11 | byte 139 | — (implied by application) |
| 4-3 | Connector | byte 2 | byte 130 | page 00h byte 203 |
| 4-4 | Extended specification compliance | byte 36 | byte 192 | — |
| 4-5 | Host electrical interface ID | — | — | application descriptors (byte 86 + 4n) |
| 4-6 … | Media interface IDs (MMF, SMF, passive copper, active cable, BASE-T) | — | — | application descriptors (byte 87 + 4n), table chosen by media type byte 85 |
Table 4-1 — identifier values
| Code | Module | Code | Module |
|---|---|---|---|
| 00h | unknown / unspecified | 11h | QSFP28 (SFF-8636) |
| 01h | GBIC | 12h | CXP2 / CXP28 |
| 02h | module soldered to motherboard | 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+ (not SFF-8472 compliant) | 1Ch | x4 MiniLink / OcuLink |
| 0Ch | QSFP (INF-8438) | 1Dh | x8 MiniLink |
| 0Dh | QSFP+ (SFF-8636 / SFF-8436) | 1Eh | QSFP+ or later with CMIS |
| 0Eh | CXP | 1Fh | SFP-DD with CMIS |
| 0Fh | shielded mini multilane HD 4X | 20h | SFP+ or later with CMIS (SFP112 and similar) |
| 10h | shielded mini multilane HD 8X | 21h | OSFP-XD with CMIS |
Newer revisions add further CMIS-managed form factors after 21h. Codes 80h–FFh are vendor specific. Which form factor is which: Form factors.
Table 4-2 — encoding
| Code | SFF-8472 (SFP, byte 11) | SFF-8636 (QSFP, byte 139) |
|---|---|---|
| 00h | unspecified | unspecified |
| 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 (transcoded FEC) | 256B/257B |
| 08h | PAM4 | PAM4 |
The two columns differ at 04h–06h — a classic source of "wrong encoding" when a QSFP template is reused for an SFP.
Table 4-3 — connector types
| Code | Connector | Code | Connector |
|---|---|---|---|
| 00h | unknown | 0Ch | MPO 1×12 |
| 01h | SC | 0Dh | MPO 2×16 |
| 02h | Fibre Channel style 1 copper | 20h | HSSDC II |
| 03h | Fibre Channel style 2 copper | 21h | copper pigtail |
| 04h | BNC/TNC | 22h | RJ45 |
| 05h | Fibre Channel coax headers | 23h | no separable connector (DAC, AOC, pigtail modules) |
| 06h | Fiber Jack | 24h | MXC 2×16 |
| 07h | LC | 25h | CS |
| 08h | MT-RJ | 26h | SN (formerly mini CS) |
| 09h | MU | 27h | MPO 2×12 |
| 0Ah | SG | 28h | MPO 1×16 |
| 0Bh | optical pigtail | — | — |
Photos and fibre pairings: Connectors & fibre.
Table 4-4 — extended specification compliance (selection)
Used in SFP byte 36 and QSFP byte 192; a single value, not a bit field.
| Code | Meaning | Code | Meaning |
|---|---|---|---|
| 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 | 50G/100G/200G active copper and AOC at defined BERs |
| 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 (no FEC) | 42h | 50GBASE-FR / 200GBASE-DR4 |
| 10h | 40GBASE-ER4 | 43h | 200GBASE-FR4 |
| 11h | 4×10GBASE-SR | 44h | 200G 1550 nm 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 with 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 nm WDM (4 λ) | 80h | capable of 64GFC |
| 1Ch–1Eh | 10GBASE-T SR / 5GBASE-T / 2.5GBASE-T | 81h | capable of 128GFC |
This is the table that makes 25G and 100G identity possible at all: the classic bit fields of SFF-8472 bytes 3–10 have no room for them. How the two mechanisms combine: Compliance codes.
Tables 4-5 onward — CMIS interface IDs (selection)
CMIS describes what a module can do as applications: a host electrical interface paired with a media interface. Both halves are SFF-8024 codes.
| Host electrical interface (4-5) | Code |
|---|---|
| 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 (short / long) |
| 800G C2M (8 × 100G) | 15h–16h |
| Media interface | MMF table | SMF table |
|---|---|---|
| 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 codes follow) |
Passive copper, active cable and BASE-T media have their own short tables; which table applies is set by CMIS media type byte 85 (01h MMF, 02h SMF, 03h passive copper, 04h active cable, 05h BASE-T). Full lists change with every SFF-8024 revision — treat the above as orientation, not as the registry. How applications are advertised and selected: CMIS.
Practical notes
- A host running older firmware shows codes it does not know as unknown — harmless for reading, but some platforms refuse to bring up a module whose type they cannot name.
- When coding a module, pick the codes that describe the real hardware; hosts cross-check identifier, connector, encoding and compliance against each other (Speed & rate).
- Reserved and vendor-specific ranges (80h–FFh) are legal but decode as nothing useful.
In CodingBox
CodingBox carries the SFF-8024 tables and uses them to label the identifier, connector, encoding, extended compliance and CMIS application fields in the EEPROM editor and on Check transceiver, so a raw 12h in a QSFP-DD application descriptor reads as 400GAUI-8 C2M.
Identifier 21h in practice: OSFP-XD; OSFP at 200G per lane keeps 19h — OSFP224.