[Intel-wired-lan] [PATCH net v2 2/2] ixgbe: fix unexpected VLAN Rx in promisc mode on VF

Jankowski, Konrad0 konrad0.jankowski at intel.com
Mon Jun 6 11:45:09 UTC 2022



> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces at osuosl.org> On Behalf Of
> Olivier Matz
> Sent: Wednesday, April 6, 2022 11:53 AM
> To: netdev at vger.kernel.org
> Cc: Paul Menzel <pmenzel at molgen.mpg.de>; intel-wired-lan at osuosl.org;
> stable at vger.kernel.org; Jakub Kicinski <kuba at kernel.org>; Nicolas Dichtel
> <nicolas.dichtel at 6wind.com>; Paolo Abeni <pabeni at redhat.com>; David S .
> Miller <davem at davemloft.net>
> Subject: [Intel-wired-lan] [PATCH net v2 2/2] ixgbe: fix unexpected VLAN Rx in
> promisc mode on VF
> 
> When the promiscuous mode is enabled on a VF, the IXGBE_VMOLR_VPE bit
> (VLAN Promiscuous Enable) is set. This means that the VF will receive
> packets whose VLAN is not the same than the VLAN of the VF.
> 
> For instance, in this situation:
> 
> ┌────────┐    ┌────────┐    ┌────────┐
> │        │    │        │    │        │
> │        │    │        │    │        │
> │     VF0├────┤VF1  VF2├────┤VF3     │
> │        │    │        │    │        │
> └────────┘    └────────┘    └────────┘
>    VM1           VM2           VM3
> 
> vf 0:  vlan 1000
> vf 1:  vlan 1000
> vf 2:  vlan 1001
> vf 3:  vlan 1001
> 
> If we tcpdump on VF3, we see all the packets, even those transmitted on
> vlan 1000.
> 
> This behavior prevents to bridge VF1 and VF2 in VM2, because it will create a
> loop: packets transmitted on VF1 will be received by VF2 and vice-versa, and
> bridged again through the software bridge.
> 
> This patch remove the activation of VLAN Promiscuous when a VF enables
> the promiscuous mode. However, the IXGBE_VMOLR_UPE bit (Unicast
> Promiscuous) is kept, so that a VF receives all packets that has the same
> VLAN, whatever the destination MAC address.
> 
> Fixes: 8443c1a4b192 ("ixgbe, ixgbevf: Add new mbox API xcast mode")
> Cc: stable at vger.kernel.org
> Cc: Nicolas Dichtel <nicolas.dichtel at 6wind.com>
> Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
> index 8d108a78941b..d4e63f0644c3 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
> @@ -1208,9 +1208,9 @@ static int ixgbe_update_vf_xcast_mode(struct

Tested-by: Konrad Jankowski <konrad0.jankowski at intel.com>


More information about the Intel-wired-lan mailing list