[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210120093713.4000363-1-danieller@nvidia.com>
Date: Wed, 20 Jan 2021 11:37:06 +0200
From: Danielle Ratson <danieller@...dia.com>
To: <netdev@...r.kernel.org>
CC: <davem@...emloft.net>, <kuba@...nel.org>, <jiri@...dia.com>,
<andrew@...n.ch>, <f.fainelli@...il.com>, <mkubecek@...e.cz>,
<mlxsw@...dia.com>, <idosch@...dia.com>,
Danielle Ratson <danieller@...dia.com>
Subject: [PATCH net-next v3 0/7] Support setting lanes via ethtool
Some speeds can be achieved with different number of lanes. For example,
100Gbps can be achieved using two lanes of 50Gbps or four lanes of
25Gbps. This patchset adds a new selector that allows ethtool to
advertise link modes according to their number of lanes and also force a
specific number of lanes when autonegotiation is off.
Advertising all link modes with a speed of 100Gbps that use two lanes:
$ ethtool -s swp1 speed 100000 lanes 2 autoneg on
Forcing a speed of 100Gbps using four lanes:
$ ethtool -s swp1 speed 100000 lanes 4 autoneg off
Patchset overview:
Patch #1 allows user space to configure the desired number of lanes.
Patch #2-#3 adjusts ethtool to dump to user space the number of lanes
currently in use.
Patches #4-#6 add support for lanes configuration in mlxsw.
Patch #7 adds a selftest.
v3:
* Patch #1: Change ethtool_ops.capabilities to be a bitfield,
and set min and max for the lanes policy.
* Patch #2: Remove LINK_MODE_UNKNOWN and move the speed, duplex
and lanes derivation to the wrapper
__ethtool_get_link_ksettings().
* Patch #5: Set the bitfield of supporting lanes in the driver to 'true'.
* Patch #7: Move the test to drivers/net/mlxsw.
v2:
* Patch #1: Remove ETHTOOL_LANES defines and simply use a number
instead.
* Patches #2,#6: Pass link mode from driver to ethtool instead
* of the parameters themselves.
* Patch #5: Add an actual width field for spectrum-2 link modes
in order to set the suitable link mode when lanes parameter is
passed.
* Patch #6: Changed lanes to be unsigned in
'struct link_mode_info'.
* Patch #7: Remove the test for recieving max_width when lanes
* is not set by user. When not setting lanes, we don't promise
anything regarding what number of lanes will be chosen.
Danielle Ratson (7):
ethtool: Extend link modes settings uAPI with lanes
ethtool: Get link mode in use instead of speed and duplex parameters
ethtool: Expose the number of lanes in use
mlxsw: ethtool: Remove max lanes filtering
mlxsw: ethtool: Add support for setting lanes when autoneg is off
mlxsw: ethtool: Pass link mode in use to ethtool
net: selftests: Add lanes setting test
Documentation/networking/ethtool-netlink.rst | 11 +-
.../net/ethernet/mellanox/mlxsw/spectrum.h | 13 +-
.../mellanox/mlxsw/spectrum_ethtool.c | 196 +++++++++++-------
include/linux/ethtool.h | 5 +
include/uapi/linux/ethtool.h | 2 +
include/uapi/linux/ethtool_netlink.h | 1 +
net/ethtool/common.c | 114 ++++++++++
net/ethtool/common.h | 7 +
net/ethtool/ioctl.c | 18 +-
net/ethtool/linkmodes.c | 179 +++++-----------
net/ethtool/netlink.h | 2 +-
.../drivers/net/mlxsw/ethtool_lanes.sh | 188 +++++++++++++++++
.../selftests/net/forwarding/ethtool_lib.sh | 34 +++
tools/testing/selftests/net/forwarding/lib.sh | 28 +++
14 files changed, 576 insertions(+), 222 deletions(-)
create mode 100755 tools/testing/selftests/drivers/net/mlxsw/ethtool_lanes.sh
--
2.26.2
Powered by blists - more mailing lists