gpt4 book ai didi

dpdk - 如何使用DPDK发送和接收数据

转载 作者:行者123 更新时间:2023-12-01 13:36:05 29 4
gpt4 key购买 nike

我有一个四端口 Intel 1G 网卡。我正在使用 DPDK 在一个物理端口上发送数据并在另一个物理端口上接收数据。

我在 DPDK 代码中看到了一些示例,但无法使其工作。如果有人知道如何做到这一点,请向我发送简单的说明,以便我可以遵循和理解。我为大页面正确设置了我的电脑,加载驱动程序,并分配网络端口以使用 dpdk 驱动程序等......我可以从 DPDK 运行 helloworld,所以系统设置对我来说看起来没问题。

提前致谢。
临时5556

最佳答案

构建DPDK后:

  • cd 到 DPDK 目录。
  • 运行 sudo build/app/testpmd -- --interactive

  • 你应该看到这样的输出:
    $ sudo build/app/testpmd -- --interactive
    EAL: Detected 8 lcore(s)
    EAL: No free hugepages reported in hugepages-1048576kB
    EAL: Multi-process socket /var/run/.rte_unix
    EAL: Probing VFIO support...
    EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !
    EAL: PCI device 0002:00:02.0 on NUMA socket 0
    EAL: probe driver: 15b3:1004 net_mlx4
    PMD: net_mlx4: PCI information matches, using device "mlx4_0" (VF: true)
    PMD: net_mlx4: 1 port(s) detected
    PMD: net_mlx4: port 1 MAC address is 00:0d:3a:f4:6e:17
    Interactive-mode selected
    testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=203456, size=2176, socket=0
    testpmd: preferred mempool ops selected: ring_mp_mc

    Warning! port-topology=paired and odd forward ports number, the last port
    will pair with itself.

    Configuring Port 0 (socket 0)
    Port 0: 00:0D:3A:F4:6E:17
    Checking link statuses...
    Done
    testpmd>

    不要担心“没有免费的大页面”消息。这意味着它找不到任何 1024 MB 的大页面,但既然它继续正常运行,它一定找到了一些 2 MB 的大页面。如果它说“EAL:使用 2 MB 大页面”就好了。

    在提示符下输入 start tx_first ,然后是 quit 。你应该看到类似的东西:
    testpmd> start tx_first
    io packet forwarding - ports=1 - cores=1 - streams=1 - NUMA support enabled, MP over anonymous pages disabled
    Logical Core 1 (socket 0) forwards packets on 1 streams:
    RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00

    io packet forwarding packets/burst=32
    nb forwarding cores=1 - nb forwarding ports=1
    port 0:
    CRC stripping enabled
    RX queues=1 - RX desc=1024 - RX free threshold=0
    RX threshold registers: pthresh=0 hthresh=0 wthresh=0
    TX queues=1 - TX desc=1024 - TX free threshold=0
    TX threshold registers: pthresh=0 hthresh=0 wthresh=0
    TX RS bit threshold=0 - TXQ offloads=0x0
    testpmd> quit
    Telling cores to stop...
    Waiting for lcores to finish...

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

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

    在我的系统中只有一个DPDK端口,所以我发送了32个数据包但没有收到任何数据包。如果我有一个多端口卡,在端口之间直接使用电缆,那么我会看到 RX 计数也会增加。

    关于dpdk - 如何使用DPDK发送和接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43246174/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com