100G AIOM: Power budget exceeded
Context: two server rooms, 1.5 km apart, to be connected directly at 100G over single-mode LR optics. Cards: NVIDIA/Mellanox ConnectX-6 DX, dual-port 100GbE QSFP28 in Supermicro AIOM (I/O module) format — in a router: the endpoints of this link are VyOS firewalls. The power problem is the AIOM's, not the router's. Optics: third-party QSFP28-LR4-100G. The first symptom was not an error message — the link was quietly lossy:
# ethtool -S eth5 | grep err | grep -v ' 0'
rx_crc_errors_phy: 13147323
rx_symbol_err_phy: 13115284
rx_err_lane_0_phy: 13115284
rx_err_lane_1_phy: 13115284
rx_err_lane_2_phy: 13115284
rx_err_lane_3_phy: 13115284
All four lanes, in the millions — not a dirty fiber on one lane, the module as a whole was not coming up clean. Then dmesg said why:
mlx5_core 0000:81:00.0: port_module:252:(pid 0): Port module
event[error]: module 0, Cable error, Power budget exceeded
Power budget exceeded means the AIOM port refuses to power the module: at firmware 22.31.1014 the adapter did not drive this third-party LR optic. ConnectX-6 DX has a supported-optics list, and a module missing from it draws more than the port is willing to give.
Stopgap
Keep the rooms talking while the real fix is worked out — lock the port down:
ethtool -s eth5 speed 10000 duplex full autoneg off
Firmware update
The card firmware path, on the VyOS host itself (Debian base — which is why this entry is filed under VyOS as much as networking):
# MLNX_OFED packages for your Debian release
dpkg -i mlnx-tools_23.04-..._amd64.deb mstflint_4.16.1-..._amd64.deb
dpkg -i mlnx-fw-updater_23.04-..._amd64.deb mlnx-en-utils_..._amd64.deb
# the annoying part on a router distro: dependency chasing (libssl1.1),
# apt sources pointing at the wrong release, resolv.conf on a
# freshly-booted image — solve them, then:
mlxfwmanager -u -i fw-ConnectX6Dx-rel-22_32_2004-....bin
Found 2 device(s) requiring firmware update...
Device #1: Updating FW ... Writing Boot image component - OK
Device #2: Updating FW ... Writing Boot image component - OK
Restart needed for updates to take effect.
Versions moved 22.31.1014 → 22.32.2004 (FW), 3.6.0403 → 3.6.0502 (PXE), 14.24.0013 → 14.25.0018 (UEFI).
Takeaways
Cable error, Power budget exceededis not a broken cable — check the vendor's supported-optics list before blaming the fiber.ethtool -S | grep erris the first look at a lossy link; all lanes in error points at the module, not one dirty connector.mlxfwmanagerdoes the update in a minute; the OFED deb dependency dance on a router OS is the part that takes the evening.- Third-party optics on expensive NICs: budget for the possibility that the combination is simply not supported, and ask the vendor early — with the dmesg line quoted.
Related: the same VyOS pair's burn-in trail is here.
This saved you a night? I do this for a living: info@wirt.ee.