linux-stable/net/dsa
Linus Walleij 5711ced58e net: dsa: tag_rtl4_a: Fix egress tags
[ Upstream commit 0e90dfa7a8 ]

I noticed that only port 0 worked on the RTL8366RB since we
started to use custom tags.

It turns out that the format of egress custom tags is actually
different from ingress custom tags. While the lower bits just
contain the port number in ingress tags, egress tags need to
indicate destination port by setting the bit for the
corresponding port.

It was working on port 0 because port 0 added 0x00 as port
number in the lower bits, and if you do this the packet appears
at all ports, including the intended port. Ooops.

Fix this and all ports work again. Use the define for shifting
the "type A" into place while we're at it.

Tested on the D-Link DIR-685 by sending traffic to each of
the ports in turn. It works.

Fixes: 86dd9868b8 ("net: dsa: tag_rtl4_a: Support also egress tags")
Cc: DENG Qingfang <dqfext@gmail.com>
Cc: Mauri Sandberg <sandberg@mailfence.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-09-22 12:28:04 +02:00
..
dsa.c net: dsa: Add devlink port regions support to DSA 2020-10-04 14:38:53 -07:00
dsa2.c net: dsa: Fix type was not set for devlink port 2021-04-14 08:42:07 +02:00
dsa_priv.h net: dsa: Utilize __vlan_find_dev_deep_rcu() 2020-10-02 13:36:07 -07:00
Kconfig net: dsa: tag_rtl4_a: Implement Realtek 4 byte A tag 2020-07-08 15:36:19 -07:00
Makefile net: dsa: tag_rtl4_a: Implement Realtek 4 byte A tag 2020-07-08 15:36:19 -07:00
master.c net: dsa: fix a crash if ->get_sset_count() fails 2021-06-03 09:00:38 +02:00
port.c net: dsa: propagate switchdev vlan_filtering prepare phase to drivers 2020-10-05 05:56:48 -07:00
slave.c net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup 2021-09-22 12:27:58 +02:00
switch.c net: dsa: properly check for the bridge_leave methods in dsa_switch_bridge_leave() 2021-07-25 14:36:20 +02:00
tag_8021q.c net: dsa: tag_8021q: fix the VLAN IDs used for encoding sub-VLANs 2021-06-10 13:39:17 +02:00
tag_ar9331.c net: dsa: tag_ar9331: let DSA core deal with TX reallocation 2021-03-17 17:06:22 +01:00
tag_brcm.c net: dsa: tag_brcm: let DSA core deal with TX reallocation 2021-03-17 17:06:21 +01:00
tag_dsa.c net: dsa: tag_dsa: let DSA core deal with TX reallocation 2021-03-17 17:06:21 +01:00
tag_edsa.c net: dsa: tag_edsa: let DSA core deal with TX reallocation 2021-03-17 17:06:21 +01:00
tag_gswip.c net: dsa: tag_gswip: let DSA core deal with TX reallocation 2021-03-17 17:06:22 +01:00
tag_ksz.c net: dsa: tag_ksz: don't allocate additional memory for padding/tagging 2021-03-17 17:06:21 +01:00
tag_lan9303.c net: dsa: tag_lan9303: let DSA core deal with TX reallocation 2021-03-17 17:06:21 +01:00
tag_mtk.c net: dsa: tag_mtk: fix 802.1ad VLAN egress 2021-03-17 17:06:22 +01:00
tag_ocelot.c net: dsa: tag_ocelot: let DSA core deal with TX reallocation 2021-03-17 17:06:21 +01:00
tag_qca.c net: dsa: tag_qca: let DSA core deal with TX reallocation 2021-03-17 17:06:21 +01:00
tag_rtl4_a.c net: dsa: tag_rtl4_a: Fix egress tags 2021-09-22 12:28:04 +02:00
tag_sja1105.c net: dsa: tag_sja1105: use a custom flow dissector procedure 2020-09-26 14:17:59 -07:00
tag_trailer.c net: dsa: trailer: don't allocate additional memory for padding/tagging 2021-03-17 17:06:21 +01:00