linux/drivers/net/dsa
Vladimir Oltean 4d94235495 net: dsa: sja1105: offload bridge port flags to device
The chip can configure unicast flooding, broadcast flooding and learning.
Learning is per port, while flooding is per {ingress, egress} port pair
and we need to configure the same value for all possible ingress ports
towards the requested one.

While multicast flooding is not officially supported, we can hack it by
using a feature of the second generation (P/Q/R/S) devices, which is that
FDB entries are maskable, and multicast addresses always have an odd
first octet. So by putting a match-all for 00:01:00:00:00:00 addr and
00:01:00:00:00:00 mask at the end of the FDB, we make sure that it is
always checked last, and does not take precedence in front of any other
MDB. So it behaves effectively as an unknown multicast entry.

For the first generation switches, this feature is not available, so
unknown multicast will always be treated the same as unknown unicast.
So the only thing we can do is request the user to offload the settings
for these 2 flags in tandem, i.e.

ip link set swp2 type bridge_slave flood off
Error: sja1105: This chip cannot configure multicast flooding independently of unicast.
ip link set swp2 type bridge_slave flood off mcast_flood off
ip link set swp2 type bridge_slave mcast_flood on
Error: sja1105: This chip cannot configure multicast flooding independently of unicast.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-02-12 17:08:05 -08:00
..
b53 net: dsa: act as passthrough for bridge port flags 2021-02-12 17:08:04 -08:00
hirschmann net: dsa: hellcreek: Report FDB table occupancy 2021-02-01 18:28:34 -08:00
microchip Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-01-28 17:09:31 -08:00
mv88e6xxx net: dsa: act as passthrough for bridge port flags 2021-02-12 17:08:04 -08:00
ocelot net: mscc: ocelot: offload bridge port flags to device 2021-02-12 17:08:05 -08:00
qca net: dsa: set configure_vlan_while_not_filtering to true by default 2021-01-15 17:29:40 -08:00
sja1105 net: dsa: sja1105: offload bridge port flags to device 2021-02-12 17:08:05 -08:00
xrs700x net: dsa: xrs700x: add HSR offloading support 2021-02-11 13:24:45 -08:00
bcm_sf2.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-01-28 17:09:31 -08:00
bcm_sf2.h net: dsa: bcm_sf2: recalculate switch clock rate based on ports 2020-09-03 15:08:03 -07:00
bcm_sf2_cfp.c net: dsa: bcm_sf2: Check egress tagging of CFP rule with proper accessor 2021-02-04 19:08:52 -08:00
bcm_sf2_regs.h net: dsa: bcm_sf2: support BCM4908's integrated switch 2021-01-09 19:18:10 -08:00
dsa_loop.c net: dsa: Fix off by one in dsa_loop_port_vlan_add() 2021-01-20 17:10:04 -08:00
dsa_loop.h
dsa_loop_bdinfo.c
Kconfig net: dsa: add Arrow SpeedChips XRS700x driver 2021-01-15 15:37:37 -08:00
lan9303-core.c net: dsa: remove the transactional logic from MDB entries 2021-01-11 16:00:57 -08:00
lan9303.h
lan9303_i2c.c
lan9303_mdio.c
lantiq_gswip.c net: dsa: set configure_vlan_while_not_filtering to true by default 2021-01-15 17:29:40 -08:00
lantiq_pce.h
Makefile net: dsa: add Arrow SpeedChips XRS700x driver 2021-01-15 15:37:37 -08:00
mt7530.c net: dsa: mt7530: MT7530 optional GPIO support 2021-01-25 18:29:04 -08:00
mt7530.h net: dsa: mt7530: MT7530 optional GPIO support 2021-01-25 18:29:04 -08:00
mv88e6060.c
mv88e6060.h
qca8k.c net: dsa: set configure_vlan_while_not_filtering to true by default 2021-01-15 17:29:40 -08:00
qca8k.h net: dsa: qca8k: Add 802.1q VLAN support 2020-08-03 15:45:39 -07:00
realtek-smi-core.c net: dsa: rtl8366rb: Roof MTU for switch 2020-10-10 11:25:05 -07:00
realtek-smi-core.h net: dsa: remove the transactional logic from VLAN objects 2021-01-11 16:00:57 -08:00
rtl8366.c net: dsa: remove the transactional logic from VLAN objects 2021-01-11 16:00:57 -08:00
rtl8366rb.c net: dsa: rtl8366rb: standardize init jam tables 2021-01-27 20:21:20 -08:00
vitesse-vsc73xx-core.c net: dsa: vsc73xx: make the MTU configurable 2020-03-27 16:07:25 -07:00
vitesse-vsc73xx-platform.c net: dsa: vitesse-vsc73xx: Convert to plain comments to avoid kerneldoc warnings 2020-07-05 15:49:03 -07:00
vitesse-vsc73xx-spi.c net: dsa: vitesse-vsc73xx: Convert to plain comments to avoid kerneldoc warnings 2020-07-05 15:49:03 -07:00
vitesse-vsc73xx.h