Page MenuHomeFreeBSD

ifconfig: Improve CMIS parsing of breakout configs
AcceptedPublic

Authored by gallatin on Wed, Jul 15, 5:56 PM.
Tags
None
Referenced Files
F163395776: D58263.diff
Wed, Jul 22, 8:14 PM
F163378661: D58263.diff
Wed, Jul 22, 4:26 PM
F163354560: D58263.id182044.diff
Wed, Jul 22, 10:59 AM
Unknown Object (File)
Tue, Jul 21, 10:23 PM
Unknown Object (File)
Tue, Jul 21, 2:14 PM
Unknown Object (File)
Sun, Jul 19, 11:17 PM
Unknown Object (File)
Sat, Jul 18, 10:15 PM
Unknown Object (File)
Sat, Jul 18, 12:45 AM
Subscribers

Details

Summary
This fixes a bug where we do not report all lanes when
a NIC configures a breakout.  Eg, we reported all 4
lanes when a NIC configured the optics as 1x400g, but
only printed the first lane's strength when configured as
4x100g.

Fix this by actually parsing the active lane count, rather
than pulling it from the default descriptor.

While here, optionally print page 10h when -vvvv is
specified. This aids in determining how a breakout is configured.
I put it under an extra level of verbosity, as I don't want
to let things get out of hand printing CMIS pages.

I'm currently trying to debug a 400g nic that seems to randomly configure the optics as 4x100g or 1x400g
and printing 10h is what let me figure out that the nic was configured as 4x100 (even tho the driver
was reporting 1x400)

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Before and after:

 # ifconfig -v net0 | egrep -v drivern\|ether
net0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
	options=1ee507bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,HWRXTSTMP,MEXTPG,TXTLS4,TXTLS6>
	media: Ethernet autoselect (400GBase-DR4 <full-duplex>)
	status: active
	nd6 options=829<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL,STABLEADDR>
	plugged: QSFP+(CMIS) 100G-FR/100GBASE-FR1 (LC)
	vendor: FLEXOPTIX PN: Q.164HG.2.C SN: F7Z5BVD DATE: 2025-08-22
	module temperature: 59.71 C voltage: 3.26 Volts
	lane 1: RX power: 1.57 mW (1.96 dBm) TX bias: 74.90 mA
# ./ifconfig -v net0 | egrep -v drivern\|ether
net0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
	options=1ee507bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,HWRXTSTMP,MEXTPG,TXTLS4,TXTLS6>
	media: Ethernet autoselect (400GBase-DR4 <full-duplex>)
	status: active
	nd6 options=829<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL,STABLEADDR>
	plugged: QSFP+(CMIS) 100G-FR/100GBASE-FR1 (LC)
	vendor: FLEXOPTIX PN: Q.164HG.2.C SN: F7Z5BVD DATE: 2025-08-22
	module temperature: 59.67 C voltage: 3.26 Volts
	lane 1: RX power: 1.57 mW (1.96 dBm) TX bias: 75.30 mA
	lane 2: RX power: 1.57 mW (1.95 dBm) TX bias: 85.00 mA
	lane 3: RX power: 1.34 mW (1.27 dBm) TX bias: 74.82 mA
	lane 4: RX power: 1.44 mW (1.59 dBm) TX bias: 85.69 mA
This revision is now accepted and ready to land.Thu, Jul 16, 2:44 PM