Comment 0 for bug 1757191

Revision history for this message
Jeff Lane  (bladernr) wrote : Intel NICs not properly reporting link speed in SysFS

This was discovered during certification testing.

A system under test has a 2 port Intel X550 NIC (10Gb)

Udev reports the NIC as this:
Category: NETWORK
Interface: enp94s0f0
Product: Ethernet Controller 10G X550T
Vendor: Intel Corporation
Driver: ixgbe (ver: 5.1.0-k)
Path: /devices/pci0000:5d/0000:5d:00.0/0000:5e:00.0
ID: [8086:1563]
Subsystem ID: [152d:8a13]

Ethtool shows this info (this is for the second port, which has the issue)
Settings for enp94s0f1:
 Supported ports: [ TP ]
 Supported link modes: 100baseT/Full
                         1000baseT/Full
                         10000baseT/Full
 Supported pause frame use: Symmetric
 Supports auto-negotiation: Yes
 Advertised link modes: 100baseT/Full
                         1000baseT/Full
                         10000baseT/Full
 Advertised pause frame use: Symmetric
 Advertised auto-negotiation: Yes
 Speed: 10000Mb/s
 Duplex: Full
 Port: Twisted Pair
 PHYAD: 0
 Transceiver: internal
 Auto-negotiation: on
 MDI-X: Unknown
 Supports Wake-on: umbg
 Wake-on: g
 Current message level: 0x00000007 (7)
          drv probe link
 Link detected: yes

Note ethtool shows an active 10Gb link.

The test tool determines the NIC speed by introspecting the sysfs data for each NIC port. In this case, by looking at /sys/class/net/DEVICENAME/speed

I've now seen this on a couple different NICs using the ixgbe driver. The first port will properly show connected link speed in /sys/class/net/DEVICENAME/speed but the second port shows -1 in that file.

Because of this, certification tests are failing because the tool believes that the link speed is incorrect.

This current example is using kernel 4.13.0-37.42~16.04.1