CodingBox Documentation

Vendor fields: name, OUI, PN, SN, date code

The vendor block is what a host shows in show interface transceiver and what its compatibility policy matches against. The specifications define the fields, their lengths and their encoding precisely — and hosts are unforgiving about padding, case and stray bytes. This page collects the rules, the byte ranges per specification and the mistakes that make a perfectly good module read as garbage.

The fields

FieldSFF-8472 (SFP, A0h)SFF-8636 (QSFP, page 00h)CMIS (page 00h)INF-8077i (XFP)Format
Vendor name20–35148–163129–144148–16316 ASCII
Vendor OUI37–39165–167145–147165–1673 bytes, IEEE-assigned
Vendor PN40–55168–183148–163168–18316 ASCII
Vendor rev56–59184–185164–165184–1854 / 2 / 2 / 2 ASCII
Vendor SN68–83196–211166–181196–21116 ASCII
Date code84–91212–219182–189212–2198 ASCII
CLEI codepage 02h, if byte 129 bit 4190–19910 ASCII
Vendor specific96–127 (A0h), A2h user EEPROM 128–247224–255, page 02h223–255, custom pages224–255free

Byte-level maps: Memory map.

Encoding rules

  • ASCII only, printable range 20h–7Eh. No NUL (00h), no FFh, no control characters.
  • Left-justified, padded with spaces (20h) to the full field length. A 10-character part number is followed by six spaces, not six zeros.
  • Vendor name is the manufacturer's (or brand owner's) name as registered — the string hosts compare, typically case-sensitively.
  • OUI is the 24-bit IEEE organisationally unique identifier of the company in the name field, written high byte first; 00-00-00 means unspecified. Hosts rarely check it, but a mismatch between OUI and name is an easy fingerprint of a recoded module.
  • Revision is free-form (often A, 01, 1.0), spaces if none.
  • Serial number should be unique per vendor; many vendors embed year/week and a running count; some hosts use its structure to recognise their own modules.
  • Date code is YYMMDD followed by a 2-character vendor lot code (spaces if none): 240315 = 15 March 2024.
  • CLEI (Common Language Equipment Identifier) is a 10-character telecom asset code, present mostly on modules sold to carriers.

What hosts match on

Host behaviourWhat it comparesTypical of
Name + PN lookupvendor name and part number against a compatibility tablemost enterprise switches
PN prefix / familyfirst characters of the PNplatforms with broad "supported family" lists
Vendor-specific signaturea hash or magic value in the vendor area, computed from SN and other fieldsstrict OEM locks
SN patternstructure of the serial numbersome OEMs, for warranty and authenticity
OUIIEEE identifierrare; some NICs and NOS
Nothingaccepts anything with valid checksumsopen switches, most NICs with unsupported-SFP allowed

Which platform does what, and how to respond, is the subject of Vendor lock and Third-party optics.

Common mistakes

MistakeSymptom on the host
NUL padding instead of spacestruncated or garbled name, module marked unsupported
Field one byte too long, spilling into the nextcorrupted OUI or PN, checksum mismatch
Lower/upper-case differing from the referencePN not matched by the compatibility table
Non-ASCII bytes (UTF-8, Cyrillic)question marks or refusal
Date code with letters in the digit positionsdisplay errors; some hosts reject
Vendor block changed, checksums notmodule invalid — see Checksums
Name changed, vendor-specific signature leftstill unsupported on strict platforms
Identity inconsistent with compliance codes or wavelengthspeed and type not supported — see Compliance codes

Vendor-specific areas

The specifications leave the vendor areas undefined on purpose. Manufacturers store calibration backups, production data, configuration for the controller and — on locked modules — authentication data there. Overwriting them blindly can brick a module or break its lock check; copying them from a reference module without the matching serial often fails the check anyway. Treat them as opaque unless you know the vendor's layout (EEPROM recoding).

In CodingBox

The EEPROM editor edits each vendor field as text, pads with spaces to the exact length, refuses non-ASCII input, and recalculates the checksums on write. The code database stores complete identities so a known-good vendor block can be applied in one step.