Currently, user has no way of knowing if a port can be split and into how many ports.
Among other things, it is currently impossible to write generic tests for port split. In order to be able to expose the information regarding the split capability to user space, set the required attributes and pass them to netlink. Patch 1: Move set attribute from devlink_port_attrs to devlink_port. Patch 2: Move switch_port attribute from devlink_port_attrs to devlink_port Patch 3: Replace devlink_port_attrs_set parameters with a struct. Patch 4: Set and initialize lanes attribute in the driver. Patch 5: Add lanes attribute to devlink port and pass to netlink. Patch 6: Set and initialize splittable attribute in the driver. Patch 7: Add splittable attribute to devlink port and pass them to netlink. Patch 8: Add a split port test. Danielle Ratson (8): devlink: Move set attribute of devlink_port_attrs to devlink_port devlink: Move switch_port attribute of devlink_port_attrs to devlink_port devlink: Replace devlink_port_attrs_set parameters with a struct mlxsw: Set number of port lanes attribute in driver devlink: Add a new devlink port lanes attribute and pass to netlink mlxsw: Set port split ability attribute in driver devlink: Add a new devlink port split ability attribute and pass to netlink selftests: net: Add port split test .../net/ethernet/broadcom/bnxt/bnxt_devlink.c | 13 +- drivers/net/ethernet/intel/ice/ice_devlink.c | 6 +- .../ethernet/mellanox/mlx5/core/en/devlink.c | 19 +- .../net/ethernet/mellanox/mlx5/core/en_rep.c | 20 +- drivers/net/ethernet/mellanox/mlxsw/core.c | 18 +- drivers/net/ethernet/mellanox/mlxsw/core.h | 4 +- drivers/net/ethernet/mellanox/mlxsw/minimal.c | 4 +- .../net/ethernet/mellanox/mlxsw/spectrum.c | 6 +- .../net/ethernet/mellanox/mlxsw/switchib.c | 2 +- .../net/ethernet/mellanox/mlxsw/switchx2.c | 2 +- .../net/ethernet/netronome/nfp/nfp_devlink.c | 12 +- .../ethernet/pensando/ionic/ionic_devlink.c | 5 +- drivers/net/netdevsim/dev.c | 14 +- include/net/devlink.h | 20 +- include/uapi/linux/devlink.h | 3 + net/core/devlink.c | 86 +++--- net/dsa/dsa2.c | 17 +- tools/testing/selftests/net/Makefile | 1 + .../selftests/net/devlink_port_split.py | 259 ++++++++++++++++++ 19 files changed, 399 insertions(+), 112 deletions(-) create mode 100755 tools/testing/selftests/net/devlink_port_split.py -- 2.20.1