首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DPDK testpmd中使用一个NIC来设置一个循环转发到TX数据包并将它们本身RX?

如何在DPDK testpmd中使用一个NIC来设置一个循环转发到TX数据包并将它们本身RX?
EN

Stack Overflow用户
提问于 2021-06-13 10:28:29
回答 1查看 524关注 0票数 2

我想要实现这样一个场景:

  1. -- NIC's RXQ 0
  2. NIC中接收的数据包得到它,并以某种方式将其放入TXQ 0
  3. (NIC的努力?),该数据包将被发送到NIC的RXQ 0,并返回到步骤1.

我认为前进模式tx_first是我所需要的。

NIC: PMD: MLX5版本: 5.0-1.0.0.0

DPDK版本: 20.11.1

全命令行

代码语言:javascript
复制
./testpmd.sh 0 11-12 1 1 testpmd0 3b:00.0
代码语言:javascript
复制
#testpmd.sh
#if [ $# -ne 6 ]
#then
#       echo $0" <socket_id> <core_list> <core_num> <queue_num> <prefix>"
#       exit 255
#fi
        ./build/app/dpdk-testpmd -l $2 -n 4 \
        --socket-mem=2048,2048 \
        -a $6,txq_inline=200,txq_mpw
        --file-prefix=$5 \
        -- \
        -i \
        --mbcache=512 \
        --txonly-multi-flow \
        --rxd=2048 --txd=2048 \
        --rxq=$4 --txq=$4 \
        --nb-cores=$3 \
        --port-topology=loop \
        --numa --socket-num=$1 --port-numa-config=0,$1 --ring-numa-config=0,3,$1

但是在我设置命令行arg --port-topology=loop并尝试了start tx_first之后

溪流是:

代码语言:javascript
复制
testpmd> start tx_first
io packet forwarding - ports=1 - cores=1 - streams=1 - NUMA support enabled, MP allocation mode: native
Logical Core 12 (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

我拿到了数据:

代码语言:javascript
复制
testpmd> show fwd stats all

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

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 6              RX-dropped: 0             RX-total: 6
  TX-packets: 38             TX-dropped: 0             TX-total: 38
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
代码语言:javascript
复制
#32 same packets like this
restore info: - no tunnel info - no outer header - no miss group
  src=04:3F:72:CB:21:46 - dst=02:00:00:00:00:00 - type=0x0800 - length=64 - nb_segs=1 - sw ptype: L2_ETHER L3_IPV4 L4_UDP  - l2_len=14 - l3_len=20 - l4_len=8 - Send queue=0x0
  ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN

# discrete but same packets received
testpmd> port 0/queue 0: received 1 packets
restore info: - no tunnel info - no outer header - no miss group
  src=F4:74:88:8C:11:86 - dst=01:80:C2:00:00:00 - type=0x0069 - length=119 - nb_segs=1 - hw ptype: L2_ETHER  - sw ptype: L2_ETHER  - l2_len=14 - Receive queue=0x0
  ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN
port 0/queue 0: sent 1 packets
restore info: - no tunnel info - no outer header - no miss group
  src=F4:74:88:8C:11:86 - dst=01:80:C2:00:00:00 - type=0x0069 - length=119 - nb_segs=1 - hw ptype: L2_ETHER  - sw ptype: L2_ETHER  - l2_len=14 - Send queue=0x0
  ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN
port 0/queue 0: received 1 packets
restore info: - no tunnel info - no outer header - no miss group
  src=F4:74:88:8C:11:86 - dst=01:80:C2:00:00:00 - type=0x0069 - length=119 - nb_segs=1 - hw ptype: L2_ETHER  - sw ptype: L2_ETHER  - l2_len=14 - Receive queue=0x0
  ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN

NIC没有对它发送的Tx数据包进行RX,为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-14 09:52:46

为了将DPDK应用程序dpdk-tespmd设置为环回模式,需要2 DPDK ports--port-topology=loop

但是,如果只有一个物理NIC端口,则有几个选项可以在回送模式下设置DPDK接口。

fabric loopback mode

  • if中配置了嵌入式交换机的TX和RX以及带有嵌入式交换机的cross-connected

  • NIC连接到外部交换机,从而实现了交换机上的MAC|PHY loopback .

在上述3种模式中的任何一种模式下配置好后,运行以下命令

  1. set -peer 0所需DST MAC地址
  2. set fwd macswp
  3. start tx_first

要在没有物理NIC测试the的情况下验证相同的./build/app/testpmd -l 2-3 --vdev=net_tap0,iface=testDpdk0 -- -i --rxq=1 --txq=1。设置RX数据包set verbose 2的详细信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67957228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档