[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6bc49b72-5698-ef93-9be1-a40e34be8803@intel.com>
Date: Mon, 27 Jul 2020 14:18:19 -0700
From: Jacob Keller <jacob.e.keller@...el.com>
To: Andrew Lunn <andrew@...n.ch>, Michal Kubecek <mkubecek@...e.cz>
Cc: Jamie Gloudon <jamie.gloudon@....fr>, netdev@...r.kernel.org
Subject: Re: Broken link partner advertised reporting in ethtool
On 7/27/2020 2:01 PM, Andrew Lunn wrote:
> Here are the netlink messages.
>
> sending genetlink packet (32 bytes):
> msg length 32 genl-ctrl
> CTRL_CMD_GETFAMILY
> CTRL_ATTR_FAMILY_NAME = "ethtool"
> ...
> ...
> sending genetlink packet (36 bytes):
> msg length 36 ethool ETHTOOL_MSG_LINKMODES_GET
> ETHTOOL_MSG_LINKMODES_GET
> ETHTOOL_A_LINKMODES_HEADER
> ETHTOOL_A_HEADER_DEV_NAME = "green"
> received genetlink packet (572 bytes):
> msg length 572 ethool ETHTOOL_MSG_LINKMODES_GET_REPLY
> ETHTOOL_MSG_LINKMODES_GET_REPLY
> ETHTOOL_A_LINKMODES_HEADER
> ETHTOOL_A_HEADER_DEV_INDEX = 8
> ETHTOOL_A_HEADER_DEV_NAME = "green"
> ETHTOOL_A_LINKMODES_AUTONEG = on
> ETHTOOL_A_LINKMODES_OURS
> ETHTOOL_A_BITSET_SIZE = 90
> ETHTOOL_A_BITSET_BITS
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 0
> ETHTOOL_A_BITSET_BIT_NAME = "10baseT/Half"
> ETHTOOL_A_BITSET_BIT_VALUE = true
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 1
> ETHTOOL_A_BITSET_BIT_NAME = "10baseT/Full"
> ETHTOOL_A_BITSET_BIT_VALUE = true
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 2
> ETHTOOL_A_BITSET_BIT_NAME = "100baseT/Half"
> ETHTOOL_A_BITSET_BIT_VALUE = true
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 3
> ETHTOOL_A_BITSET_BIT_NAME = "100baseT/Full"
> ETHTOOL_A_BITSET_BIT_VALUE = true
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 5
> ETHTOOL_A_BITSET_BIT_NAME = "1000baseT/Full"
> ETHTOOL_A_BITSET_BIT_VALUE = true
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 6
> ETHTOOL_A_BITSET_BIT_NAME = "Autoneg"
> ETHTOOL_A_BITSET_BIT_VALUE = true
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 7
> ETHTOOL_A_BITSET_BIT_NAME = "TP"
> ETHTOOL_A_BITSET_BIT_VALUE = true
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 9
> ETHTOOL_A_BITSET_BIT_NAME = "MII"
> ETHTOOL_A_BITSET_BIT_VALUE = true
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 13
> ETHTOOL_A_BITSET_BIT_NAME = "Pause"
> ETHTOOL_A_BITSET_BIT_VALUE = true
> ETHTOOL_A_LINKMODES_PEER
> ETHTOOL_A_BITSET_NOMASK = true
> ETHTOOL_A_BITSET_SIZE = 90
> ETHTOOL_A_BITSET_BITS
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 0
> ETHTOOL_A_BITSET_BIT_NAME = "10baseT/Half"
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 1
> ETHTOOL_A_BITSET_BIT_NAME = "10baseT/Full"
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 2
> ETHTOOL_A_BITSET_BIT_NAME = "100baseT/Half"
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 3
> ETHTOOL_A_BITSET_BIT_NAME = "100baseT/Full"
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 5
> ETHTOOL_A_BITSET_BIT_NAME = "1000baseT/Full"
> ETHTOOL_A_BITSET_BITS_BIT
> ETHTOOL_A_BITSET_BIT_INDEX = 6
> ETHTOOL_A_BITSET_BIT_NAME = "Autoneg"
> ETHTOOL_A_LINKMODES_SPEED = 1000
> ETHTOOL_A_LINKMODES_DUPLEX = 1
Based on the netlink contents here it looks like a bug at
netlink/settings.c:357, where we check for ETHTOOL_A_BITSET_BIT_VALUE,
but these aren't sent when you send the bitset using a individual
BIT_INDEX/BIT_NAME like this. I think that's a bug.
I'm working up a simple to verify this and if my suspicion is confirmed
I can write up a patch.
Thanks,
Jake
Powered by blists - more mailing lists