Comment 12 for bug 1881821

Revision history for this message
Andy Whitcroft (apw) wrote : Re: Kernel does not report interface speed correctly for Cisco UCS B200 M5 blade

This appears to be a bug in the cisco enic driver. It will always report 10000baseT/Full, regardless of the link speed itself. It has always been like this in mainline, and I am also not supprised if the upstream driver is also similarly broken.

static int enic_get_ksettings(struct net_device *netdev,
                              struct ethtool_link_ksettings *ecmd)
{
[...]
        ethtool_link_ksettings_add_link_mode(ecmd, supported,
                                             10000baseT_Full);
        ethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);
        ethtool_link_ksettings_add_link_mode(ecmd, advertising,
                                             10000baseT_Full);
        ethtool_link_ksettings_add_link_mode(ecmd, advertising, FIBRE);
        base->port = PORT_FIBRE;

        if (netif_carrier_ok(netdev)) {
                base->speed = vnic_dev_port_speed(enic->vdev);
                base->duplex = DUPLEX_FULL;
        } else {
                base->speed = SPEED_UNKNOWN;
                base->duplex = DUPLEX_UNKNOWN;
        }
[...]
}