]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: dsa: mt7530: preserve VLAN tags on trapped link-local frames
authorDaniel Golle <daniel@makrotopia.org>
Thu, 14 May 2026 14:04:35 +0000 (15:04 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 19 May 2026 10:37:29 +0000 (12:37 +0200)
commit3ac85bcfd404b588298c95c6fba8aad4ad334f57
treedd2aadeefd7fd3747ea8d9747df35384adeb17d9
parente824e40d0e841fab66ab7897d6c7b14dc81c66a7
net: dsa: mt7530: preserve VLAN tags on trapped link-local frames

The BPC, RGAC1 and RGAC2 registers control the handling of link-local
frames with reserved MAC DAs (01:80:C2:00:00:0x). These frames are
correctly trapped to the CPU port, but the egress VLAN tag attribute was
set to MT7530_VLAN_EG_UNTAGGED which causes the switch to strip any
VLAN tags from trapped frames before they reach the CPU.

This causes VLAN-tagged link-local frames (STP BPDUs, LLDP, PTP Peer
Delay Requests) to arrive at the CPU without their VLAN tag, so they
are delivered to the base network interface instead of the VLAN
sub-interface. The DSA local_termination selftest confirms this: all
link-local protocol tests on VLAN upper interfaces fail.

Set the EG_TAG attribute to MT7530_VLAN_EG_DISABLED (system default)
so that the switch does not modify VLAN tags in trapped frames. This
way VLAN-tagged frames retain their original tag and are delivered to
the correct VLAN sub-interface, matching the behavior of non-trapped
frames which pass through without VLAN tag modification.

Fixes: 69ddba9d170b ("net: dsa: mt7530: fix handling of all link-local frames")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Acked-by: Chester A. Unal <chester.a.unal@arinc9.com>
Link: https://patch.msgid.link/891e0cd34db2a5fe20ceb73283a81fb5f71427ca.1778766629.git.daniel@makrotopia.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/dsa/mt7530.c