cmdline开启iommu
dpdk:
cd /usr/src/
wget http://fast.dpdk.org/rel/dpdk-18.11.1.tar.xz
tar xf dpdk-18.11.1.tar.xz
export DPDK_TARGET=x86_64-native-linuxapp-gcc
make install T=$DPDK_TARGET DESTDIR=install
export DPDK_BUILD=/usr/src/dpdk-18.11.1/x86_64-native-linuxapp-gcc
ovs:
wget https://www.openvswitch.org/releases/openvswitch-2.11.1.tar.gz
tar -zxvf openvswitch-2.11.1.tar.gz
./configure --with-dpdk=$DPDK_BUILD
make -j10
make install
modprobe vfio-pci
/usr/bin/chmod a+x /dev/vfio
/usr/bin/chmod 0666 /dev/vfio/*
/usr/src/dpdk-18.11.1/usertools/dpdk-devbind.py --status
/usr/src/dpdk-18.11.1/usertools/dpdk-devbind.py --bind=vfio-pci eth0
/usr/src/dpdk-18.11.1/usertools/dpdk-devbind.py -u 0000:3d:00.1 (解绑)
/usr/src/dpdk-18.11.1/usertools/dpdk-devbind.py --bind=i40e 0000:3d:00.1(重新绑定i40e驱动)
ovsdb-tool create /usr/local/etc/openvswitch/conf.db /home/zgy/openvswitch-2.11.1/vswitchd/vswitch.ovsschema(执行一次即可)
mkdir -p /usr/local/var/run/openvswitch
ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach
sysctl -w vm.nr_hugepages=59000
mount -t hugetlbfs none /dev/hugepages
ovs-vsctl --no-wait get Open_vSwitch . other_config
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
/usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=0x3
export DB_SOCK=/usr/local/var/run/openvswitch/db.sock
/home/openvswitch/openvswitch-2.11.1/utilities/ovs-ctl --no-ovsdb-server --db-sock="$DB_SOCK" start
ovs-vsctl add-br br0-ovs -- set bridge br0-ovs datapath_type=netdev
ovs-vsctl add-port br0-ovs vhostclient0 -- set Interface vhostclient0 type=dpdkvhostuserclient options:vhost-server-path=/tmp/vhost0
ovs-vsctl add-bond br0-ovs dpdkbond dpdk0 dpdk1 bond_mode=balance-tcp lacp=active -- set interface dpdk0 type=dpdk options:dpdk-devargs=0000:3d:00.0 -- set Interface dpdk1 type=dpdk options:dpdk-devargs=0000:3d:00.1
ovs-vsctl set Interface dpdk0 options:n_txq=2
ovs-vsctl set Interface dpdk1 options:n_txq=2
ovs-vsctl set Interface dpdk0 options:n_rxq=2
ovs-vsctl set Interface dpdk1 options:n_rxq=2
ovs-appctl bond/show
ovs-vsctl set port dpdkbond bond_mode=balance-slb
ovs-appctl dpctl/dump-dps
ovs-appctl dpif/show
ovs-appctl dpif-netdev/pmd-stats-show
ovs-appctl dpif-netdev/pmd-rxq-show
ovs-ofctl dump-ports br0-ovs
ovs-ofctl show br0-ovs
ovs-appctl coverage/show
ovs-ofctl dump-ports-desc br0-ovs
ovs-appctl fdb/show
ovs-vsctl list interface vnet0
rpm:
cd ~/rpmbuild/SOURCES/
rpmbuild -bb dpdk.spec
rpmbuild -ba --nocheck openvswitch.spec