[dpdk-dev] [PATCH] net/ice: fix VLAN filter with PF
Huang, ZhiminX
zhiminx.huang at intel.com
Fri Feb 19 10:06:27 CET 2021
Tested-by: Huang, ZhiminX <zhiminx.huang at intel.com>
Regards,
HuangZhiMin
> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Alvin Zhang
> Sent: Friday, February 19, 2021 1:14 PM
> To: Zhang, Qi Z <qi.z.zhang at intel.com>
> Cc: dev at dpdk.org; Zhang, AlvinX <alvinx.zhang at intel.com>;
> stable at dpdk.org
> Subject: [dpdk-dev] [PATCH] net/ice: fix VLAN filter with PF
>
> 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 at dpdk.org
>
> Signed-off-by: Alvin Zhang <alvinx.zhang at intel.com>
> ---
> drivers/net/ice/ice_ethdev.c | 12 ++++--------
> 1 file changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
> index dfd99ac..8999d44 100644
> --- a/drivers/net/ice/ice_ethdev.c
> +++ b/drivers/net/ice/ice_ethdev.c
> @@ -4011,20 +4011,16 @@ static int ice_macaddr_set(struct
> rte_eth_dev *dev, {
> 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 =
> --
> 1.8.3.1
More information about the dev
mailing list