DPDK ixgbe驱动程序未呈现正确的链接状态

问题描述

我在以太网控制器10G X550T卡上调用了rte_eth_dev_stop(),此后,当我在同一设备上调用rte_eth_get_link_Nowait()时,从该设备的链接寄存器读取的链接仍然显示为UP!

但是当我通过物理断开连接的另一端来断开设备链接时,rte_eth_get_link_Nowait()调用链接显示为DOWN!

服务器在裸机架构上运行。 DPDK PMD是ixgbe。 DPDK版本18.05

为什么会这样?有什么主意吗?

解决方法

DPDK API useEffect负责链接状态关闭。 DPDK API []负责内部停止rx-tx队列,从而使rte_eth_dev_set_link_down和rte_eth_tx_burst`始终为0。

因此,对于DPDK PMD ixgbe,期望rte_eth_dev_stop降低X550的链接状态是不正确的。

注意:

  1. 与Linux rte_eth_dev_stop不同,用户空间PMD dev_configure,启动和停止是不同的。请随时检查代码中的详细信息。
  2. 使用DPDK 20.11的返回值从rte_eth_rx_burst更新为ifconfig up and ifconfig down https://doc.dpdk.org/guides/rel_notes/release_20_11.html?highlight=rte_eth_dev_stop
  3. void起。因此,请检查其他PMD的代码以了解更多详细信息。