• P
    net/mlx5: SF, Add auxiliary device support · 90d010b8
    Parav Pandit 提交于
    Introduce API to add and delete an auxiliary device for an SF.
    Each SF has its own dedicated window in the PCI BAR 2.
    
    SF device is similar to PCI PF and VF that supports multiple class of
    devices such as net, rdma and vdpa.
    
    SF device will be added or removed in subsequent patch during SF
    devlink port function state change command.
    
    A subfunction device exposes user supplied subfunction number which will
    be further used by systemd/udev to have deterministic name for its
    netdevice and rdma device.
    
    An mlx5 subfunction auxiliary device example:
    
    $ 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:08: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 ens2f0npf0sf88 hw_addr 00:00:00:00:88:88 state active
    
    On activation,
    
    $ ls -l /sys/bus/auxiliary/devices/
    mlx5_core.sf.4 -> ../../../devices/pci0000:00/0000:00:03.0/0000:06:00.0/mlx5_core.sf.4
    
    $ cat /sys/bus/auxiliary/devices/mlx5_core.sf.4/sfnum
    88
    Signed-off-by: NParav Pandit <parav@nvidia.com>
    Reviewed-by: NVu Pham <vuhuong@nvidia.com>
    Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
    90d010b8
driver.h 31.7 KB