Page MenuHomeFreeBSD

D3086.id7165.diff
No OneTemporary

D3086.id7165.diff

Index: head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
===================================================================
--- head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
+++ head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
@@ -343,7 +343,15 @@
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) {
@@ -1108,7 +1116,17 @@
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;
+ }
}
}

File Metadata

Mime Type
text/plain
Expires
Fri, Jun 26, 12:52 AM (19 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34334859
Default Alt Text
D3086.id7165.diff (1 KB)

Event Timeline