【问题标题】:Packet capturing in l3fwdl3fwd 中的数据包捕获
【发布时间】:2020-03-23 14:46:57
【问题描述】:

我正在执行 dpdk 实验。在我的设置中,我有两台物理机,Host1 和 Host2,每台都有 2 个 10Gbps NIC。 Host1 的一个接口与 dpdk 绑定并使用 pktgen 生成流量。 Host2 的两个接口都与 dpdk 绑定,并且 l3fwd 作为数据包转发应用程序运行。 Host2 的第二个 NIC 用于捕获数据包。我想通过查看 Host2 每个接口所花费的时间来分解数据包所经历的延迟。

有没有什么方法可以捕获dpdk接口的数据包,使用l3fwd作为数据包转发应用程序?

【问题讨论】:

    标签: linux tcpdump


    【解决方案1】:

    对于 DPDK 接口,您可以使用 DPDK-PDUMP 捕获从 DPDK 绑定网卡获取数据包。参考https://doc.dpdk.org/guides-16.07/sample_app_ug/pdump.html

    应用程序 l3fwd 将在 rte_eal_init 之后使用 rte_pdump_init API 调用进行修改。这将启用多进程通信通道,当 dpdk-pdump(辅助)应用程序运行时 rte_ring 并启用数据包复制以复制内容。

    注意:请查看DPDK PDUmp App 的使用情况。例如,要从端口 0 和队列 1 复制数据包,请使用 sudo ./[path to applciation]/dpdk-pdump -- --pdump 'port=0,queue=1,rx-dev=/tmp/port0_queue1.pcap'

    【讨论】:

      【解决方案2】:

      pdump 是在绑定到 dpdk 的任何端口捕获数据包的好工具。按如下方式启动 pdump 工具:

      sudo ./build/app/dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/capture.pcap'
      

      收到数据包后,在home/temp目录下运行以下命令查看

      tcpdump -nr ./capture.pcap
      

      【讨论】:

      • l3fwd 应用程序默认不调用rte_pdump_init。因此运行dpdk-pdump 不会捕获。我已经回答了同样的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多