I called rte_eth_dev_stop() on my Ethernet Controller 10G X550T card , after this when I make a call to rte_eth_get_link_nowait() on same device , the link read from link register of the device still shows as UP!
But when I bring the device link down by bringing the other end of the connection physically down, the rte_eth_get_link_nowait() call shows the link as DOWN!
The server is running on a bare metal architecture. The DPDK PMD is ixgbe. DPDK version 18.05
why is this so ? any idea?
DPDK API
rte_eth_dev_set_link_down
is responsible for Link state down. While DPDK APIrte_eth_dev_stop
is responsible for internally stopping rx-tx queues and thereby makingrte_eth_rx_burst
and rte_eth_tx_burst` as 0 always.Hence the expectation rte_eth_dev_stop to bring link state down for X550 is not true with DPDK PMD ixgbe.
Note:
ifconfig up and ifconfig down
, the user space PMD dev_configure, start and stop are different. Please feel free to check the details in code.void
toint
https://doc.dpdk.org/guides/rel_notes/release_20_11.html?highlight=rte_eth_dev_stoplink state is governed by HW registers in the ASIC, different PMD may work differently
. Hence please check the code for other PMD for more details.