Add TSO support on VLANs. Controller requires VLAN hardware tagging
to make TSO work over VLANs.
This commit is contained in:
parent
d06930af52
commit
4858893b6e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=204362
@ -1006,11 +1006,6 @@ msk_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
|
||||
if ((mask & IFCAP_RXCSUM) != 0 &&
|
||||
(IFCAP_RXCSUM & ifp->if_capabilities) != 0)
|
||||
ifp->if_capenable ^= IFCAP_RXCSUM;
|
||||
if ((mask & IFCAP_VLAN_HWTAGGING) != 0 &&
|
||||
(IFCAP_VLAN_HWTAGGING & ifp->if_capabilities) != 0) {
|
||||
ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING;
|
||||
msk_setvlan(sc_if, ifp);
|
||||
}
|
||||
if ((mask & IFCAP_VLAN_HWCSUM) != 0 &&
|
||||
(IFCAP_VLAN_HWCSUM & ifp->if_capabilities) != 0)
|
||||
ifp->if_capenable ^= IFCAP_VLAN_HWCSUM;
|
||||
@ -1022,6 +1017,16 @@ msk_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
|
||||
else
|
||||
ifp->if_hwassist &= ~CSUM_TSO;
|
||||
}
|
||||
if ((mask & IFCAP_VLAN_HWTSO) != 0 &&
|
||||
(IFCAP_VLAN_HWTSO & ifp->if_capabilities) != 0)
|
||||
ifp->if_capenable ^= IFCAP_VLAN_HWTSO;
|
||||
if ((mask & IFCAP_VLAN_HWTAGGING) != 0 &&
|
||||
(IFCAP_VLAN_HWTAGGING & ifp->if_capabilities) != 0) {
|
||||
ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING;
|
||||
if ((IFCAP_VLAN_HWTAGGING & ifp->if_capenable) == 0)
|
||||
ifp->if_capenable &= ~IFCAP_VLAN_HWTSO;
|
||||
msk_setvlan(sc_if, ifp);
|
||||
}
|
||||
if (ifp->if_mtu > ETHERMTU &&
|
||||
(sc_if->msk_flags & MSK_FLAG_JUMBO_NOCSUM) != 0) {
|
||||
ifp->if_hwassist &= ~(MSK_CSUM_FEATURES | CSUM_TSO);
|
||||
@ -1559,7 +1564,7 @@ msk_attach(device_t dev)
|
||||
* this workaround does not work so disable checksum offload
|
||||
* for VLAN interface.
|
||||
*/
|
||||
ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING;
|
||||
ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_HWTSO;
|
||||
/*
|
||||
* Enable Rx checksum offloading for VLAN taggedd frames
|
||||
* if controller support new descriptor format.
|
||||
|
Loading…
Reference in New Issue
Block a user