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驱动。

脚本运行如下:


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

二、运行例子

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

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

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

模型


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

运行:./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,类似于二层交换机的功能。


推荐阅读更多精彩内容

  • 1. 简介 本文档包含DPDK软件安装和配置的相关说明。旨在帮助用户快速启动和运行软件。文档主要描述了在Linux...
    半天妖阅读 17,223评论 0 22
  • 采用1条命令:sudo yum install qgis qgis-python qgis-grass qgis-...
    测绘小兵阅读 2,777评论 1 0
  • 背景: 阅读新闻 12C CDB模式下RMAN备份与恢复 [日期:2016-11-29] 来源:Linux社区 作...
    阳屯okyepd阅读 2,616评论 0 7
  • “很高兴看到你又活了。” 狐狸小姐这样跟我讲,在我开启话题跟她QQ聊天之后,如同两个星期之前一样的循规蹈矩的生活。...
    苏子远阅读 62评论 0 0
  • 1. 去年某天,老爸说,“帮我买张电影票”。 这很反常,老爷子从不热衷去电影院看戏。 他从茶罐下扯出一张皱皱巴巴的...
    老K呀阅读 238评论 0 2
  • 《内疚》 一场春雨过后 两旁青色的藤蔓向路中间靠拢 我侧着身子从中挤过 隐隐看到 铲掉的缺口正在慢慢愈合 这一朵花...
    纳兰苏浅阅读 230评论 0 0