CodingBox Documentation

SFF-8024 — code tables

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

TableNameSFP (SFF-8472)QSFP (SFF-8636)CMIS
4-1IdentifierA0h byte 0byte 0 / 128byte 0 / 128
4-2Encodingbyte 11byte 139— (implied by application)
4-3Connectorbyte 2byte 130page 00h byte 203
4-4Extended specification compliancebyte 36byte 192
4-5Host electrical interface IDapplication 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

CodeModuleCodeModule
00hunknown / unspecified11hQSFP28 (SFF-8636)
01hGBIC12hCXP2 / CXP28
02hmodule soldered to motherboard13hCDFP style 1/2
03hSFP / SFP+ / SFP28 (SFF-8472)14hshielded mini multilane HD 4X fanout
04h300-pin XBI15hshielded mini multilane HD 8X fanout
05hXENPAK16hCDFP style 3
06hXFP (INF-8077i)17hmicroQSFP
07hXFF18hQSFP-DD (CMIS)
08hXFP-E19hOSFP 8X (CMIS)
09hXPAK1AhSFP-DD (MIS)
0AhX21BhDSFP
0BhDWDM-SFP / SFP+ (not SFF-8472 compliant)1Chx4 MiniLink / OcuLink
0ChQSFP (INF-8438)1Dhx8 MiniLink
0DhQSFP+ (SFF-8636 / SFF-8436)1EhQSFP+ or later with CMIS
0EhCXP1FhSFP-DD with CMIS
0Fhshielded mini multilane HD 4X20hSFP+ or later with CMIS (SFP112 and similar)
10hshielded mini multilane HD 8X21hOSFP-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

CodeSFF-8472 (SFP, byte 11)SFF-8636 (QSFP, byte 139)
00hunspecifiedunspecified
01h8B/10B8B/10B
02h4B/5B4B/5B
03hNRZNRZ
04hManchesterSONET scrambled
05hSONET scrambled64B/66B
06h64B/66BManchester
07h256B/257B (transcoded FEC)256B/257B
08hPAM4PAM4

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

CodeConnectorCodeConnector
00hunknown0ChMPO 1×12
01hSC0DhMPO 2×16
02hFibre Channel style 1 copper20hHSSDC II
03hFibre Channel style 2 copper21hcopper pigtail
04hBNC/TNC22hRJ45
05hFibre Channel coax headers23hno separable connector (DAC, AOC, pigtail modules)
06hFiber Jack24hMXC 2×16
07hLC25hCS
08hMT-RJ26hSN (formerly mini CS)
09hMU27hMPO 2×12
0AhSG28hMPO 1×16
0Bhoptical 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.

CodeMeaningCodeMeaning
01h100G AOC / 25GAUI C2M AOC (BER 5·10⁻⁵)1Fh40G SWDM4
02h100GBASE-SR4 / 25GBASE-SR20h100G SWDM4
03h100GBASE-LR4 / 25GBASE-LR21h100G PAM4 BiDi
04h100GBASE-ER4 / 25GBASE-ER22h–24h4WDM-10 / -20 / -40 MSA
05h100GBASE-SR1025h100GBASE-DR
06h100G CWDM426h100G-FR / 100GBASE-FR1
07h100G PSM427h100G-LR / 100GBASE-LR1
08h100G ACC / 25GAUI C2M ACC (BER 5·10⁻⁵)30h–33h50G/100G/200G active copper and AOC at defined BERs
0Bh100GBASE-CR4 / 25GBASE-CR CA-25G-L / 50GBASE-CR2 (RS-FEC)40h50GBASE-CR / 100GBASE-CR2 / 200GBASE-CR4
0Ch25GBASE-CR CA-25G-S / 50GBASE-CR2 (BASE-R FEC)41h50GBASE-SR / 100GBASE-SR2 / 200GBASE-SR4
0Dh25GBASE-CR CA-25G-N / 50GBASE-CR2 (no FEC)42h50GBASE-FR / 200GBASE-DR4
10h40GBASE-ER443h200GBASE-FR4
11h4×10GBASE-SR44h200G 1550 nm PSM4
12h40G PSM445h50GBASE-LR
13h–15hITU-T G.959.1 P1I1-2D1 / P1S1-2D2 / P1L1-2D246h200GBASE-LR4
16h10GBASE-T with SFI47h400GBASE-DR4
17h100G CLR448h400GBASE-FR4
18h100G AOC / 25GAUI AOC (BER 10⁻¹²)49h400GBASE-LR4-10
19h100G ACC / 25GAUI ACC (BER 10⁻¹²)4Ah400GBASE-ZR
1Ah100GE-DWDM27Fh256GFC-SW4
1Bh100G 1550 nm WDM (4 λ)80hcapable of 64GFC
1Ch–1Eh10GBASE-T SR / 5GBASE-T / 2.5GBASE-T81hcapable 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-CX01h
XAUI02h
XFI03h
SFI04h
25GAUI C2M05h
XLAUI C2M06h
XLPPI07h
LAUI-2 C2M08h
50GAUI-2 C2M09h
50GAUI-1 C2M0Ah
CAUI-4 C2M0Bh
100GAUI-4 C2M0Dh
100GAUI-2 C2M0Eh
200GAUI-8 C2M0Fh
200GAUI-4 C2M10h
400GAUI-16 C2M11h
400GAUI-8 C2M12h
400GAUI-4 C2M13h–14h (short / long)
800G C2M (8 × 100G)15h–16h
Media interfaceMMF tableSMF table
10GBASE-SR / 10GBASE-LR02h04h
25GBASE-SR / 25GBASE-LR03h07h
40GBASE-SR4 / 40GBASE-LR404h09h
100GBASE-SR4 / 100GBASE-LR409h0Dh
100G SWDM4 / 100G CWDM40Ah10h
100GBASE-SR2 / 100GBASE-DR0Ch14h
100G-SR / 100G-FR0Dh15h
200GBASE-SR4 / 200GBASE-DR40Eh17h
400GBASE-SR8 / 400GBASE-DR410h1Ch
400G-SR4 / 400G-FR411h1Dh
800G-SR8 / 800G-DR812h(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.