Skip to content
  • Andy Gospodarek's avatar
    bond: add support to read speed and duplex via ethtool · bb5b052f
    Andy Gospodarek authored
    
    
    This patch adds support for the get_settings ethtool op to the bonding
    driver.  This was motivated by users who wanted to get the speed of the
    bond and compare that against throughput to understand utilization.
    The behavior before this patch was added was problematic when computing
    line utilization after trying to get link-speed and throughput via SNMP.
    
    Output from ethtool looks like this for a round-robin bond:
    
    Settings for bond0:
    	Supported ports: [ ]
    	Supported link modes:   Not reported
    	Supported pause frame use: No
    	Supports auto-negotiation: No
    	Advertised link modes:  Not reported
    	Advertised pause frame use: No
    	Advertised auto-negotiation: No
    	Speed: 11000Mb/s
    	Duplex: Full
    	Port: Other
    	PHYAD: 0
    	Transceiver: internal
    	Auto-negotiation: off
    	MDI-X: Unknown
    	Link detected: yes
    
    I tested this and verified it works as expected.  A test was also done
    on a version backported to an older kernel and it worked well there.
    
    v2: Switch to using ethtool_cmd_speed_set to set speed, added check to
    SLAVE_IS_OK for each slave in bond, dropped mode-specific calculations
    as they were not needed, and set port type to 'Other.'
    
    v3: Fix useless assignment and checkpatch warning.
    
    Signed-off-by: default avatarAndy Gospodarek <andy@greyhouse.net>
    Reviewed-by: default avatarBen Hutchings <bhutchings@solarflare.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    bb5b052f