mbox series

[net-next,0/6] Support setting lanes via ethtool

Message ID 20201010154119.3537085-1-idosch@idosch.org
Headers show
Series Support setting lanes via ethtool | expand

Message

Ido Schimmel Oct. 10, 2020, 3:41 p.m. UTC
From: Ido Schimmel <idosch@nvidia.com>

Danielle says:

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 patch set 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

Patch set overview:

Patch #1 allows user space to configure the desired number of lanes.

Patch #2 adjusts ethtool to dump to user space the number of lanes
currently in use.

Patches #3-#5 add support for lanes configuration in mlxsw.

Patch #6 adds a selftest.

Danielle Ratson (6):
  ethtool: Extend link modes settings uAPI with lanes
  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: Expose the number of lanes in use
  net: selftests: Add lanes setting test

 Documentation/networking/ethtool-netlink.rst  |  16 +-
 .../net/ethernet/mellanox/mlxsw/spectrum.h    |  13 +-
 .../mellanox/mlxsw/spectrum_ethtool.c         | 156 ++++++++----
 include/linux/ethtool.h                       |   4 +
 include/uapi/linux/ethtool.h                  |   8 +
 include/uapi/linux/ethtool_netlink.h          |   1 +
 net/ethtool/linkmodes.c                       | 232 +++++++++++-------
 net/ethtool/netlink.h                         |   2 +-
 .../selftests/net/forwarding/ethtool_lanes.sh | 224 +++++++++++++++++
 .../selftests/net/forwarding/ethtool_lib.sh   |  34 +++
 tools/testing/selftests/net/forwarding/lib.sh |  28 +++
 11 files changed, 571 insertions(+), 147 deletions(-)
 create mode 100755 tools/testing/selftests/net/forwarding/ethtool_lanes.sh