From: Ferruh Yigit <ferruh.yigit@amd.com>
To: fengchengwen <fengchengwen@huawei.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
Ori Kam <orika@nvidia.com>, Thomas Monjalon <thomas@monjalon.net>
Subject: Re: Question about add ethdev loopback set API
Date: Wed, 14 Dec 2022 10:38:08 +0000 [thread overview]
Message-ID: <aeac87d4-c3e5-81c3-dbdf-d7cb63488f1c@amd.com> (raw)
In-Reply-To: <2d70ef33-5cc8-f56e-91c1-a44fd5450ba2@huawei.com>
On 12/14/2022 7:25 AM, fengchengwen wrote:
> On 2022/12/13 19:25, Ferruh Yigit wrote:
>> On 12/13/2022 10:04 AM, fengchengwen wrote:
>>> Hi Ferruh,
>>>
>>> During the test, we need to delineate where go wrong when encountered
>>> e.g. CRC error. In this scenario, loopback is useful.
>>>
>>> I think we can add a loopback set API which could set inner or outer loop,
>>> and user can use telemetry to set the loopback in the above scenario.
>>>
>>> I'd like to hear your opinion about add a loopback set API.
>>>
>>
>> Hi Chengwen,
>>
>> Is the intention to test ethdev layer or driver?
>>
>> It is possible to use ring vdev to create a loopback and to test ethdev
>> layer.
>>
>> For driver, it can be possible to create physical loopback connection,
>> or even can implement loopback Rx/Tx burst functions in driver.
>> Using another host to send/receive packets to DUT (device under test) is
>> another approach.
>>
>>
>> What kind of loopback implementation do you have in your mind?
>
> Mainly MAC layer and lower physical layer:
>
> -------- --------------- ------------ ---------- --------------------
> | | | - rx | | - rx - | | - rx - | | |
> | Host | - | MAC | - | SerDes | - | PHY | ==== | Packet Generator |
> | | | - tx | | - tx - | | - tx - | | |
> -------- --------------- ------------ ---------- --------------------
>
> The support loopback in hns3 platform:
> Inner loopback subtypes: which host send pkts and recv and then verify:
> Serdes tx to rx
> PHY tx to rx
>
> Outer loopback subtypes: which Packet-Generator send pkts and recv and then verify:
> MAC tx to rx
>
> I think we could support the above loopback types, and maybe other PMD platform support
> more loopback types.
>
There is a 'lpbk_mode' field of "struct rte_eth_conf", to configure
loopback in 'rte_eth_dev_configure()',
but it isn't fine grained to define the possible modes you mentioned
above. Currently '0' means loopback disabled and non zero means it is
enabled, details left to drivers.
'lpbk_mode' is 32bit, we have space to define detailed loopback modes.
Having loopback configuration in 'rte_eth_dev_configure()' requires port
to stop and reconfigure to enable/disable loopback.
If it is possible to change loopback behavior without full
reconfiguration cycle, we can add two new APIs to enable/disable
loopback. But this has the downside of two different APIs change same
config, and we had problems related this in the past.
Also there is a hairpin feature in ethdev, that connects Rx queue back
to Tx queue, but not sure if that justifies your "MAC tx ro rx" testcase.
next prev parent reply other threads:[~2022-12-14 10:38 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-13 10:04 fengchengwen
2022-12-13 11:25 ` Ferruh Yigit
2022-12-14 7:25 ` fengchengwen
2022-12-14 10:38 ` Ferruh Yigit [this message]
2022-12-15 12:46 ` fengchengwen
2022-12-15 17:50 ` Ferruh Yigit
2022-12-16 1:07 ` fengchengwen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aeac87d4-c3e5-81c3-dbdf-d7cb63488f1c@amd.com \
--to=ferruh.yigit@amd.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=fengchengwen@huawei.com \
--cc=orika@nvidia.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).