Fall back to if_baudrate if ifmedia_baudrate() returns 0 in lacp_aggregator_bandwidth()
When ifmedia_baudrate() returns 0 without a fallback, 0 bandwidth is reported for interfaces with
an unknown media type. This causes LACP to never come up, due to aggregator
selection starting with a 0 as its best speed, which prevents LACP from coming up.
Details
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
I spot bxe(4) sets if_baudrate to 10 Gb/s even for a 1 Gb/s SFP, qlnx sets it based on PCI ID, oce sets on attach but needs update logic all which should be fixed independently.
But this is the right direction. What device did you spot the issue?
There are about a dozen other driver issues, do you want me to open reviews with possible fixups?
Retaining valid media derived bandwidth and falling back to if_baudrate might limit the damage if you want this quickly.
bnxt(4) comes up with unknown media for 400G-FR4. I'm working on a patch to implement FR4 properly..
update patch to be more conservative and use ifmedia_baudrate() whenever it is non-zero,
due to known bugs in drivers properly reporting if_baudrate
as suggested by @kbowling
Could the bug addressed here have helped contribute to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=300451 ? I see TCP MTU in the stacktrace running the if_lagg tests, which seems weakly related to this issue.