TOS 6.0 Multiple bridged, non-VLAN networks do not work with DSA
Description
We use separate bridges for lan
and guest
network, without explicit VLANs set.
Both bridges works fine on TOS based on OpenWrt 19.07, but on TOS 6 based on OpenWrt 21.02 only first (in alphabetical order) bridge is actually brought up.
So basically only br-guest-turris
is working, while br-lan
is not.
On OpenWrt 19.07, there is a warning in logs, but it works fine regardless.
/var/log/messages
IPv6: ADDRCONF(NETDEV_UP): br-guest_turris: link is not ready
mvneta f1030000.ethernet eth1: configuring for fixed/rgmii link mode
IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
mvneta f1030000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
mv88e6085 f1072004.mdio-mii:10 lan0: configuring for phy/gmii link mode
br-guest_turris: port 1(lan0) entered blocking state
br-guest_turris: port 1(lan0) entered disabled state
device lan0 entered promiscuous mode
device eth1 entered promiscuous mode
IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
mv88e6085 f1072004.mdio-mii:10 lan1: configuring for phy/gmii link mode
br-lan: port 1(lan1) entered blocking state
br-lan: port 1(lan1) entered disabled state
device lan1 entered promiscuous mode
mv88e6085 f1072004.mdio-mii:10: p1: hw VLAN 1 already used by br-guest_turris
mv88e6085 f1072004.mdio-mii:10 lan2: configuring for phy/gmii link mode
Also if some interfaces are already assigned to guest bridge on TOS 5 and user switches to TOS 6 based branches (HBL, HBD), then br-lan
won't be active after reboot, thus making router inaccessible from LAN.
Expected behavior
Both bridges are up and have their ports assigned based on /etc/config/network
.
$ brctl show
bridge name bridge id STP enabled interfaces
br-guest_turris 7fff.d858d70055b6 no lan0
br-lan 7fff.d858d70055b6 no lan4
lan2
lan3
lan1
Actual behavior
Only br-guest-turris
is up and has its ports active.
$ brctl show
bridge name bridge id STP enabled interfaces
br-lan 7fff.000000000000 no
br-guest_turris 7fff.d858d70055b6 no lan0
/var/log/messages
8021q: adding VLAN 0 to HW filter on device lan0
br-guest_turris: port 1(lan0) entered blocking state
br-guest_turris: port 1(lan0) entered disabled state
device lan0 entered promiscuous mode
device eth1 entered promiscuous mode
mv88e6085 f1072004.mdio-mii:10: p5: already a member of VLAN 1
mv88e6085 f1072004.mdio-mii:10 lan1: configuring for phy/gmii link mode
8021q: adding VLAN 0 to HW filter on device lan1
br-lan: port 1(lan1) entered blocking state
br-lan: port 1(lan1) entered disabled state
mv88e6085 f1072004.mdio-mii:10: p1: hw VLAN 1 already used by port 0 in br-guest_turris
mv88e6085 f1072004.mdio-mii:10 lan1: failed to initialize vlan filtering on this port
[and so on for lan2..lan4]
How to reproduce
Either on TOS 6.x:
- Assign at least one interface (e.g. lan0) to guest bridge.
- Then reboot or restart the network in cli.
Or on TOS 5.3.x
- Assign at least one interface (e.g. lan0) to guest bridge.
- Switch TOS to HBL/HBD
- Reboot