From: Vladimir Oltean <vladimir.olt...@nxp.com> This is my second stab at creating a list of unicast and multicast addresses that the DSA CPU port must trap. I am reusing a lot of Tobias's work which he submitted here: https://patchwork.kernel.org/project/netdevbpf/cover/20210116012515.3152-1-tob...@waldekranz.com/
I did not yet have the guts to disable flooding towards the CPU port, but if feedback for the approach taken here is positive, that will be next. Tobias Waldekranz (6): net: bridge: switchdev: refactor br_switchdev_fdb_notify net: bridge: switchdev: include local flag in FDB notifications net: bridge: switchdev: send FDB notifications for host addresses net: dsa: include bridge addresses which are local in the host fdb list net: dsa: sync static FDB entries on foreign interfaces to hardware net: dsa: mv88e6xxx: Request assisted learning on CPU port Vladimir Oltean (11): net: dsa: reference count the host mdb addresses net: dsa: reference count the host fdb addresses net: dsa: install the host MDB and FDB entries in the master's RX filter net: dsa: install the port MAC addresses as host fdb entries net: bridge: implement unicast filtering for the bridge device net: dsa: add addresses obtained from RX filtering to host addresses net: dsa: include fdb entries pointing to bridge in the host fdb list net: dsa: replay port and host-joined mdb entries when joining the bridge net: dsa: replay port and local fdb entries when joining the bridge net: bridge: switchdev: let drivers inform which bridge ports are offloaded net: bridge: offloaded ports are always promiscuous drivers/net/dsa/mv88e6xxx/chip.c | 1 + .../marvell/prestera/prestera_switchdev.c | 4 +- .../mellanox/mlxsw/spectrum_switchdev.c | 7 +- drivers/net/ethernet/mscc/ocelot_net.c | 43 +- drivers/net/ethernet/rocker/rocker_main.c | 4 +- drivers/net/ethernet/rocker/rocker_ofdpa.c | 2 + drivers/net/ethernet/ti/am65-cpsw-nuss.c | 2 + drivers/net/ethernet/ti/am65-cpsw-switchdev.c | 4 +- drivers/net/ethernet/ti/cpsw_new.c | 1 + drivers/net/ethernet/ti/cpsw_switchdev.c | 4 +- drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 6 +- include/linux/if_bridge.h | 18 + include/net/dsa.h | 35 ++ include/net/switchdev.h | 19 + net/bridge/br.c | 8 +- net/bridge/br_device.c | 23 +- net/bridge/br_fdb.c | 57 +- net/bridge/br_if.c | 19 +- net/bridge/br_mdb.c | 117 ++++ net/bridge/br_private.h | 14 +- net/bridge/br_switchdev.c | 74 +-- net/dsa/dsa2.c | 30 +- net/dsa/dsa_priv.h | 23 +- net/dsa/port.c | 51 ++ net/dsa/slave.c | 589 ++++++++++++++---- net/dsa/switch.c | 123 +++- net/switchdev/switchdev.c | 18 + 27 files changed, 1047 insertions(+), 249 deletions(-) -- 2.25.1