• Brett Creeley's avatar
    ice: Add support for VIRTCHNL_VF_OFFLOAD_VLAN_V2 · cc71de8f
    Brett Creeley authored
    Add support for the VF driver to be able to request
    VIRTCHNL_VF_OFFLOAD_VLAN_V2, negotiate its VLAN capabilities via
    VIRTCHNL_OP_GET_OFFLOAD_VLAN_V2_CAPS, add/delete VLAN filters, and
    enable/disable VLAN offloads.
    
    VFs supporting VIRTCHNL_OFFLOAD_VLAN_V2 will be able to use the
    following virtchnl opcodes:
    
    VIRTCHNL_OP_GET_OFFLOAD_VLAN_V2_CAPS
    VIRTCHNL_OP_ADD_VLAN_V2
    VIRTCHNL_OP_DEL_VLAN_V2
    VIRTCHNL_OP_ENABLE_VLAN_STRIPPING_V2
    VIRTCHNL_OP_DISABLE_VLAN_STRIPPING_V2
    VIRTCHNL_OP_ENABLE_VLAN_INSERTION_V2
    VIRTCHNL_OP_DISABLE_VLAN_INSERTION_V2
    
    Legacy VF drivers may expect the initial VLAN stripping settings to be
    configured by the PF, so the PF initializes VLAN stripping based on the
    VIRTCHNL_OP_GET_VF_RESOURCES opcode. However, with VLAN support via
    VIRTCHNL_VF_OFFLOAD_VLAN_V2, this function is only expected to be used
    for VFs that only support VIRTCHNL_VF_OFFLOAD_VLAN, which will only
    be supported when a port VLAN is configured. Update the function
    based on the new expectations. Also, change the message when the PF
    can't enable/disable VLAN stripping to a dev_dbg() as this isn't fatal.
    
    When a VF isn't in a port VLAN and it only supports
    VIRTCHNL_VF_OFFLOAD_VLAN when Double VLAN Mode (DVM) is enabled, then
    the PF needs to reject the VIRTCHNL_VF_OFFLOAD_VLAN capability and
    configure the VF in software only VLAN mode. To do this add the new
    function ice_vf_vsi_cfg_legacy_vlan_mode(), which updates the VF's
    inner and outer ice_vsi_vlan_ops functions and sets up software only
    VLAN mode.
    Signed-off-by: default avatarBrett Creeley <brett.creeley@intel.com>
    Tested-by: default avatarKonrad Jankowski <konrad0.jankowski@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    cc71de8f
ice_base.c 28.2 KB