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. --- v3: 1. Update the kernel doc of ntmp_fdbt_update_activity_element() 2. Remove struct ect_stse_data from ntmp.h 3. Refactor netc_vlan_unaware_pvid() 4. Refine netc_port_remove_host_flood() 5. Add bridge.num check in netc_port_bridge_join() and add an error path 6. Remove the parameter ett_eid from netc_init_ett_cfge() 7. Move the implementation of .port_fast_age() from patch 9 to patch 8 8. Refine netc_port_update_vlan_egress_rule(), reset ECT entries after updating ETT entries 9. Update commit messages of patch 8 and 9, and improve some comments v2 link: https://lore.kernel.org/imx/[email protected]/ v1 link: https://lore.kernel.org/imx/[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 | 940 +++++++++++++++++- 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 | 55 + 6 files changed, 1470 insertions(+), 22 deletions(-) -- 2.34.1
