Testpmd正在超VVM中运行,并且有两个连接到"内部虚拟开关“的NIC。我只想测试netvsc PMD的可用性。
./app/dpdk-testpmd -l 2,3 -- --total-num-mbufs=2048 -i --portmask=0x3 --port-topology=loop我使用了“开始”或“启动tx_first",然后使用”显示端口统计所有“来检查。在两个NIC上没有Tx数据包或Rx数据包.
然后我使用了"set fwd Tx on“,我可以在两个NIC上找到Tx数据包,但这不是我想要的。那么我能做些什么呢?

发布于 2021-08-24 12:26:02
通常,人们希望在与testpmd利用的一对端口相对的一侧使用数据包生成器。这样的生成器开始发送数据包,而testpmd只是在一个端口上接收它们并从另一个端口将它们发送回来。这就是port-topology类型paired的意思,在testpmd中默认使用这个port-topology。另一个参数forward-mode在默认情况下被设置为io,这意味着testpmd做而不是在将接收的数据包发送回之前更改它们(例如,不交换MAC地址等等)。
但是,在您的示例中没有使用数据包生成器,这意味着testpmd必须自己生成和发送一批数据包,以便启动转发。这是通过指定选项--tx-first实现的。
但是,除了省略选项--tx-first之外,您还可以使用选项--port-topology=loop,这可能是您的设置背后的原因是非功能性的。变体loop意味着由给定端口(例如,Port 0)接收的数据包必须从同一个端口(即从Port 0)发送回来。这里您可能想要的是--port-topology=paired,正如我前面说过的,它无论如何都是默认使用的。
因此,短时间内,您可能应该尝试按以下方式运行testpmd:
./app/dpdk-testpmd -l 2,3 -- --total-num-mbufs=2048 -i --portmask=0x3 --tx-first请注意,这种转发方式是自动启动的,但是您没有获得testpmd>提示符来输入命令。如果您希望开始自动转发,同时获得一个交互式命令提示符,请尝试以以下方式运行testpmd:
./app/dpdk-testpmd -l 2,3 -- --total-num-mbufs=2048 -i --portmask=0x3 --tx-first --auto-start -i发布于 2021-08-24 11:17:57
DPDK应用程序testpmd不是自动生成和发送数据包的数据包生成器。但是有一个选项--tx-first,它允许从每个接口发送一个突发(默认为32)虚拟数据包。
由于您的环境是物理连接的,这应该可以工作。但是我强烈建议首先与Linux驱动程序检查ping或arp是否能够首先到达交叉连接的接口。
注意:
set promisc all onhttps://stackoverflow.com/questions/68904420
复制相似问题