DPDK以及Pktgen的编译安装

本文详细介绍了DPDK在编译安装过程中遇到的numa.h缺失、pcap.h缺失、网卡绑定问题、testpmd错误等问题的解决办法,以及在虚拟环境中测试时需要注意的事项。同时,还涵盖了pktgen的安装编译步骤,并强调了设置环境变量的重要性。

DPDK的编译

一、 DPDK的编译安装
1. 编译时出现错误:fatal error: numa.h: 没有那个文件或目录

1.1 解决方法
安装:numactl-devel 下载对应版本 numactl-devel-2.0.9-2.el6.x86_64.rpm
安装:numactl-lib 下载对应版本 numactl-libs-2.0.9-7.el7.x86_64.rpm
参考网址:https://blog.csdn.net/qq_35862309/article/details/83187368
1.2 下载安装numactl时出现的问题
在安装时需要更新ubuntu的软件源
参考网址https://blog.csdn.net/shanpenghui/article/details/80433555

2. 编译时出现错误:fatal error: pcap.h: 没有那个文件或目录

2.1 解决方法
安装libpcap

sudo apt-get install flex
sudo apt-get install bison
install libpacp
libpcap-1.9.0
sudo ./configure
sudo make
sudo make install

下载地址:http://www.tcpdump.org/
参考文档:https://www.cnblogs.com/flyinggod/p/9322267.html

3. 绑定网卡时:处于active状态
Ifconfig 网卡名 down

4. 测试testpmd时出现错误:EAL: Error reading from file descriptor 13: Input/output error
4.1解决方法
由于在虚拟机中安装,dpdk不支持虚拟网卡,需修改代码
dpdk-17.8/lib/librte_eal/linuxapp/igb_uio/igb_uio.c(435行左右),注释三行,跳过判断是否支持网卡(虚拟机虚拟网卡不支持)

 case RTE_INTR_MODE_LEGACY:
    		//if (pci_intx_mask_supported(dev)) {
    			dev_dbg(&dev->dev, "using INTX");
    			udev->info.irq_flags = IRQF_SHARED | IRQF_NO_THREAD;
    			udev->info.irq = dev->irq;
    			udev->mode = RTE_INTR_MODE_LEGACY;
    			break;
    		//}
    		//dev_notice(&dev->dev, "PCI INTX mask not supported\n");
    		/* fall back to no IRQ *

之后重新编译

5. 测试testpmd时出现错误:Creation of mbuf pool for socket 0 failed

5.1 解决方法
加大配置的hugepage mappings

6. 测试testpmd时出现错误:无法抓取数据

将虚拟网卡模式由NAT模式变为仅主机模式

二、 pktgen的安装编译
  1. 将pktgen安装包放在dpdk目录下的examples下,并编译dpdk
root@sword-virtual-machine:/home/sword/dpdk-17.08/examples# cd pktgen-3.5.0
  1. 设置环境变量:
# export RTE_SDK=/home/sword/dpdk-17.08
# export RTE_TARGET=x86_64-native-linuxapp-gcc
# make
# make install
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值