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(-) -- 2.26.2