realtek: 6.6: fix VLAN handling
authorMarkus Stockhausen <markus.stockhausen@gmx.de>
Sat, 7 Sep 2024 07:23:03 +0000 (03:23 -0400)
committerSander Vanheule <sander@svanheule.net>
Sat, 14 Sep 2024 18:14:47 +0000 (20:14 +0200)
commita22d359fa56fe06ebd74f87eccacf56b3752da58
treea313d226d421369a11b6b42a92b10ae2d35a99d7
parentcd958d945be06a1b810d55912f32d6e922d952ea
realtek: 6.6: fix VLAN handling

The CPU port of realtek switches needs some proper PVID set to handle
untagged packets. Because the ethernet driver does no special VLAN
handling (see CPU tag RVID/RVID_SEL) as of now we can only steer
untagged packets by setting PVID for the CPU port. VLAN handling has
never been perfect but 3 events made things worse.

- Commit a37650821644 ("rtl83xx: dsa: Do nothing when vid 0")
- Commit e691e2b302d9 ("rtl83xx: dsa: reset PVID to 1 instead of 0")
- Upgrade to kernel 6.6

Reasons are:

- Rejecting VID 0 disabled Linux initialization routines
- Initialization for PVID forgot to set priv->ports[port].pvid
- Kernel 6.6 does no longer clarify CPU port as untagged

To fix this prepare the VID 0 setup inside the driver. Join all ports
to VID 0 and let no one from outsinde interfere with this setup.
Especially ignore PVID settings for the CPU port for all further
VLAN commands.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Suggested-by: Bjørn Mork <bjorn@mork.no>
target/linux/realtek/files-6.6/drivers/net/dsa/rtl83xx/dsa.c