mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
o Correctly set IFCAP_VLAN_HWCSUM as re(4) can do VLAN tagging/checksum
offloading in hardware. o Correctly set media header length for VLAN.
This commit is contained in:
parent
19ecd2310c
commit
960fd5b3d0
1 changed files with 17 additions and 5 deletions
|
|
@ -1257,14 +1257,10 @@ re_attach(dev)
|
|||
ifp->if_mtu = ETHERMTU;
|
||||
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
|
||||
ifp->if_ioctl = re_ioctl;
|
||||
ifp->if_capabilities = IFCAP_VLAN_MTU;
|
||||
ifp->if_start = re_start;
|
||||
ifp->if_hwassist = RE_CSUM_FEATURES;
|
||||
ifp->if_capabilities |= IFCAP_HWCSUM|IFCAP_VLAN_HWTAGGING;
|
||||
ifp->if_capabilities = IFCAP_HWCSUM;
|
||||
ifp->if_capenable = ifp->if_capabilities;
|
||||
#ifdef DEVICE_POLLING
|
||||
ifp->if_capabilities |= IFCAP_POLLING;
|
||||
#endif
|
||||
ifp->if_watchdog = re_watchdog;
|
||||
ifp->if_init = re_init;
|
||||
IFQ_SET_MAXLEN(&ifp->if_snd, RL_IFQ_MAXLEN);
|
||||
|
|
@ -1279,6 +1275,21 @@ re_attach(dev)
|
|||
*/
|
||||
ether_ifattach(ifp, eaddr);
|
||||
|
||||
/* VLAN capability setup */
|
||||
ifp->if_capabilities |= IFCAP_VLAN_MTU | IFCAP_VLAN_HWTAGGING;
|
||||
if (ifp->if_capabilities & IFCAP_HWCSUM)
|
||||
ifp->if_capabilities |= IFCAP_VLAN_HWCSUM;
|
||||
ifp->if_capenable = ifp->if_capabilities;
|
||||
#ifdef DEVICE_POLLING
|
||||
ifp->if_capabilities |= IFCAP_POLLING;
|
||||
#endif
|
||||
/*
|
||||
* Tell the upper layer(s) we support long frames.
|
||||
* Must appear after the call to ether_ifattach() because
|
||||
* ether_ifattach() sets ifi_hdrlen to the default value.
|
||||
*/
|
||||
ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header);
|
||||
|
||||
#ifdef RE_DIAG
|
||||
/*
|
||||
* Perform hardware diagnostic on the original RTL8169.
|
||||
|
|
@ -2542,6 +2553,7 @@ re_ioctl(ifp, command, data)
|
|||
}
|
||||
if (reinit && ifp->if_drv_flags & IFF_DRV_RUNNING)
|
||||
re_init(sc);
|
||||
VLAN_CAPABILITIES(ifp);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
Loading…
Reference in a new issue