net: dsa: tag_brcm: legacy: fix daisy-chained switches
authorÁlvaro Fernández Rojas <noltari@gmail.com>
Sun, 19 Mar 2023 09:55:40 +0000 (10:55 +0100)
committerJakub Kicinski <kuba@kernel.org>
Wed, 22 Mar 2023 00:29:13 +0000 (17:29 -0700)
commit032a954061afd4b7426c3eb6bfd2952ef1e9a384
treee44c48d0387327607f2bc210d42f5f8c9a5c5119
parentf038f3917baf04835ba2b7bcf2a04ac93fbf8a9c
net: dsa: tag_brcm: legacy: fix daisy-chained switches

When BCM63xx internal switches are connected to switches with a 4-byte
Broadcom tag, it does not identify the packet as VLAN tagged, so it adds one
based on its PVID (which is likely 0).
Right now, the packet is received by the BCM63xx internal switch and the 6-byte
tag is properly processed. The next step would to decode the corresponding
4-byte tag. However, the internal switch adds an invalid VLAN tag after the
6-byte tag and the 4-byte tag handling fails.
In order to fix this we need to remove the invalid VLAN tag after the 6-byte
tag before passing it to the 4-byte tag decoding.

Fixes: 964dbf186eaa ("net: dsa: tag_brcm: add support for legacy tags")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20230319095540.239064-1-noltari@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/dsa/tag_brcm.c