On Sun, 25 Aug 2019 at 20:25, Vivien Didelot <vivien.dide...@gmail.com> wrote:
>
> When a VLAN is programmed on a user port, every switch of the fabric also
> program the CPU ports and the DSA links as part of the VLAN. To do that,
> DSA makes use of bitmaps to prepare all members of a VLAN.
>
> While this is expected for DSA links which are used as conduit between
> interconnected switches, only the dedicated CPU port of the slave must be
> programmed, not all CPU ports of the fabric. This may also cause problems in
> other corners of DSA such as the tag_8021q.c driver, which needs to program
> its ports manually, CPU port included.
>
> We need the dsa_port_vlan_{add,del} functions and its dsa_port_vid_{add,del}
> variants to simply trigger the VLAN programmation without any logic in them,
> but they may currently skip the operation based on the bridge device state.
>
> This patchset gets rid of the bitmap operations, and moves the bridge device
> check as well as the explicit programmation of CPU ports where they belong,
> in the slave code.
>
> While at it, clear the VLAN flags before programming a CPU port, as it
> doesn't make sense to forward the PVID flag for example for such ports.
>
> Changes in v2: only clear the PVID flag.
>
> Vivien Didelot (6):
>   net: dsa: remove bitmap operations
>   net: dsa: do not skip -EOPNOTSUPP in dsa_port_vid_add
>   net: dsa: add slave VLAN helpers
>   net: dsa: check bridge VLAN in slave operations
>   net: dsa: program VLAN on CPU port from slave
>   net: dsa: clear VLAN PVID flag for CPU port
>
>  include/net/dsa.h |   3 --
>  net/dsa/dsa2.c    |  14 -----
>  net/dsa/port.c    |  14 ++---
>  net/dsa/slave.c   |  79 +++++++++++++++++++++++----
>  net/dsa/switch.c  | 135 +++++++++++++++++++++-------------------------
>  5 files changed, 136 insertions(+), 109 deletions(-)
>
> --
> 2.23.0
>

For the whole series:
Tested-by: Vladimir Oltean <olte...@gmail.com>
Thanks!

Reply via email to