From: Steve Shin Date: Thu, 10 May 2018 21:14:52 +0000 (-0700) Subject: dpdk: fix Unknown interface with Mellanox NIC X-Git-Tag: v18.07-rc1~349 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F30%2F12530%2F2;p=vpp.git dpdk: fix Unknown interface with Mellanox NIC When port_type_from_speed_capa() is called before the port link update isn't completed, xd->port_type becomes VNET_DPDK_PORT_TYPE_UNKNOWN. This happens with Mellanox NIC without lsc interrupt. Calling rte_eth_link_get before getting dev_info will ensure the link state is up-to-date. Change-Id: I83a59654778eb4bf0c65a4a4e225a326227b9641 Signed-off-by: Steve Shin --- diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index 9d4c0fd5d7f..aca57a0ce7a 100755 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -262,6 +262,7 @@ dpdk_lib_init (dpdk_main_t * dm) vlib_pci_addr_t pci_addr; uword *p = 0; + rte_eth_link_get_nowait (i, &l); rte_eth_dev_info_get (i, &dev_info); if (dev_info.pci_dev) /* bonded interface has no pci info */ { @@ -433,7 +434,6 @@ dpdk_lib_init (dpdk_main_t * dm) /* Cisco VIC */ case VNET_DPDK_PMD_ENIC: - rte_eth_link_get_nowait (i, &l); if (l.link_speed == 40000) xd->port_type = VNET_DPDK_PORT_TYPE_ETH_40G; else