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
| Field | SFF-8472 (SFP, A0h) | SFF-8636 (QSFP, page 00h) | CMIS (page 00h) | INF-8077i (XFP) | Format |
|---|---|---|---|---|---|
| Vendor name | 20–35 | 148–163 | 129–144 | 148–163 | 16 ASCII |
| Vendor OUI | 37–39 | 165–167 | 145–147 | 165–167 | 3 bytes, IEEE-assigned |
| Vendor PN | 40–55 | 168–183 | 148–163 | 168–183 | 16 ASCII |
| Vendor rev | 56–59 | 184–185 | 164–165 | 184–185 | 4 / 2 / 2 / 2 ASCII |
| Vendor SN | 68–83 | 196–211 | 166–181 | 196–211 | 16 ASCII |
| Date code | 84–91 | 212–219 | 182–189 | 212–219 | 8 ASCII |
| CLEI code | — | page 02h, if byte 129 bit 4 | 190–199 | — | 10 ASCII |
| Vendor specific | 96–127 (A0h), A2h user EEPROM 128–247 | 224–255, page 02h | 223–255, custom pages | 224–255 | free |
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
YYMMDDfollowed 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 behaviour | What it compares | Typical of |
|---|---|---|
| Name + PN lookup | vendor name and part number against a compatibility table | most enterprise switches |
| PN prefix / family | first characters of the PN | platforms with broad "supported family" lists |
| Vendor-specific signature | a hash or magic value in the vendor area, computed from SN and other fields | strict OEM locks |
| SN pattern | structure of the serial number | some OEMs, for warranty and authenticity |
| OUI | IEEE identifier | rare; some NICs and NOS |
| Nothing | accepts anything with valid checksums | open 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
| Mistake | Symptom on the host |
|---|---|
| NUL padding instead of spaces | truncated or garbled name, module marked unsupported |
| Field one byte too long, spilling into the next | corrupted OUI or PN, checksum mismatch |
| Lower/upper-case differing from the reference | PN not matched by the compatibility table |
| Non-ASCII bytes (UTF-8, Cyrillic) | question marks or refusal |
| Date code with letters in the digit positions | display errors; some hosts reject |
| Vendor block changed, checksums not | module invalid — see Checksums |
| Name changed, vendor-specific signature left | still unsupported on strict platforms |
| Identity inconsistent with compliance codes or wavelength | speed 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.