CodingBox Documentation

OEM part numbers: how vendors name optics

A switch matches a module against its supported list by the part number and vendor name stored in the module's EEPROM, so the exact string matters — down to a suffix letter. Each vendor has a naming grammar, and knowing it lets you read a PN off a label or a show output and know the rate, reach, wavelength and grade without a datasheet. This page collects the grammars of the common brands and the rules for matching them.

Where the PN lives

SpecificationVendor namePart numberNotes
SFF-8472 (SFP family)A0h 20–35A0h 40–5516 ASCII each, space padded
SFF-8636 (QSFP family)148–163168–183
CMIS (QSFP-DD, OSFP…)page 00h 129–144148–163
INF-8077i (XFP)148–163168–183

Formatting rules and what else hosts compare: Vendor fields.

Naming grammars

BrandPatternExamplesReading it
CiscoGLC-<type>-<var> (1G), SFP-10G-<reach>[-S/-X/-I], SFP-25G-<reach>-S, QSFP-40G-<reach>4, QSFP-100G-<reach>4-S, QDD-400G-<reach>4-S, SFP-H10GB-CU<n>M (DAC), SFP-10G-AOC<n>MGLC-LH-SMD, SFP-10G-LR, SFP-10G-LR-S, SFP-25G-SR-S, QSFP-100G-SR4-S, QDD-400G-DR4-S, SFP-H10GB-CU3Msuffix -S = "select" (enterprise grade, no extended temp), -X/-I = extended/industrial; SMD = SM with DOM; H10GB-CU = passive DAC with length
JuniperEX-SFP-<rate><reach>, QFX-SFP-<rate><reach>, JNP-<ff>-<rate>-<reach>, SRX-SFP-…, QFX-QSFP-DAC-<n>MEX-SFP-10GE-LR, QFX-SFP-10GE-SR, JNP-QSFP-100G-LR4, JNP-QSFP-DAC-1M, EX-SFP-1GE-LXprefix = product family it was qualified for (EX, QFX, MX, SRX, JNP generic); same optic may exist under several prefixes
AristaSFP-<rate>-<reach>, QSFP-<rate>-<reach>, CAB-<ff>-<ff>-<rate>-<n>M, AOC-<ff>-<ff>-<rate>-<n>MSFP-10G-LR, SFP-25G-SR, QSFP-100G-SR4, QSFP-400G-DR4, CAB-Q-Q-100G-3M, AOC-S-S-25G-5Mplain and predictable; cables encode both ends (Q-Q, Q-S, S-S)
Huaweinumeric codes O<ff><…> / OM…, OS…, LE…, QSFP-…, S-SFP-…OSX010000 (10G SFP+ LR 10 km), OMXD30000 (10G SR), OSXD22N00, S-SFP-GE-LH40-SM1310, QSFP-100G-SR4, SFP-10G-USRolder codes are catalog numbers; newer ones descriptive (rate, reach in km, wavelength)
H3CSFP-<rate>-<reach>-<fibre><λ>, QSFP-<rate>-<reach>-<fibre><λ>SFP-XG-LX-SM1310, SFP-GE-LX-SM1310-A, QSFP-100G-SR4-MM850, QSFP-40G-LR4-WDM1300XG = 10G, GE = 1G; fibre and wavelength spelled out
HPE / ArubaJ<4 digits><letter> (ProCurve/Aruba), JD/JG/JH… (H3C-derived), R<…> (newer Aruba), 455883-B21 style (server)J4858D (1G SX), J9151E (10G LR), JD092B (10G SR), JL486A (25G SR), R0R41Aletter suffix = revision/generation; the same optic gets a new J-number per generation
Dell407-<4 chars> (SKU) and descriptive SFP-10G-SR, QSFP28-100G-SR4, DAC-Q28-…407-BBOU (10G SR), 407-BBVJ (25G SR), QSFP28-100G-SR4, DAC-Q28-Q28-100G-1MSKU on the box, descriptive PN in EEPROM
Extreme5-digit codes10301 (10G SR), 10302 (10G LR), 10052 (1G LX), 10401 (QSFP28 SR4)catalog numbers; descriptive string in vendor rev/PN fields
Nvidia / MellanoxMMA<…> (MMF optics), MMS<…> (SMF), MFA<…> (AOC), MCP<…> (DAC), MC<…> legacyMMA1B00-C100D (100G SR4), MMS1W50-HM (200G FR4), MFA1A00-C003 (100G AOC 3 m), MCP1600-C003E30N (100G DAC 3 m, 30 AWG), MMA4Z00-NS (800G SR8 twin-port)suffix encodes lanes, length, gauge and generation; InfiniBand and Ethernet variants differ
IntelE10GSFP<…>, E25GSFP<…>, X710DA… (NIC)E10GSFPSR, E10GSFPLR, E25GSFP28SRNIC-vendor optics; drivers check them
Brocade / Broadcom (SAN)57-<digits>-<rev>, XBR-000<digits>57-1000117-01 (8G SW), XBR-000192 (16G SW), 57-1000480-01 (32G SW)SAN switches require these strings
MikroTikS-<λ><type>…, S+<λ>… (10G), XS+<…> (25G), Q+<…> (40G), XQ+<…> (100G)S-3553LC20D (1G BiDi), S+31DLC10D (10G LR 10 km), XS+31LC10D (25G LR), Q+85MP01D (40G SR4), XQ+85MP01D (100G SR4)digits = wavelength, LC/MP connector, 10D = 10 km with DDM
UbiquitiUACC-OM-<…>, UF-<type>UF-SM-10G, UACC-OM-SFP28-SR
Generic / white labeldescriptiveSFP-10GLR-31, SFP-10G-LR-C, QSFP28-100G-SR4-Cthe -C suffix often means "coded for vendor C" in distributor catalogues

Conventions shift between product generations; the grammar tells you how to read a PN, not that every PN exists.

Grades and suffixes worth knowing

Suffix / markerMeaning
-S (Cisco)select/enterprise grade: commercial temperature, no extended-reach DOM promises
-I, -X, -Eindustrial / extended temperature range
SMD, -D, 10Dwith digital diagnostics
-C, -CIS, -JUN, -ARI (distributors)coded for a given OEM's whitelist
A/B/C… (HPE letter)hardware/firmware revision or generation
-U/-D, -A/-BBiDi upstream/downstream pair, or channel A/B of a paired optic

Matching rules on the switch

  • Most platforms compare vendor name + PN against a table; some compare the PN prefix only; a few also verify a vendor-specific signature (How each NOS validates a module).
  • Case, trailing spaces and padding must match the specification (space-padded ASCII); a NUL-padded PN fails silently (Vendor fields).
  • The type string the switch prints is often built from the PN, not from compliance codes — a PN that says -LR on an SR module will be displayed as LR and then fail to link (Compliance codes).
  • Serial-number formats and date codes are rarely checked but are inspected by TAC.

Finding the right PN for a port

  1. Platform's supported-optics list (or transceiver compatibility tool) → PN for the PMD you need (Compatibility matrices).
  2. Confirm the PMD behind the PN (rate, reach, wavelength, connector) against the plant.
  3. Check the grade suffix against temperature and reach requirements.
  4. On the bench, compare the module's EEPROM PN and vendor name with the list entry character by character (Check transceiver).

In CodingBox

The code database stores complete identities under the vendor PN so a module can be coded to an entry in one step; the EEPROM editor enforces the 16-character, space-padded format and recalculates checksums. Coding a PN that does not describe the real optics moves the failure from the whitelist to the link (EEPROM recoding).

The rest of the label around the part number — serial and date formats, wavelength and reach fields, latch colours, safety marks: Labels & colour codes.