运行DPDK RX/TX回调示例报“端口数必须为偶数”错误求助
问题分析与解决
报错原因
Error: number of ports must be even 这个错误并非由网卡型号差异导致,而是DPDK rxtx_callbacks示例程序的设计限制:该示例默认实现端口间配对转发逻辑(比如端口0的数据包转发到端口1,端口2转发到端口3),因此要求可用的DPDK端口数量必须为偶数。
I219与I219-LM的关系
I219-LM属于Intel I219系列网卡的子型号,DPDK官方对I219系列的支持完全覆盖I219-LM,二者不存在兼容性差异导致的识别问题,你遇到的报错和网卡型号无关。
解决方案
检查DPDK识别的端口数
先通过dpdk-devbind.py --status命令确认当前绑定到DPDK兼容驱动(如vfio-pci、igb_uio)的网卡端口数量。如果只有1个端口,就会触发该报错。调整运行方式
- 若只有单块I219-LM网卡:修改示例代码,将转发逻辑改为收包后直接回包(Loopback),无需依赖配对端口。具体可修改示例中数据包转发的逻辑部分,将原本发送到配对端口的代码改为发送回原端口。
- 若有条件添加网卡:新增一块支持DPDK的网卡并绑定到DPDK驱动,确保可用端口数为偶数后再运行原命令。
内容的提问来源于stack exchange,提问作者intrigued_66
相关产品推荐
相关产品推荐

