dpdk编译开发

发布时间 2023-08-15 09:33:03作者: 秋来叶黄

下载源码

http://core.dpdk.org/download/

编译

http://core.dpdk.org/doc/quick-start/

安装python3

安装ninja

yum install ninja-build

安装meson

pip3 install meson

开始编译

  tar xf dpdk.tar.gz
  cd dpdk
  meson build
  ninja -C build

确定配置好大页内存

  mkdir -p /dev/hugepages
  mountpoint -q /dev/hugepages || mount -t hugetlbfs nodev /dev/hugepages
  echo 64 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

运行测试程序

iface需要对应机器上支持的网卡名称

  build/app/dpdk-testpmd -c7 --vdev=net_pcap0,iface=eth0 --vdev=net_pcap1,iface=eth1 -- -i --nb-cores=2 --nb-ports=2 --total-num-mbufs=2048

  testpmd> show port stats all

  ######################## NIC statistics for port 0  ########################
  RX-packets: 0          RX-errors: 0         RX-bytes: 0
  TX-packets: 0          TX-errors: 0         TX-bytes: 0
  ############################################################################

  ######################## NIC statistics for port 1  ########################
  RX-packets: 0          RX-errors: 0         RX-bytes: 0
  TX-packets: 0          TX-errors: 0         TX-bytes: 0
  ############################################################################

  testpmd> start tx_first

  testpmd> stop

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 2377688        RX-dropped: 0             RX-total: 2377688
  TX-packets: 2007009        TX-dropped: 0             TX-total: 2007009
  ----------------------------------------------------------------------------

  ---------------------- Forward statistics for port 1  ----------------------
  RX-packets: 2006977        RX-dropped: 0             RX-total: 2006977
  TX-packets: 2377720        TX-dropped: 0             TX-total: 2377720
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 4384665        RX-dropped: 0             RX-total: 4384665
  TX-packets: 4384729        TX-dropped: 0             TX-total: 4384729
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

遇到的错误

ERROR: Problem encountered: missing python module: elftools

pip3 install pyelftools

error while loading shared libraries: libatomic.so.1: cannot open shared object file

yum install libatomic

DPDK is running on a NUMA system, but is compiled without NUMA support.

这个不算问题,如果需要dpdk自己支持NUMA,需要在编译前安装对应的开发库

dnf install numactl-devel

https://forum.openeuler.org/t/topic/670