首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DPDK testpmd中设置从一个NIC到另一个NIC的循环转发模式?

如何在DPDK testpmd中设置从一个NIC到另一个NIC的循环转发模式?
EN

Stack Overflow用户
提问于 2021-08-24 08:46:58
回答 2查看 531关注 0票数 1

Testpmd正在超VVM中运行,并且有两个连接到"内部虚拟开关“的NIC。我只想测试netvsc PMD的可用性。

代码语言:javascript
复制
./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数据包,但这不是我想要的。那么我能做些什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

代码语言:javascript
复制
./app/dpdk-testpmd -l 2,3 -- --total-num-mbufs=2048 -i --portmask=0x3 --tx-first

请注意,这种转发方式是自动启动的,但是您没有获得testpmd>提示符来输入命令。如果您希望开始自动转发,同时获得一个交互式命令提示符,请尝试以以下方式运行testpmd

代码语言:javascript
复制
./app/dpdk-testpmd -l 2,3 -- --total-num-mbufs=2048 -i --portmask=0x3 --tx-first --auto-start -i
票数 2
EN

Stack Overflow用户

发布于 2021-08-24 11:17:57

DPDK应用程序testpmd不是自动生成和发送数据包的数据包生成器。但是有一个选项--tx-first,它允许从每个接口发送一个突发(默认为32)虚拟数据包。

由于您的环境是物理连接的,这应该可以工作。但是我强烈建议首先与Linux驱动程序检查ping或arp是否能够首先到达交叉连接的接口。

注意:

  1. 我强烈建议阅读testpmd文档以获得更多详细信息
  2. 若要启用混杂模式,请使用选项set promisc all on
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68904420

复制
相关文章

相似问题

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