From: Wei Fang <[email protected]>

This series adds bridge mode support to the NETC DSA switch driver,
covering both VLAN-aware and VLAN-unaware operation.

The NETC switch manages forwarding through a set of hardware tables
accessed via NTMP: the FDB table (FDBT), VLAN filter table (VFT), egress
treatment table (ETT), and egress count table (ECT).  The series extends
the NTMP layer with the operations required for bridging, then builds the
DSA bridge callbacks on top.

Since all switch ports share the VFT, so only one VLAN-aware bridge is
supported.

FDB aging is managed in software.  A periodic delayed work sweeps the
table using the hardware activity element mechanism, with a default aging
time of 300 seconds matching the IEEE 802.1Q standard.  Per-port entries
are also flushed immediately on bridge leave and link-down events.

---
v2:
1. Remove ntmp_fdbt_delete_entry_by_keye()
2. Add settings for cfge.cfg and cfge_mc in
   ntmp_fdbt_update_activity_element()
3. Remove the wrong comment from ntmp_fdbt_delete_aging_entries()
4. Correct the description of ntmp_fdbt_delete_port_dynamic_entries()
5. Add generic function ntmp_vft_set_entry(), which is called by
   ntmp_vft_add_entry() and ntmp_vft_update_entry()
6. ntmp_ett_add_or_update_entry() is split into ntmp_ett_add_entry() and
   ntmp_ett_update_entry(), and add generic function ntmp_ett_set_entry()
7. netc_add_or_update_ett_entry() is split into netc_add_ett_entry() and
   netc_update_ett_entry()
8. Remove "entry->untagged_port_bitmap &= ~BIT(port)" from
   netc_port_del_vlan_entry()
9. Add pvid check in netc_port_vlan_filtering()
10. Improve the comment in netc_vlan_unaware_pvid()
11. Change the error code in netc_single_vlan_aware_bridge() and
    netc_port_vlan_add()
12. Add comments in netc_port_vlan_del()
13. Add ageing_time_min and ageing_time_max, and refactor
    netc_set_ageing_time()
14. Remove fdbt_acteu_interval from struct netc_switch
15. Update some commit messages
v1 link: 
https://lore.kernel.org/netdev/[email protected]/
---

Wei Fang (9):
  net: enetc: add interfaces to manage dynamic FDB entries
  net: enetc: add "Update" and "Delete" operations to VLAN filter table
  net: enetc: add interfaces to manage egress treatment table
  net: enetc: add "Update" operation to the egress count table
  net: dsa: netc: initialize the group bitmap of ETT and ECT
  net: enetc: add helpers to set/clear table bitmap
  net: dsa: netc: add VLAN filter table and egress treatment management
  net: dsa: netc: add bridge mode support
  net: dsa: netc: implement dynamic FDB entry ageing

 drivers/net/dsa/netc/netc_main.c              | 918 +++++++++++++++++-
 drivers/net/dsa/netc/netc_switch.h            |  33 +
 drivers/net/dsa/netc/netc_switch_hw.h         |   6 +
 drivers/net/ethernet/freescale/enetc/ntmp.c   | 440 ++++++++-
 .../ethernet/freescale/enetc/ntmp_private.h   |  18 +-
 include/linux/fsl/ntmp.h                      |  60 ++
 6 files changed, 1454 insertions(+), 21 deletions(-)

-- 
2.34.1


Reply via email to