CodingBox Documentation

Transceiver compatibility on NICs: driver whitelists

On a switch, module policy is a line in the network OS; on a server it is a decision made by the NIC driver and firmware, and it differs per vendor, per operating system and per driver version. Intel adapters are the ones that refuse unlisted modules; most others accept anything that parses. This page lists the behaviour by vendor and OS, the documented overrides, the FEC/auto-negotiation rules that decide whether DAC and optics link, and what a coded identity must satisfy on the server side.

Behaviour by vendor

Vendor / driverCheckOn failureOverrideNotes
Intel ixgbe (X520, X540, X550 SFP+)vendor OUI / PN list of Intel-qualified SFP+failed to load because an unsupported SFP+ or QSFP module type was detected, port downmodule parameter allow_unsupported_sfp=1 (Linux); reload driverDAC generally accepted; 1G SFPs limited
Intel i40e (X710, XXV710, XL710)firmware-level qualification of the moduleunsupported module in dmesg, link down or "module not qualified" in ethtoolallow_unsupported_sfp=1 on newer i40e; older builds noneXXV710 25G modules strictly checked
Intel ice (E810)NVM/firmware qualificationPossible mis-configuration of the Ethernet port detected / unqualified moduledepends on NVM and driver release; some builds honour an unsupported-SFP setting, others reject — check Intel's release notesmost permissive of the Intel line in recent NVM
Intel on Windows (PROSet drivers)same listsdevice shows "Network cable unplugged", event log warningno documented overrideuse Intel-listed or Intel-coded modules
Intel on VMware ESXi (ixgben, i40en, icen)same listslink down, vmkernel.log "unsupported module"module parameters via esxcli system module parameters set where the driver exposes allow_unsupported_sfp; not on all versionsprefer qualified modules in production
Nvidia / Mellanox mlx5 (ConnectX)parses EEPROM; Ethernet: no listlink up; mlxlink shows module infonot neededInfiniBand mode: fabric manager validates cable/module identity and may flag or downgrade (IB cables)
Broadcom bnxt_en (NetXtreme-E)parses; no list on most SKUsupOEM-branded (Dell, HPE) firmware may add checks
Marvell / QLogic qedeparsesup
AMD Solarflare sfcparsesup
Chelsio cxgb4parsesup
Pensando ionicparsesup
Server-vendor OEM NICs (Dell, HPE, Lenovo, Cisco UCS VIC)may add their own lists, esp. Cisco VIC"unsupported transceiver" in CIMC/UCSMnone officiallyUCS VIC accepts Cisco-coded modules

Behaviour changes with driver and firmware (NVM) versions; verify on the exact combination (Compatibility matrices & firmware).

Applying the Intel override (Linux)

# temporary (until reload)
modprobe -r ixgbe && modprobe ixgbe allow_unsupported_sfp=1
# persistent
echo "options ixgbe allow_unsupported_sfp=1" > /etc/modprobe.d/ixgbe.conf
echo "options i40e allow_unsupported_sfp=1"  > /etc/modprobe.d/i40e.conf
dracut -f   # or update-initramfs -u
# verify
cat /sys/module/ixgbe/parameters/allow_unsupported_sfp
dmesg | grep -iE 'sfp|module|unsupported'
ethtool -m eth0

For multi-port cards the parameter takes a comma-separated list (one value per port) on some drivers. The setting is not supported by Intel for production; it removes the check, not the electrical requirements.

FEC and auto-negotiation on NICs

Link typeANFECNotes
25G DACon (Clause 73) both endsnegotiated (RS or BASE-R per cable class)most "no link on DAC" cases are AN off on one end
25G SR / LR opticsoff; forced 25000RS-FEC for SR (required), LR: RS or none — must match switchethtool --set-fec eth0 encoding rs
100G DAConRS-FEC
100G SR4 / CWDM4 / DRoffRS-FEC required
100G LR4offnone (RS on some platforms)match the switch (FEC & AN)
200G / 400Goff for opticsRS(544) KP4 always
10Goffnone

Commands per OS: NIC tools and diagnostics; switch side: Port configuration recipes.

What a coded module must satisfy for a NIC

TargetMinimum
Intel ixgbe/i40e without overridevendor name and PN from Intel's qualified list (Intel-branded E10GSFPSR/E10GSFPLR/E25GSFP28SR or the OEM parts they resell), consistent compliance codes and checksums
Intel with override, all permissive vendorsvalid checksums and compliance codes — no OEM coding needed
Cisco UCS VICCisco-style identity as for Cisco switches (How each NOS validates a module)
InfiniBand HCAscorrect cable/module identity per IBTA and the fabric vendor's list

Coding guidance: Vendor lock & coding, Part numbering.

Typical NIC-side symptoms

SymptomLikely causeCheck
Port absent or "unsupported module" in dmesgdriver whitelistdmesg, ethtool -m, override or coded module
Link down, module recognised, good levelsFEC/AN mismatch, speed forced wrongethtool eth0, ethtool --show-fec eth0 (Speed & rate)
Link up at wrong speedauto picked 10G on a dual-rate moduleforce speed
Link up, low throughputPCIe width/speedlspci -vv (Ports & PCIe)
Module hot, temperature alarmscard in exhaust airflowDDM via ethtool -m; move card or improve airflow
Works in Linux, not in Windows/ESXidifferent driver policyuse qualified module for that OS
InfiniBand link at reduced width/speedcable not on the list or too longibstat, mlxlink

In CodingBox

Server-side rejections are diagnosed from the same bytes as switch-side ones. Read vendor name, PN, OUI, compliance codes and checksums on Check transceiver; for Intel-only fleets the code database can hold the Intel identities that the drivers accept.