Describe the bug
Platform:
- Device: any device with MT7530-like switch (not the OpenWrt One which doesn't have such switch)
- SoC: MediaTek MT7981 (Filogic 820)
- Tested OpenWrt Versions:
24.10.0 - r28427-6df0e3d02a (Port eth1 entered disabled state)
24.10.1 - r28597-0425664679 (Port eth1 stays UP, but traffic fails)
Description:
When configuring bridge VLAN filtering on br-lan with the built-in LAN port (eth1) set as an untagged member of a specific VLAN (e.g., VLAN 10) using PVID, communication with the router via that port fails.
- On older snapshot
24.10.0-r28427, enabling this configuration caused the kernel to put eth1 into a disabled state (see log snippet below).
- On newer snapshot
24.10.1-r28597, the port eth1 remains UP and LOWER_UP, but untagged ingress traffic (e.g., ARP requests from a client) arriving on eth1 is not delivered to the corresponding logical VLAN interface (br-lan.10). This prevents ARP resolution and any communication with the router's IP on that VLAN interface.
- Disabling
option vlan_filtering '1' on br-lan and attaching the lan interface directly to br-lan works correctly, allowing communication.
OpenWrt version
r28597-0425664679
OpenWrt release
24.10.1
OpenWrt target/subtarget
mediatek/filogic
Device
? (original author claimed "OpenWrt One", but that was just to get our attention -- the OpenWrt One doesn't have an MT7530 switch)
Image kind
Official downloaded image
Steps to reproduce
-
Factory reset OpenWrt One running a recent snapshot (e.g., 24.10.1).
-
Configure /etc/config/network similar to the following relevant sections:
config device 'br_lan'
option type 'bridge'
option name 'br-lan'
list ports 'eth1'
option vlan_filtering '1'
# Add CPU tags
list vlan_config 'vid=10 local=1'
# ... other CPU tags if needed ...
# Configure eth1 as untagged access port for VLAN 10
list vlan_config 'vid=10 port=eth1 pvid=1 untagged=1'
config interface 'lan'
option device 'br-lan.10' # Use VLAN interface
option proto 'static'
option ipaddr '192.168.10.1'
option netmask '255.255.255.0'
# ... other lan options ...
-
Reload network: service network reload
-
Connect a client computer directly to eth1.
-
Configure a static IP on the client (e.g., 192.168.10.10/24, gateway 192.168.10.1).
-
Attempt to ping the router: ping 192.168.10.1
Actual behaviour
- Ping fails (Destination Host Unreachable or timeout).
tcpdump -i eth1 -n arp shows ARP requests arriving from the client.
tcpdump -i br-lan.10 -n arp shows no ARP requests arriving on the VLAN interface.
ip neigh show dev br-lan.10 shows no entries for the client.
- (Secondary Issue) The command
ip bridge vlan show fails with "Object 'bridge' is unknown".
Expected behaviour
- Ping should succeed.
- ARP requests seen on
eth1 should also be seen on br-lan.10.
ip neigh show dev br-lan.10 should show the client's entry after successful ARP.
ip bridge vlan show should ideally display the bridge VLAN configuration.
Additional info
Diagnostic Log Snippet (from older firmware r28427 showing port disable):
kern.info kernel: [ 20.843392] br-lan: port 1(eth1) entered blocking state kern.info kernel: [ 20.848629] br-lan: port 1(eth1) entered disabled state
This appears to be a regression or remaining driver issue specifically related to handling untagged ingress traffic on PVID ports when bridge VLAN filtering is enabled on the MT7981 SoC.
Diffconfig
Terms
Describe the bug
Platform:
24.10.0 - r28427-6df0e3d02a(Porteth1entereddisabledstate)24.10.1 - r28597-0425664679(Porteth1staysUP, but traffic fails)Description:
When configuring bridge VLAN filtering on
br-lanwith the built-in LAN port (eth1) set as an untagged member of a specific VLAN (e.g., VLAN 10) using PVID, communication with the router via that port fails.24.10.0-r28427, enabling this configuration caused the kernel to puteth1into adisabledstate (see log snippet below).24.10.1-r28597, the porteth1remainsUPandLOWER_UP, but untagged ingress traffic (e.g., ARP requests from a client) arriving oneth1is not delivered to the corresponding logical VLAN interface (br-lan.10). This prevents ARP resolution and any communication with the router's IP on that VLAN interface.option vlan_filtering '1'onbr-lanand attaching thelaninterface directly tobr-lanworks correctly, allowing communication.OpenWrt version
r28597-0425664679
OpenWrt release
24.10.1
OpenWrt target/subtarget
mediatek/filogic
Device
? (original author claimed "OpenWrt One", but that was just to get our attention -- the OpenWrt One doesn't have an MT7530 switch)
Image kind
Official downloaded image
Steps to reproduce
Factory reset OpenWrt One running a recent snapshot (e.g.,
24.10.1).Configure
/etc/config/networksimilar to the following relevant sections:Reload network:
service network reloadConnect a client computer directly to
eth1.Configure a static IP on the client (e.g.,
192.168.10.10/24, gateway192.168.10.1).Attempt to ping the router:
ping 192.168.10.1Actual behaviour
tcpdump -i eth1 -n arpshows ARP requests arriving from the client.tcpdump -i br-lan.10 -n arpshows no ARP requests arriving on the VLAN interface.ip neigh show dev br-lan.10shows no entries for the client.ip bridge vlan showfails with "Object 'bridge' is unknown".Expected behaviour
eth1should also be seen onbr-lan.10.ip neigh show dev br-lan.10should show the client's entry after successful ARP.ip bridge vlan showshould ideally display the bridge VLAN configuration.Additional info
Diagnostic Log Snippet (from older firmware
r28427showing port disable):kern.info kernel: [ 20.843392] br-lan: port 1(eth1) entered blocking state kern.info kernel: [ 20.848629] br-lan: port 1(eth1) entered disabled state
This appears to be a regression or remaining driver issue specifically related to handling untagged ingress traffic on PVID ports when bridge VLAN filtering is enabled on the MT7981 SoC.
Diffconfig
Terms