DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Speed Capabilities Feature
@ 2020-06-24 19:32 Daniel Kirichok
  2020-06-24 19:55 ` Thomas Monjalon
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Kirichok @ 2020-06-24 19:32 UTC (permalink / raw)
  To: dts, dev
  Cc: Lincoln Lavoie, david.marchand, thomas, ferruh.yigit, arybchenko,
	mb, i.dyukov, rasland

Hi all,

The Speed Capabilities test will first check the speed of each interface
that the device lists through ethtool. Then it compares each interface
speed to a user-defined set of expected speeds set in a newly created
config file, `speed_capabilities.cfg`. The test fails if an interface is
found that isn’t accounted for in the cfg file, the detected speed is less
than 1 Gb/s, or an interface detects a different speed than what is
expected from the cfg file. Otherwise, it passes.

Let me know if there are any comments or questions.

Thanks,
Dan

-- 

Dan Kirichok

UNH InterOperability Laboratory

21 Madbury Rd, Suite 100, Durham, NH 03824

dkirichok@iol.unh.edu

www.iol.unh.edu

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Speed Capabilities Feature
  2020-06-24 19:32 [dpdk-dev] Speed Capabilities Feature Daniel Kirichok
@ 2020-06-24 19:55 ` Thomas Monjalon
  2020-06-24 20:01   ` Lincoln Lavoie
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Monjalon @ 2020-06-24 19:55 UTC (permalink / raw)
  To: Daniel Kirichok
  Cc: dts, dev, Lincoln Lavoie, david.marchand, ferruh.yigit,
	arybchenko, mb, i.dyukov, rasland, j.hendergart

Hi,

A bit of context: Daniel is going to implement a test in DTS
for ethdev speed capability:
http://doc.dpdk.org/guides/nics/features.html#speed-capabilities

24/06/2020 21:32, Daniel Kirichok:
> The Speed Capabilities test will first check the speed of each interface
> that the device lists through ethtool.

I assume you mean doing a query in Linux before starting DPDK.

> Then it compares each interface
> speed to a user-defined set of expected speeds set in a newly created
> config file, `speed_capabilities.cfg`.

Why do you need such config file?

> The test fails if an interface is
> found that isn’t accounted for in the cfg file, the detected speed is less
> than 1 Gb/s, or an interface detects a different speed than what is
> expected from the cfg file. Otherwise, it passes.

So you don't test DPDK?

Would be interesting to compare the actual link speed
from rte_eth_link_get() with the advertised capability.

What else do we want to test regarding link speed? autonegotiation?



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Speed Capabilities Feature
  2020-06-24 19:55 ` Thomas Monjalon
@ 2020-06-24 20:01   ` Lincoln Lavoie
  2020-06-24 20:09     ` Thomas Monjalon
  0 siblings, 1 reply; 6+ messages in thread
From: Lincoln Lavoie @ 2020-06-24 20:01 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Daniel Kirichok, dts, dev, David Marchand, Ferruh Yigit,
	arybchenko, mb, i.dyukov, rasland, James Hendergart

Inline.

On Wed, Jun 24, 2020 at 3:55 PM Thomas Monjalon <thomas@monjalon.net> wrote:

> Hi,
>
> A bit of context: Daniel is going to implement a test in DTS
> for ethdev speed capability:
> http://doc.dpdk.org/guides/nics/features.html#speed-capabilities
>
> 24/06/2020 21:32, Daniel Kirichok:
> > The Speed Capabilities test will first check the speed of each interface
> > that the device lists through ethtool.
>
> I assume you mean doing a query in Linux before starting DPDK.
>

LYL > I hadn't thought about that approach, we were thinking we would
compare what the tested reports as the physical reality of the setup with
what the DPDK driver reports.
If you think we can trust the native kernel drivers as the source of truth,
we could read those first and compare DPDK output.

>
> > Then it compares each interface
> > speed to a user-defined set of expected speeds set in a newly created
> > config file, `speed_capabilities.cfg`.
>
> Why do you need such config file?
>
> > The test fails if an interface is
> > found that isn’t accounted for in the cfg file, the detected speed is
> less
> > than 1 Gb/s, or an interface detects a different speed than what is
> > expected from the cfg file. Otherwise, it passes.
>
> So you don't test DPDK?
>
> Would be interesting to compare the actual link speed
> from rte_eth_link_get() with the advertised capability.
>
> What else do we want to test regarding link speed? autonegotiation?
>
LYL > This would become highly dependent on the NIC, and it's
capabilities.  I have not had good luck with auto-neg on high speed links
like 10G SPF and higher. Similarly, high speed links would likely
require a physical change (assuming the NIC supported multiple speeds), to
change either the module or the DAC.  We're trying to avoid anything that
would require physical changes that can't be forced through
the tester (i.e. disable the port connected to the DUT for a link down,
etc.)




-- 
*Lincoln Lavoie*
Senior Engineer, Broadband Technologies
21 Madbury Rd., Ste. 100, Durham, NH 03824
lylavoie@iol.unh.edu
https://www.iol.unh.edu
+1-603-674-2755 (m)
<https://www.iol.unh.edu/>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Speed Capabilities Feature
  2020-06-24 20:01   ` Lincoln Lavoie
@ 2020-06-24 20:09     ` Thomas Monjalon
  2020-06-25  7:52       ` Morten Brørup
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Monjalon @ 2020-06-24 20:09 UTC (permalink / raw)
  To: Lincoln Lavoie
  Cc: Daniel Kirichok, dts, dev, David Marchand, Ferruh Yigit,
	arybchenko, mb, i.dyukov, rasland, James Hendergart

24/06/2020 22:01, Lincoln Lavoie:
> Inline.
> 
> On Wed, Jun 24, 2020 at 3:55 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> 
> > Hi,
> >
> > A bit of context: Daniel is going to implement a test in DTS
> > for ethdev speed capability:
> > http://doc.dpdk.org/guides/nics/features.html#speed-capabilities
> >
> > 24/06/2020 21:32, Daniel Kirichok:
> > > The Speed Capabilities test will first check the speed of each interface
> > > that the device lists through ethtool.
> >
> > I assume you mean doing a query in Linux before starting DPDK.
> 
> LYL > I hadn't thought about that approach, we were thinking we would
> compare what the tested reports as the physical reality of the setup with
> what the DPDK driver reports.
> If you think we can trust the native kernel drivers as the source of truth,
> we could read those first and compare DPDK output.

Not sure we can trust kernel infos, especially for new HW.
I was just trying to understand why ethtool came in the picture.

> > > Then it compares each interface
> > > speed to a user-defined set of expected speeds set in a newly created
> > > config file, `speed_capabilities.cfg`.
> >
> > Why do you need such config file?
> >
> > > The test fails if an interface is
> > > found that isn’t accounted for in the cfg file, the detected speed is
> > less
> > > than 1 Gb/s, or an interface detects a different speed than what is
> > > expected from the cfg file. Otherwise, it passes.
> >
> > So you don't test DPDK?
> >
> > Would be interesting to compare the actual link speed
> > from rte_eth_link_get() with the advertised capability.
> >
> > What else do we want to test regarding link speed? autonegotiation?
> >
> LYL > This would become highly dependent on the NIC, and it's
> capabilities.  I have not had good luck with auto-neg on high speed links
> like 10G SPF and higher. Similarly, high speed links would likely
> require a physical change (assuming the NIC supported multiple speeds), to
> change either the module or the DAC.  We're trying to avoid anything that
> would require physical changes that can't be forced through
> the tester (i.e. disable the port connected to the DUT for a link down,
> etc.)

At least, we can test that autonegotiation is establishing
a speed advertised in capabilities, right?



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Speed Capabilities Feature
  2020-06-24 20:09     ` Thomas Monjalon
@ 2020-06-25  7:52       ` Morten Brørup
  2020-06-25 20:04         ` Daniel Kirichok
  0 siblings, 1 reply; 6+ messages in thread
From: Morten Brørup @ 2020-06-25  7:52 UTC (permalink / raw)
  To: Thomas Monjalon, Lincoln Lavoie
  Cc: Daniel Kirichok, dts, dev, David Marchand, Ferruh Yigit,
	arybchenko, i.dyukov, rasland, James Hendergart

> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> Sent: Wednesday, June 24, 2020 10:09 PM
> 
> 24/06/2020 22:01, Lincoln Lavoie:
> > Inline.
> >
> > On Wed, Jun 24, 2020 at 3:55 PM Thomas Monjalon <thomas@monjalon.net>
> wrote:
> >
> > > Hi,
> > >
> > > A bit of context: Daniel is going to implement a test in DTS
> > > for ethdev speed capability:
> > > http://doc.dpdk.org/guides/nics/features.html#speed-capabilities
> > >

Great! The physical layer rarely gets attention by DPDK, although it is the foundation of everything.

> > > 24/06/2020 21:32, Daniel Kirichok:
> > > > The Speed Capabilities test will first check the speed of each
> interface
> > > > that the device lists through ethtool.
> > >
> > > I assume you mean doing a query in Linux before starting DPDK.
> >
> > LYL > I hadn't thought about that approach, we were thinking we would
> > compare what the tested reports as the physical reality of the setup
> with
> > what the DPDK driver reports.
> > If you think we can trust the native kernel drivers as the source of
> truth,
> > we could read those first and compare DPDK output.
> 
> Not sure we can trust kernel infos, especially for new HW.

I agree. Otherwise we are depending on the kernel NIC driver development being ahead of the DPDK driver development.

> I was just trying to understand why ethtool came in the picture.

I guess Lincoln is referring to some "ethtool" DPDK application, right?

> 
> > > > Then it compares each interface
> > > > speed to a user-defined set of expected speeds set in a newly
> created
> > > > config file, `speed_capabilities.cfg`.
> > >
> > > Why do you need such config file?
> > >
> > > > The test fails if an interface is
> > > > found that isn’t accounted for in the cfg file, the detected
> speed is
> > > less
> > > > than 1 Gb/s, or an interface detects a different speed than what
> is
> > > > expected from the cfg file. Otherwise, it passes.

As I understand it, this test verifies that the speed capabilities reported by DPDK matches the expectations for that driver, where the expectations are in the cfg file. This is good.

There is no need to require any minimum speed. DPDK should be allowed to support 10/100 Mbps Ethernet devices.

> > >
> > > So you don't test DPDK?
> > >
> > > Would be interesting to compare the actual link speed
> > > from rte_eth_link_get() with the advertised capability.
> > >
> > > What else do we want to test regarding link speed? autonegotiation?
> > >
> > LYL > This would become highly dependent on the NIC, and it's
> > capabilities.  I have not had good luck with auto-neg on high speed
> links
> > like 10G SPF and higher. Similarly, high speed links would likely
> > require a physical change (assuming the NIC supported multiple
> speeds), to
> > change either the module or the DAC.  We're trying to avoid anything
> that
> > would require physical changes that can't be forced through
> > the tester (i.e. disable the port connected to the DUT for a link
> down,
> > etc.)
> 
> At least, we can test that autonegotiation is establishing
> a speed advertised in capabilities, right?
> 
> 

Tests to verify that the link actually comes up at the expected speeds would be nice too:

Verify that 10/100/1000 Mbps copper Ethernet devices link up at the speed advertised by the tester using auto-negotiation, and at 10 and 100 Mbps half duplex when the tester doesn't provide auto-negotiation ("Parallel Detect" in IEEE 802.3 terminology). And similarly when the DUT sets the advertised capabilities.

Flow Control behavior should also be verified. If both tester and DUT advertise Flow Control, the driver should use Flow Control, and if tester and/or DUT advertises No Flow Control, the driver should not use flow control.

I don't have a lot of experience with multi-speed modules above 1 Gbps, but guess similar tests apply here.

And I agree that the tests should be limited to what can be automated with the tester. Running around pulling cables and swapping modules is not an option.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] Speed Capabilities Feature
  2020-06-25  7:52       ` Morten Brørup
@ 2020-06-25 20:04         ` Daniel Kirichok
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Kirichok @ 2020-06-25 20:04 UTC (permalink / raw)
  To: Morten Brørup
  Cc: Thomas Monjalon, Lincoln Lavoie, dts, dev, David Marchand,
	Ferruh Yigit, arybchenko, i.dyukov, rasland, James Hendergart

On Thu, Jun 25, 2020 at 3:52 AM Morten Brørup <mb@smartsharesystems.com>
wrote:

> > From: Thomas Monjalon [mailto:thomas@monjalon.net]
> > Sent: Wednesday, June 24, 2020 10:09 PM
> >
> > 24/06/2020 22:01, Lincoln Lavoie:
> > > Inline.
> > >
> > > On Wed, Jun 24, 2020 at 3:55 PM Thomas Monjalon <thomas@monjalon.net>
> > wrote:
> > >
> > > > Hi,
> > > >
> > > > A bit of context: Daniel is going to implement a test in DTS
> > > > for ethdev speed capability:
> > > > http://doc.dpdk.org/guides/nics/features.html#speed-capabilities
> > > >
>
> Great! The physical layer rarely gets attention by DPDK, although it is
> the foundation of everything.
>
> > > 24/06/2020 21:32, Daniel Kirichok:
> > > > > The Speed Capabilities test will first check the speed of each
> > interface
> > > > > that the device lists through ethtool.
> > > >
> > > > I assume you mean doing a query in Linux before starting DPDK.
> > >
> > > LYL > I hadn't thought about that approach, we were thinking we would
> > > compare what the tested reports as the physical reality of the setup
> > with
> > > what the DPDK driver reports.
> > > If you think we can trust the native kernel drivers as the source of
> > truth,
> > > we could read those first and compare DPDK output.
> >
> > Not sure we can trust kernel infos, especially for new HW.
>
> I agree. Otherwise we are depending on the kernel NIC driver development
> being ahead of the DPDK driver development.
>
> > I was just trying to understand why ethtool came in the picture.
>
> I guess Lincoln is referring to some "ethtool" DPDK application, right?
>
>
Dan >  After doing some rethinking, I intend to use a tool with similar
functionality to ethtool that is offered through the DPDK application.

>
> > > > > Then it compares each interface
> > > > > speed to a user-defined set of expected speeds set in a newly
> > created
> > > > > config file, `speed_capabilities.cfg`.
> > > >
> > > > Why do you need such config file?
> > > >
> > > > > The test fails if an interface is
> > > > > found that isn’t accounted for in the cfg file, the detected
> > speed is
> > > > less
> > > > > than 1 Gb/s, or an interface detects a different speed than what
> > is
> > > > > expected from the cfg file. Otherwise, it passes.
>
> As I understand it, this test verifies that the speed capabilities
> reported by DPDK matches the expectations for that driver, where the
> expectations are in the cfg file. This is good.
>
> There is no need to require any minimum speed. DPDK should be allowed to
> support 10/100 Mbps Ethernet devices.
>
>
Dan > Thanks for the clarification, I will incorporate this into the test.

> > >
> > > > So you don't test DPDK?
> > > >
> > > > Would be interesting to compare the actual link speed
> > > > from rte_eth_link_get() with the advertised capability.
> > > >
> > > > What else do we want to test regarding link speed? autonegotiation?
> > > >
> > > LYL > This would become highly dependent on the NIC, and it's
> > > capabilities.  I have not had good luck with auto-neg on high speed
> > links
> > > like 10G SPF and higher. Similarly, high speed links would likely
> > > require a physical change (assuming the NIC supported multiple
> > speeds), to
> > > change either the module or the DAC.  We're trying to avoid anything
> > that
> > > would require physical changes that can't be forced through
> > > the tester (i.e. disable the port connected to the DUT for a link
> > down,
> > > etc.)
> >
> > At least, we can test that autonegotiation is establishing
> > a speed advertised in capabilities, right?
> >
> >
>
> Tests to verify that the link actually comes up at the expected speeds
> would be nice too:
>
> Verify that 10/100/1000 Mbps copper Ethernet devices link up at the speed
> advertised by the tester using auto-negotiation, and at 10 and 100 Mbps
> half duplex when the tester doesn't provide auto-negotiation ("Parallel
> Detect" in IEEE 802.3 terminology). And similarly when the DUT sets the
> advertised capabilities.
>

Dan > We were thinking to cover this through checking the config file
depending on what the NIC is capable which could be multiple speeds, and
the speed it is currently linked at which would be one speed.


> Flow Control behavior should also be verified. If both tester and DUT
> advertise Flow Control, the driver should use Flow Control, and if tester
> and/or DUT advertises No Flow Control, the driver should not use flow
> control.
>
>
Dan > We were thinking to incorporate Flow Control behavior verification in
a separate test case than this one since it would need to be confirmed that
flow control is supported by the hardware before verifying for it.

I don't have a lot of experience with multi-speed modules above 1 Gbps, but
> guess similar tests apply here.
>
> And I agree that the tests should be limited to what can be automated with
> the tester. Running around pulling cables and swapping modules is not an
> option.
>
>
>

-- 

Dan Kirichok

UNH InterOperability Laboratory

21 Madbury Rd, Suite 100, Durham, NH 03824

dkirichok@iol.unh.edu

www.iol.unh.edu

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-06-25 20:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-24 19:32 [dpdk-dev] Speed Capabilities Feature Daniel Kirichok
2020-06-24 19:55 ` Thomas Monjalon
2020-06-24 20:01   ` Lincoln Lavoie
2020-06-24 20:09     ` Thomas Monjalon
2020-06-25  7:52       ` Morten Brørup
2020-06-25 20:04         ` Daniel Kirichok

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).