mirror of
https://github.com/opnsense/src.git
synced 2026-06-08 16:22:46 -04:00
netfront: fix the support for disabling LRO at boot time
The driver has a tunable hw.xn.enable_lro which is intended to control
whether LRO is enabled. This is currently non-functional - even if its
set to zero, the driver still requests LRO support from the backend.
This change fixes the feature so that if enable_lro is set to zero, LRO
no longer appears in the interface capabilities and LRO is not requested
from the backend.
PR: 273046
MFC after: 1 week
Reviewed by: royger
Differential Revision: https://reviews.freebsd.org/D41439
(cherry picked from commit da4b0d6eb0)
This commit is contained in:
parent
27133e6e86
commit
61ba094af4
1 changed files with 6 additions and 2 deletions
|
|
@ -2272,7 +2272,7 @@ int
|
|||
create_netdev(device_t dev)
|
||||
{
|
||||
struct netfront_info *np;
|
||||
int err;
|
||||
int err, cap_enabled;
|
||||
if_t ifp;
|
||||
|
||||
np = device_get_softc(dev);
|
||||
|
|
@ -2304,7 +2304,11 @@ create_netdev(device_t dev)
|
|||
if_sethwassist(ifp, XN_CSUM_FEATURES);
|
||||
/* Enable all supported features at device creation. */
|
||||
if_setcapabilities(ifp, IFCAP_HWCSUM|IFCAP_TSO4|IFCAP_LRO);
|
||||
if_setcapenable(ifp, if_getcapabilities(ifp));
|
||||
cap_enabled = if_getcapabilities(ifp);
|
||||
if (!xn_enable_lro) {
|
||||
cap_enabled &= ~IFCAP_LRO;
|
||||
}
|
||||
if_setcapenable(ifp, cap_enabled);
|
||||
|
||||
if_sethwtsomax(ifp, 65536 - (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN));
|
||||
if_sethwtsomaxsegcount(ifp, MAX_TX_REQ_FRAGS);
|
||||
|
|
|
|||
Loading…
Reference in a new issue