DPDK简单使用

一、快速使用

官网下载DPDK。

解压:

tar –xf dpdk.tar

cd  dpdk

配置:

make config T=x86_64-native-linuxapp-gcc

sed -ri 's,(PMD_PCAP=).*,\1y,' build/.config

make

配置巨页:

mkdir -p /mnt/huge

mount -t hugetlbfs nodev /mnt/huge

echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

编译时候会出现这个错误:

make: ***/lib/modules/3.10.0-123.el7.x86_64/build: No such file or directory.

解决:cd /lib/modules/3.10.0-123.el7.x86_64/

         ln-s /usr/src/kernels/3.10.0-327.36.3.el7.x86_64/  build

如果/usr/src/ 没有3.10.0-327.36.3.el7.x86_64/,需要先安装对应版本的开发工具.

Rpm包路径:https://buildlogs.centos.org/c7-updates/kernel/3.10.0-123.el7/20140630120647/

安装PCI组件:yum install pciutils –y

到这里,dpdk可以使用,接下来用 /tools/下的脚本去加载UIO驱动。

脚本运行如下:


DPDK简单使用_第1张图片
DPDK简单使用_第2张图片

按照脚本提示一步步执行,就可以完成绑定网卡和加载驱动的工作。

二、运行例子

执行example/下的例子要先绑定网卡。

Helloworld,testpmd,skeleton的测试例子就不说了,l3fwd还不懂怎么构建拓扑,这里

详细说一下l2fwd二层转发的例子:

模型


DPDK简单使用_第3张图片

这里用二张网卡测试,以上面的模型收发包。

运行:./build/l2fwd -c 0x50 -n 4 -- -p 0x0c -q 1

参数分为两部分,以 -- 分隔,前面部分是配置EAL环境的,后面是程序的参数

-c 0x50 是指用4,6两个核,-n 4指的是用4个内存通道。0x50是core的16进制掩码。

-p 0x0c 是指网卡的16进制掩码,即2,3两个口。

-q 1 是用一个无锁队列。


由于网卡是由DPDK接管的,是没有IP地址的,所以是以MAC地址通信。确定好各自的源MAC和目的MAC,类似于二层交换机的功能。


DPDK简单使用_第4张图片

你可能感兴趣的:(DPDK简单使用)