DPDK测试testpmd

发布时间 2024-01-05 16:23:01作者: 有梦-

前言

  参考https://www.cnblogs.com/hjxiamen/p/17758112.html在Ubuntu20.04上安装DPDK20.11.9。

一、testpmd是什么?

  在 DPDK(Data Plane Development Kit)中,testpmd 是一个用于测试和评估 DPDK 网络功能的命令行实用程序。testpmd 提供了一个交互式的环境,使用户能够配置、启动和监控 DPDK 应用程序,并执行一系列网络测试和性能评估。

  testpmd主要用途包括:

    1. 交互式测试环境: 提供一个命令行界面,允许用户通过命令进行交互式的配置和控制 DPDK 应用程序。这使得用户能够灵活地配置网络接口、设置流表、启动转发模式等。

    2. 性能测试工具: testpmd 提供了一系列性能测试和评估功能,包括报告吞吐量、延迟和包转发率等指标。用户可以使用这些功能来评估 DPDK 应用程序的性能。

    3. 虚拟化测试: testpmd 支持虚拟化环境中的测试,包括对 VFIO(Virtual Function I/O)和 Virtio 设备的支持。这使得用户能够在虚拟化环境中测试 DPDK 的性能和功能。

    4. 流表配置: testpmd 允许用户配置流表,定义不同流的匹配规则,并测试流的转发和处理性能。

    5. DPDK 应用程序功能测试: 作为 DPDK 官方发布的一部分,testpmd 还用于测试 DPDK 库和 API 的功能。用户可以使用 testpmd 来验证 DPDK 库的正确性和功能性。

二、如何使用testpmd?

  1)绑定NIC到VFIO

    1. 将 VFIO(Virtual Function I/O)绑定到网络接口卡(NIC)是为了支持设备的直通(Device Passthrough)。直通是虚拟化环境中一种将物理设备直接分配给虚拟机使用的技术。VFIO 是 Linux 内核提供的一个框架,允许用户空间应用程序(如虚拟机管理程序)以高性能和低延迟的方式直接管理设备。

    2. 步骤如下:

      2.1 前置条件:

ip a    // 查看网络接口的详细信息

    Linux 系统上用于显示和管理网络接口(network interfaces)的命令。这个命令提供了有关系统中所有网络接口的详细信息,包括接口的状态、IP 地址、MAC 地址等。-- 查看需要绑定的NIC状态是否为DOWN( sudo ifconfig xxx down ,该命令用于DOWN掉某个接口,其中xxx为NIC名称。)

sudo modprobe vfio-pci    // 加载 VFIO PCI 模块,准备系统进行设备直通。
cat /sys/module/vfio/parameters/enable_unsafe_noiommu_mode    // 查看 Linux 内核中 VFIO 模块的参数 enable_unsafe_noiommu_mode 的值

  如果返回 Y,表示该参数启用,说明 VFIO 模块允许在没有 IOMMU 支持的情况下运行(No-IOMMU 模式)。这可能是因为系统配置中没有启用 IOMMU,但用户选择继续使用 VFIO 模块。

  如果返回 N,表示该参数未启用,说明 VFIO 模块在不支持 IOMMU 的情况下不允许运行。

  若是返回 N,则使能该参数

sudo bash -c 'echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode'    // 无root权限下使用该命令

      2.2 绑定接口

      

       首先查看接口绑定情况,可以发现接口的驱动程序绑定的是ixgbe,因此我们需要先解绑。

      

       在解除绑定之后,我们将其与vfio-pci驱动程序绑定。

      

       最后发现成功绑定。

  2)配置Huge Pages

      同样参考之前的博客,修改大页的数量,大小等(https://www.cnblogs.com/hjxiamen/p/17758112.html

  3)运行testpmd

    3.1 遇到的问题

    

     第一个问题:使用sudo执行命令,以超级用户的权限执行命令。

    

    第二个问题:增加大页的数量。

    其他问题暂时没碰到。

    3.2 测试

    

     该界面表示正常启用testpmd。后续关于命令行参数,如何使用的问题可参考Testpmd Application User Guide — Data Plane Development Kit 23.11.0 documentation (dpdk.org)

三、参考博客

  DPDK文档(Testpmd Application User Guide — Data Plane Development Kit 23.11.0 documentation (dpdk.org)