X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fenic%2Fenic_ethdev.c;h=32d5397f8588d91624551ecb4bee8be5016de42e;hb=fda75f4c409917112b1a9694ce9969187bcfb779;hp=746e0458aa3b7ec64ee1308ec8023f727d467b1c;hpb=ea7768b5bba8a8a21355c06f6fc5f51f3aafc4a0;p=dpdk.git diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c index 746e0458aa..32d5397f85 100644 --- a/drivers/net/enic/enic_ethdev.c +++ b/drivers/net/enic/enic_ethdev.c @@ -405,6 +405,10 @@ static int enicpmd_dev_configure(struct rte_eth_dev *eth_dev) return ret; } + if (eth_dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) + eth_dev->data->dev_conf.rxmode.offloads |= + DEV_RX_OFFLOAD_RSS_HASH; + enic->mc_count = 0; enic->hw_ip_checksum = !!(eth_dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_CHECKSUM); @@ -507,6 +511,12 @@ static uint32_t speed_capa_from_pci_id(struct rte_eth_dev *eth_dev) /* 1300 and later models are at least 40G */ if (id >= 0x0100) return ETH_LINK_SPEED_40G; + /* VFs have subsystem id 0, check device id */ + if (id == 0) { + /* Newer VF implies at least 40G model */ + if (pdev->id.device_id == PCI_DEVICE_ID_CISCO_VIC_ENET_SN) + return ETH_LINK_SPEED_40G; + } return ETH_LINK_SPEED_10G; } @@ -930,7 +940,7 @@ static void enicpmd_dev_rxq_info_get(struct rte_eth_dev *dev, ENICPMD_FUNC_TRACE(); sop_queue_idx = enic_rte_rq_idx_to_sop_idx(rx_queue_id); - data_queue_idx = enic_rte_rq_idx_to_data_idx(rx_queue_id); + data_queue_idx = enic_rte_rq_idx_to_data_idx(rx_queue_id, enic); rq_sop = &enic->rq[sop_queue_idx]; rq_data = &enic->rq[data_queue_idx]; /* valid if data_queue_enable */ qinfo->mp = rq_sop->mp; @@ -1056,7 +1066,7 @@ static int enicpmd_dev_udp_tunnel_port_del(struct rte_eth_dev *eth_dev, tnl->udp_port); return -EINVAL; } - return update_vxlan_port(enic, ENIC_DEFAULT_VXLAN_PORT); + return update_vxlan_port(enic, RTE_VXLAN_DEFAULT_PORT); } static int enicpmd_dev_fw_version_get(struct rte_eth_dev *eth_dev,