mirror of
https://github.com/opnsense/src.git
synced 2026-04-20 21:59:20 -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 da4b0d6eb06d730487d48e15d2d5e10c56266fd9)
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