Subject: [PATCH net-next 00/11] net: dsa: lantiq_gswip: clean up and improve VLAN handling

From: Daniel Golle <[email-masked]>
Date: Wed, 15 Oct 2025 23:31:51 +0100

Hi all,

This series was developed by Vladimir Oltean to improve and clean up the
VLAN handling logic in the Lantiq GSWIP DSA driver.

As Vladimir currently doesn't have the availability to take care of the
submission process, we agreed that I would send the patches on his
behalf.

The series focuses on consolidating the VLAN management paths for both
VLAN-unaware and VLAN-aware bridges, simplifying internal logic, and
removing legacy or redundant code. It also fixes a number of subtle
inconsistencies regarding VLAN ID 0 handling, bridge FDB entries, and
brings the driver into shape to permit dynamic changes to the VLAN
filtering state.

Notable changes include:

 - Support for bridge FDB entries on the CPU port

 - Consolidation of gswip_vlan_add_unaware() and gswip_vlan_add_aware()
   into a unified implementation

 - Removal of legacy VLAN configuration options and redundant
   assignments

 - Improved handling of VLAN ID 0 and PVID behavior

 - Better validation and error reporting in VLAN removal paths

 - Support for dynamic VLAN filtering configuration changes

Overall, this refactor improves readability and maintainability of the
Lantiq GSWIP DSA driver. It also results in all local-termination.sh
tests now passing, and slightly improves the results of
bridge-vlan-{un,}aware.sh.

All patches have been authored by Vladimir Oltean; a small unintended
functional change in patch "net: dsa: lantiq_gswip: merge
gswip_vlan_add_unaware() and gswip_vlan_add_aware()" has been ironed out
and some of the commit descriptions were improved by me, apart from that
I'm only handling the submission and will help with follow-up
discussions or review feedback as needed.

Despite the fact that some changes here do actually fix things (in the
sense that selftests which would previously FAIL now PASS) we decided
that it would be the best for this series of patches to go via net-next.
If requested some of it can still be ported to stable kernels later on.

Vladimir Oltean (11):
  net: dsa: lantiq_gswip: support bridge FDB entries on the CPU port
  net: dsa: lantiq_gswip: define VLAN ID 0 constant
  net: dsa: lantiq_gswip: remove duplicate assignment to
    vlan_mapping.val[0]
  net: dsa: lantiq_gswip: merge gswip_vlan_add_unaware() and
    gswip_vlan_add_aware()
  net: dsa: lantiq_gswip: remove legacy
    configure_vlan_while_not_filtering option
  net: dsa: lantiq_gswip: permit dynamic changes to VLAN filtering state
  net: dsa: lantiq_gswip: disallow changes to privately set up VID 0
  net: dsa: lantiq_gswip: remove vlan_aware and pvid arguments from
    gswip_vlan_remove()
  net: dsa: lantiq_gswip: put a more descriptive error print in
    gswip_vlan_remove()
  net: dsa: lantiq_gswip: drop untagged on VLAN-aware bridge ports with
    no PVID
  net: dsa: lantiq_gswip: treat VID 0 like the PVID

 drivers/net/dsa/lantiq/lantiq_gswip.c | 224 ++++++++++++--------------
 drivers/net/dsa/lantiq/lantiq_gswip.h |   7 +-
 2 files changed, 107 insertions(+), 124 deletions(-)

-- 
2.51.0