linux/net/ethtool
Danielle Ratson 7dc33f0914 ethtool: Expose the number of lanes in use
Currently, ethtool does not expose how many lanes are used when the
link is up.

After adding a possibility to advertise or force a specific number of
lanes, the lanes in use value can be either the maximum width of the port
or below.

Extend ethtool to expose the number of lanes currently in use for
drivers that support it.

For example:

$ ethtool -s swp1 speed 100000 lanes 4
$ ethtool -s swp2 speed 100000 lanes 4
$ ip link set swp1 up
$ ip link set swp2 up
$ ethtool swp1
Settings for swp1:
        Supported ports: [ FIBRE         Backplane ]
        Supported link modes:   1000baseT/Full
                                10000baseT/Full
                                1000baseKX/Full
                                10000baseKR/Full
                                10000baseR_FEC
                                40000baseKR4/Full
                                40000baseCR4/Full
                                40000baseSR4/Full
                                40000baseLR4/Full
                                25000baseCR/Full
                                25000baseKR/Full
                                25000baseSR/Full
                                50000baseCR2/Full
                                50000baseKR2/Full
                                100000baseKR4/Full
                                100000baseSR4/Full
                                100000baseCR4/Full
                                100000baseLR4_ER4/Full
                                50000baseSR2/Full
                                10000baseCR/Full
                                10000baseSR/Full
                                10000baseLR/Full
                                10000baseER/Full
                                50000baseKR/Full
                                50000baseSR/Full
                                50000baseCR/Full
                                50000baseLR_ER_FR/Full
                                50000baseDR/Full
                                100000baseKR2/Full
                                100000baseSR2/Full
                                100000baseCR2/Full
                                100000baseLR2_ER2_FR2/Full
                                100000baseDR2/Full
                                200000baseKR4/Full
                                200000baseSR4/Full
                                200000baseLR4_ER4_FR4/Full
                                200000baseDR4/Full
                                200000baseCR4/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  1000baseT/Full
                                10000baseT/Full
                                1000baseKX/Full
                                1000baseKX/Full
                                10000baseKR/Full
                                10000baseR_FEC
                                40000baseKR4/Full
                                40000baseCR4/Full
                                40000baseSR4/Full
                                40000baseLR4/Full
                                25000baseCR/Full
                                25000baseKR/Full
                                25000baseSR/Full
                                50000baseCR2/Full
                                50000baseKR2/Full
                                100000baseKR4/Full
                                100000baseSR4/Full
                                100000baseCR4/Full
                                100000baseLR4_ER4/Full
                                50000baseSR2/Full
                                10000baseCR/Full
                                10000baseSR/Full
                                10000baseLR/Full
                                10000baseER/Full
                                200000baseKR4/Full
                                200000baseSR4/Full
                                200000baseLR4_ER4_FR4/Full
                                200000baseDR4/Full
                                200000baseCR4/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Advertised link modes:  100000baseKR4/Full
                                100000baseSR4/Full
                                100000baseCR4/Full
                                100000baseLR4_ER4/Full
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 100000Mb/s
	Lanes: 4
	Duplex: Full
	Auto-negotiation: on
	Port: Direct Attach Copper
	PHYAD: 0
	Transceiver: internal
	Link detected: yes

Signed-off-by: Danielle Ratson <danieller@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-02-03 18:37:29 -08:00
..
bitset.c ethtool: fix stack overflow in ethnl_parse_bitset() 2020-12-09 15:50:38 -08:00
bitset.h ethtool: add ethnl_parse_bitset() helper 2020-03-12 15:32:32 -07:00
cabletest.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
channels.c ethtool: fix error paths in ethnl_set_channels() 2020-12-16 13:27:17 -08:00
coalesce.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
common.c ethtool: Get link mode in use instead of speed and duplex parameters 2021-02-03 18:37:29 -08:00
common.h ethtool: Get link mode in use instead of speed and duplex parameters 2021-02-03 18:37:29 -08:00
debug.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
eee.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
features.c ethtool: netlink: add missing netdev_features_change() call 2020-11-09 17:15:34 -08:00
ioctl.c ethtool: Get link mode in use instead of speed and duplex parameters 2021-02-03 18:37:29 -08:00
linkinfo.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
linkmodes.c ethtool: Expose the number of lanes in use 2021-02-03 18:37:29 -08:00
linkstate.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
Makefile ethtool: add tunnel info interface 2020-07-10 13:54:00 -07:00
netlink.c ethtool: correct policy for ETHTOOL_MSG_CHANNELS_SET 2020-10-08 16:06:01 -07:00
netlink.h ethtool: Extend link modes settings uAPI with lanes 2021-02-03 18:37:28 -08:00
pause.c ethtool: specify which header flags are supported per command 2020-10-06 06:25:55 -07:00
privflags.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
rings.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
strset.c ethtool: fix string set id check 2020-12-16 11:15:11 -08:00
tsinfo.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
tunnels.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00
wol.c ethtool: link up ethnl_header_policy as a nested policy 2020-10-06 06:25:55 -07:00