svn commit: r286058 - releng/10.2/sys/dev/hyperv/netvsc
Wei Hu
whu at FreeBSD.org
Thu Jul 30 02:22:39 UTC 2015
Author: whu
Date: Thu Jul 30 02:22:38 2015
New Revision: 286058
URL: https://svnweb.freebsd.org/changeset/base/286058
Log:
MFC r285928 Do not enable UDP checksum offloading when running on the
Hyper-V on Windows Server 2012 and earlier hosts.
Submitted by: whu
Reviewed by: royger
Approved by: re (gjb)
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D3102
Modified:
releng/10.2/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
Directory Properties:
releng/10.2/ (props changed)
Modified: releng/10.2/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
==============================================================================
--- releng/10.2/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Thu Jul 30 02:09:03 2015 (r286057)
+++ releng/10.2/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Thu Jul 30 02:22:38 2015 (r286058)
@@ -343,7 +343,15 @@ netvsc_attach(device_t dev)
IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_MTU | IFCAP_HWCSUM | IFCAP_TSO;
ifp->if_capenable |=
IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_MTU | IFCAP_HWCSUM | IFCAP_TSO;
- ifp->if_hwassist = CSUM_TCP | CSUM_UDP | CSUM_TSO;
+ /*
+ * Only enable UDP checksum offloading when it is on 2012R2 or
+ * later. UDP checksum offloading doesn't work on earlier
+ * Windows releases.
+ */
+ if (hv_vmbus_protocal_version >= HV_VMBUS_VERSION_WIN8_1)
+ ifp->if_hwassist = CSUM_TCP | CSUM_UDP | CSUM_TSO;
+ else
+ ifp->if_hwassist = CSUM_TCP | CSUM_TSO;
ret = hv_rf_on_device_add(device_ctx, &device_info);
if (ret != 0) {
@@ -1110,7 +1118,17 @@ hn_ioctl(struct ifnet *ifp, u_long cmd,
ifp->if_hwassist &= ~(CSUM_TCP | CSUM_UDP);
} else {
ifp->if_capenable |= IFCAP_TXCSUM;
- ifp->if_hwassist |= (CSUM_TCP | CSUM_UDP);
+ /*
+ * Only enable UDP checksum offloading on
+ * Windows Server 2012R2 or later releases.
+ */
+ if (hv_vmbus_protocal_version >=
+ HV_VMBUS_VERSION_WIN8_1) {
+ ifp->if_hwassist |=
+ (CSUM_TCP | CSUM_UDP);
+ } else {
+ ifp->if_hwassist |= CSUM_TCP;
+ }
}
}
More information about the svn-src-all
mailing list