CodingBox Documentation

How each NOS validates a module

Between "module detected" and "port up" every network OS runs a check on the module's identity. What it compares, what it does when the comparison fails and whether an administrator can override it differ by vendor, platform and release — and that difference is the whole subject of transceiver compatibility. This page lays the behaviours side by side, as documented by the vendors and observed in the field, so a module read on the bench can be judged against the box it is meant for.

What can be checked

CheckBytes involvedWho does it
Checksums CC_BASE / CC_EXTSFP 63/95, QSFP 191/223, CMIS 222/255almost everyone — a failure is invalid EEPROM (Checksums)
Identifier / connector / encoding consistencySFP 0, 2, 11; QSFP 0, 130, 139most; unknown types shown as such
Compliance codes vs portSFP 3–10, 36; QSFP 131–138, 192; CMIS applicationsmost — speed and type not supported (Compliance codes)
Vendor name + part number against a listSFP 20–35, 40–55; QSFP 148–163, 168–183strict and semi-strict platforms (Part numbering)
Vendor-specific signaturevendor area (SFP 96–127, QSFP 224–255, CMIS custom)a few OEMs; a hash tied to the serial number
Serial number format / date codeSFP 68–91; QSFP 196–219rare; support engineers look at them manually
Power class vs portSFP 64; QSFP 129/107; CMIS 200–201everyone that implements power management (Power & thermal)

Behaviour by vendor

Public commands and behaviours as of recent releases; details vary by platform and version.

Vendor / NOSChecksOn failureOverrideDDM for third-party
Cisco IOS / IOS-XE (Catalyst, ISR)vendor/PN list and a vendor-specific check; checksums%PHY-4-UNSUPPORTED_TRANSCEIVER, port errdisabled (gbic-invalid), laser offservice unsupported-transceiver (hidden) + no errdisable detect cause gbic-invalid; not on all platforms; not supported by TACshown once accepted; some fields blank
Cisco NX-OS (Nexus)as above, less strict on many DC platformsoften up with a log; strict SKUs errdisableservice unsupported-transceiverusually shown
Cisco IOS-XRper-platform optics list, power classunsupported state, port may stay downlimited; platform-dependentpartial
Arista EOSchecksums, type consistencylogs unsupported; link comes upnone neededfull
Juniper Junosvendor/PN list for "supported" label, checksumslink usually up; show chassis pic marks unsupported; some EX/QFX platforms withhold DDM or speeds for unknown PNsnone officialfull for known PNs, partial for unknown
Huawei VRPvendor/PN; non-Huawei → alarmlink up with recurring phony transceiver alarms; some platforms restricttransceiver phony-alarm-disable (system view)full
H3C Comwareas VRPalarmtransceiver phony-alarm-disablefull
HPE Aruba AOS-S / AOS-CXvendor/PN listunsupported, port downallow-unsupported-transceiverfull
Dell OS10 / OS9 / PowerConnectchecksums; some list checks on older gearlogs; older: errdisableservice unsupported-transceiver (older)full
Extreme EXOS / VOSSchecksums, typelogs, upfull
Ruckus/Brocade ICX (FastIron)checksums; optical monitoring only for Brocade PNs on someup; DDM may be missingpartial
Brocade FOS (SAN)Brocade-branded PN and serial required on most Gen 5/6/7 platformsport Mod_Inv, not enablednoneBrocade optics only
Nvidia/Mellanox (Onyx, Cumulus, IB)Ethernet: checksums, type; InfiniBand: cable info validated by the fabric managerEthernet up with log; IB may run at reduced speed or flagfull
SONiC / white-boxplatform plugin: checksums, CMIS parsingup; unknown fields shown rawfull (plugin-dependent)
MikroTik RouterOS / SwOSnone beyond parsingupfull
Ubiquitinone beyond parsingupfull
Server NICs (Intel, Broadcom, Mellanox)driver whitelists on some Intel familiesdriver refuses to bring the port upallow_unsupported_sfp=1 module parameter (Intel ixgbe/i40e)via ethtool -m

Where a vendor's override exists, it is generally offered as is: the module works, but the vendor does not commit to supporting the combination. Fleet decisions belong with the network owner (Third-party optics).

What "coded for vendor X" has to satisfy

Platform classMinimum for acceptanceAlso advisable
Permissive (Arista, SONiC, MikroTik, Extreme…)valid checksums, consistent type codesreal vendor name and PN — nothing to gain from OEM coding
List-checking (Juniper, Aruba, Huawei/H3C, NX-OS on many SKUs)vendor name and PN exactly as in the platform's list, correct compliance codes for the portmatching PN suffix/grade; realistic serial and date code
Signature-checking (Cisco IOS/IOS-XE, some XR)all of the above plus the vendor-specific area computed for this serialidentity fields consistent with the PN (wavelength, reach, technology)
Branded-only (Brocade FOS)Brocade vendor string and PN family, serial format

How the bench side works: Vendor lock & coding, EEPROM recoding.

Reading the rejection

Log / status textMeaningNext step
unsupported transceiver, Mod_Inv, phonyidentity not on the listoverride, or code to a listed PN
invalid EEPROM, checksum errorCC_BASE/CC_EXT wrongrecalculate (Checksums)
speed and type not supported, unknown media typecompliance codes do not fit the portfix codes or use another port mode (Speed & rate)
power class exceeds, stuck in LowPwrpower class vs cagePower & thermal
Module not ready, DP state stallsCMIS bring-upCMIS issues

Per-NOS commands to see these states: Verifying optics on a switch.

Changes with software upgrades

Vendors tighten or loosen checks between releases: new signature validation, new supported-optics lists, removed hidden commands, changed DDM handling. A fleet of third-party or coded optics that worked yesterday can be errdisabled after an upgrade (Compatibility matrices & firmware).

In CodingBox

CodingBox shows the exact bytes each check above reads — vendor name, PN, checksums, compliance codes, power class — and the code database holds identities that a given platform class accepts. Verify on a test port after coding; the switch, not the bench, has the last word (Check transceiver).

The server-side counterpart — driver whitelists per NIC vendor, Intel overrides, Windows and ESXi behaviour: Transceiver compatibility on NICs.