首页 > 解决方案 > DPDK API 中的 rte_eth_dev_count_avail() 返回 0

问题描述

我正在尝试使用 DPDK api 并尝试计算可供在 DPDK 之上运行的应用程序使用的以太网设备的数量。为此,我使用了 DPDK api 提供的 rte_eth_dev_count_avail() 方法,但即使我看到绑定到 DPDK 兼容设备驱动程序的设备,它也会返回 0。这是 ./usertools/dpdk-devbind.py --status 的输出

如您所见,我有多个设备驱动程序绑定到 DPDK 兼容设备驱动程序,所以不知道为什么会发生这种情况。

如评论中所述,我还添加了 ldd [binary] 的输出。

在此处输入图像描述

我正在添加命令 egrep "SHARED|IGB_PMD|EM_PMD" $RTE_TARGET/.config 的输出

在此处输入图像描述

./usertools/dpdk-pmdinfo.py -d /usr/share/hwdata/pci.ids [二进制] | 的输出 grep -i "PMD 名称"

在此处输入图像描述

标签: dpdk

解决方案


@Ashwin 看起来您的静态构建没有 RTE_PMD for IGBor EM。这可能是由于custom makefilepresence of pre-installed DPDK pkg。请检查您的环境。

没有 IGB|E1000 会导致i350找不到。

编辑:https://github.com/tcp-acceleration-service/tas/blob/master/Makefile缺少分析那里的库。请加-lrte_pmd_e1000 -Wl

您也可以编辑DPDK_PMDS以反映e1000


推荐阅读