DPDK总结(测试环境)

测试环境使用VMware Fusion虚拟机,虚拟机主要配置:一个双核CPU、两块网卡、操作系统为CentOS 7
ifconfig可以看到两块网卡(ens33、ens37)
这里写图片描述

编译DPDK

执行/root/dpdk-17.08/usertools/dpdk-setup.sh后可以看到下图
这里写图片描述

编译中可能遇到的问题及解决方法

问题解决办法
找不到cc命令yum -y install gcc
找不到numa.h文件yum -y install numactl-devel
找不到build文件yum -y install kernel-devel(yum安装)
rpm -ivh kernel-devel-xxx.rpm(手动安装)
(kernel-devel版本要和/lib/modules/目录下版本一致)
DESTDIR未定义vi /root/dpdk-17.08/usertools/dpdk-setup.sh
修改make install命令:增加DESTDIR=/root/dpdk
EAL: Error reading from file descriptorvi root/dpdk-17.08/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
注释以下3行:
if (pci_intx_mask_supported(dev)) {
}
dev_notice(&dev->dev, “PCI INTX mask not supported\n”);

1、ndo_change_mtu:http://sysight.com/index.php?qa=1325&qa_1=kni报错ndo_change_mtu-kni_net_change_mtu
cat /usr/src/kernels/3.10.0-862.el7.x86_64/include/linux/netdevice.h
RH_KABI_RENAME(int (*ndo_change_mtu), int (*ndo_change_mtu_rh74))
修改kni_net.c的ndo_change_mtu为ndo_change_mtu_rh74

2、编译pktgen-dpdk lua版本低:https://blog.csdn.net/minxihou/article/details/84024314
yum install epel-release -y
yum install https://centos7.iuscommunity.org/ius-release.rpm -y
yum install lua53u* -y

编译成功后可以看到下图
这里写图片描述

主要步骤

输入操作
13编译DPDK
16插入igb_uio
20设置大页,输入1024
22绑定网卡,输入02:01.0、02:05.0(双网卡)
26testpmd测试,输入0x03(双核)

测试testpmd

启/停:start/stop
这里写图片描述

此时ifconfig看不到两块网卡了,因为两块网卡不归ixgbe驱动管理了,而是归igb_uio驱动管理
这里写图片描述

运行helloworld

在dpdk-17.08目录下执行以下命令

步骤命令
编译DPDKmake install T=x86_64-native-linuxapp-gcc DESTDIR=/root/dpdk
插入igb_uiomodprobe uio
insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
(对于driver为virtio_net的网卡:
modprobe vfio enable_unsafe_noiommu_mode=1
modprobe vfio-pci)
设置大页echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
绑定网卡python usertools/dpdk-devbind.py --bind=igb_uio 02:01.0
python usertools/dpdk-devbind.py --bind=igb_uio 02:05.0
(对于driver为virtio_net的网卡:
python usertools/dpdk-devbind.py -b vfio-pci 02:01.0
python usertools/dpdk-devbind.py -b vfio-pci 02:05.0)
设置环境变量export RTE_SDK=/root/dpdk-17.08
export RTE_TARGET=x86_64-native-linuxapp-gcc
运行helloworldcd examples/helloworld
make
./build/helloworld -c 3 -n 2

运行成功后可以看到下图
这里写图片描述

阿里云ECS使用Pktgen压测

ECS实例如何使用Pktgen测试网络性能:
https://help.aliyun.com/document_detail/260258.html

参考资料

http://www.cnblogs.com/zzqcn/p/4024205.html
http://dpdk.org/doc/guides/linux_gsg/sys_reqs.html#compilation-of-the-dpdk

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值