This patchset addresses a few limitations in DSA and the bridge core that made it impossible for this sequence of commands to work:
ip link add name br0 type bridge ip link set dev swp2 master br0 echo 1 > /sys/class/net/br0/bridge/vlan_filtering Only this sequence was previously working: ip link add name br0 type bridge vlan_filtering 1 ip link set dev swp2 master br0 On SJA1105, the situation is further complicated by the fact that toggling vlan_filtering is causing a switch reset. However, the hardware state restoration logic is already there in the driver. It is a matter of the layers above which need a few fixups. Also see this discussion thread: https://www.spinics.net/lists/netdev/msg581042.html Patch 1/6 is not functionally related but also related to dsa_8021q handling of VLANs and this is a good opportunity to bring up the subject for discussion. Vladimir Oltean (6): net: dsa: tag_8021q: Future-proof the reserved fields in the custom VID net: bridge: Populate the pvid flag in br_vlan_get_info net: dsa: Delete the VID from the upstream port as well net: dsa: Don't program the VLAN as pvid on the upstream port net: dsa: Allow proper internal use of VLANs net: dsa: tag_8021q: Restore bridge pvid when enabling vlan_filtering net/bridge/br_vlan.c | 2 ++ net/dsa/port.c | 10 ++-------- net/dsa/slave.c | 8 ++++++++ net/dsa/switch.c | 25 +++++++++++++++++++++---- net/dsa/tag_8021q.c | 34 +++++++++++++++++++++++++++++++++- 5 files changed, 66 insertions(+), 13 deletions(-) -- 2.17.1