diff mbox series

[net,v1,1/3] ice: Fix double VLAN error when entering promisc mode

Message ID 1657199751-256188-2-git-send-email-grzegorz.siwik@intel.com
State Changes Requested
Delegated to: Anthony Nguyen
Headers show
Series ice: Fixes for double vlan promiscuous mode | expand

Commit Message

Grzegorz Siwik July 7, 2022, 1:15 p.m. UTC
Avoid enabling or disabling vlan 0 when trying to set promiscuous
vlan mode if double vlan mode is enabled. This fix is needed
because the driver tries to add the vlan 0 filter twice (once for
inner and once for outer) when double VLAN mode is enabled. The
filter program is rejected by the firmware when double vlan is
enabled, because the promiscuous filter only needs to be set once.

This issue was missed in the initial implementation of double vlan
mode.

Fixes: 5eda8afd6bcc ("ice: Add support for PF/VF promiscuous mode")
Signed-off-by: Grzegorz Siwik <grzegorz.siwik@intel.com>
Tested-by: Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>
Tested-by: Igor Raits <igor@gooddata.com>
Link:
https://lore.kernel.org/all/CAK8fFZ7m-KR57M_rYX6xZN39K89O=LGooYkKsu6HKt0Bs+x6xQ@mail.gmail.com/
---
 drivers/net/ethernet/intel/ice/ice_switch.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

G, GurucharanX July 26, 2022, 5:33 a.m. UTC | #1
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of
> Grzegorz Siwik
> Sent: Thursday, July 7, 2022 6:46 PM
> To: intel-wired-lan@lists.osuosl.org
> Cc: Siwik, Grzegorz <grzegorz.siwik@intel.com>
> Subject: [Intel-wired-lan] [PATCH net v1 1/3] ice: Fix double VLAN error
> when entering promisc mode
> 
> Avoid enabling or disabling vlan 0 when trying to set promiscuous vlan mode
> if double vlan mode is enabled. This fix is needed because the driver tries to
> add the vlan 0 filter twice (once for inner and once for outer) when double
> VLAN mode is enabled. The filter program is rejected by the firmware when
> double vlan is enabled, because the promiscuous filter only needs to be set
> once.
> 
> This issue was missed in the initial implementation of double vlan mode.
> 
> Fixes: 5eda8afd6bcc ("ice: Add support for PF/VF promiscuous mode")
> Signed-off-by: Grzegorz Siwik <grzegorz.siwik@intel.com>
> Tested-by: Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>
> Tested-by: Igor Raits <igor@gooddata.com>
> Link:
> https://lore.kernel.org/all/CAK8fFZ7m-
> KR57M_rYX6xZN39K89O=LGooYkKsu6HKt0Bs+x6xQ@mail.gmail.com/
> ---
>  drivers/net/ethernet/intel/ice/ice_switch.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 

I could still observe the issue when the ice driver has been removed from the system once after executing
creating bridge over bond and then double vlan
Petr Oros July 27, 2022, 9:53 a.m. UTC | #2
G, GurucharanX píše v Út 26. 07. 2022 v 05:33 +0000:
> 
> 
> > -----Original Message-----
> > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On
> > Behalf Of
> > Grzegorz Siwik
> > Sent: Thursday, July 7, 2022 6:46 PM
> > To: intel-wired-lan@lists.osuosl.org
> > Cc: Siwik, Grzegorz <grzegorz.siwik@intel.com>
> > Subject: [Intel-wired-lan] [PATCH net v1 1/3] ice: Fix double VLAN
> > error
> > when entering promisc mode
> > 
> > Avoid enabling or disabling vlan 0 when trying to set promiscuous
> > vlan mode
> > if double vlan mode is enabled. This fix is needed because the
> > driver tries to
> > add the vlan 0 filter twice (once for inner and once for outer)
> > when double
> > VLAN mode is enabled. The filter program is rejected by the
> > firmware when
> > double vlan is enabled, because the promiscuous filter only needs
> > to be set
> > once.
> > 
> > This issue was missed in the initial implementation of double vlan
> > mode.
> > 
> > Fixes: 5eda8afd6bcc ("ice: Add support for PF/VF promiscuous mode")
> > Signed-off-by: Grzegorz Siwik <grzegorz.siwik@intel.com>
> > Tested-by: Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>
> > Tested-by: Igor Raits <igor@gooddata.com>
> > Link:
> > https://lore.kernel.org/all/CAK8fFZ7m-
> > KR57M_rYX6xZN39K89O=LGooYkKsu6HKt0Bs+x6xQ@mail.gmail.com/
> > ---
> >  drivers/net/ethernet/intel/ice/ice_switch.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> 
> I could still observe the issue when the ice driver has been removed
> from the system once after executing
> creating bridge over bond and then double vlan

Hi,

Is it regression introduced by this patch or this fix is partial and
mentioned issue is unfixed regression from past. I asking because
promisc mode issues is very pain for us and in second case will be
(maybe) good to move this forward and mentioned issue will fix in next
patch.

Many thanks,
Petr

> _______________________________________________
> Intel-wired-lan mailing list
> Intel-wired-lan@osuosl.org
> https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
>
Grzegorz Siwik July 27, 2022, 12:51 p.m. UTC | #3
> G, GurucharanX píše v Út 26. 07. 2022 v 05:33 +0000:
> > 
> > 
> > > -----Original Message-----
> > > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf 
> > > Of Grzegorz Siwik
> > > Sent: Thursday, July 7, 2022 6:46 PM
> > > To: intel-wired-lan@lists.osuosl.org
> > > Cc: Siwik, Grzegorz <grzegorz.siwik@intel.com>
> > > Subject: [Intel-wired-lan] [PATCH net v1 1/3] ice: Fix double VLAN 
> > > error when entering promisc mode
> > > 
> > > Avoid enabling or disabling vlan 0 when trying to set promiscuous 
> > > vlan mode if double vlan mode is enabled. This fix is needed because 
> > > the driver tries to add the vlan 0 filter twice (once for inner and 
> > > once for outer) when double VLAN mode is enabled. The filter program 
> > > is rejected by the firmware when double vlan is enabled, because the 
> > > promiscuous filter only needs to be set once.
> > > 
> > > This issue was missed in the initial implementation of double vlan 
> > > mode.
> > > 
> > > Fixes: 5eda8afd6bcc ("ice: Add support for PF/VF promiscuous mode")
> > > Signed-off-by: Grzegorz Siwik <grzegorz.siwik@intel.com>
> > > Tested-by: Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>
> > > Tested-by: Igor Raits <igor@gooddata.com>
> > > Link:
> > > https://lore.kernel.org/all/CAK8fFZ7m-
> > > KR57M_rYX6xZN39K89O=LGooYkKsu6HKt0Bs+x6xQ@mail.gmail.com/
> > > ---
> > >  drivers/net/ethernet/intel/ice/ice_switch.c | 7 +++++++
> > >  1 file changed, 7 insertions(+)
> > > 
> > 
> > I could still observe the issue when the ice driver has been removed 
> > from the system once after executing creating bridge over bond and 
> > then double vlan
> 
> Hi,
> 
> Is it regression introduced by this patch or this fix is partial and mentioned issue is unfixed regression from past. I asking because promisc mode issues is very pain for us and in second case will be
> (maybe) good to move this forward and mentioned issue will fix in next patch.
> 
> Many thanks,
> Petr
Hi,
We are currently investigating what is wrong with that - it is possible that i have something missed in upstreaming one of these patches. 
We let know when we find what is wrong.

Best Regards,
Grzegorz

> > _______________________________________________
> > Intel-wired-lan mailing list
> > Intel-wired-lan@osuosl.org
> > https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
Grzegorz Siwik July 29, 2022, 1:06 p.m. UTC | #4
> > G, GurucharanX píše v Út 26. 07. 2022 v 05:33 +0000:
> > > 
> > > 
> > > > -----Original Message-----
> > > > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On 
> > > > Behalf Of Grzegorz Siwik
> > > > Sent: Thursday, July 7, 2022 6:46 PM
> > > > To: intel-wired-lan@lists.osuosl.org
> > > > Cc: Siwik, Grzegorz <grzegorz.siwik@intel.com>
> > > > Subject: [Intel-wired-lan] [PATCH net v1 1/3] ice: Fix double VLAN 
> > > > error when entering promisc mode
> > > > 
> > > > Avoid enabling or disabling vlan 0 when trying to set promiscuous 
> > > > vlan mode if double vlan mode is enabled. This fix is needed 
> > > > because the driver tries to add the vlan 0 filter twice (once for 
> > > > inner and once for outer) when double VLAN mode is enabled. The 
> > > > filter program is rejected by the firmware when double vlan is 
> > > > enabled, because the promiscuous filter only needs to be set once.
> > > > 
> > > > This issue was missed in the initial implementation of double vlan 
> > > > mode.
> > > > 
> > > > Fixes: 5eda8afd6bcc ("ice: Add support for PF/VF promiscuous 
> > > > mode")
> > > > Signed-off-by: Grzegorz Siwik <grzegorz.siwik@intel.com>
> > > > Tested-by: Jaroslav Pulchart <jaroslav.pulchart@gooddata.com>
> > > > Tested-by: Igor Raits <igor@gooddata.com>
> > > > Link:
> > > > https://lore.kernel.org/all/CAK8fFZ7m-
> > > > KR57M_rYX6xZN39K89O=LGooYkKsu6HKt0Bs+x6xQ@mail.gmail.com/
> > > > ---
> > > >  drivers/net/ethernet/intel/ice/ice_switch.c | 7 +++++++
> > > >  1 file changed, 7 insertions(+)
> > > > 
> > > 
> > > I could still observe the issue when the ice driver has been removed 
> > > from the system once after executing creating bridge over bond and 
> > > then double vlan
> > 
> > Hi,
> > 
> > Is it regression introduced by this patch or this fix is partial and 
> > mentioned issue is unfixed regression from past. I asking because 
> > promisc mode issues is very pain for us and in second case will be
> > (maybe) good to move this forward and mentioned issue will fix in next patch.
> > 
> > Many thanks,
> > Petr
> Hi,
> We are currently investigating what is wrong with that - it is possible that i have something missed in upstreaming one of these patches. 
> We let know when we find what is wrong.
> 
> Best Regards,
> Grzegorz
Hi Guys,

We found what is wrong - we have not backported one of the patch from RedHat - so i didn't know that this problem could exist.
Soon we will send fix for reported issues.

Best Regards,
Grzegorz
> > > _______________________________________________
> > > Intel-wired-lan mailing list
> > > Intel-wired-lan@osuosl.org
> > > https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/intel/ice/ice_switch.c b/drivers/net/ethernet/intel/ice/ice_switch.c
index 8d8f3ee..8a60052 100644
--- a/drivers/net/ethernet/intel/ice/ice_switch.c
+++ b/drivers/net/ethernet/intel/ice/ice_switch.c
@@ -4414,6 +4414,13 @@  static u8 ice_determine_promisc_mask(struct ice_fltr_info *fi)
 		goto free_fltr_list;
 
 	list_for_each_entry(list_itr, &vsi_list_head, list_entry) {
+		/* Avoid enabling or disabling vlan zero twice when in double
+		 * vlan mode
+		 */
+		if (ice_is_dvm_ena(hw) &&
+		    list_itr->fltr_info.l_data.vlan.tpid == 0)
+			continue;
+
 		vlan_id = list_itr->fltr_info.l_data.vlan.vlan_id;
 		if (rm_vlan_promisc)
 			status = ice_clear_vsi_promisc(hw, vsi_handle,