How-to: Build VPP FD.IO with Mellanox DPDK PMD on top CentOS 7.7 with inbox drivers.
5204 ワード
目次
References
Prerequisites
Installation, Compilation and Configuration
This short document will guide you how to compile and install VPP with Mellanox DPDK PMD over a Mellanox ConnectX-4 and ConnectX-5 interfaces.
Performance tuning for VPP - https://wiki.fd.io/view/VPP/How_To_Optimize_Performance_(System_Tuning) Routing and Switching tutorial - https://wiki.fd.io/view/VPP/Tutorial_Routing_and_Switching VPP CLI guide - https://wiki.fd.io/view/VPP/Command-line_Interface_(CLI)_Guide Compiling VPP 17.10 with OFED: https://community.mellanox.com/s/article/how-to-build-vpp-fd-io--160--development-environment-with-mellanox-dpdk-pmd-for-connectx-4-and-connectx-5
1. Install CentOS 7.7 2. Set up an account to use the Linux Foundation resources. To set up the account, refer to The Linux Foundation website: https://identity.linuxfoundation.org. 3. Set up a Gerrit account and apply an ssh public key. Follow the instructions on the FD.IO wiki web page: https://wiki.fd.io/view/DEV/Setting_up_Gerrit#Log_into_Gerrit 4. Install the following prerequisites packages:
Installation, Compilation and Configuration
1. Download VPP main master branch. Use your Linux Foundation user account name (see Prerequisites above) instead of as shows in above example. To find desired do: "git -r branch"form VPP root git directory.
2. For VPP 18.07 ONLY: Enable the mlx5 PMD driver compilation as follow:
3. Compile and install VPP with DLopen linkage
4. Compile and install without DLopen linkage
5. Edit the /etc/vpp/startup.conf start file to include the following:
Important: Uncomment no-mulit-seg parameter. It disables jumbo packets handling and improves performances significantly.
File
Insert PCI slot numbers of ConnectX-4/5 interfaces with correct IDs at dpdk { dev } section, as above example.
To verify the correct IDs use:
6. Start VPP.
7. Enter the VPP Command Line Interface.
8. Configure L3 interfaces as shown in the example below:
VPP Cli
References
Prerequisites
Installation, Compilation and Configuration
This short document will guide you how to compile and install VPP with Mellanox DPDK PMD over a Mellanox ConnectX-4 and ConnectX-5 interfaces.
References
Prerequisites
1. Install CentOS 7.7 2. Set up an account to use the Linux Foundation resources. To set up the account, refer to The Linux Foundation website: https://identity.linuxfoundation.org. 3. Set up a Gerrit account and apply an ssh public key. Follow the instructions on the FD.IO wiki web page: https://wiki.fd.io/view/DEV/Setting_up_Gerrit#Log_into_Gerrit 4. Install the following prerequisites packages:
yum install -y git cpp gcc rpm-build openssl-devel libmnl-devel numactl-devel epel-release net-tools rdma-core-devel nasm
Installation, Compilation and Configuration
1. Download VPP main master branch.
git clone ssh://@gerrit.fd.io:29418/vpp.git
git checkout origin/stable/
2. For VPP 18.07 ONLY: Enable the mlx5 PMD driver compilation as follow:
cd /vpp
sed -i '/vpp_uses_dpdk_mlx5_pmd/s/^# //g' build-data/platforms/vpp.mk
3. Compile and install VPP with DLopen linkage
cd /vpp
make install-dep
make dpdk-install-dev DPDK_MLX5_PMD=y DPDK_MLX5_PMD_DLOPEN_DEPS=y
## Copy manually newly compiled shared module: ##
cp /opt/vpp/external/x86_64/lib/librte_pmd_mlx5_glue.so* /usr/lib64/
## For VPP 18.07 ONLY, check vpp-dpdk-devel package is installed: ##
rpm -qa | grep vpp-dpdk-devel
## Compile new binary: ##
make build-release vpp_uses_dpdk_mlx5_pmd=yes DPDK_MLX5_PMD_DLOPEN_DEPS=y
## Building RPM packages: ##
make pkg-rpm vpp_uses_dpdk_mlx5_pmd=yes DPDK_MLX5_PMD_DLOPEN_DEPS=y
## Install VPP RPMs: ##
rpm -ivh build-root/vpp-sel*.rpm
rpm -ivh build-root/vpp-lib*.rpm
rpm -ivh build-root/vpp-19*.rpm
rpm -ivh build-root/vpp-plug*.rpm
4. Compile and install without DLopen linkage
cd /vpp
make install-dep
make dpdk-install-dev DPDK_MLX5_PMD=y DPDK_MLX5_PMD_DLOPEN_DEPS=n
## Compile new binary: ##
make build-release DPDK_MLX5_PMD=y DPDK_MLX5_PMD_DLOPEN_DEPS=n
## Building RPM packages: ##
make pkg-rpm vpp_uses_dpdk_mlx5_pmd=yes DPDK_MLX5_PMD_DLOPEN_DEPS=n
## Install VPP RPMs: ##
rpm -ivh build-root/vpp-sel*.rpm
rpm -ivh build-root/vpp-lib*.rpm
rpm -ivh build-root/vpp-19*.rpm
rpm -ivh build-root/vpp-plug*.rpm
5. Edit the /etc/vpp/startup.conf start file to include the following:
Important: Uncomment no-mulit-seg parameter. It disables jumbo packets handling and improves performances significantly.
File
unix {
nodaemon
log /tmp/vpp.log
full-coredump
}
dpdk {
dev 0000:07:00.0
dev 0000:07:00.1
no-multi-seg
dev default {
num-rx-queues 2
}
}
Insert PCI slot numbers of ConnectX-4/5 interfaces with correct IDs at dpdk { dev } section, as above example.
To verify the correct IDs use:
lspci -nn | grep -i mel
07:00.0 Ethernet controller [0200]: Mellanox Technologies MT27620 Family [15b3:1013]
07:00.1 Ethernet controller [0200]: Mellanox Technologies MT27620 Family [15b3:1013]
6. Start VPP.
vpp -c /etc/vpp/startup.conf
7. Enter the VPP Command Line Interface.
vppctl
8. Configure L3 interfaces as shown in the example below:
VPP Cli
_______ _ _ _____ ___
__/ __/ _ \ (_)__ | | / / _ \/ _ \
_/ _// // / / / _ \ | |/ / ___/ ___/
/_/ /____(_)_/\___/ |___/_/ /_/
vpp# set int ip address HundredGigabitEthernet7/0/0 1.1.1.1/24
vpp# set interface state HundredGigabitEthernet7/0/0 up
vpp# set int ip address HundredGigabitEthernet7/0/1 2.2.2.2/24
vpp# set interface state HundredGigabitEthernet7/0/1 up
vpp# show int
Name Idx State Counter Count
HundredGigabitEthernet7/0/0 1 up
HundredGigabitEthernet7/0/1 2 up
vpp# show int address
HundredGigabitEthernet7/0/0 (up):
1.1.1.1/24
HundredGigabitEthernet7/0/1 (up):
2.2.2.2/24
local0 (dn):