Merge tag 'mlx5-updates-2021-04-21' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
Saeed Mahameed says:
====================
mlx5-updates-2021-04-21
devlink external port attribute for SF (Sub-Function) port flavour
This adds the support to instantiate Sub-Functions on external hosts
E.g when Eswitch manager is enabled on the ARM SmarNic SoC CPU, users
are now able to spawn new Sub-Functions on the Host server CPU.
Parav Pandit Says:
==================
This series introduces and uses external attribute for the SF port to
indicate that a SF port belongs to an external controller.
This is needed to generate unique phys_port_name when PF and SF numbers
are overlapping between local and external controllers.
For example two controllers 0 and 1, both of these controller have a SF.
having PF number 0, SF number 77. Here, phys_port_name has duplicate
entry which doesn't have controller number in it.
Hence, add controller number optionally when a SF port is for an
external controller. This extension is similar to existing PF and VF
eswitch ports of the external controller.
When a SF is for external controller an example view of external SF
port and config sequence:
On eswitch system:
$ devlink dev eswitch set pci/0033:01:00.0 mode switchdev
$ devlink port show
pci/0033:01:00.0/196607: type eth netdev enP51p1s0f0np0 flavour physical port 0 splittable false
pci/0033:01:00.0/131072: type eth netdev eth0 flavour pcipf controller 1 pfnum 0 external true splittable false
function:
hw_addr 00:00:00:00:00:00
$ devlink port add pci/0033:01:00.0 flavour pcisf pfnum 0 sfnum 77 controller 1
pci/0033:01:00.0/163840: type eth netdev eth1 flavour pcisf controller 1 pfnum 0 sfnum 77 splittable false
function:
hw_addr 00:00:00:00:00:00 state inactive opstate detached
phys_port_name construction:
$ cat /sys/class/net/eth1/phys_port_name
c1pf0sf77
Patch summary:
First 3 patches prepares the eswitch to handle vports in more generic
way using xarray to lookup vport from its unique vport number.
Patch-1 returns maximum eswitch ports only when eswitch is enabled
Patch-2 prepares eswitch to return eswitch max ports from a struct
Patch-3 uses xarray for vport and representor lookup
Patch-4 considers SF for an additioanl range of SF vports
Patch-5 relies on SF hw table to check SF support
Patch-6 extends SF devlink port attribute for external flag
Patch-7 stores the per controller SF allocation attributes
Patch-8 uses SF function id for filtering events
Patch-9 uses helper for allocation and free
Patch-10 splits hw table into per controller table and generic one
Patch-11 extends sf table for additional range
==================
====================
Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c 1 addition, 1 deletion...ers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c
- drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_ofld.c 2 additions, 2 deletions...ers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_ofld.c
- drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c 4 additions, 4 deletionsdrivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c
- drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.h 1 addition, 1 deletiondrivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.h
- drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c 1 addition, 1 deletion...rs/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c
- drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c 2 additions, 2 deletions...rs/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_ofld.c
- drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c 3 additions, 4 deletionsdrivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c
- drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c 2 additions, 1 deletiondrivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
- drivers/net/ethernet/mellanox/mlx5/core/eswitch.c 224 additions, 52 deletionsdrivers/net/ethernet/mellanox/mlx5/core/eswitch.c
- drivers/net/ethernet/mellanox/mlx5/core/eswitch.h 37 additions, 156 deletionsdrivers/net/ethernet/mellanox/mlx5/core/eswitch.h
- drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c 196 additions, 97 deletionsdrivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
- drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c 11 additions, 1 deletiondrivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c
- drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c 21 additions, 17 deletionsdrivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c
- drivers/net/ethernet/mellanox/mlx5/core/sf/hw_table.c 191 additions, 65 deletionsdrivers/net/ethernet/mellanox/mlx5/core/sf/hw_table.c
- drivers/net/ethernet/mellanox/mlx5/core/sf/priv.h 5 additions, 4 deletionsdrivers/net/ethernet/mellanox/mlx5/core/sf/priv.h
- drivers/net/ethernet/mellanox/mlx5/core/vport.c 0 additions, 14 deletionsdrivers/net/ethernet/mellanox/mlx5/core/vport.c
- include/linux/mlx5/eswitch.h 9 additions, 2 deletionsinclude/linux/mlx5/eswitch.h
- include/linux/mlx5/vport.h 0 additions, 8 deletionsinclude/linux/mlx5/vport.h
- include/net/devlink.h 4 additions, 1 deletioninclude/net/devlink.h
- net/core/devlink.c 10 additions, 1 deletionnet/core/devlink.c
Please register or sign in to comment