虚拟机硬件配置:
CPU: 4Core
内存: 4G
关机状态下新增两块网卡

修改虚拟机配置:
修改文件:DPDK-FWD.vmx
hpet0.present = "true"
numa.vcpu.maxPerVirtualNode = "1"

ethernet1.virtualDev = "vmxnet3" #e1000e只支持网卡单队列,vmxnet3支持网卡对队列,DPDK_18_05_1也支持此网卡
ethernet1.wakeOnPcktRcv = "true"
ethernet2.virtualDev = "vmxnet3"
ethernet2.wakeOnPcktRcv = "true"

Linux版本需求:
Linux发行版本: CentOS Linux release 7.3.1611 (Core)
Linux内核版本:3.10.0-514.el7.x86_64

设置hugepage及隔离CPU:
文件:/boot/grub2/grub.cfg
在linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet LANG=en_US.UTF-8这一行后添加隔离命令:

物理机:
default_hugepages=1G hugepagesz=1G hugepages=20 isolcpus=0-7
虚拟机:
default_hugepages=1G hugepagesz=2M hugepages=1024 isolcpus=0-2
具体大小视情况而定。重启虚拟机,使得hugepage和isocpus配置生效。

DPDK l3fwd启动测试:
1. 加载内核模块:
modprobe uio
insmod igb_uio.ko

2. 将网卡与原有驱动解绑:
./dpdk-devbind.py -u 03:00.0
./dpdk-devbind.py -u 0b:00.0

3. 将网卡绑定到IGB_UIO中:
./dpdk-devbind.py -b igb_uio 03:00.0
./dpdk-devbind.py -b igb_uio 0b:00.0

4. 启动l3fwd
./build/l3fwd -c 0x7 -n 1 -w 03:00.0 -w 0b:00.0 -- -p0x3 --config "(0,0,1),(0,1,2),(1,0,1),(1,1,2)" -P --parse-ptype

e1000e网卡使用异常命令无法启动的原因:
e1000e是单队列的网卡,-c 0x7表示有3个核,需要建立三个tx队列,因此会建立失败。使用vmxnet3多队列网卡即可。
10-15 17:53