Ubuntu24.04编译DPDK

481 阅读2分钟

DPDK介绍

DPDK(Data Plane Development Kit)是一个用于高性能数据包处理的软件集合。

DPDK主要特点和功能如下:

  • 以加速网络数据包处理为目标,旨在实现最佳性能。
  • 直接从用户空间访问网络设备,无需操作系统缓冲和复制,降低CPU和内存消耗。
  • 提供专门针对数据平面的编程接口,比如流式网络 I/O 和内存管理。
  • 支持多种计算平台,如x86、ARM和POWER。常用作高速网络和数据中介软件。
  • 内含基于环形缓冲的框架和线程模型,用于无锁的包处理。
  • 常用模块包括Poll Mode Driver(PMD)和Memory Manager(MEMPOOL)等。
  • 主要应用场景包括高性能交换机、路由器、防火墙、TCP私有网关等。
  • 一些知名项目使用DPDK,如:Linux VRouter虚拟路由,Apache Cassandra等。
  • 出于性能考虑,DPDK应用通常需要绕过OS网络堆栈,实现零拷贝。

总之,DPDK是一个用于高性能数据包I/O和处理的重量级开源软件库,广泛应用于高性能网络应用和设备上。它利用零拷贝和无锁设计大幅提升网络数据处理能力。

修改VMware虚拟机支持DPDK

修改虚拟机的vmx文件

image.png

修改文件的内容如下

ethernet0.virtualDev = "vmxnet3"
ethernet0.wakeOnPcktRcv = "TRUE"

image.png

修改完后可能会出现网卡没有IP地址的情况,到时候可以修改Ubuntu的配置文件来修改地址,具体可以网络搜索下。

编译DPDK

下载源码

git clone https://github.com/DPDK/dpdk.git

切换DPDK到稳定版分支

 git checkout v24.07

安装依赖的包

apt install libnuma-dev
apt-get install meson
apt install python3-pyelftools
apt-get install pkg-config

编译DPDK

meson build 
cd build 
ninja 
ninja install

执行完之后所有的库都安装在 /usr/local/lib/x86_64-linux-gnu/ 目录。

可执行程序和脚本都安装在 /usr/local/bin/ 目录。

编译时遇到的错误

config/meson.build:440:4: ERROR: Problem encountered: 
No NUMA library (development package) found, yet DPDK configured for multiple NUMA nodes.
Please install libnuma, or set 'max_numa_nodes' option to '1' to build without NUMA support.

安装依赖的包

apt install libnuma-dev

参考文章

blog.csdn.net/woay2008/ar…