DPDK安装与简单使用
DPDK安装与简单使用1.dpdk安装0)为确保DPDK安装成功,程序正常编译使用,安装前应执行如下命令,安装程序依赖yum updateyum install libpcap-devel kernel*之后关闭虚拟机再新添加一个网卡。1)下载dpdk安装包:(版本:DPDK17.11.2 LTS)wget https://dpdk.org/rel/dpdk-...
#DPDK安装与简单使用
###1.dpdk安装
0)为确保DPDK安装成功,程序正常编译使用,安装前应执行如下命令,安装程序依赖
yum update
yum install libpcap-devel kernel*
之后关闭虚拟机再新添加一个网卡。
1)下载dpdk安装包:(版本:DPDK17.11.2 LTS)
wget https://dpdk.org/rel/dpdk-17.11.2.tar.xz
2)解压:
xz -d dpdk-17.11.2.tar.xz
tar -xvf dpdk-17.11.2.tar
3)安装编译:
需要先修改文件:
(1)修改 dpdk-stable-17.11.2/config/common_linuxapp文件
CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=y改为 CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
CONFIG_RTE_LIBRTE_VHOST_NUMA=y改为 CONFIG_RTE_LIBRTE_VHOST_NUMA=n
CONFIG_RTE_KNI_KMOD=y改为 CONFIG_RTE_KNI_KMOD=n
(2)修改dpdk-stable-17.11.2/lib/librte_eal/linuxapp/igb_uio/igb_uio.c文件
if (pci_intx_mask_supported(udev->pdev))改为 if (pci_intx_mask_supported(udev->pdev) || 1)(在文件279行)
使用安装脚本配置:
cd dpdk-stable-17.11.2/usertools
./dpdk-setup.sh
选择14 x86_64-native-linuxapp-gcc
安装好后界面:
###2.简单使用
1)载入用户态驱动
su
modprobe uio
insmod dpdk-stable-17.11.2/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
2)绑定网卡驱动
可以使用双网卡,用另外一个类似ens37的网卡
ifconfig ens33 down
dpdk-stable-17.11.2/usertools/dpdk-devbind.py -b igb_uio ens33
或者
ifconfig ens33 down
dpdk-stable-17.11.2/usertools/dpdk-devbind.py -b igb_uio 0000:02:01.0
查看网卡信息:
dpdk-stable-17.11.2/usertools/dpdk-devbind.py --status
如修改回普通网卡模式,则使用如下命令
./dpdk-devbind.py -b e1000 0000:02:05.0
ifconfig ens33 up
3)配置巨页
mkdir /mnt/huge
echo 128 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
mount –t hugetlbfs nodev /mnt/huge
查看巨页信息:
cat /proc/meminfo | grep Huge
删除巨页配置:
umount nodev /mnt/huge
rm –rf /dev/hugepages/*
echo 0 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
3)运行
下载如下两个文件:将文件拷贝至虚拟机中,然后运行这两个文件。(注:收包程序为trafdump,发包程序为trafgen,收发包程序分别拷贝到两个虚拟机下)
1、拷贝程序文件夹,修改Makefile文件
RTE_SDK ?= /home/dpdk/dpdk-stable-17.11.2更改成自己的dpdk目录
2、进入目录,输入make命令编译
3、运行程序,收包程序命令如下:
./build/trafdump -c 0x3 -n 2 --proc-type auto -w 0000:02:01.0 -- --log
--portmask 0x1
发包程序命令如下:
./build/trafgen -c 0x3 -n 2 --proc-type auto -w 0000:02:01.0 -- --benchmark --portmask 0x1
注意使用网卡与PCI号匹配
此处展示收包结果。
对于DPDK发包程序,修改main.c 348行 pkt_size值可对包大小进行修改,修改完成后重新编译即可
注:以上所有操作均在作者在网上搜集资料后,在个人电脑上实验成功,若读者实验时失败,可能由一些未知因素导致,可与作者联系。编写的教程可能由于疏忽出错,请与作者联系。
更多推荐
所有评论(0)