DPDK安装、环境搭建(史上最全、最细版)

DPDK环境搭建(史上最全、最细版)

  • 一、DPDK安装前准备工作
  • 二、配置内存大业以及bios设置
  • 三、接收端配置
  • 四、发送端配置

本人配置DPDK数十次、特别是centOS7.2 、7.6版本,根据走过的坑总结以下内容。

一、DPDK安装前准备工作

1 确认网卡型号

lspci -vvv|grep Ethernet

DPDK安装、环境搭建(史上最全、最细版)_第1张图片
2 确认网卡是否被DPDK支持
登录网址直接进行搜索型号信息
link
3 确认系统型号

cat /etc/redhat-release

4 根据版本型号确定要下载的DPDK版本
同样上官网查询适合版本

二、配置内存大业以及bios设置

1 配置内存大业

vim /etc/grub2.cfg

在第一个menuentry中,UTF-8后添加:

hpet=enable default_hugepagesz=1G hugepagesz=1G hugepages=40

配置完成后重启同时配置bios
DPDK安装、环境搭建(史上最全、最细版)_第2张图片
2 bios配置
NUMA:开启
3 重启后配置大业信息

echo 20 > /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages
echo 20 > /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages

4 查看大业是否配置成功

cat /proc/meminfo | grep Huge

在这里插入图片描述
5 设置CPU最佳性能

cpupower frequency-set -g performance

查看性能是否最佳

cpupower frequency-info

DPDK安装、环境搭建(史上最全、最细版)_第3张图片

三、接收端配置

1 官网下载
link
2 解压文件

xz -d dpdk-17.11.4.tar.xz
tar -xvf dpdk-17.11.4.tar

3 进入目录配置环境变量

cd dpdk-stable-17.11.4
echo "export RTE_SDK=`pwd`" >> /etc/profile
echo "export RTE_TARGET=x86_64-native-linuxapp-gcc" >> /etc/profile
echo "export EXTRA_CFLAGS='-O0 -g'" >> /etc/profile
source /etc/profile

4 编译
注意网卡为Mellanox-cx5或者cx4在编译前需要打开PMD,否则运行pktgen或者testpmd时会找不到驱动

make install T=x86_64-native-linuxapp-gcc
cd dpdk-stable-17.11.4/x86_64-native-linuxapp-gcc
vim .config

(1) 如果网卡是Mellanox-cx5修改以下选项

CONFIG_RTE_LIBRTE_MLX5_PMD=y
CONFIG_RTE_LIBRTE_MLX5_DEBUG=y
CONFIG_RTE_LIBRTE_MLX5_TX_MP_CACHE=8

(2) 如果想使用pdump(DPDK内抓包工具),修改以下选项

CONFIG_RTE_LIBRTE_PMD_PCAP=y 
CONFIG_RTE_LIBRTE_PDUMP=y 

修改完以上设置后,保存

make

退回到dpdk-17.11.4目录下并进行如下编译

cd app
make

5 网卡绑定
Mellanox网卡不需要绑定,Intel && Broadcom需要绑定,Intel && Broadcom需要使用DPDK驱动,绑定成功后在“ip a”下不可见
(1)安装lspci

yum install -y pciutils

(2)网卡绑定
机器每次重启需要重新进行网卡绑定
进入dpdk-17.11.4文件进行网卡绑定

lspci | grep -i eth #查看网卡对应的PCIE地址,例如:af:00.0 af:00.1】
modprobe uio
insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
ifdown ethX #绑定前需要改变网卡状态
./usertools/dpdk-devbind.py -b igb_uio 0000:06:00.0 #此处需要填写PCIE对应的地址

查询网卡绑定情况

./usertools/dpdk-devbind.py --status

网卡解绑

./usertools/dpdk-devbind.py -u 0000:06:00.0 #解绑
解绑网卡重新绑定回Kernel driver 需要执行reboot命令

6 找到可执行脚本testpmd

find -name testpmd
脚本在 dpdk-stable-17.11.4/app/build/app/

7 执行命令

./testpmd –l 10-19 –n 4 -- -i --rxq=4 --txq=4 --rxd=4096 --txd=4096 –nb-cores=8 –nb-ports=2

四、发送端配置

1 下载pktgen
link
本人使用版本为pktgen-3.4.9.zip
2 解压

unzip pktgen-3.4.9.zip
cd pktgen-3.4.9/

3 设置环境变量
如果接收端设置过不用在设置

export RTE_SDK=/root/dpdk/dpdk-stable-17.11.4/
export RTE_TARGET=x86_64-native-linuxapp-gcc

4 编译【编译前安装依赖项,否则会报错】

yum install -y libpcap-devel
make

5 绑定网卡
6 找到可执行脚本pktgen

find -name pktgen
脚本在/pktgen-3.4.9/app//x86_64-native-linuxapp-gcc/

7 执行命令

./pktgen -l 0,24-30 -n 1  -- -T –p 0x1 -m "[24:25-30].0" 

你可能感兴趣的:(DPDK)