OpenWrt/LEDE Project

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bug Report
  • Category Kernel
  • Assigned To No-one
  • Operating System All
  • Severity Medium
  • Priority Very Low
  • Reported Version openwrt-21.02
  • Due in Version Undecided
  • Due Date Undecided
  • Private
Attached to Project: OpenWrt/LEDE Project
Opened by Fabian Bläse - 29.08.2021
Last edited by Hauke Mehrtens - 17.09.2021

FS#3996 - edgerouter-x DSA switch does not forward bridge-in-bridge packets correctly

If a vlan-aware bridge is configured for the build-in ethernet ports, and a vlan-interface on that bridge is then put into a different bridge (to include wifi radios for example), then frames between tagged and untagged ethernet ports of the edgerouter x are not forwarded correctly.

Example setup:

 ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐
 │eth0│ │eth1│ │eth2│ │eth3│ │eth4│
 └─┬──┘ └─┬──┘ └─┬──┘ └─┬──┘ └─┬──┘
   2      2      2      2t     2t
  ┌┴──────┴──────┴──────┴──────┴─┐   ┌─────┐   ┌─────┐
  │           bridge1            │   │wlan0│   │wlan1│
  └─────────┬───────────┬────────┘   └─┬───┘   └─┬───┘
            │ bridge1.4 │              │         │
            └────┬──────┘              │         │
                 └─────────────┐   ┌───┘         │
                             ┌─┴───┴─┐           │
                             │bridge2├───────────┘
                             └───────┘
config device 'bridge1'
	option name 'bridge1'
	option type 'bridge'

config bridge-vlan 'bridge1_2'
	option device 'bridge1'
	option vlan '2'
	list ports 'eth0:*'
	list ports 'eth1:*'
	list ports 'eth2:*'
	list ports 'eth3:t'
	list ports 'eth4:t'

config device 'bridge2'
	option name 'bridge2'
	option type 'bridge'
	list ports 'bridge1.2'

config interface 'lan'
	option proto 'static'
	option ipaddr '192.168.1.1/24'
	option device 'bridge2'

In the above configuration, frames between Ethernet port eth0 (vlan2 untagged) and port eth4 (vlan2 tagged) are not forwarded. Interestingly, the router itself is able to reach devices connected to eth0 and eth4, when pinging on the ‘bridge2’ interface.

Frames between untagged ports (e.g. eth0 and eth1) are forwarded correctly and frames between tagged ports (eg. eth3 and eth4) are forwarded correctly.

Also, tagged frames are incorrectly forwarded on untagged ports, so it is possible to reach a device connected to eth3 (tagged) on eth2 (tagged).

This issue does not appear, if the ‘bridge1.4’ interface is configured without an additional bridge, so the second bridge seems to be interfering with the hardware offloading.

Closed by  Hauke Mehrtens
17.09.2021 11:05
Reason for closing:  Fixed
Additional comments about closing:  

The patch was applied in commit:
https:/ /git.openwrt.org/c50ece58c41647880cc74c9 27d98b465cdfbdad8 https:/ /git.openwrt.org/c37a9e506c6e53c80fe37a8 eb7ac435eb966fa76

Fabian Bläse commented on 29.08.2021 20:17

I have tested this patch, and it does fix the issue, as already suspected.
Therefore, I have created a backport for kernel 5.4 and submitted a pull request: https://github.com/openwrt/openwrt/pull/4493

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing