1. 编译和运行DPDK示例程序
DPDK(Data Plane Development Kit)是数据平面开发工具包,由用于加速在各种CPU架构上运行的数据包处理的库组成。
在linux上部署DPDK的方法请参考:
在Linux(CentOS)上部署DPDK------命令行方式
该章节的内容参照自官网的 DPDK build sample apps
当DPDK的target环境创建好后(例如 x86_64-native-linuxapp-gcc ), x86_64-native-linuxapp-gcc 目录中会包含编译应用程序的库和头文件。
在编译DPDK应用程序之前,首先需要指定两个环境变量:
在DPDK的 examples 路径下面有许多示例应用,这里以其中的 helloworld 为例进行编译:
DPDK的 examples 路径下面的应用均可以通过这种方式编译,也可以直接在 examples 路径下面运行 make ,将这些应用全都编译好。
在运行应用程序之前,需要确保:
DPDK应用程序与DPDK target环境的环境抽象层EAL(Environmental Abstraction Layer )库相关联,该库提供了一些通用于每个DPDK应用程序的选项。
EAL的详细配置请参照: DPDK EAL参数
可按照下列参数运行 ./helloworld :
其中 -l 命令指定cpu cores list是EAL必须的配置;若没有指定 --socket-mem ,则默认会按照预留的hugepages size来分配。
2. 在虚拟机编译运行dpvs
修改:PKG_CONFIG_PATH应该谨唯悄是*.pc所在目录,祥渣如下设置即可。
export PKG_CONFIG_PATH=/root/dpvs/dpdk/dpdklib/lib/x86_64-linux-gnu/pkgconfig
修改:安装libnuma-dev即可。apt install libnuma-dev
修改:src/Makefile 中加上 -Wno-address-of-packed-member
CFLAGS += -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -Wno-address-of-packed-member -mcmodel=medium
修改:src/Makefile 中加上 -Wno-packed-not-aligned
CFLAGS += -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -Wno-address-of-packed-member -Wno-packed-not-aligned -mcmodel=medium
修改:注山困释掉下面两行
修改:安装 apt-get install libpopt-dev
修改:修改dpip的makefile,添加CFLAGS += $(DEFS) -Wno-address-of-packed-member