• M
    ice: support basic E-Switch mode control · 3ea9bd5d
    Michal Swiatkowski 提交于
    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: NGrzegorz Nitka <grzegorz.nitka@intel.com>
    Signed-off-by: NGrzegorz Nitka <grzegorz.nitka@intel.com>
    Signed-off-by: NMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Tested-by: NSandeep Penigalapati <sandeep.penigalapati@intel.com>
    Signed-off-by: NTony Nguyen <anthony.l.nguyen@intel.com>
    3ea9bd5d
Kconfig 11.4 KB