Skip to content

Flag if chosen network adapter cannot provide auto-negotiation stats via ethtool during network adapter selection #1533

Description

@duncangreene

What is the problem your feature is trying to solve?
I have run a number of tests using a specific USB Ethernet adapter that yield the below result. All other aspects of the testing work perfectly (and auto-negotiation does indeed take place, despite what Testrun reports).

Image

In this particular case, it's not that the Ethernet adapter isn't configured for auto-negotiation at all, it's merely that the the generic cdc-ncm driver isn't exposing the PHY layer properties of the USB Ethernet adapter to ethtool in the same way that the vendor-specific driver for the USB Ethernet adapter would do. This behaviour varies between USB Ethernet adapters, and it is not straightforward to 'make it use a vendor-specific driver' when this happens.

Describe the solution you think would solve the problem
Testrun should flag in the combo box below which adapters can expose the relevant auto-negotiation information, by virtue of them indicating support for it to ethtool. This could be captured/gleaned during the existing functionality that presumably removes non-Ethernet interfaces from the combo box.

Image

For context, here is the output for an Ethernet adapter (Realtek Semiconductor Corp. RTL8153) that does expose PHY layer information to ethtool.

oss@oss-Inspiron-3542:~$ ethtool enx3c18a0d57040 
Settings for enx3c18a0d57040:
	Supported ports: [ TP	 MII ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 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
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Link partner advertised link modes:  10baseT/Half 10baseT/Full
	                                     100baseT/Half 100baseT/Full
	                                     1000baseT/Half 1000baseT/Full
	Link partner advertised pause frame use: Symmetric Receive-only
	Link partner advertised auto-negotiation: Yes
	Link partner advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Auto-negotiation: on
	Port: MII
	PHYAD: 32
	Transceiver: internal
netlink error: Operation not permitted
        Current message level: 0x00007fff (32767)
                               drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
	Link detected: yes

For context, here is the output for an Ethernet adapter (ASIX Electronics Corp. AX88179) that does not expose all PHY layer information to ethtool. You can tell it's bogus because it's also reporting operating Gigabit Ethernet at half-duplex, which is not possible. The auto-negotiation has taken place, it's just that it's not been exposed to ethtool.

oss@oss-Inspiron-3542:~$ ethtool enxc8a3623d11e5 
Settings for enxc8a3623d11e5:
	Supported ports: [  ]
	Supported link modes:   Not reported
	Supported pause frame use: No
	**Supports auto-negotiation: No**
	Supported FEC modes: Not reported
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Half
	Auto-negotiation: off
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	MDI-X: Unknown
netlink error: Operation not permitted
        Current message level: 0x00000007 (7)
                               drv probe link
	Link detected: yes

Additional context
Testrun should highlight to the user during adapter selection whether the above stats are likely to be available to the user. Currently the only way for the user to find out is to wait ~20-30 minutes for a test to complete to find out that it wasn't supported. See somewhat related issue #1014.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions