白帽黑客之安全运维系列教程(一)DPDK

在 《信息安全系列课程之网络空间测绘与态势感知技术揭秘》 系列内容中,我们提到了 DPDK 技术,使用 DPDK 技术,可以在用户层(R3)实现网络流量捕获与网络流量转发,由于 DPDK 技术的特性,使它能够非常高效地在 应用层 直接处理 网络底层 数据 !

本文章仅提供学习,切勿将其用于不法手段!

首先,我们来讲一下,DPDK 工具包 的 安装 !

我们以 Kali Linux 2024.4 版本 的 LINUX 系统 为例 ,由于 Kali Linux 基于 Debian ,因此,在 Debian 系列 的 操作系统 中 ,DPDK 的 有些 安装 与 配置 过程 和 Kali Linux 相近 !

Kali Linux 2024.4 版本 的 Linux 操作系统 镜像源 中,已经集成了 DPDK 开发工具包 !

如果你没有安装 aptitude 这个 包管理工具,那么,你可以使用 apt install aptitude 或 apt-get install aptitude 的 方式去安装它。当然,apt 也是 可以通过 apt-get install apt 进行安装的。

我们可以执行 aptitude search dpdk 这条 命令 ,我们可以看到一些与 DPDK 相关的安装包。

其中,我们主要需要安装 dpdk 、dpdk-dev 、dpdk-doc 、dpdk-kmods-dkms 、libdpdk-dev 这五个工具包

dpdk 是 dpdk 的 运行时环境dpdk-dev 是 dpdk 的 开发工具包dpdk-doc 是 dpdk 的 文档资料库​dpdk-kmods-dkms 是 dpdk 的 内核模块管理包libdpdk-dev 是 dpdk 的 运行时库

如果你不知道, dpdk 和 dpdk-dev 的 区别 ,那么,如果 你 会 JAVA 编程 ,可以这么理解:dpdk 类似于 jre ,同样都是 运行环境 !dpdk-dev 类似于 jdk ,同样都是 开发环境 !dpdk-doc ,你可以理解为 API 文档 !dpdk-kmods-dkms ,它主要用于 动态编译 适配 不同 内核版本 的 用户态 驱动(例如 igb_uio 、vfio-pci 等 )!

dpdk-kmods-dkms ,我们来重点讲一下,它主要用于 动态编译 适配 不同 内核版本 的 用户态 驱动 !

这里的重点是:动态编译 ,适配,不同内核版本,用户态驱动 !

记住这几个关键词,你自然就知道,dpdk-kmods-dkms 是 做什么用的了!

DKMS ,是Dynamic Kernel Module Support的缩写,用于动态管理内核模块,当内核更新时自动重新编译模块。

Dynamic (动态),Kernel (内核),Module (模块),Support (支持,技术支撑)!

dpdk-kmods-dkms 是一个 ​自动编译工具包 ,专门用来管理 DPDK(数据平面开发套件)的 ​内核模块

简单来说,DPDK 需要一些内核模块(比如 igb_uio 驱动)才能工作,但这些模块需要根据不同的内核版本重新编译。

举例:如果 你 升级 了 Linux系统 的 内核 ,那么 之前的 DPDK 模块 可能就已经不再 适用 Linux系统 的 新内核 。在这个时候,dpdk-kmods-dkms 的 价值 就能很好地 体现 了! dpdk-kmods-dkms 会 自动 帮你 重新编译 这些 之前 安装 的 DPDK 模块 !

1、dpdk

用途

  • 核心功能 :提供 DPDK 的 运行时环境 ,包含 用户态 网络处理核心库 (如内存管理、轮询驱动、多核调度 )和基础工具 (如 testpmd 测试工具)。
  • 典型场景 :部署生产环境中的网络应用(如虚拟交换机、防火墙 ),直接调用 DPDK API 实现数据包处理
关键组件​
  • 环境抽象层(EAL)​:初始化硬件资源(CPU、内存、PCI设备)。
  • 轮询模式驱动(PMD)​ :如 igb_uio,绕过内核直接操作网卡。
  • 基础库内存池rte_mempool )、无锁队列rte_ring )、定时器rte_timer)。

2、dpdk-dev

用途
  • 开发工具包 :提供编译 DPDK 应用和驱动所需的 头文件、静态库、编译脚本
  • 典型场景:开发自定义 DPDK 应用或驱动(如自定义 Poll-Mode Driver)。
关键组件
  • 头文件 :如**rte_eal.hrte_ethdev.h**,定义 DPDK API。
  • 编译工具Meson 构建系统、Ninja 构建工具。
  • 驱动源码 :如 igb_uio 驱动的实现代码。

3、dpdk-doc

用途
  • 网页资料 :包含 DPDK 的 用户手册、API 参考、示例代码
  • 典型场景:查阅 DPDK 的功能接口、配置参数和最佳实践。
关键内容
  • API 文档:详细描述每个函数的作用和参数。
  • 示例代码 :如 12fwd二层转发 )、vhost虚拟主机)的实现。
  • Release Notes:版本更新说明和新特性介绍。

4、dpdk-kmods-dkms

用途
  • 内核模块管理 :通过 DKMS动态内核模块支持自动编译安装 DPDK 的 内核模块 (如 igb_uio)。
  • 典型场景:解决内核升级导致的模块兼容性问题,确保 DPDK 驱动始终适配当前内核。
工作原理
  1. 监控内核版本:当系统内核更新时,DKMS 自动触发模块重新编译。
  2. 自动构建 :使用预置的 dkms.conf 配置文件完成编译和安装。
  3. 模块安装 :将编译后的 .ko 文件放入 /lib/modules 目录。

5、libdpdk-dev

用途
  • 开发库 :提供 DPDK 的 动态链接库(.so)​开发头文件,用于编译依赖 DPDK 的应用程序。
  • 典型场景开发 需要调用 DPDK API 的自定义程序(如流量监控工具)。
关键组件
  • 动态库 :如 librte_eal.so环境抽象层 )、librte_ethdev.so网卡设备库)。
  • 开发接口 :封装了 DPDK 的核心功能(如内存分配、队列管理)。

dpdk-dev 和 libdpdk-dev 之间,有什么区别呢?

dpdk-dev 是 开发工具包(开发工具链),主要用于提供 编译 DPDK 自定义应用 所需的 头文件、静态库、编译脚本、工具链 等。

libdpdk-dev 是 运行时库 ,主要用于 提供 DPDK 的 动态链接库( .so 文件)和 API 接口(对外提供 DPDK 的 API函数)!

DPDK 自定义应用 的 开发流程中 dpdk-dev 和 libdpdk-dev 之间的协作关系

  1. 开发阶段​

    • 使用 dpdk-dev 的头文件和工具链编写代码。
    • 编译时链接静态库(如 -lrte_eal)。
  2. 部署阶段​:

    • 确保 libdpdk-dev 的动态库在系统路径中。
    • 通过 LD_LIBRARY_PATH 指定库路径(如 /usr/lib/x86_64-linux-gnu)。

我们可以通过下面的命令进行 DPDK工具包安装

aptitude install dpdk dpdk-dev dpdk-doc dpdk-kmods-dkms libdpdk-dev

当然,在执行上面的命令之前,我们最好先执行一下 **aptitude update ,**这样,我们可以获得最新的相应工具包。

我们需要了解一下,安装之后相关工具包的安装路径!

通过执行 dpkg -L dpdk 、dpkg -L dpdk-dev 、dpkg -L dpdk-doc 、dpkg -L dpdk-kmods-dkms 、dpkg -L libdpdk-dev 等命令,可以查看 dpdk 相关工具包的安装位置。

/.

/etc

/etc/dpdk

/etc/dpdk/dpdk.conf

/etc/dpdk/interfaces

/usr

/usr/bin

/usr/bin/dpdk-devbind.py

/usr/bin/dpdk-hugepages.py

/usr/bin/dpdk-pmdinfo.py

/usr/bin/dpdk-telemetry-exporter.py

/usr/bin/dpdk-telemetry.py

/usr/lib

/usr/lib/dpdk

/usr/lib/dpdk/dpdk-init

/usr/lib/systemd

/usr/lib/systemd/system

/usr/lib/systemd/system/dpdk.service

/usr/share

/usr/share/doc

/usr/share/doc/dpdk

/usr/share/doc/dpdk/changelog.Debian.gz

/usr/share/doc/dpdk/copyright

/usr/share/dpdk

/usr/share/dpdk/telemetry-endpoints

/usr/share/dpdk/telemetry-endpoints/counters.py

/usr/share/dpdk/telemetry-endpoints/cpu.py

/usr/share/dpdk/telemetry-endpoints/memory.py

/usr/share/lintian

/usr/share/lintian/overrides

/usr/share/lintian/overrides/dpdk

/usr/share/python3

/usr/share/python3/runtime.d

/usr/share/python3/runtime.d/dpdk.rtupdate

如果你不知道新安装的工具包的相关文件位置,那么执行 dpkg -L <软件包名> 这条命令,会是一个不错的选择!

/.

/usr

/usr/bin

/usr/bin/dpdk-cmdline-gen.py

/usr/bin/dpdk-dumpcap

/usr/bin/dpdk-graph

/usr/bin/dpdk-pdump

/usr/bin/dpdk-proc-info

/usr/bin/dpdk-rss-flows.py

/usr/bin/dpdk-test

/usr/bin/dpdk-test-acl

/usr/bin/dpdk-test-bbdev

/usr/bin/dpdk-test-cmdline

/usr/bin/dpdk-test-compress-perf

/usr/bin/dpdk-test-crypto-perf

/usr/bin/dpdk-test-dma-perf

/usr/bin/dpdk-test-eventdev

/usr/bin/dpdk-test-fib

/usr/bin/dpdk-test-flow-perf

/usr/bin/dpdk-test-gpudev

/usr/bin/dpdk-test-mldev

/usr/bin/dpdk-test-pipeline

/usr/bin/dpdk-test-regex

/usr/bin/dpdk-test-sad

/usr/bin/dpdk-test-security-perf

/usr/bin/dpdk-testpmd

/usr/share

/usr/share/doc

/usr/share/doc/dpdk-dev

/usr/share/doc/dpdk-dev/changelog.Debian.gz

/usr/share/doc/dpdk-dev/copyright

/usr/share/lintian

/usr/share/lintian/overrides

/usr/share/lintian/overrides/dpdk-dev

由于 dpdk-doc 涉及的目录与文件较多,这里,就不一一列出了,有兴趣了解更多的,可以在本地环境中执行 dpkg -L dpdk-doc 命令查看。

/.

/usr

/usr/share

/usr/share/doc

/usr/share/doc/dpdk-kmods-dkms

/usr/share/doc/dpdk-kmods-dkms/changelog.Debian.gz

/usr/share/doc/dpdk-kmods-dkms/copyright

/usr/src

/usr/src/dpdk-kmods-0~20230205+git

/usr/src/dpdk-kmods-0~20230205+git/Kbuild

/usr/src/dpdk-kmods-0~20230205+git/Makefile

/usr/src/dpdk-kmods-0~20230205+git/compat.h

/usr/src/dpdk-kmods-0~20230205+git/dkms.conf

/usr/src/dpdk-kmods-0~20230205+git/igb_uio.c

/.

/usr

/usr/include

/usr/include/dpdk

/usr/include/dpdk/bpf_def.h

/usr/include/dpdk/cmdline.h

/usr/include/dpdk/cmdline_cirbuf.h

/usr/include/dpdk/cmdline_parse.h

/usr/include/dpdk/cmdline_parse_etheraddr.h

/usr/include/dpdk/cmdline_parse_ipaddr.h

/usr/include/dpdk/cmdline_parse_num.h

/usr/include/dpdk/cmdline_parse_portlist.h

/usr/include/dpdk/cmdline_parse_string.h

/usr/include/dpdk/cmdline_rdline.h

/usr/include/dpdk/cmdline_socket.h

/usr/include/dpdk/cmdline_vt100.h

/usr/include/dpdk/generic

/usr/include/dpdk/generic/rte_atomic.h

/usr/include/dpdk/generic/rte_byteorder.h

/usr/include/dpdk/generic/rte_cpuflags.h

/usr/include/dpdk/generic/rte_cycles.h

/usr/include/dpdk/generic/rte_io.h

/usr/include/dpdk/generic/rte_memcpy.h

/usr/include/dpdk/generic/rte_pause.h

/usr/include/dpdk/generic/rte_power_intrinsics.h

/usr/include/dpdk/generic/rte_prefetch.h

/usr/include/dpdk/generic/rte_rwlock.h

/usr/include/dpdk/generic/rte_spinlock.h

/usr/include/dpdk/generic/rte_vect.h

/usr/include/dpdk/power_cpufreq.h

/usr/include/dpdk/power_uncore_ops.h

/usr/include/dpdk/rte_acc_cfg.h

/usr/include/dpdk/rte_acl.h

/usr/include/dpdk/rte_acl_osdep.h

/usr/include/dpdk/rte_alarm.h

/usr/include/dpdk/rte_approx.h

/usr/include/dpdk/rte_argparse.h

/usr/include/dpdk/rte_arp.h

/usr/include/dpdk/rte_avp_common.h

/usr/include/dpdk/rte_avp_fifo.h

/usr/include/dpdk/rte_bbdev.h

/usr/include/dpdk/rte_bbdev_op.h

/usr/include/dpdk/rte_bbdev_pmd.h

/usr/include/dpdk/rte_bitmap.h

/usr/include/dpdk/rte_bitops.h

/usr/include/dpdk/rte_bitrate.h

/usr/include/dpdk/rte_bitset.h

/usr/include/dpdk/rte_bpf.h

/usr/include/dpdk/rte_bpf_ethdev.h

/usr/include/dpdk/rte_branch_prediction.h

/usr/include/dpdk/rte_bus.h

/usr/include/dpdk/rte_bus_pci.h

/usr/include/dpdk/rte_bus_vdev.h

/usr/include/dpdk/rte_bus_vmbus.h

/usr/include/dpdk/rte_cfgfile.h

/usr/include/dpdk/rte_cksum.h

/usr/include/dpdk/rte_class.h

/usr/include/dpdk/rte_cman.h

/usr/include/dpdk/rte_common.h

/usr/include/dpdk/rte_comp.h

/usr/include/dpdk/rte_compat.h

/usr/include/dpdk/rte_compressdev.h

/usr/include/dpdk/rte_crc_arm64.h

/usr/include/dpdk/rte_crc_generic.h

/usr/include/dpdk/rte_crc_sw.h

/usr/include/dpdk/rte_crc_x86.h

/usr/include/dpdk/rte_crypto.h

/usr/include/dpdk/rte_crypto_asym.h

/usr/include/dpdk/rte_crypto_sym.h

/usr/include/dpdk/rte_cryptodev.h

/usr/include/dpdk/rte_cryptodev_core.h

/usr/include/dpdk/rte_cryptodev_scheduler.h

/usr/include/dpdk/rte_cryptodev_scheduler_operations.h

/usr/include/dpdk/rte_cryptodev_trace_fp.h

/usr/include/dpdk/rte_debug.h

/usr/include/dpdk/rte_dev.h

/usr/include/dpdk/rte_dev_info.h

/usr/include/dpdk/rte_devargs.h

/usr/include/dpdk/rte_dispatcher.h

/usr/include/dpdk/rte_distributor.h

/usr/include/dpdk/rte_dmadev.h

/usr/include/dpdk/rte_dmadev_core.h

/usr/include/dpdk/rte_dmadev_trace_fp.h

/usr/include/dpdk/rte_dpaa2_mempool.h

/usr/include/dpdk/rte_dtls.h

/usr/include/dpdk/rte_eal.h

/usr/include/dpdk/rte_eal_memconfig.h

/usr/include/dpdk/rte_eal_trace.h

/usr/include/dpdk/rte_ecpri.h

/usr/include/dpdk/rte_efd.h

/usr/include/dpdk/rte_epoll.h

/usr/include/dpdk/rte_errno.h

/usr/include/dpdk/rte_esp.h

/usr/include/dpdk/rte_eth_bond.h

/usr/include/dpdk/rte_eth_bond_8023ad.h

/usr/include/dpdk/rte_eth_ctrl.h

/usr/include/dpdk/rte_eth_ring.h

/usr/include/dpdk/rte_eth_softnic.h

/usr/include/dpdk/rte_eth_vhost.h

/usr/include/dpdk/rte_ethdev.h

/usr/include/dpdk/rte_ethdev_core.h

/usr/include/dpdk/rte_ethdev_trace_fp.h

/usr/include/dpdk/rte_ether.h

/usr/include/dpdk/rte_event_crypto_adapter.h

/usr/include/dpdk/rte_event_dma_adapter.h

/usr/include/dpdk/rte_event_eth_rx_adapter.h

/usr/include/dpdk/rte_event_eth_tx_adapter.h

/usr/include/dpdk/rte_event_ring.h

/usr/include/dpdk/rte_event_timer_adapter.h

/usr/include/dpdk/rte_eventdev.h

/usr/include/dpdk/rte_eventdev_core.h

/usr/include/dpdk/rte_eventdev_trace_fp.h

/usr/include/dpdk/rte_fbarray.h

/usr/include/dpdk/rte_fbk_hash.h

/usr/include/dpdk/rte_fib.h

/usr/include/dpdk/rte_fib6.h

/usr/include/dpdk/rte_flow.h

/usr/include/dpdk/rte_flow_driver.h

/usr/include/dpdk/rte_geneve.h

/usr/include/dpdk/rte_gpudev.h

/usr/include/dpdk/rte_graph.h

/usr/include/dpdk/rte_graph_model_mcore_dispatch.h

/usr/include/dpdk/rte_graph_model_rtc.h

/usr/include/dpdk/rte_graph_worker.h

/usr/include/dpdk/rte_graph_worker_common.h

/usr/include/dpdk/rte_gre.h

/usr/include/dpdk/rte_gro.h

/usr/include/dpdk/rte_gso.h

/usr/include/dpdk/rte_gtp.h

/usr/include/dpdk/rte_hash.h

/usr/include/dpdk/rte_hash_crc.h

/usr/include/dpdk/rte_hexdump.h

/usr/include/dpdk/rte_higig.h

/usr/include/dpdk/rte_hypervisor.h

/usr/include/dpdk/rte_ib.h

/usr/include/dpdk/rte_icmp.h

/usr/include/dpdk/rte_interrupts.h

/usr/include/dpdk/rte_ip.h

/usr/include/dpdk/rte_ip4.h

/usr/include/dpdk/rte_ip6.h

/usr/include/dpdk/rte_ip_frag.h

/usr/include/dpdk/rte_ipsec.h

/usr/include/dpdk/rte_ipsec_group.h

/usr/include/dpdk/rte_ipsec_sa.h

/usr/include/dpdk/rte_ipsec_sad.h

/usr/include/dpdk/rte_jhash.h

/usr/include/dpdk/rte_jobstats.h

/usr/include/dpdk/rte_keepalive.h

/usr/include/dpdk/rte_kvargs.h

/usr/include/dpdk/rte_l2tpv2.h

/usr/include/dpdk/rte_latencystats.h

/usr/include/dpdk/rte_launch.h

/usr/include/dpdk/rte_lcore.h

/usr/include/dpdk/rte_lcore_var.h

/usr/include/dpdk/rte_lock_annotations.h

/usr/include/dpdk/rte_log.h

/usr/include/dpdk/rte_lpm.h

/usr/include/dpdk/rte_lpm6.h

/usr/include/dpdk/rte_lpm_altivec.h

/usr/include/dpdk/rte_lpm_neon.h

/usr/include/dpdk/rte_lpm_scalar.h

/usr/include/dpdk/rte_lpm_sse.h

/usr/include/dpdk/rte_lpm_sve.h

/usr/include/dpdk/rte_lru.h

/usr/include/dpdk/rte_lru_arm64.h

/usr/include/dpdk/rte_lru_x86.h

/usr/include/dpdk/rte_macsec.h

/usr/include/dpdk/rte_malloc.h

/usr/include/dpdk/rte_mbuf.h

/usr/include/dpdk/rte_mbuf_core.h

/usr/include/dpdk/rte_mbuf_dyn.h

/usr/include/dpdk/rte_mbuf_pool_ops.h

/usr/include/dpdk/rte_mbuf_ptype.h

/usr/include/dpdk/rte_mcslock.h

/usr/include/dpdk/rte_member.h

/usr/include/dpdk/rte_memory.h

/usr/include/dpdk/rte_mempool.h

/usr/include/dpdk/rte_mempool_trace_fp.h

/usr/include/dpdk/rte_memzone.h

/usr/include/dpdk/rte_meter.h

/usr/include/dpdk/rte_metrics.h

/usr/include/dpdk/rte_metrics_telemetry.h

/usr/include/dpdk/rte_mldev.h

/usr/include/dpdk/rte_mldev_core.h

/usr/include/dpdk/rte_mpls.h

/usr/include/dpdk/rte_mtr.h

/usr/include/dpdk/rte_mtr_driver.h

/usr/include/dpdk/rte_net.h

/usr/include/dpdk/rte_net_crc.h

/usr/include/dpdk/rte_node_eth_api.h

/usr/include/dpdk/rte_node_ip4_api.h

/usr/include/dpdk/rte_node_ip6_api.h

/usr/include/dpdk/rte_node_udp4_input_api.h

/usr/include/dpdk/rte_os.h

/usr/include/dpdk/rte_pcapng.h

/usr/include/dpdk/rte_pci.h

/usr/include/dpdk/rte_pci_dev_feature_defs.h

/usr/include/dpdk/rte_pci_dev_features.h

/usr/include/dpdk/rte_pdcp.h

/usr/include/dpdk/rte_pdcp_group.h

/usr/include/dpdk/rte_pdcp_hdr.h

/usr/include/dpdk/rte_pdump.h

/usr/include/dpdk/rte_per_lcore.h

/usr/include/dpdk/rte_pflock.h

/usr/include/dpdk/rte_pie.h

/usr/include/dpdk/rte_pipeline.h

/usr/include/dpdk/rte_pmd_bnxt.h

/usr/include/dpdk/rte_pmd_bphy.h

/usr/include/dpdk/rte_pmd_cnxk.h

/usr/include/dpdk/rte_pmd_cnxk_crypto.h

/usr/include/dpdk/rte_pmd_cnxk_eventdev.h

/usr/include/dpdk/rte_pmd_cnxk_gpio.h

/usr/include/dpdk/rte_pmd_cnxk_mempool.h

/usr/include/dpdk/rte_pmd_dlb2.h

/usr/include/dpdk/rte_pmd_dpaa.h

/usr/include/dpdk/rte_pmd_dpaa2.h

/usr/include/dpdk/rte_pmd_dpaa2_cmdif.h

/usr/include/dpdk/rte_pmd_dpaax_qdma.h

/usr/include/dpdk/rte_pmd_fpga_5gnr_fec.h

/usr/include/dpdk/rte_pmd_i40e.h

/usr/include/dpdk/rte_pmd_iavf.h

/usr/include/dpdk/rte_pmd_ifpga.h

/usr/include/dpdk/rte_pmd_ixgbe.h

/usr/include/dpdk/rte_pmd_mlx5.h

/usr/include/dpdk/rte_pmd_ntb.h

/usr/include/dpdk/rte_pmd_ntnic.h

/usr/include/dpdk/rte_pmd_txgbe.h

/usr/include/dpdk/rte_port.h

/usr/include/dpdk/rte_port_ethdev.h

/usr/include/dpdk/rte_port_eventdev.h

/usr/include/dpdk/rte_port_fd.h

/usr/include/dpdk/rte_port_frag.h

/usr/include/dpdk/rte_port_in_action.h

/usr/include/dpdk/rte_port_ras.h

/usr/include/dpdk/rte_port_ring.h

/usr/include/dpdk/rte_port_sched.h

/usr/include/dpdk/rte_port_source_sink.h

/usr/include/dpdk/rte_port_sym_crypto.h

/usr/include/dpdk/rte_power_cpufreq.h

/usr/include/dpdk/rte_power_guest_channel.h

/usr/include/dpdk/rte_power_pmd_mgmt.h

/usr/include/dpdk/rte_power_qos.h

/usr/include/dpdk/rte_power_uncore.h

/usr/include/dpdk/rte_ppp.h

/usr/include/dpdk/rte_ptr_compress.h

/usr/include/dpdk/rte_random.h

/usr/include/dpdk/rte_rawdev.h

/usr/include/dpdk/rte_rawdev_pmd.h

/usr/include/dpdk/rte_rcu_qsbr.h

/usr/include/dpdk/rte_reciprocal.h

/usr/include/dpdk/rte_red.h

/usr/include/dpdk/rte_regexdev.h

/usr/include/dpdk/rte_regexdev_core.h

/usr/include/dpdk/rte_regexdev_driver.h

/usr/include/dpdk/rte_reorder.h

/usr/include/dpdk/rte_rib.h

/usr/include/dpdk/rte_rib6.h

/usr/include/dpdk/rte_ring.h

/usr/include/dpdk/rte_ring_c11_pvt.h

/usr/include/dpdk/rte_ring_core.h

/usr/include/dpdk/rte_ring_elem.h

/usr/include/dpdk/rte_ring_elem_pvt.h

/usr/include/dpdk/rte_ring_generic_pvt.h

/usr/include/dpdk/rte_ring_hts.h

/usr/include/dpdk/rte_ring_hts_elem_pvt.h

/usr/include/dpdk/rte_ring_peek.h

/usr/include/dpdk/rte_ring_peek_elem_pvt.h

/usr/include/dpdk/rte_ring_peek_zc.h

/usr/include/dpdk/rte_ring_rts.h

/usr/include/dpdk/rte_ring_rts_elem_pvt.h

/usr/include/dpdk/rte_sched.h

/usr/include/dpdk/rte_sched_common.h

/usr/include/dpdk/rte_sctp.h

/usr/include/dpdk/rte_security.h

/usr/include/dpdk/rte_security_driver.h

/usr/include/dpdk/rte_seqcount.h

/usr/include/dpdk/rte_seqlock.h

/usr/include/dpdk/rte_service.h

/usr/include/dpdk/rte_service_component.h

/usr/include/dpdk/rte_stack.h

/usr/include/dpdk/rte_stack_lf.h

/usr/include/dpdk/rte_stack_lf_c11.h

/usr/include/dpdk/rte_stack_lf_generic.h

/usr/include/dpdk/rte_stack_lf_stubs.h

/usr/include/dpdk/rte_stack_std.h

/usr/include/dpdk/rte_stdatomic.h

/usr/include/dpdk/rte_string_fns.h

/usr/include/dpdk/rte_swx_ctl.h

/usr/include/dpdk/rte_swx_extern.h

/usr/include/dpdk/rte_swx_hash_func.h

/usr/include/dpdk/rte_swx_ipsec.h

/usr/include/dpdk/rte_swx_pipeline.h

/usr/include/dpdk/rte_swx_port.h

/usr/include/dpdk/rte_swx_port_ethdev.h

/usr/include/dpdk/rte_swx_port_fd.h

/usr/include/dpdk/rte_swx_port_ring.h

/usr/include/dpdk/rte_swx_port_source_sink.h

/usr/include/dpdk/rte_swx_table.h

/usr/include/dpdk/rte_swx_table_em.h

/usr/include/dpdk/rte_swx_table_learner.h

/usr/include/dpdk/rte_swx_table_selector.h

/usr/include/dpdk/rte_swx_table_wm.h

/usr/include/dpdk/rte_table.h

/usr/include/dpdk/rte_table_acl.h

/usr/include/dpdk/rte_table_action.h

/usr/include/dpdk/rte_table_array.h

/usr/include/dpdk/rte_table_hash.h

/usr/include/dpdk/rte_table_hash_cuckoo.h

/usr/include/dpdk/rte_table_hash_func.h

/usr/include/dpdk/rte_table_hash_func_arm64.h

/usr/include/dpdk/rte_table_lpm.h

/usr/include/dpdk/rte_table_lpm_ipv6.h

/usr/include/dpdk/rte_table_stub.h

/usr/include/dpdk/rte_tailq.h

/usr/include/dpdk/rte_tcp.h

/usr/include/dpdk/rte_telemetry.h

/usr/include/dpdk/rte_thash.h

/usr/include/dpdk/rte_thash_gfni.h

/usr/include/dpdk/rte_thash_x86_gfni.h

/usr/include/dpdk/rte_thread.h

/usr/include/dpdk/rte_ticketlock.h

/usr/include/dpdk/rte_time.h

/usr/include/dpdk/rte_timer.h

/usr/include/dpdk/rte_tls.h

/usr/include/dpdk/rte_tm.h

/usr/include/dpdk/rte_tm_driver.h

/usr/include/dpdk/rte_trace.h

/usr/include/dpdk/rte_trace_point.h

/usr/include/dpdk/rte_trace_point_register.h

/usr/include/dpdk/rte_udp.h

/usr/include/dpdk/rte_uuid.h

/usr/include/dpdk/rte_vdpa.h

/usr/include/dpdk/rte_version.h

/usr/include/dpdk/rte_vfio.h

/usr/include/dpdk/rte_vhost.h

/usr/include/dpdk/rte_vhost_async.h

/usr/include/dpdk/rte_vhost_crypto.h

/usr/include/dpdk/rte_vmbus_reg.h

/usr/include/dpdk/rte_vxlan.h

/usr/include/x86_64-linux-gnu

/usr/include/x86_64-linux-gnu/dpdk

/usr/include/x86_64-linux-gnu/dpdk/rte_atomic.h

/usr/include/x86_64-linux-gnu/dpdk/rte_atomic_32.h

/usr/include/x86_64-linux-gnu/dpdk/rte_atomic_64.h

/usr/include/x86_64-linux-gnu/dpdk/rte_build_config.h

/usr/include/x86_64-linux-gnu/dpdk/rte_byteorder.h

/usr/include/x86_64-linux-gnu/dpdk/rte_byteorder_32.h

/usr/include/x86_64-linux-gnu/dpdk/rte_byteorder_64.h

/usr/include/x86_64-linux-gnu/dpdk/rte_config.h

/usr/include/x86_64-linux-gnu/dpdk/rte_cpuflags.h

/usr/include/x86_64-linux-gnu/dpdk/rte_cycles.h

/usr/include/x86_64-linux-gnu/dpdk/rte_io.h

/usr/include/x86_64-linux-gnu/dpdk/rte_memcpy.h

/usr/include/x86_64-linux-gnu/dpdk/rte_pause.h

/usr/include/x86_64-linux-gnu/dpdk/rte_power_intrinsics.h

/usr/include/x86_64-linux-gnu/dpdk/rte_prefetch.h

/usr/include/x86_64-linux-gnu/dpdk/rte_rtm.h

/usr/include/x86_64-linux-gnu/dpdk/rte_rwlock.h

/usr/include/x86_64-linux-gnu/dpdk/rte_spinlock.h

/usr/include/x86_64-linux-gnu/dpdk/rte_vect.h

/usr/lib

/usr/lib/x86_64-linux-gnu

/usr/lib/x86_64-linux-gnu/dpdk

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0

/usr/lib/x86_64-linux-gnu/librte_acl.a

/usr/lib/x86_64-linux-gnu/librte_argparse.a

/usr/lib/x86_64-linux-gnu/librte_baseband_acc.a

/usr/lib/x86_64-linux-gnu/librte_baseband_fpga_5gnr_fec.a

/usr/lib/x86_64-linux-gnu/librte_baseband_fpga_lte_fec.a

/usr/lib/x86_64-linux-gnu/librte_baseband_la12xx.a

/usr/lib/x86_64-linux-gnu/librte_baseband_null.a

/usr/lib/x86_64-linux-gnu/librte_baseband_turbo_sw.a

/usr/lib/x86_64-linux-gnu/librte_bbdev.a

/usr/lib/x86_64-linux-gnu/librte_bitratestats.a

/usr/lib/x86_64-linux-gnu/librte_bpf.a

/usr/lib/x86_64-linux-gnu/librte_bus_auxiliary.a

/usr/lib/x86_64-linux-gnu/librte_bus_cdx.a

/usr/lib/x86_64-linux-gnu/librte_bus_dpaa.a

/usr/lib/x86_64-linux-gnu/librte_bus_fslmc.a

/usr/lib/x86_64-linux-gnu/librte_bus_ifpga.a

/usr/lib/x86_64-linux-gnu/librte_bus_pci.a

/usr/lib/x86_64-linux-gnu/librte_bus_platform.a

/usr/lib/x86_64-linux-gnu/librte_bus_uacce.a

/usr/lib/x86_64-linux-gnu/librte_bus_vdev.a

/usr/lib/x86_64-linux-gnu/librte_bus_vmbus.a

/usr/lib/x86_64-linux-gnu/librte_cfgfile.a

/usr/lib/x86_64-linux-gnu/librte_cmdline.a

/usr/lib/x86_64-linux-gnu/librte_common_cnxk.a

/usr/lib/x86_64-linux-gnu/librte_common_cpt.a

/usr/lib/x86_64-linux-gnu/librte_common_dpaax.a

/usr/lib/x86_64-linux-gnu/librte_common_iavf.a

/usr/lib/x86_64-linux-gnu/librte_common_idpf.a

/usr/lib/x86_64-linux-gnu/librte_common_ionic.a

/usr/lib/x86_64-linux-gnu/librte_common_mlx5.a

/usr/lib/x86_64-linux-gnu/librte_common_nfp.a

/usr/lib/x86_64-linux-gnu/librte_common_nitrox.a

/usr/lib/x86_64-linux-gnu/librte_common_octeontx.a

/usr/lib/x86_64-linux-gnu/librte_common_qat.a

/usr/lib/x86_64-linux-gnu/librte_common_sfc_efx.a

/usr/lib/x86_64-linux-gnu/librte_compress_isal.a

/usr/lib/x86_64-linux-gnu/librte_compress_mlx5.a

/usr/lib/x86_64-linux-gnu/librte_compress_nitrox.a

/usr/lib/x86_64-linux-gnu/librte_compress_octeontx.a

/usr/lib/x86_64-linux-gnu/librte_compress_zlib.a

/usr/lib/x86_64-linux-gnu/librte_compressdev.a

/usr/lib/x86_64-linux-gnu/librte_crypto_bcmfs.a

/usr/lib/x86_64-linux-gnu/librte_crypto_caam_jr.a

/usr/lib/x86_64-linux-gnu/librte_crypto_ccp.a

/usr/lib/x86_64-linux-gnu/librte_crypto_cnxk.a

/usr/lib/x86_64-linux-gnu/librte_crypto_dpaa2_sec.a

/usr/lib/x86_64-linux-gnu/librte_crypto_dpaa_sec.a

/usr/lib/x86_64-linux-gnu/librte_crypto_ionic.a

/usr/lib/x86_64-linux-gnu/librte_crypto_ipsec_mb.a

/usr/lib/x86_64-linux-gnu/librte_crypto_mlx5.a

/usr/lib/x86_64-linux-gnu/librte_crypto_nitrox.a

/usr/lib/x86_64-linux-gnu/librte_crypto_null.a

/usr/lib/x86_64-linux-gnu/librte_crypto_octeontx.a

/usr/lib/x86_64-linux-gnu/librte_crypto_openssl.a

/usr/lib/x86_64-linux-gnu/librte_crypto_scheduler.a

/usr/lib/x86_64-linux-gnu/librte_crypto_virtio.a

/usr/lib/x86_64-linux-gnu/librte_cryptodev.a

/usr/lib/x86_64-linux-gnu/librte_dispatcher.a

/usr/lib/x86_64-linux-gnu/librte_distributor.a

/usr/lib/x86_64-linux-gnu/librte_dma_cnxk.a

/usr/lib/x86_64-linux-gnu/librte_dma_dpaa.a

/usr/lib/x86_64-linux-gnu/librte_dma_dpaa2.a

/usr/lib/x86_64-linux-gnu/librte_dma_hisilicon.a

/usr/lib/x86_64-linux-gnu/librte_dma_idxd.a

/usr/lib/x86_64-linux-gnu/librte_dma_ioat.a

/usr/lib/x86_64-linux-gnu/librte_dma_odm.a

/usr/lib/x86_64-linux-gnu/librte_dma_skeleton.a

/usr/lib/x86_64-linux-gnu/librte_dmadev.a

/usr/lib/x86_64-linux-gnu/librte_eal.a

/usr/lib/x86_64-linux-gnu/librte_efd.a

/usr/lib/x86_64-linux-gnu/librte_ethdev.a

/usr/lib/x86_64-linux-gnu/librte_event_cnxk.a

/usr/lib/x86_64-linux-gnu/librte_event_dlb2.a

/usr/lib/x86_64-linux-gnu/librte_event_dpaa.a

/usr/lib/x86_64-linux-gnu/librte_event_dpaa2.a

/usr/lib/x86_64-linux-gnu/librte_event_dsw.a

/usr/lib/x86_64-linux-gnu/librte_event_octeontx.a

/usr/lib/x86_64-linux-gnu/librte_event_opdl.a

/usr/lib/x86_64-linux-gnu/librte_event_skeleton.a

/usr/lib/x86_64-linux-gnu/librte_event_sw.a

/usr/lib/x86_64-linux-gnu/librte_eventdev.a

/usr/lib/x86_64-linux-gnu/librte_fib.a

/usr/lib/x86_64-linux-gnu/librte_gpudev.a

/usr/lib/x86_64-linux-gnu/librte_graph.a

/usr/lib/x86_64-linux-gnu/librte_gro.a

/usr/lib/x86_64-linux-gnu/librte_gso.a

/usr/lib/x86_64-linux-gnu/librte_hash.a

/usr/lib/x86_64-linux-gnu/librte_ip_frag.a

/usr/lib/x86_64-linux-gnu/librte_ipsec.a

/usr/lib/x86_64-linux-gnu/librte_jobstats.a

/usr/lib/x86_64-linux-gnu/librte_kvargs.a

/usr/lib/x86_64-linux-gnu/librte_latencystats.a

/usr/lib/x86_64-linux-gnu/librte_log.a

/usr/lib/x86_64-linux-gnu/librte_lpm.a

/usr/lib/x86_64-linux-gnu/librte_mbuf.a

/usr/lib/x86_64-linux-gnu/librte_member.a

/usr/lib/x86_64-linux-gnu/librte_mempool.a

/usr/lib/x86_64-linux-gnu/librte_mempool_bucket.a

/usr/lib/x86_64-linux-gnu/librte_mempool_cnxk.a

/usr/lib/x86_64-linux-gnu/librte_mempool_dpaa.a

/usr/lib/x86_64-linux-gnu/librte_mempool_dpaa2.a

/usr/lib/x86_64-linux-gnu/librte_mempool_octeontx.a

/usr/lib/x86_64-linux-gnu/librte_mempool_ring.a

/usr/lib/x86_64-linux-gnu/librte_mempool_stack.a

/usr/lib/x86_64-linux-gnu/librte_meter.a

/usr/lib/x86_64-linux-gnu/librte_metrics.a

/usr/lib/x86_64-linux-gnu/librte_ml_cnxk.a

/usr/lib/x86_64-linux-gnu/librte_mldev.a

/usr/lib/x86_64-linux-gnu/librte_net.a

/usr/lib/x86_64-linux-gnu/librte_net_af_packet.a

/usr/lib/x86_64-linux-gnu/librte_net_af_xdp.a

/usr/lib/x86_64-linux-gnu/librte_net_ark.a

/usr/lib/x86_64-linux-gnu/librte_net_atlantic.a

/usr/lib/x86_64-linux-gnu/librte_net_avp.a

/usr/lib/x86_64-linux-gnu/librte_net_axgbe.a

/usr/lib/x86_64-linux-gnu/librte_net_bnx2x.a

/usr/lib/x86_64-linux-gnu/librte_net_bnxt.a

/usr/lib/x86_64-linux-gnu/librte_net_bond.a

/usr/lib/x86_64-linux-gnu/librte_net_cnxk.a

/usr/lib/x86_64-linux-gnu/librte_net_cpfl.a

/usr/lib/x86_64-linux-gnu/librte_net_cxgbe.a

/usr/lib/x86_64-linux-gnu/librte_net_dpaa.a

/usr/lib/x86_64-linux-gnu/librte_net_dpaa2.a

/usr/lib/x86_64-linux-gnu/librte_net_e1000.a

/usr/lib/x86_64-linux-gnu/librte_net_ena.a

/usr/lib/x86_64-linux-gnu/librte_net_enetc.a

/usr/lib/x86_64-linux-gnu/librte_net_enetfec.a

/usr/lib/x86_64-linux-gnu/librte_net_enic.a

/usr/lib/x86_64-linux-gnu/librte_net_failsafe.a

/usr/lib/x86_64-linux-gnu/librte_net_fm10k.a

/usr/lib/x86_64-linux-gnu/librte_net_gve.a

/usr/lib/x86_64-linux-gnu/librte_net_hinic.a

/usr/lib/x86_64-linux-gnu/librte_net_hns3.a

/usr/lib/x86_64-linux-gnu/librte_net_i40e.a

/usr/lib/x86_64-linux-gnu/librte_net_iavf.a

/usr/lib/x86_64-linux-gnu/librte_net_ice.a

/usr/lib/x86_64-linux-gnu/librte_net_idpf.a

/usr/lib/x86_64-linux-gnu/librte_net_igc.a

/usr/lib/x86_64-linux-gnu/librte_net_ionic.a

/usr/lib/x86_64-linux-gnu/librte_net_ipn3ke.a

/usr/lib/x86_64-linux-gnu/librte_net_ixgbe.a

/usr/lib/x86_64-linux-gnu/librte_net_mana.a

/usr/lib/x86_64-linux-gnu/librte_net_memif.a

/usr/lib/x86_64-linux-gnu/librte_net_mlx4.a

/usr/lib/x86_64-linux-gnu/librte_net_mlx5.a

/usr/lib/x86_64-linux-gnu/librte_net_netvsc.a

/usr/lib/x86_64-linux-gnu/librte_net_nfp.a

/usr/lib/x86_64-linux-gnu/librte_net_ngbe.a

/usr/lib/x86_64-linux-gnu/librte_net_ntnic.a

/usr/lib/x86_64-linux-gnu/librte_net_null.a

/usr/lib/x86_64-linux-gnu/librte_net_octeon_ep.a

/usr/lib/x86_64-linux-gnu/librte_net_octeontx.a

/usr/lib/x86_64-linux-gnu/librte_net_pcap.a

/usr/lib/x86_64-linux-gnu/librte_net_pfe.a

/usr/lib/x86_64-linux-gnu/librte_net_qede.a

/usr/lib/x86_64-linux-gnu/librte_net_r8169.a

/usr/lib/x86_64-linux-gnu/librte_net_ring.a

/usr/lib/x86_64-linux-gnu/librte_net_sfc.a

/usr/lib/x86_64-linux-gnu/librte_net_softnic.a

/usr/lib/x86_64-linux-gnu/librte_net_tap.a

/usr/lib/x86_64-linux-gnu/librte_net_thunderx.a

/usr/lib/x86_64-linux-gnu/librte_net_txgbe.a

/usr/lib/x86_64-linux-gnu/librte_net_vdev_netvsc.a

/usr/lib/x86_64-linux-gnu/librte_net_vhost.a

/usr/lib/x86_64-linux-gnu/librte_net_virtio.a

/usr/lib/x86_64-linux-gnu/librte_net_vmxnet3.a

/usr/lib/x86_64-linux-gnu/librte_net_zxdh.a

/usr/lib/x86_64-linux-gnu/librte_node.a

/usr/lib/x86_64-linux-gnu/librte_pcapng.a

/usr/lib/x86_64-linux-gnu/librte_pci.a

/usr/lib/x86_64-linux-gnu/librte_pdcp.a

/usr/lib/x86_64-linux-gnu/librte_pdump.a

/usr/lib/x86_64-linux-gnu/librte_pipeline.a

/usr/lib/x86_64-linux-gnu/librte_port.a

/usr/lib/x86_64-linux-gnu/librte_power.a

/usr/lib/x86_64-linux-gnu/librte_power_acpi.a

/usr/lib/x86_64-linux-gnu/librte_power_amd_pstate.a

/usr/lib/x86_64-linux-gnu/librte_power_cppc.a

/usr/lib/x86_64-linux-gnu/librte_power_intel_pstate.a

/usr/lib/x86_64-linux-gnu/librte_power_intel_uncore.a

/usr/lib/x86_64-linux-gnu/librte_power_kvm_vm.a

/usr/lib/x86_64-linux-gnu/librte_raw_cnxk_bphy.a

/usr/lib/x86_64-linux-gnu/librte_raw_cnxk_gpio.a

/usr/lib/x86_64-linux-gnu/librte_raw_cnxk_rvu_lf.a

/usr/lib/x86_64-linux-gnu/librte_raw_dpaa2_cmdif.a

/usr/lib/x86_64-linux-gnu/librte_raw_gdtc.a

/usr/lib/x86_64-linux-gnu/librte_raw_ifpga.a

/usr/lib/x86_64-linux-gnu/librte_raw_ntb.a

/usr/lib/x86_64-linux-gnu/librte_raw_skeleton.a

/usr/lib/x86_64-linux-gnu/librte_rawdev.a

/usr/lib/x86_64-linux-gnu/librte_rcu.a

/usr/lib/x86_64-linux-gnu/librte_regex_cn9k.a

/usr/lib/x86_64-linux-gnu/librte_regex_mlx5.a

/usr/lib/x86_64-linux-gnu/librte_regexdev.a

/usr/lib/x86_64-linux-gnu/librte_reorder.a

/usr/lib/x86_64-linux-gnu/librte_rib.a

/usr/lib/x86_64-linux-gnu/librte_ring.a

/usr/lib/x86_64-linux-gnu/librte_sched.a

/usr/lib/x86_64-linux-gnu/librte_security.a

/usr/lib/x86_64-linux-gnu/librte_stack.a

/usr/lib/x86_64-linux-gnu/librte_table.a

/usr/lib/x86_64-linux-gnu/librte_telemetry.a

/usr/lib/x86_64-linux-gnu/librte_timer.a

/usr/lib/x86_64-linux-gnu/librte_vdpa_ifc.a

/usr/lib/x86_64-linux-gnu/librte_vdpa_mlx5.a

/usr/lib/x86_64-linux-gnu/librte_vdpa_nfp.a

/usr/lib/x86_64-linux-gnu/librte_vdpa_sfc.a

/usr/lib/x86_64-linux-gnu/librte_vhost.a

/usr/lib/x86_64-linux-gnu/pkgconfig

/usr/lib/x86_64-linux-gnu/pkgconfig/libdpdk-libs.pc

/usr/lib/x86_64-linux-gnu/pkgconfig/libdpdk.pc

/usr/share

/usr/share/doc

/usr/share/doc/libdpdk-dev

/usr/share/doc/libdpdk-dev/changelog.Debian.gz

/usr/share/doc/libdpdk-dev/copyright

/usr/share/lintian

/usr/share/lintian/overrides

/usr/share/lintian/overrides/libdpdk-dev

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_baseband_acc.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_baseband_fpga_5gnr_fec.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_baseband_fpga_lte_fec.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_baseband_la12xx.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_baseband_null.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_baseband_turbo_sw.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_bus_auxiliary.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_bus_cdx.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_bus_dpaa.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_bus_fslmc.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_bus_ifpga.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_bus_pci.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_bus_platform.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_bus_uacce.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_bus_vdev.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_bus_vmbus.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_cnxk.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_cpt.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_dpaax.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_iavf.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_idpf.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_ionic.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_mlx5.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_nfp.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_nitrox.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_octeontx.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_qat.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_common_sfc_efx.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_compress_isal.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_compress_mlx5.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_compress_nitrox.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_compress_octeontx.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_compress_zlib.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_bcmfs.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_caam_jr.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_ccp.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_cnxk.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_dpaa2_sec.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_dpaa_sec.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_ionic.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_ipsec_mb.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_mlx5.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_nitrox.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_null.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_octeontx.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_openssl.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_scheduler.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_crypto_virtio.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_dma_cnxk.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_dma_dpaa.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_dma_dpaa2.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_dma_hisilicon.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_dma_idxd.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_dma_ioat.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_dma_odm.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_dma_skeleton.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_event_cnxk.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_event_dlb2.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_event_dpaa.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_event_dpaa2.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_event_dsw.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_event_octeontx.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_event_opdl.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_event_skeleton.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_event_sw.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_mempool_bucket.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_mempool_cnxk.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_mempool_dpaa.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_mempool_dpaa2.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_mempool_octeontx.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_mempool_ring.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_mempool_stack.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_ml_cnxk.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_af_packet.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_af_xdp.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_ark.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_atlantic.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_avp.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_axgbe.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_bnx2x.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_bnxt.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_bond.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_cnxk.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_cpfl.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_cxgbe.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_dpaa.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_dpaa2.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_e1000.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_ena.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_enetc.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_enetfec.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_enic.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_failsafe.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_fm10k.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_gve.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_hinic.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_hns3.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_i40e.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_iavf.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_ice.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_idpf.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_igc.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_ionic.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_ipn3ke.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_ixgbe.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_mana.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_memif.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_mlx4.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_mlx5.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_netvsc.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_nfp.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_ngbe.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_ntnic.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_null.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_octeon_ep.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_octeontx.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_pcap.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_pfe.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_qede.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_r8169.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_ring.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_sfc.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_softnic.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_tap.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_thunderx.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_txgbe.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_vdev_netvsc.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_vhost.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_virtio.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_vmxnet3.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_net_zxdh.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_power_acpi.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_power_amd_pstate.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_power_cppc.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_power_intel_pstate.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_power_intel_uncore.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_power_kvm_vm.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_raw_cnxk_bphy.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_raw_cnxk_gpio.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_raw_cnxk_rvu_lf.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_raw_dpaa2_cmdif.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_raw_gdtc.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_raw_ifpga.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_raw_ntb.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_raw_skeleton.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_regex_cn9k.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_regex_mlx5.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_vdpa_ifc.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_vdpa_mlx5.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_vdpa_nfp.so

/usr/lib/x86_64-linux-gnu/dpdk/pmds-25.0/librte_vdpa_sfc.so

/usr/lib/x86_64-linux-gnu/librte_acl.so

/usr/lib/x86_64-linux-gnu/librte_argparse.so

/usr/lib/x86_64-linux-gnu/librte_baseband_acc.so

/usr/lib/x86_64-linux-gnu/librte_baseband_fpga_5gnr_fec.so

/usr/lib/x86_64-linux-gnu/librte_baseband_fpga_lte_fec.so

/usr/lib/x86_64-linux-gnu/librte_baseband_la12xx.so

/usr/lib/x86_64-linux-gnu/librte_baseband_null.so

/usr/lib/x86_64-linux-gnu/librte_baseband_turbo_sw.so

/usr/lib/x86_64-linux-gnu/librte_bbdev.so

/usr/lib/x86_64-linux-gnu/librte_bitratestats.so

/usr/lib/x86_64-linux-gnu/librte_bpf.so

/usr/lib/x86_64-linux-gnu/librte_bus_auxiliary.so

/usr/lib/x86_64-linux-gnu/librte_bus_cdx.so

/usr/lib/x86_64-linux-gnu/librte_bus_dpaa.so

/usr/lib/x86_64-linux-gnu/librte_bus_fslmc.so

/usr/lib/x86_64-linux-gnu/librte_bus_ifpga.so

/usr/lib/x86_64-linux-gnu/librte_bus_pci.so

/usr/lib/x86_64-linux-gnu/librte_bus_platform.so

/usr/lib/x86_64-linux-gnu/librte_bus_uacce.so

/usr/lib/x86_64-linux-gnu/librte_bus_vdev.so

/usr/lib/x86_64-linux-gnu/librte_bus_vmbus.so

/usr/lib/x86_64-linux-gnu/librte_cfgfile.so

/usr/lib/x86_64-linux-gnu/librte_cmdline.so

/usr/lib/x86_64-linux-gnu/librte_common_cnxk.so

/usr/lib/x86_64-linux-gnu/librte_common_cpt.so

/usr/lib/x86_64-linux-gnu/librte_common_dpaax.so

/usr/lib/x86_64-linux-gnu/librte_common_iavf.so

/usr/lib/x86_64-linux-gnu/librte_common_idpf.so

/usr/lib/x86_64-linux-gnu/librte_common_ionic.so

/usr/lib/x86_64-linux-gnu/librte_common_mlx5.so

/usr/lib/x86_64-linux-gnu/librte_common_nfp.so

/usr/lib/x86_64-linux-gnu/librte_common_nitrox.so

/usr/lib/x86_64-linux-gnu/librte_common_octeontx.so

/usr/lib/x86_64-linux-gnu/librte_common_qat.so

/usr/lib/x86_64-linux-gnu/librte_common_sfc_efx.so

/usr/lib/x86_64-linux-gnu/librte_compress_isal.so

/usr/lib/x86_64-linux-gnu/librte_compress_mlx5.so

/usr/lib/x86_64-linux-gnu/librte_compress_nitrox.so

/usr/lib/x86_64-linux-gnu/librte_compress_octeontx.so

/usr/lib/x86_64-linux-gnu/librte_compress_zlib.so

/usr/lib/x86_64-linux-gnu/librte_compressdev.so

/usr/lib/x86_64-linux-gnu/librte_crypto_bcmfs.so

/usr/lib/x86_64-linux-gnu/librte_crypto_caam_jr.so

/usr/lib/x86_64-linux-gnu/librte_crypto_ccp.so

/usr/lib/x86_64-linux-gnu/librte_crypto_cnxk.so

/usr/lib/x86_64-linux-gnu/librte_crypto_dpaa2_sec.so

/usr/lib/x86_64-linux-gnu/librte_crypto_dpaa_sec.so

/usr/lib/x86_64-linux-gnu/librte_crypto_ionic.so

/usr/lib/x86_64-linux-gnu/librte_crypto_ipsec_mb.so

/usr/lib/x86_64-linux-gnu/librte_crypto_mlx5.so

/usr/lib/x86_64-linux-gnu/librte_crypto_nitrox.so

/usr/lib/x86_64-linux-gnu/librte_crypto_null.so

/usr/lib/x86_64-linux-gnu/librte_crypto_octeontx.so

/usr/lib/x86_64-linux-gnu/librte_crypto_openssl.so

/usr/lib/x86_64-linux-gnu/librte_crypto_scheduler.so

/usr/lib/x86_64-linux-gnu/librte_crypto_virtio.so

/usr/lib/x86_64-linux-gnu/librte_cryptodev.so

/usr/lib/x86_64-linux-gnu/librte_dispatcher.so

/usr/lib/x86_64-linux-gnu/librte_distributor.so

/usr/lib/x86_64-linux-gnu/librte_dma_cnxk.so

/usr/lib/x86_64-linux-gnu/librte_dma_dpaa.so

/usr/lib/x86_64-linux-gnu/librte_dma_dpaa2.so

/usr/lib/x86_64-linux-gnu/librte_dma_hisilicon.so

/usr/lib/x86_64-linux-gnu/librte_dma_idxd.so

/usr/lib/x86_64-linux-gnu/librte_dma_ioat.so

/usr/lib/x86_64-linux-gnu/librte_dma_odm.so

/usr/lib/x86_64-linux-gnu/librte_dma_skeleton.so

/usr/lib/x86_64-linux-gnu/librte_dmadev.so

/usr/lib/x86_64-linux-gnu/librte_eal.so

/usr/lib/x86_64-linux-gnu/librte_efd.so

/usr/lib/x86_64-linux-gnu/librte_ethdev.so

/usr/lib/x86_64-linux-gnu/librte_event_cnxk.so

/usr/lib/x86_64-linux-gnu/librte_event_dlb2.so

/usr/lib/x86_64-linux-gnu/librte_event_dpaa.so

/usr/lib/x86_64-linux-gnu/librte_event_dpaa2.so

/usr/lib/x86_64-linux-gnu/librte_event_dsw.so

/usr/lib/x86_64-linux-gnu/librte_event_octeontx.so

/usr/lib/x86_64-linux-gnu/librte_event_opdl.so

/usr/lib/x86_64-linux-gnu/librte_event_skeleton.so

/usr/lib/x86_64-linux-gnu/librte_event_sw.so

/usr/lib/x86_64-linux-gnu/librte_eventdev.so

/usr/lib/x86_64-linux-gnu/librte_fib.so

/usr/lib/x86_64-linux-gnu/librte_gpudev.so

/usr/lib/x86_64-linux-gnu/librte_graph.so

/usr/lib/x86_64-linux-gnu/librte_gro.so

/usr/lib/x86_64-linux-gnu/librte_gso.so

/usr/lib/x86_64-linux-gnu/librte_hash.so

/usr/lib/x86_64-linux-gnu/librte_ip_frag.so

/usr/lib/x86_64-linux-gnu/librte_ipsec.so

/usr/lib/x86_64-linux-gnu/librte_jobstats.so

/usr/lib/x86_64-linux-gnu/librte_kvargs.so

/usr/lib/x86_64-linux-gnu/librte_latencystats.so

/usr/lib/x86_64-linux-gnu/librte_log.so

/usr/lib/x86_64-linux-gnu/librte_lpm.so

/usr/lib/x86_64-linux-gnu/librte_mbuf.so

/usr/lib/x86_64-linux-gnu/librte_member.so

/usr/lib/x86_64-linux-gnu/librte_mempool.so

/usr/lib/x86_64-linux-gnu/librte_mempool_bucket.so

/usr/lib/x86_64-linux-gnu/librte_mempool_cnxk.so

/usr/lib/x86_64-linux-gnu/librte_mempool_dpaa.so

/usr/lib/x86_64-linux-gnu/librte_mempool_dpaa2.so

/usr/lib/x86_64-linux-gnu/librte_mempool_octeontx.so

/usr/lib/x86_64-linux-gnu/librte_mempool_ring.so

/usr/lib/x86_64-linux-gnu/librte_mempool_stack.so

/usr/lib/x86_64-linux-gnu/librte_meter.so

/usr/lib/x86_64-linux-gnu/librte_metrics.so

/usr/lib/x86_64-linux-gnu/librte_ml_cnxk.so

/usr/lib/x86_64-linux-gnu/librte_mldev.so

/usr/lib/x86_64-linux-gnu/librte_net.so

/usr/lib/x86_64-linux-gnu/librte_net_af_packet.so

/usr/lib/x86_64-linux-gnu/librte_net_af_xdp.so

/usr/lib/x86_64-linux-gnu/librte_net_ark.so

/usr/lib/x86_64-linux-gnu/librte_net_atlantic.so

/usr/lib/x86_64-linux-gnu/librte_net_avp.so

/usr/lib/x86_64-linux-gnu/librte_net_axgbe.so

/usr/lib/x86_64-linux-gnu/librte_net_bnx2x.so

/usr/lib/x86_64-linux-gnu/librte_net_bnxt.so

/usr/lib/x86_64-linux-gnu/librte_net_bond.so

/usr/lib/x86_64-linux-gnu/librte_net_cnxk.so

/usr/lib/x86_64-linux-gnu/librte_net_cpfl.so

/usr/lib/x86_64-linux-gnu/librte_net_cxgbe.so

/usr/lib/x86_64-linux-gnu/librte_net_dpaa.so

/usr/lib/x86_64-linux-gnu/librte_net_dpaa2.so

/usr/lib/x86_64-linux-gnu/librte_net_e1000.so

/usr/lib/x86_64-linux-gnu/librte_net_ena.so

/usr/lib/x86_64-linux-gnu/librte_net_enetc.so

/usr/lib/x86_64-linux-gnu/librte_net_enetfec.so

/usr/lib/x86_64-linux-gnu/librte_net_enic.so

/usr/lib/x86_64-linux-gnu/librte_net_failsafe.so

/usr/lib/x86_64-linux-gnu/librte_net_fm10k.so

/usr/lib/x86_64-linux-gnu/librte_net_gve.so

/usr/lib/x86_64-linux-gnu/librte_net_hinic.so

/usr/lib/x86_64-linux-gnu/librte_net_hns3.so

/usr/lib/x86_64-linux-gnu/librte_net_i40e.so

/usr/lib/x86_64-linux-gnu/librte_net_iavf.so

/usr/lib/x86_64-linux-gnu/librte_net_ice.so

/usr/lib/x86_64-linux-gnu/librte_net_idpf.so

/usr/lib/x86_64-linux-gnu/librte_net_igc.so

/usr/lib/x86_64-linux-gnu/librte_net_ionic.so

/usr/lib/x86_64-linux-gnu/librte_net_ipn3ke.so

/usr/lib/x86_64-linux-gnu/librte_net_ixgbe.so

/usr/lib/x86_64-linux-gnu/librte_net_mana.so

/usr/lib/x86_64-linux-gnu/librte_net_memif.so

/usr/lib/x86_64-linux-gnu/librte_net_mlx4.so

/usr/lib/x86_64-linux-gnu/librte_net_mlx5.so

/usr/lib/x86_64-linux-gnu/librte_net_netvsc.so

/usr/lib/x86_64-linux-gnu/librte_net_nfp.so

/usr/lib/x86_64-linux-gnu/librte_net_ngbe.so

/usr/lib/x86_64-linux-gnu/librte_net_ntnic.so

/usr/lib/x86_64-linux-gnu/librte_net_null.so

/usr/lib/x86_64-linux-gnu/librte_net_octeon_ep.so

/usr/lib/x86_64-linux-gnu/librte_net_octeontx.so

/usr/lib/x86_64-linux-gnu/librte_net_pcap.so

/usr/lib/x86_64-linux-gnu/librte_net_pfe.so

/usr/lib/x86_64-linux-gnu/librte_net_qede.so

/usr/lib/x86_64-linux-gnu/librte_net_r8169.so

/usr/lib/x86_64-linux-gnu/librte_net_ring.so

/usr/lib/x86_64-linux-gnu/librte_net_sfc.so

/usr/lib/x86_64-linux-gnu/librte_net_softnic.so

/usr/lib/x86_64-linux-gnu/librte_net_tap.so

/usr/lib/x86_64-linux-gnu/librte_net_thunderx.so

/usr/lib/x86_64-linux-gnu/librte_net_txgbe.so

/usr/lib/x86_64-linux-gnu/librte_net_vdev_netvsc.so

/usr/lib/x86_64-linux-gnu/librte_net_vhost.so

/usr/lib/x86_64-linux-gnu/librte_net_virtio.so

/usr/lib/x86_64-linux-gnu/librte_net_vmxnet3.so

/usr/lib/x86_64-linux-gnu/librte_net_zxdh.so

/usr/lib/x86_64-linux-gnu/librte_node.so

/usr/lib/x86_64-linux-gnu/librte_pcapng.so

/usr/lib/x86_64-linux-gnu/librte_pci.so

/usr/lib/x86_64-linux-gnu/librte_pdcp.so

/usr/lib/x86_64-linux-gnu/librte_pdump.so

/usr/lib/x86_64-linux-gnu/librte_pipeline.so

/usr/lib/x86_64-linux-gnu/librte_port.so

/usr/lib/x86_64-linux-gnu/librte_power.so

/usr/lib/x86_64-linux-gnu/librte_power_acpi.so

/usr/lib/x86_64-linux-gnu/librte_power_amd_pstate.so

/usr/lib/x86_64-linux-gnu/librte_power_cppc.so

/usr/lib/x86_64-linux-gnu/librte_power_intel_pstate.so

/usr/lib/x86_64-linux-gnu/librte_power_intel_uncore.so

/usr/lib/x86_64-linux-gnu/librte_power_kvm_vm.so

/usr/lib/x86_64-linux-gnu/librte_raw_cnxk_bphy.so

/usr/lib/x86_64-linux-gnu/librte_raw_cnxk_gpio.so

/usr/lib/x86_64-linux-gnu/librte_raw_cnxk_rvu_lf.so

/usr/lib/x86_64-linux-gnu/librte_raw_dpaa2_cmdif.so

/usr/lib/x86_64-linux-gnu/librte_raw_gdtc.so

/usr/lib/x86_64-linux-gnu/librte_raw_ifpga.so

/usr/lib/x86_64-linux-gnu/librte_raw_ntb.so

/usr/lib/x86_64-linux-gnu/librte_raw_skeleton.so

/usr/lib/x86_64-linux-gnu/librte_rawdev.so

/usr/lib/x86_64-linux-gnu/librte_rcu.so

/usr/lib/x86_64-linux-gnu/librte_regex_cn9k.so

/usr/lib/x86_64-linux-gnu/librte_regex_mlx5.so

/usr/lib/x86_64-linux-gnu/librte_regexdev.so

/usr/lib/x86_64-linux-gnu/librte_reorder.so

/usr/lib/x86_64-linux-gnu/librte_rib.so

/usr/lib/x86_64-linux-gnu/librte_ring.so

/usr/lib/x86_64-linux-gnu/librte_sched.so

/usr/lib/x86_64-linux-gnu/librte_security.so

/usr/lib/x86_64-linux-gnu/librte_stack.so

/usr/lib/x86_64-linux-gnu/librte_table.so

/usr/lib/x86_64-linux-gnu/librte_telemetry.so

/usr/lib/x86_64-linux-gnu/librte_timer.so

/usr/lib/x86_64-linux-gnu/librte_vdpa_ifc.so

/usr/lib/x86_64-linux-gnu/librte_vdpa_mlx5.so

/usr/lib/x86_64-linux-gnu/librte_vdpa_nfp.so

/usr/lib/x86_64-linux-gnu/librte_vdpa_sfc.so

/usr/lib/x86_64-linux-gnu/librte_vhost.so

通过执行 dpkg -l | grep dpdk 命令,我们可以知道,在当前系统环境中,安装了哪些DPDK相关的工具包,以及它们的相关用途。

(未完待续)