【问题标题】:Can multi-queue be used with DPDK vdev rx_pcap多队列可以与 DPDK vdev rx_pcap 一起使用吗
【发布时间】:2020-11-06 20:19:53
【问题描述】:

我无法从documentation 看出是否可以使用 vdev rx_pcap 来模拟带有 pcap 文件的 RSS,使用多个内核。

读完后,这似乎是一个有趣的提议:

为了便于使用,DPDK EAL 也进行了扩展,以允许 使用这些驱动程序中的一个或多个的伪以太网设备 在 EAL 初始化期间在应用程序启动时创建。

为此,必须将 –vdev= 参数传递给 EAL。这需要 选择允许分配基于环和 pcap 的以太网 应用程序透明地使用。这可以用于,例如, 用于在没有以太网端口的虚拟机上进行测试。

可以使用虚拟设备 –vdev 创建基于 Pcap 的设备 选项。

这就是我如何读取一个 PCAP 文件并写入另一个文件,使用他们的示例和 dpdk-testpmd 应用程序:

sudo build/app/dpdk-testpmd -l 0-3 --vdev 'net_pcap0,rx_pcap=file_rx.pcap,tx_pcap=file_tx.pcap' -- --port-topology=chained --no-flush-rx

这很好,我得到了 file_tx.pcap 生成。但是如果我尝试将 RX 队列的数量设置为 4,它会告诉我不能:

$ sudo build/app/dpdk-testpmd -l 0-3 --vdev 'net_pcap0,rx_pcap=file_rx.pcap,tx_pcap=file_tx.pcap' -- --port-topology=chained --no-flush-rx --rxq=4
EAL: Detected 4 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No available hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL:   Invalid NUMA socket, default to 0
EAL:   Invalid NUMA socket, default to 0
Fail: input rxq (4) can't be greater than max_rx_queues (1) of port 0
EAL: Error - exiting with code: 1
  Cause: rxq 4 invalid - must be >= 0 && <= 1

是否可以为 vdev rx_pcap 更改 max_rx_queues,还是有更好的选择?

【问题讨论】:

    标签: dpdk


    【解决方案1】:

    端口上可用的队列数量取决于 NIC 配置和操作系统的驱动程序。因此,期望 PCAP PMD 模拟 RXPCAP 文件作为 RX 设备将有多个 RX 队列是不正确的。您需要开始使用具有多个队列的操作系统的实际界面。

    解释如下:

    根据 DPDK NIC Feature,PCAP PMD 上不支持 RSS。所以在多队列上基于3个IP元组或5个IP+TCP|UDP|SCTP​​元组接收数据包的选项是原生不存在的,需要在SW中实现

    根据PCAP PMD,如果需要从我们使用选项rx_iface 而不是rx_pcap 的物理端口读取。与在物理接口上发送类似,必须使用选项tx_iface 而不是tx_pcap

    如果您的要求是从特定 DPDK 端口捕获 RX 或 TX 数据包,您应该查看使用 rte_pdump API 的 DPDK PDUMP 应用程序。 PDUMP Documentation 也清楚地解释了如何从特定队列中抓取数据包。

    如果需要使用 PCAP PMD 读取数据包,请在主要应用程序中使用 rx_iface。然后要将来自所需端口队列的数据包写入 PCAP 文件,请使用 dpdk-pdump 作为辅助应用程序,并带有选项 --pdump 'port=[your desired DPDK port],queue=[your desired DPDK port queue],rx-dev=/tmp/rx.pcap

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-08
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多