mbox series

[net-next,0/3] devlink show controller info

Message ID 20200825135839.106796-1-parav@mellanox.com
Headers show
Series devlink show controller info | expand

Message

Parav Pandit Aug. 25, 2020, 1:58 p.m. UTC
Hi Dave, Jakub,

Currently a devlink instance that supports an eswitch handles eswitch
ports of two type of controllers.
(1) controller discovered on same system where eswitch resides.
This is the case where PCI PF/VF of a controller and devlink eswitch
instance both are located on a single system.
(2) controller located on other system.
This is the case where a controller is located in one system and its
devlink eswitch ports are located in a different system. In this case
devlink instance of the eswitch only have access to ports of the
controller.
However, there is no way to describe that a eswitch devlink port
belongs to which controller (mainly which external host controller).
This problem is more prevalent when port attribute such as PF and VF
numbers are overlapping between multiple controllers of same eswitch.
Due to this, for a specific switch_id, unique phys_port_name cannot
be constructed for such devlink ports.

This short series overcomes this limitation by defining external
controller attribute of the devlink port.
A port that represents an external controller's port defines which
controller it belongs to. Based on this a unique phys_port_name
is prepared.

phys_port_name construction using unique controller number is only
applicable to external controller ports. This ensures that for
non smartnic usecases where there is no external controller,
phys_port_name stays same as before.

Patch summary:
Patch-1 Adds the missing comment for the port attributes
Patch-2 prepares devlink port with external controller attribute
Patch-3 mlx5 driver to use new external controller attribute API

Parav Pandit (3):
  devlink: Add comment block for missing port attributes
  devlink: Consider other controller while building phys_port_name
  net/mlx5: E-switch, Set controller attribute for PCI PF and VF ports

 .../net/ethernet/mellanox/mlx5/core/en_rep.c  |  5 ++++
 .../net/ethernet/mellanox/mlx5/core/eswitch.h |  1 +
 .../mellanox/mlx5/core/eswitch_offloads.c     | 21 ++++++++++++++
 include/net/devlink.h                         | 10 ++++++-
 include/uapi/linux/devlink.h                  |  1 +
 net/core/devlink.c                            | 29 +++++++++++++++++++
 6 files changed, 66 insertions(+), 1 deletion(-)