From ab13462c9024a596a77d40f477ada57280e6b059 Mon Sep 17 00:00:00 2001 From: Steve Shin Date: Thu, 10 May 2018 14:14:52 -0700 Subject: 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 --- src/plugins/dpdk/device/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') 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 -- cgit 1.2.3-korg