linux/drivers/net/dsa
Edward Parker 4cb3cd670b net: dsa: mt7530: untag VLAN-aware bridge PVID
With bridge VLAN filtering enabled on a port configured as untagged
member of the bridge PVID, ingress untagged frames do not reach the
corresponding bridge VLAN upper interface (br-lan.<vid>). ARP and
similar traffic is visible on the physical port but not delivered
to the VLAN sub-interface.

The MT7530/MT7531 forwards frames to the CPU port with the user
port's PVID tag applied even when the frame ingressed untagged on
the wire, because the CPU port is set to MT7530_VLAN_EG_CONSISTENT
and is a tagged member of the VLAN entry created for the bridge
VLAN. The DSA core then sees a hwaccel-tagged frame whose VID
matches the port's PVID, which the bridge does not treat as the
untagged-on-the-wire frame that the user expects.

Set ds->untag_vlan_aware_bridge_pvid in the mt7530 and mt7531
setup paths so the DSA core strips that hwaccel tag in software
when the parsed VID matches the bridge port's PVID, restoring the
on-the-wire frame as the bridge expects to see it.

Link: https://github.com/openwrt/openwrt/issues/18576
Fixes: 83163f7dca ("net: dsa: mediatek: add VLAN support for MT7530")
Signed-off-by: Edward Parker <edward@topnotchit.com>
[daniel@makrotopia.org: improve commit message]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Link: https://patch.msgid.link/85d25ea1b26d3c907f815649f2e0bde6560282a3.1778766629.git.daniel@makrotopia.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
History 2026-05-19 12:37:34 +02:00
..
b53 net: dsa: b53: skip multicast entries for fdb_dump() 2025-12-27 17:17:32 +01:00
hirschmann Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
lantiq net: dsa: mxl-gsw1xx: validate chip ID 2026-02-10 09:09:27 +01:00
microchip net: dsa: microchip: drop an outdated comment about SGMII support 2026-03-26 18:55:19 -07:00
mv88e6xxx net: dsa: mv88e6xxx: Add partial support for TCAM entries 2026-03-17 10:35:20 +01:00
mxl862xx net: dsa: mxl862xx: implement .get_stats64 2026-04-13 16:46:43 -07:00
ocelot Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
qca net: dsa: qca8k: Use the right GPIO header 2026-03-29 11:49:21 -07:00
realtek net: dsa: realtek: rtl8365mb: fix mode mask calculation 2026-04-23 10:50:33 +02:00
sja1105 net: dsa: sja1105: ensure phylink_replay_link_end() will not be missed 2026-03-06 17:48:01 -08:00
xrs700x net: dsa: xrs700x: reject unsupported HSR configurations 2025-12-01 16:45:07 -08:00
bcm_sf2.c net: dsa: bcm_sf2: fix missing clk_disable_unprepare() in error paths 2026-03-19 09:26:40 -07:00
bcm_sf2.h net: dsa: use ethtool string helpers 2024-11-03 10:36:34 -08:00
bcm_sf2_cfp.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
bcm_sf2_regs.h net: dsa: bcm_sf2: refactor LED regs access 2021-12-30 17:28:32 -08:00
dsa_loop.c net: dsa: eliminate <linux/dsa/loop.h> 2026-04-08 19:38:52 -07:00
Kconfig net: dsa: add basic initial driver for MxL862xx switches 2026-02-11 11:27:58 +01:00
ks8995.c net: dsa: ks8995: Fix incorrect OF match table name 2025-11-18 18:22:04 -08:00
lan9303-core.c net: dsa: lan9303: ensure chip reset and wait for READY status 2024-10-07 16:38:02 -07:00
lan9303.h net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
lan9303_i2c.c net: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-26 07:28:08 -07:00
lan9303_mdio.c dsa: lan9303: consistent naming for PHY address parameter 2024-07-15 08:49:59 -07:00
Makefile net: dsa: add basic initial driver for MxL862xx switches 2026-02-11 11:27:58 +01:00
mt7530-mdio.c net: pcs: pcs-mtk-lynxi: pass SGMIISYS OF node to PCS 2026-01-21 19:46:58 -08:00
mt7530-mmio.c net: dsa: mt7530: Constify struct regmap_config 2025-07-13 22:28:56 +01:00
mt7530.c net: dsa: mt7530: untag VLAN-aware bridge PVID 2026-05-19 12:37:34 +02:00
mt7530.h net: dsa: mt7530: fix .get_stats64 sleeping in atomic context 2026-05-04 19:28:54 -07:00
mv88e6060.c net: dsa: mv88e6060: use simple HSR offload helpers 2025-12-01 16:45:08 -08:00
mv88e6060.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
rzn1_a5psw.c net: dsa: a5psw: use simple HSR offload helpers 2025-12-01 16:45:08 -08:00
rzn1_a5psw.h net: dsa: rzn1-a5psw: add vlan support 2023-08-11 11:58:36 +01:00
vitesse-vsc73xx-core.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
vitesse-vsc73xx-platform.c net: dsa: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
vitesse-vsc73xx-spi.c net: dsa: vitesse-vsc73xx: remove unnecessary set_drvdata() 2022-09-22 19:30:39 -07:00
vitesse-vsc73xx.h net: dsa: vsc73xx: implement FDB operations 2024-09-03 10:22:58 +02:00
yt921x.c net: dsa: move dsa_bridge_ports() helper to dsa.h 2026-04-06 18:30:33 -07:00
yt921x.h net: dsa: yt921x: Add DCB/QoS support 2026-02-03 15:09:31 +01:00