虛擬機硬件配置:
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多隊列網卡即可。
