mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Revert "if_vlan: do not enable LRO for bridge interaces"
This reverts commit 5f11a33cee.
As requested by Kevin Bowling. He explains:
> The subtle bug was that vlan_capabilities() in if_vlan was not obeying
> the requested mask from its IFCAP ioctl.
This commit is contained in:
parent
543cf924bc
commit
fb69ed397e
1 changed files with 7 additions and 15 deletions
|
|
@ -2067,22 +2067,14 @@ vlan_capabilities(struct ifvlan *ifv)
|
|||
}
|
||||
|
||||
/*
|
||||
* If the parent interface is not a bridge and 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. According to Wikipedia:
|
||||
*
|
||||
* "LRO should not operate on machines acting as routers, as it breaks
|
||||
* the end-to-end principle and can significantly impact performance."
|
||||
*
|
||||
* The same reasoning applies to machines acting as bridges.
|
||||
* 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 (ifp->if_bridge == NULL) {
|
||||
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;
|
||||
}
|
||||
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;
|
||||
|
||||
/*
|
||||
* If the parent interface can offload TCP connections over VLANs then
|
||||
|
|
|
|||
Loading…
Reference in a new issue