这个问题出现的原因可能是你没有启用DPDK的legacy模式,导致初始化时没有创建legacy socket。可以尝试在使用dpdk_init函数之前调用rte_eal_legacy_init来启用legacy模式。
具体步骤如下:
- 在程序中加入以下头文件:
#include <rte_common.h>
#include <rte_eal.h>
- 修改dpdk初始化代码,增加以下代码:
if (rte_eal_init(argc, argv) < 0)
rte_exit(EXIT_FAILURE, "Error with EAL initialization\n");
if (rte_eal_legacy_init(0) != 0)
rte_exit(EXIT_FAILURE, "Error with legacy initialization\n");
注意:此处假设你已经包含了其他必要的头文件,并且传递给dpdk_init函数的参数列表为argc和argv。如果还有其他问题,请提供更多上下文信息,我会尽力帮助您解决问题。