环境说明
软件版本:dpdk-19.08
操作系统:ubuntu20.04
linux内核:5.13.0-48-generic
虚拟机环境:Vmware Workstation 16.2.3
安装步骤
使用安装脚本安装时,重新打开脚本需要重新执行以下所有步骤
设置环境变量
export RTE_SDK=`pwd`
export RTE_TARTGET=x86_64-native-linuxapp-gcc
开始安装
对应安装脚本[x86_64-native-linuxapp-gcc]
make config T=x86_64-native-linuxapp-gcc
执行完命令后会
在安装目录下出现x86_64-native-linuxapp-gcc/
目录
进入该目录,使用make
编译
make
加载IGB_UIO模块
对应安装脚本[Insert IGB UIO module]
命令如下
sudo modprobe uio
sudo insmod igb_uio.ko
如果提示以下错误,请参考链接:
insmod: ERROR: could not insert module igb_uio.ko: Invalid parameters
挂载HUGETLBFS文件系统
对应安装脚本[Setup hugepage mappings for non-NUMA systems]
此步骤尽量设置多个页面 否则后面会出现内存不足的错误
mkdir –p /mnt/huge
mount –t hugelbfs nodev /mnt/huge
echo 1024 >> /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
绑定网卡
对应安装脚本[Bind Ethernet device to IGB UIO module]
首先需要使用如下命令关闭需要绑定的网卡
sudo ifconfig ens34 down
使用usertools目录下的dpdk-devbind.py进行绑定
- 查看网卡状态
./usertools/dpdk-devbind.py --status
- 绑定网卡
./usertools/dpdk-devbind.py -b igb_uio 02:02.0
测试用例
出现如下错误:
EAL: Error reading from file descriptor 8
EAL: Error reading from file descriptor 11
解决方法:
- 切换到
lib/librte_eal/linuxapp/igb_uio
目录下 - 修改igb_uio.c中的代码
if (pci_intx_mask_supported(dev))
改为
if (pci_intx_mask_supported(dev) || true)
TEST-PMD
一开始需要输入的bitmask表示你需要使用的核心数
如:f 代表 1111 使用四个核心
命令:
- start开始包转发
- stop停止包转发
执行效果参考: