linux/drivers/net
Parav Pandit 6a32732174 net/mlx5: SF, Port function state change support
Support changing the state of the SF port's function through devlink.
When activating the SF port's function, enable the hca in the device
followed by adding its auxiliary device.
When deactivating the SF port's function, delete its auxiliary device
followed by disabling the vHCA.

Port function attributes get/set callbacks are invoked with devlink
instance lock held. Such callbacks need to synchronize with sf port
table getting disabled either via sriov sysfs callback. Such callbacks
synchronize with table disable context holding table refcount.

$ devlink dev eswitch set pci/0000:06:00.0 mode switchdev

$ devlink port show
pci/0000:06:00.0/65535: type eth netdev ens2f0np0 flavour physical port 0 splittable false

$ devlink port add pci/0000:06:00.0 flavour pcisf pfnum 0 sfnum 88
pci/0000:06:00.0/32768: type eth netdev eth6 flavour pcisf controller 0 pfnum 0 sfnum 88 external false splittable false
  function:
    hw_addr 00:00:00:00:00:00 state inactive opstate detached

$ devlink port show ens2f0npf0sf88
pci/0000:06:00.0/32768: type eth netdev ens2f0npf0sf88 flavour pcisf controller 0 pfnum 0 sfnum 88 external false splittable false
  function:
    hw_addr 00:00:00:00:88:88 state inactive opstate detached

$ devlink port function set pci/0000:06:00.0/32768 hw_addr 00:00:00:00:88:88 state active

$ devlink port show ens2f0npf0sf88 -jp
{
    "port": {
        "pci/0000:06:00.0/32768": {
            "type": "eth",
            "netdev": "ens2f0npf0sf88",
            "flavour": "pcisf",
            "controller": 0,
            "pfnum": 0,
            "sfnum": 88,
            "external": false,
            "splittable": false,
            "function": {
                "hw_addr": "00:00:00:00:88:88",
                "state": "active",
                "opstate": "attached"
            }
        }
    }
}

On port function activation, an auxiliary device is created in below
example.

$ devlink dev show
devlink dev show auxiliary/mlx5_core.sf.4

$ devlink port show auxiliary/mlx5_core.sf.4/1
auxiliary/mlx5_core.sf.4/1: type eth netdev p0sf88 flavour virtual port 0 splittable false

Signed-off-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Vu Pham <vuhuong@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2021-01-22 11:32:10 -08:00
..
appletalk
arcnet arcnet: fix macro name when DEBUG is defined 2021-01-18 20:57:43 -08:00
bonding bonding: add a vlan+srcmac tx hashing option 2021-01-19 19:30:32 -08:00
caif
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-01-14 18:34:50 -08:00
dsa net: mscc: ocelot: configure watermarks using devlink-sb 2021-01-15 20:02:35 -08:00
ethernet net/mlx5: SF, Port function state change support 2021-01-22 11:32:10 -08:00
fddi
fjes
hamradio
hippi
hyperv hv_netvsc: Add (more) validation for untrusted Hyper-V values 2021-01-18 19:47:47 -08:00
ieee802154
ipa net: ipa: allow arbitrary number of interconnects 2021-01-18 11:51:06 -08:00
ipvlan
mdio
netdevsim net: remove ndo_udp_tunnel_* callbacks 2021-01-07 12:53:29 -08:00
pcs
phy net: phy: national: remove definition of DEBUG 2021-01-18 20:03:01 -08:00
plip
ppp Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-01-14 18:34:50 -08:00
slip
team
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-01-14 18:34:50 -08:00
vmxnet3
wan Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-01-08 13:28:00 -08:00
wireguard selinux/stable-5.11 PR 20201214 2020-12-16 11:01:04 -08:00
wireless wil6210: select CONFIG_CRC32 2021-01-05 15:50:36 -08:00
xen-netback net: xen-netback: xenbus: Demote nonconformant kernel-doc headers 2021-01-16 18:13:04 -08:00
bareudp.c bareudp: add NETIF_F_FRAGLIST flag for dev features 2021-01-18 19:57:02 -08:00
dummy.c
eql.c
geneve.c geneve: add NETIF_F_FRAGLIST flag for dev features 2021-01-18 19:57:02 -08:00
gtp.c GTP: add support for flow based tunneling API 2021-01-15 20:31:49 -08:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c macvlan: remove redundant null check on data 2021-01-05 16:52:02 -08:00
macvtap.c
Makefile
mdio.c
mhi_net.c net: mhi: Add raw IP mode support 2021-01-05 15:37:29 -08:00
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c net: tap: check vlan with eth_type_vlan() method 2021-01-15 20:13:49 -08:00
thunderbolt.c USB / Thunderbolt patches for 5.11-rc1 2020-12-15 13:54:56 -08:00
tun.c net: tun: fix misspellings using codespell tool 2021-01-19 17:43:56 -08:00
veth.c net, xdp: Introduce xdp_prepare_buff utility routine 2021-01-08 13:39:24 -08:00
virtio_net.c net, xdp: Introduce xdp_prepare_buff utility routine 2021-01-08 13:39:24 -08:00
vrf.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-12-11 22:29:38 -08:00
vsockmon.c
vxlan.c vxlan: add NETIF_F_FRAGLIST flag for dev features 2021-01-18 19:57:02 -08:00
xen-netfront.c net: ethernet: ibm: ibmvnic: Fix some kernel-doc misdemeanours 2021-01-16 18:13:17 -08:00