diff -urp netvsc/hv_netvsc_drv_freebsd.c netvsc_mod/hv_netvsc_drv_freebsd.c --- netvsc/hv_netvsc_drv_freebsd.c 2015-10-16 15:06:18.757227000 +0800 +++ netvsc_mod/hv_netvsc_drv_freebsd.c 2015-10-16 15:10:39.106963000 +0800 @@ -340,18 +340,10 @@ netvsc_attach(device_t dev) */ ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header); ifp->if_capabilities |= - IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_MTU | IFCAP_HWCSUM | IFCAP_TSO; + IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_MTU | IFCAP_TSO; ifp->if_capenable |= - IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_MTU | IFCAP_HWCSUM | IFCAP_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; + IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_MTU | IFCAP_TSO; + ifp->if_hwassist = CSUM_TSO; ret = hv_rf_on_device_add(device_ctx, &device_info); if (ret != 0) { diff -urp netvsc/hv_rndis_filter.c netvsc_mod/hv_rndis_filter.c --- netvsc/hv_rndis_filter.c 2015-08-12 22:21:57.000000000 +0800 +++ netvsc_mod/hv_rndis_filter.c 2015-10-16 15:11:42.928970000 +0800 @@ -823,7 +823,7 @@ hv_rf_on_device_add(struct hv_device *de int ret; netvsc_dev *net_dev; rndis_device *rndis_dev; - rndis_offload_params offloads; + //rndis_offload_params offloads; netvsc_device_info *dev_info = (netvsc_device_info *)additl_info; device_t dev = device->device; @@ -867,6 +867,7 @@ hv_rf_on_device_add(struct hv_device *de /* TODO: shut down rndis device and the channel */ } +#if 0 /* config csum offload and send request to host */ memset(&offloads, 0, sizeof(offloads)); offloads.ipv4_csum = RNDIS_OFFLOAD_PARAMETERS_TX_RX_ENABLED; @@ -882,6 +883,7 @@ hv_rf_on_device_add(struct hv_device *de device_printf(dev, "hv_rf_send_offload_request failed, ret=%d\n", ret); } +#endif memcpy(dev_info->mac_addr, rndis_dev->hw_mac_addr, HW_MACADDR_LEN);