On Mon, Jun 10, 2019 at 03:59:14PM +0200, Andrew Lunn wrote:
> > +speeds_get()
> > +{
> > +   local dev=$1; shift
> > +   local with_mode=$1; shift
> > +
> > +   local speeds_str=$(ethtool "$dev" | \
> > +           # Snip everything before the link modes section.
> > +           sed -n '/Supported link modes:/,$p' | \
> > +           # Quit processing the rest at the start of the next section.
> > +           # When checking, skip the header of this section (hence the 2,).
> > +           sed -n '2,${/^[\t][^ \t]/q};p' | \
> > +           # Drop the section header of the current section.
> > +           cut -d':' -f2)
> 
> ethtool gives you two lists of link modes:
> 
> $ sudo ethtool eth17
> Settings for eth17:
>          Supported ports: [ TP ]
>          Supported link modes:   10baseT/Half 10baseT/Full 
>                                  100baseT/Half 100baseT/Full 
>                                  1000baseT/Full 
>          Supported pause frame use: No
>          Supports auto-negotiation: Yes
>          Supported FEC modes: Not reported
>          Advertised link modes:  10baseT/Half 10baseT/Full 
>                                  100baseT/Half 100baseT/Full 
>                                  1000baseT/Full
> 
> and if auto-neg has completed, there is potentially a third list, what
> the peer is advertising.
> 
> Since this test is all about auto-neg, you should be using Advertised
> link modes, not Supported link modes. There can be supported link
> modes which you cannot advertise.

Andrew, are you suggestion to split speeds_get() into
supported_speeds_get() and advertised_speeds_get() and use each where
appropriate? Note that not all the tests are testing with autoneg on.

Reply via email to