net/ice: fix VLAN filter with PF
authorAlvin Zhang <alvinx.zhang@intel.com>
Fri, 19 Feb 2021 05:13:46 +0000 (13:13 +0800)
committerQi Zhang <qi.z.zhang@intel.com>
Fri, 5 Mar 2021 08:10:28 +0000 (09:10 +0100)
The macro flag DEV_RX_OFFLOAD_VLAN_FILTER is used to enable/disable
Rx VLAN filter, but not Tx VLAN filter. Therefore, Tx VLAN filter
should not be enabled/disabled in function ice_vsi_config_vlan_filter
called after checking DEV_RX_OFFLOAD_VLAN_FILTER flag.

In addition, the kernel driver doesn't enable/disable the TX VLAN
filter in the similar function ice_cfg_vlan_pruning.

This patch removes the setting about the TX VLAN filter in function
ice_vsi_config_vlan_filter.

Fixes: e0dcf94a0d7f ("net/ice: support VLAN ops")
Cc: stable@dpdk.org
Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
Tested-by: Zhimin Huang <zhiminx.huang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ice/ice_ethdev.c

index dfd99ac..8999d44 100644 (file)
@@ -4011,20 +4011,16 @@ ice_vsi_config_vlan_filter(struct ice_vsi *vsi, bool on)
 {
        struct ice_hw *hw = ICE_VSI_TO_HW(vsi);
        struct ice_vsi_ctx ctxt;
-       uint8_t sec_flags, sw_flags2;
+       uint8_t sw_flags2;
        int ret = 0;
 
-       sec_flags = ICE_AQ_VSI_SEC_TX_VLAN_PRUNE_ENA <<
-                   ICE_AQ_VSI_SEC_TX_PRUNE_ENA_S;
        sw_flags2 = ICE_AQ_VSI_SW_FLAG_RX_VLAN_PRUNE_ENA;
 
-       if (on) {
-               vsi->info.sec_flags |= sec_flags;
+       if (on)
                vsi->info.sw_flags2 |= sw_flags2;
-       } else {
-               vsi->info.sec_flags &= ~sec_flags;
+       else
                vsi->info.sw_flags2 &= ~sw_flags2;
-       }
+
        vsi->info.sw_id = hw->port_info->sw_id;
        (void)rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info));
        ctxt.info.valid_sections =