• Michal Swiatkowski's avatar
    ice: support basic E-Switch mode control · 3ea9bd5d
    Michal Swiatkowski authored
    Write set and get eswitch mode functions used by devlink
    ops. Use new pf struct member eswitch_mode to track current
    eswitch mode in driver.
    
    Changing eswitch mode is only allowed when there are no
    VFs created.
    
    Create new file for eswitch related code.
    
    Add config flag ICE_SWITCHDEV to allow user to choose if
    switchdev support should be enabled or disabled.
    
    Use case examples:
    - show current eswitch mode ('legacy' is the default one)
    [root@localhost]# devlink dev eswitch show pci/0000:03:00.1
    pci/0000:03:00.1: mode legacy
    
    - move to 'switchdev' mode
    [root@localhost]# devlink dev eswitch set pci/0000:03:00.1 mode
    switchdev
    [root@localhost]# devlink dev eswitch show pci/0000:03:00.1
    pci/0000:03:00.1: mode switchdev
    
    - create 2 VFs
    [root@localhost]# echo 2 > /sys/class/net/ens4f1/device/sriov_numvfs
    
    - unsuccessful attempt to change eswitch mode while VFs are created
    [root@localhost]# devlink dev eswitch set pci/0000:03:00.1 mode legacy
    devlink answers: Operation not supported
    
    - destroy VFs
    [root@localhost]# echo 0 > /sys/class/net/ens4f1/device/sriov_numvfs
    
    - restore 'legacy' mode
    [root@localhost]# devlink dev eswitch set pci/0000:03:00.1 mode legacy
    [root@localhost]# devlink dev eswitch show pci/0000:03:00.1
    pci/0000:03:00.1: mode legacy
    Co-developed-by: default avatarGrzegorz Nitka <grzegorz.nitka@intel.com>
    Signed-off-by: default avatarGrzegorz Nitka <grzegorz.nitka@intel.com>
    Signed-off-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Tested-by: default avatarSandeep Penigalapati <sandeep.penigalapati@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    3ea9bd5d
ice_devlink.c 20.8 KB