• Parav Pandit's avatar
    devlink: Support add and delete devlink port · cd76dcd6
    Parav Pandit authored
    Extended devlink interface for the user to add and delete a port.
    Extend devlink to connect user requests to driver to add/delete
    a port in the device.
    
    Driver routines are invoked without holding devlink instance lock.
    This enables driver to perform several devlink objects registration,
    unregistration such as (port, health reporter, resource etc) by using
    existing devlink APIs.
    This also helps to uniformly use the code for port unregistration
    during driver unload and during port deletion initiated by user.
    
    Examples of add, show and delete commands:
    $ 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 pci/0000:06:00.0/32768
    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
    
    $ udevadm test-builtin net_id /sys/class/net/eth6
    Load module index
    Parsed configuration file /usr/lib/systemd/network/99-default.link
    Created link configuration context.
    Using default interface naming scheme 'v245'.
    ID_NET_NAMING_SCHEME=v245
    ID_NET_NAME_PATH=enp6s0f0npf0sf88
    ID_NET_NAME_SLOT=ens2f0npf0sf88
    Unload module index
    Unloaded link configuration context.
    Signed-off-by: default avatarParav Pandit <parav@nvidia.com>
    Reviewed-by: default avatarVu Pham <vuhuong@nvidia.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
    cd76dcd6
devlink.h 57.7 KB