https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254596
Bug ID: 254596
Summary: if_bridge wants LRO turned off, if_vlan insists it
remain on
Product: Base System
Version: 12.2-RELEASE
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: [email protected]
Reporter: [email protected]
today i added a vlan subinterface to a bridge, and dmesg reported:
bridge1: can't disable some capabilities on igb0.203: 0x400
this is IFCAP_LRO. bridge(4) says:
"on all interfaces added to the bridge ... The LRO capability is always
disabled."
wikipedia(Large receive offload) says:
"LRO should not operate on machines acting as routers, as it breaks the
end-to-end principle and can significantly impact performance."
sys/net/if_vlan.c says:
/*
* If the parent interface can do LRO and checksum offloading on
* VLANs, then guess it may do LRO on VLANs. False positive here
* cost nothing, while false negative may lead to some confusions.
*/
if (p->if_capabilities & IFCAP_VLAN_HWCSUM)
cap |= p->if_capabilities & IFCAP_LRO;
if (p->if_capenable & IFCAP_VLAN_HWCSUM)
ena |= p->if_capenable & IFCAP_LRO;
to get LRO to not be sticky-on for a vlan subinterface, i would have to remove
LRO from the parent interface. i don't think this is functioning as intended,
because i have other non-bridged subinterfaces for which LRO is appropriate.
i am not posting a candidate fix because too many layers are being crossed here
and there's not an obvious way to relax this deep constraint. someone with
recent kernel architecture chops should take a look.
--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"