This patchset carry forwards the work initiated in [1] and discussion futher concluded at [2].
To improve visibility of representor netdevice, its association with PF or VF, physical port, two new devlink port flavours are added as PCI PF and PCI VF ports. A sample eswitch view can be seen below, which will be futher extended to mdev subdevices of a PCI function in future. Patch-1,2 extends devlink port attributes and port flavour. Patch-3 extends mlx5 driver to register devlink ports for PF, VF and physical link. +---+ +---+ vf| | | | pf +-+-+ +-+-+ physical link <---------+ | | | | | | | | +-+-+ +-+-+ +-+-+ | 1 | | 2 | | 3 | +--+---+-----+---+------+---+--+ | physical vf pf | | port port port | | | | eswitch | | | +------------------------------+ [1] https://www.spinics.net/lists/netdev/msg555797.html [2] https://marc.info/?l=linux-netdev&m=155354609408485&w=2 --- Changelog: v3->v4: - Addressed comments from Jiri. - Split first patch to two patches. - Renamed phys_port to physical to be consistent with pci_pf. - Removed port_number from __devlink_port_attrs_set and moved assignment to caller function. - Used capital letter while moving old comment to new structure. - Removed helper function is_devlink_phy_port_num_supported(). v2->v3: - Made port_number and split_port_number applicable only to physical port flavours. v1->v2: - Updated new APIs and mlx5 driver to drop port_number for PF, VF attributes - Updated port_number comment for its usage - Limited putting port_number to physical ports Parav Pandit (4): devlink: Refactor physical port attributes devlink: Introduce PCI PF port flavour and port attribute devlink: Introduce PCI VF port flavour and port attribute net/mlx5e: Register devlink ports for physical link, PCI PF, VFs .../net/ethernet/mellanox/mlx5/core/en_rep.c | 108 ++++++++++---- .../net/ethernet/mellanox/mlx5/core/en_rep.h | 1 + include/net/devlink.h | 31 +++- include/uapi/linux/devlink.h | 11 ++ net/core/devlink.c | 135 +++++++++++++++--- 5 files changed, 233 insertions(+), 53 deletions(-) -- 2.19.2