linux/net/dsa
Vladimir Oltean d371b7c92d net: dsa: Unset vlan_filtering when ports leave the bridge
When ports are standalone (after they left the bridge), they should have
no VLAN filtering semantics (they should pass all traffic to the CPU).
Currently this is not true for switchdev drivers, because the bridge
"forgets" to unset that.

Normally one would think that doing this at the bridge layer would be a
better idea, i.e. call br_vlan_filter_toggle() from br_del_if(), similar
to how nbp_vlan_init() is called from br_add_if().

However what complicates that approach, and makes this one preferable,
is the fact that for the bridge core, vlan_filtering is a per-bridge
setting, whereas for switchdev/DSA it is per-port. Also there are
switches where the setting is per the entire device, and unsetting
vlan_filtering one by one, for each leaving port, would not be possible
from the bridge core without a certain level of awareness. So do this in
DSA and let drivers be unaware of it.

Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-04-30 23:05:28 -04:00
..
dsa2.c dsa: Add stub tag driver put method 2019-04-28 19:41:01 -04:00
dsa_priv.h dsa: Cleanup unneeded table and make tag structures static 2019-04-28 19:41:01 -04:00
dsa.c dsa: Cleanup unneeded table and make tag structures static 2019-04-28 19:41:01 -04:00
Kconfig dsa: Allow tag drivers to be built as modules 2019-04-28 19:41:01 -04:00
legacy.c dsa: Add stub tag driver put method 2019-04-28 19:41:01 -04:00
Makefile dsa: Allow tag drivers to be built as modules 2019-04-28 19:41:01 -04:00
master.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-02-08 15:00:17 -08:00
port.c net: dsa: Be aware of switches where VLAN filtering is a global setting 2019-04-30 23:05:28 -04:00
slave.c dsa: pass switch ID through devlink_port_attrs_set() 2019-04-04 17:42:36 -07:00
switch.c net: dsa: Unset vlan_filtering when ports leave the bridge 2019-04-30 23:05:28 -04:00
tag_brcm.c dsa: tag_brcm: Avoid unused symbols 2019-04-28 19:41:01 -04:00
tag_dsa.c dsa: Cleanup unneeded table and make tag structures static 2019-04-28 19:41:01 -04:00
tag_edsa.c dsa: Cleanup unneeded table and make tag structures static 2019-04-28 19:41:01 -04:00
tag_gswip.c dsa: Cleanup unneeded table and make tag structures static 2019-04-28 19:41:01 -04:00
tag_ksz.c dsa: Cleanup unneeded table and make tag structures static 2019-04-28 19:41:01 -04:00
tag_lan9303.c dsa: Cleanup unneeded table and make tag structures static 2019-04-28 19:41:01 -04:00
tag_mtk.c dsa: Cleanup unneeded table and make tag structures static 2019-04-28 19:41:01 -04:00
tag_qca.c dsa: Cleanup unneeded table and make tag structures static 2019-04-28 19:41:01 -04:00
tag_trailer.c dsa: Cleanup unneeded table and make tag structures static 2019-04-28 19:41:01 -04:00