summaryrefslogtreecommitdiffstats
path: root/sys/dev/ixgbe
diff options
context:
space:
mode:
authortuexen <tuexen@FreeBSD.org>2016-02-04 18:08:50 +0000
committertuexen <tuexen@FreeBSD.org>2016-02-04 18:08:50 +0000
commitad65b26786a9160789d37051277ea5c34c98113b (patch)
treeeb9e43c2d89ee2d2596b8dc62b23d51a740f0276 /sys/dev/ixgbe
parent6c66e4feff3a0557cfef7a815c48885d2e8465e7 (diff)
downloadFreeBSD-src-ad65b26786a9160789d37051277ea5c34c98113b.zip
FreeBSD-src-ad65b26786a9160789d37051277ea5c34c98113b.tar.gz
In FreeBSD 10 and higher the driver announces SCTP checksum offloading support
also for 82598, which doesn't support it. The legacy code has a check for it, which was missed when the code for dealing with CSUM_IP6_* was added. Add the same check for FreeBSD 10 and higher. Differential Revision: https://reviews.freebsd.org/D5192
Diffstat (limited to 'sys/dev/ixgbe')
-rw-r--r--sys/dev/ixgbe/if_ix.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c
index c6a5084..f0e218f 100644
--- a/sys/dev/ixgbe/if_ix.c
+++ b/sys/dev/ixgbe/if_ix.c
@@ -1017,6 +1017,7 @@ static void
ixgbe_set_if_hwassist(struct adapter *adapter)
{
struct ifnet *ifp = adapter->ifp;
+ struct ixgbe_hw *hw = &adapter->hw;
ifp->if_hwassist = 0;
#if __FreeBSD_version >= 1000000
@@ -1024,18 +1025,21 @@ ixgbe_set_if_hwassist(struct adapter *adapter)
ifp->if_hwassist |= CSUM_IP_TSO;
if (ifp->if_capenable & IFCAP_TSO6)
ifp->if_hwassist |= CSUM_IP6_TSO;
- if (ifp->if_capenable & IFCAP_TXCSUM)
- ifp->if_hwassist |= (CSUM_IP | CSUM_IP_UDP | CSUM_IP_TCP |
- CSUM_IP_SCTP);
- if (ifp->if_capenable & IFCAP_TXCSUM_IPV6)
- ifp->if_hwassist |= (CSUM_IP6_UDP | CSUM_IP6_TCP |
- CSUM_IP6_SCTP);
+ if (ifp->if_capenable & IFCAP_TXCSUM) {
+ ifp->if_hwassist |= (CSUM_IP | CSUM_IP_UDP | CSUM_IP_TCP);
+ if (hw->mac.type != ixgbe_mac_82598EB)
+ ifp->if_hwassist |= CSUM_IP_SCTP;
+ }
+ if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) {
+ ifp->if_hwassist |= (CSUM_IP6_UDP | CSUM_IP6_TCP);
+ if (hw->mac.type != ixgbe_mac_82598EB)
+ ifp->if_hwassist |= CSUM_IP6_SCTP;
+ }
#else
if (ifp->if_capenable & IFCAP_TSO)
ifp->if_hwassist |= CSUM_TSO;
if (ifp->if_capenable & IFCAP_TXCSUM) {
ifp->if_hwassist |= (CSUM_TCP | CSUM_UDP);
- struct ixgbe_hw *hw = &adapter->hw;
if (hw->mac.type != ixgbe_mac_82598EB)
ifp->if_hwassist |= CSUM_SCTP;
}
OpenPOWER on IntegriCloud