mbox series

[net-next,0/9] devlink: Support get,set mac address of a port function

Message ID 20200619033255.163-1-parav@mellanox.com
Headers show
Series devlink: Support get,set mac address of a port function | expand

Message

Parav Pandit June 19, 2020, 3:32 a.m. UTC
Currently, ip link set dev <pfndev> vf <vf_num> <param> <value> has
below few limitations.

1. Command is limited to set VF parameters only.
It cannot set the default MAC address for the PCI PF.

2. It can be set only on system where PCI SR-IOV capability exists.
In smartnic based system, eswitch of a NIC resides on a different
embedded cpu which has the VF and PF representors for the SR-IOV
functions of a host system in which this smartnic is plugged-in.

3. It cannot setup the function attributes of sub-function described
in detail in comprehensive RFC [1] and [2].

This series covers the first small part to let user query and set MAC
address (hardware address) of a PCI PF/VF which is represented by
devlink port pcipf, pcivf port flavours respectively.

Whenever a devlink port manages a function connected to a devlink port,
it allows to query and set its hardware address.

Driver implements necessary get/set callback functions if it supports
port function for a given port type.

Patch summary:
Patch-1 Prepares devlink port fill routines for extack
Patch-2 and 3 extended devlink interface to get/set port function
attributes, mainly hardware address to start with.

Patch-2 Extended port dump command to query port function hardware
address
Patch-3 Introduces a command to set the hardware address of a port
function

Patch-4 to 9 refactors and implement devlink callbacks in mlx5_core
driver.
Patch-4 Constify the mac address pointer in set routines
Patch-5 Introduces eswich check helper to use in devlink facing
callbacks
Patch-6 Moves port index, port number conversion routine to eswitch
header file
Patch-7 Implements port function query devlink callback
Patch-8 Refactors mac address setting routine to uniformly use
state_lock
Patch-9 Implements port function set devlink callback

[1] https://lore.kernel.org/netdev/20200519092258.GF4655@nanopsycho/
[2] https://marc.info/?l=linux-netdev&m=158555928517777&w=2

Parav Pandit (9):
  net/devlink: Prepare devlink port functions to fill extack
  net/devlink: Support querying hardware address of port function
  net/devlink: Support setting hardware address of port function
  net/mlx5: Constify mac address pointer
  net/mlx5: E-switch, Introduce and use eswitch support check helper
  net/mlx5: Move helper to eswitch layer
  net/mlx5: E-switch, Support querying port function mac address
  net/mlx5: Split mac address setting function for using state_lock
  net/mlx5: E-switch, Supporting setting devlink port function mac
    address

 .../net/ethernet/mellanox/mlx5/core/devlink.c |   2 +
 .../net/ethernet/mellanox/mlx5/core/en_rep.c  |   8 +-
 .../net/ethernet/mellanox/mlx5/core/eswitch.c | 142 ++++++++++++++++--
 .../net/ethernet/mellanox/mlx5/core/eswitch.h |  25 ++-
 .../mellanox/mlx5/core/eswitch_offloads.c     |  66 ++++----
 .../net/ethernet/mellanox/mlx5/core/vport.c   |   2 +-
 include/linux/mlx5/vport.h                    |   2 +-
 include/net/devlink.h                         |  22 +++
 include/uapi/linux/devlink.h                  |  10 ++
 net/core/devlink.c                            | 133 +++++++++++++++-
 10 files changed, 343 insertions(+), 69 deletions(-)