• Grzegorz Nitka's avatar
    ice: set and release switchdev environment · 1a1c40df
    Grzegorz Nitka authored
    Switchdev environment has to be set up when user create VFs
    and eswitch mode is switchdev. Release is done when user
    delete all VFs.
    
    Data path in this implementation is based on control plane VSI.
    This VSI is used to pass traffic from port representors to
    corresponding VFs and vice versa. Default TX rule has to be
    added to forward packet to control plane VSI. This will redirect
    packets from VFs which don't match other rules to control plane
    VSI.
    
    On RX side default rule is added on uplink VSI to receive all
    traffic that doesn't match other rules. When setting switchdev
    environment all other rules from VFs should be removed. Packet to
    VFs will be forwarded by control plane VSI.
    
    As VF without any mac rules can't send any packet because of
    antispoof mechanism, VSI antispoof should be turned off on each VFs.
    
    To send packet from representor to correct VSI, destination VSI
    field in TX descriptor will have to be filled. Allow that by
    setting destination override bit in control plane VSI security config.
    
    Packet from VFs will be received on control plane VSI. Driver
    should decide to which netdev forward the packet. Decision is
    made based on src_vsi field from descriptor. There is a target
    netdev list in control plane VSI struct which choose netdev
    based on src_vsi number.
    Co-developed-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Signed-off-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Signed-off-by: default avatarGrzegorz Nitka <grzegorz.nitka@intel.com>
    Tested-by: default avatarSandeep Penigalapati <sandeep.penigalapati@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    1a1c40df
ice.h 22.3 KB