mbox series

[net,v2,0/5] net: dsa: b53: Various ARL fixes

Message ID 20200421032655.5537-1-f.fainelli@gmail.com
Headers show
Series net: dsa: b53: Various ARL fixes | expand

Message

Florian Fainelli April 21, 2020, 3:26 a.m. UTC
Hi David, Andrew, Vivien, Jakub,

This patch series fixes a number of short comings in the existing b53
driver ARL management logic in particular:

- we were not looking up the {MAC,VID} tuples against their VID, despite
  having VLANs enabled

- the MDB entries (multicast) would lose their validity as soon as a
  single port in the vector would leave the entry

- the ARL was currently under utilized because we would always place new
  entries in bin index #1, instead of using all possible bins available,
  thus reducing the ARL effective size by 50% or 75% depending on the
  switch generation

- it was possible to overwrite the ARL entries because no proper space
  verification was done

This patch series addresses all of these issues.

Changes in v2:
- added a new patch to correctly flip invidual VLAN learning vs. shared
  VLAN learning depending on the global VLAN state

- added Andrew's R-b tags for patches which did not change

- corrected some verbosity and minor issues in patch #4 to match caller
  expectations, also avoid a variable length DECLARE_BITMAP() call

Florian Fainelli (5):
  net: dsa: b53: Lookup VID in ARL searches when VLAN is enabled
  net: dsa: b53: Fix valid setting for MDB entries
  net: dsa: b53: Fix ARL register definitions
  net: dsa: b53: Rework ARL bin logic
  net: dsa: b53: b53_arl_rw_op() needs to select IVL or SVL

 drivers/net/dsa/b53/b53_common.c | 38 +++++++++++++++++++++++++++-----
 drivers/net/dsa/b53/b53_regs.h   |  8 +++++--
 2 files changed, 39 insertions(+), 7 deletions(-)

Comments

David Miller April 22, 2020, 7:53 p.m. UTC | #1
From: Florian Fainelli <f.fainelli@gmail.com>
Date: Mon, 20 Apr 2020 20:26:50 -0700

> Hi David, Andrew, Vivien, Jakub,
> 
> This patch series fixes a number of short comings in the existing b53
> driver ARL management logic in particular:
> 
> - we were not looking up the {MAC,VID} tuples against their VID, despite
>   having VLANs enabled
> 
> - the MDB entries (multicast) would lose their validity as soon as a
>   single port in the vector would leave the entry
> 
> - the ARL was currently under utilized because we would always place new
>   entries in bin index #1, instead of using all possible bins available,
>   thus reducing the ARL effective size by 50% or 75% depending on the
>   switch generation
> 
> - it was possible to overwrite the ARL entries because no proper space
>   verification was done
> 
> This patch series addresses all of these issues.
> 
> Changes in v2:
> - added a new patch to correctly flip invidual VLAN learning vs. shared
>   VLAN learning depending on the global VLAN state
> 
> - added Andrew's R-b tags for patches which did not change
> 
> - corrected some verbosity and minor issues in patch #4 to match caller
>   expectations, also avoid a variable length DECLARE_BITMAP() call

Series applied and queued up for -stable, thanks.