• Parav Pandit's avatar
    devlink: Support get and set state of port function · a556dded
    Parav Pandit authored
    devlink port function can be in active or inactive state.
    Allow users to get and set port function's state.
    
    When the port function it activated, its operational state may change
    after a while when the device is created and driver binds to it.
    Similarly on deactivation flow.
    
    To clearly describe the state of the port function and its device's
    operational state in the host system, define state and opstate
    attributes.
    
    Example of a PCI SF port which supports a port function:
    
    $ 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 pci/0000:06:00.0/32768
    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 pci/0000:06:00.0/32768 -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"
                }
            }
        }
    }
    Signed-off-by: default avatarParav Pandit <parav@nvidia.com>
    Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
    Reviewed-by: default avatarVu Pham <vuhuong@nvidia.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
    a556dded
devlink.c 273 KB