################################################################################
# Test PMD
################################################################################
# 编译DPDK
git clone git@github.com:DPDK/dpdk.git
cd dpdk
git checkout v19.11 -b v19.11
make config T=x86_64-native-linuxapp-gcc
mkdir /home/liufeng/workspace/src/ovs-dpdk/dpdk/sdk
make install T=x86_64-native-linuxapp-gcc DESTDIR=/home/liufeng/workspace/src/ovs-dpdk/dpdk/sdk
sudo make install T=x86_64-native-linuxapp-gcc DESTDIR=/home/liufeng/workspace/tools/
su
sudo modprobe vfio
sudo modprobe vfio-pci
chmod a+x /dev/vfio
chmod 0666 /dev/vfio/*
modprobe uio_pci_generic
dpdk-devbind --status
sudo ifconfig enp1s0f0 down
sudo ifconfig enp1s0f1 down
sudo ifconfig enp1s0f2 down
sudo ifconfig enp1s0f3 down
sudo dpdk-devbind --bind=vfio-pci enp1s0f0
sudo dpdk-devbind --bind=vfio-pci enp1s0f1
sudo dpdk-devbind --bind=vfio-pci enp1s0f2
sudo dpdk-devbind --bind=vfio-pci enp1s0f3
dpdk-devbind --status
# 试运行
testpmd
# 进入交互模式
# 测试的前提是port0和port1是联通的
testpmd -l 1,2,3 --socket-mem 1024 -n 4 --log-level=8 -- -i
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
set nbcore 2
show config fwd
#set fwd txonly
start
show port stats all
stop
quit
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
###########################################################################
# 建立VM
###########################################################################
tunctl -t tap30
tunctl -t tap33
brctl addif br1 tap30
brctl addif br1 tap33
brctl show
ifconfig tap30 promisc up
ifconfig tap33 promisc up
tunctl -t tap301
tunctl -t tap302
brctl addif br2 tap301
brctl addif br2 tap302
brctl show
ifconfig tap301 promisc up
ifconfig tap302 promisc up
qemu-system-x86_64 -machine accel=kvm -cpu host -smp sockets=2,cores=2,threads=1 -m 3072M \
-object memory-backend-file,id=mem,size=3072M,mem-path=/dev/hugepages,share=on \
-hda /home/kvm/disk/vm0.img -mem-prealloc -numa node,memdev=mem \
-vnc 0.0.0.0:00 -monitor stdio --enable-kvm \
-netdev type=tap,id=eth0,ifname=tap30,script=no,downscript=no -device e1000,netdev=eth0,mac=12:03:04:05:06:05 \
-netdev type=tap,id=eth1,ifname=tap301,script=no,downscript=no -device e1000,netdev=eth1,mac=12:03:04:05:06:06 \
-netdev type=tap,id=eth2,ifname=tap302,script=no,downscript=no -device e1000,netdev=eth2,mac=12:03:04:05:06:07 \
-chardev socket,id=char1,path=/tmp/sock0,server \
-netdev type=vhost-user,id=mynet1,chardev=char1,vhostforce -device virtio-net-pci,netdev=mynet1,id=net1,mac=00:00:00:00:00:01 \
-chardev socket,id=char2,path=/tmp/sock0-1,server \
-netdev type=vhost-user,id=mynet2,chardev=char2,vhostforce -device virtio-net-pci,netdev=mynet2,id=net2,mac=00:00:00:00:00:02
###########################################################################
# VM 中使用
###########################################################################
su
grep HugePages_ /proc/meminfo
sudo modprobe vfio
sudo modprobe vfio-pci
chmod a+x /dev/vfio
chmod 0666 /dev/vfio/*
modprobe uio_pci_generic
dpdk-devbind --status
sudo ifconfig eth0 down
sudo ifconfig eth1 down
dpdk-devbind --bind=uio_pci_generic eth0
dpdk-devbind --bind=uio_pci_generic eth1
dpdk-devbind --status
# 试运行
testpmd
# 进入交互模式
# 测试的前提是port0和port1是联通的
testpmd -l 1,2,3 --socket-mem 1024 -n 4 --log-level=8 -- -i
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#set nbcore 2
show config fwd
show port stats all
set fwd txonly
start
show port stats all
stop
set fwd rxonly
show port stats all
start
show port stats all
stop
quit
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<