Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
Show First 20 Lines • Show All 343 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
rndis_request *request; | rndis_request *request; | ||||
rndis_set_request *set; | rndis_set_request *set; | ||||
rndis_offload_params *offload_req; | rndis_offload_params *offload_req; | ||||
rndis_set_complete *set_complete; | rndis_set_complete *set_complete; | ||||
rndis_device *rndis_dev; | rndis_device *rndis_dev; | ||||
device_t dev = sc->hn_dev; | device_t dev = sc->hn_dev; | ||||
netvsc_dev *net_dev = sc->net_dev; | netvsc_dev *net_dev = sc->net_dev; | ||||
uint32_t vsp_version = net_dev->nvsp_version; | |||||
uint32_t extlen = sizeof(rndis_offload_params); | uint32_t extlen = sizeof(rndis_offload_params); | ||||
int ret; | int ret; | ||||
if (vsp_version <= NVSP_PROTOCOL_VERSION_4) { | if (sc->hn_nvs_ver <= NVSP_PROTOCOL_VERSION_4) { | ||||
extlen = VERSION_4_OFFLOAD_SIZE; | extlen = VERSION_4_OFFLOAD_SIZE; | ||||
/* On NVSP_PROTOCOL_VERSION_4 and below, we do not support | /* On NVSP_PROTOCOL_VERSION_4 and below, we do not support | ||||
* UDP checksum offload. | * UDP checksum offload. | ||||
*/ | */ | ||||
offloads->udp_ipv4_csum = 0; | offloads->udp_ipv4_csum = 0; | ||||
offloads->udp_ipv6_csum = 0; | offloads->udp_ipv6_csum = 0; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 746 Lines • ▼ Show 20 Lines | hv_rf_on_device_add(struct hn_softc *sc, void *additl_info, | ||||
memcpy(dev_info->mac_addr, rndis_dev->hw_mac_addr, ETHER_ADDR_LEN); | memcpy(dev_info->mac_addr, rndis_dev->hw_mac_addr, ETHER_ADDR_LEN); | ||||
hv_rf_query_device_link_status(rndis_dev); | hv_rf_query_device_link_status(rndis_dev); | ||||
dev_info->link_state = rndis_dev->link_status; | dev_info->link_state = rndis_dev->link_status; | ||||
net_dev->num_channel = 1; | net_dev->num_channel = 1; | ||||
if (net_dev->nvsp_version < NVSP_PROTOCOL_VERSION_5 || nchan == 1) | if (sc->hn_nvs_ver < NVSP_PROTOCOL_VERSION_5 || nchan == 1) | ||||
return (0); | return (0); | ||||
memset(&rsscaps, 0, rsscaps_size); | memset(&rsscaps, 0, rsscaps_size); | ||||
ret = hv_rf_query_device(rndis_dev, | ret = hv_rf_query_device(rndis_dev, | ||||
RNDIS_OID_GEN_RSS_CAPABILITIES, | RNDIS_OID_GEN_RSS_CAPABILITIES, | ||||
&rsscaps, &rsscaps_size); | &rsscaps, &rsscaps_size); | ||||
if ((ret != 0) || (rsscaps.num_recv_que < 2)) { | if ((ret != 0) || (rsscaps.num_recv_que < 2)) { | ||||
device_printf(dev, "hv_rf_query_device failed or " | device_printf(dev, "hv_rf_query_device failed or " | ||||
▲ Show 20 Lines • Show All 159 Lines • Show Last 20 Lines |