android_kernel_motorola_sm6375/net/dsa
Repository files (latest commit first)
Filename Latest commit message Latest commit date
DENG Qingfang 557045f771 net: dsa: mt7530: fix roaming from DSA user ports
[ Upstream commit 5e5502e012b8129e11be616acb0f9c34bc8f8adb ]

When a client moves from a DSA user port to a software port in a bridge,
it cannot reach any other clients that connected to the DSA user ports.
That is because SA learning on the CPU port is disabled, so the switch
ignores the client's frames from the CPU port and still thinks it is at
the user port.

Fix it by enabling SA learning on the CPU port.

To prevent the switch from learning from flooding frames from the CPU
port, set skb->offload_fwd_mark to 1 for unicast and broadcast frames,
and let the switch flood them instead of trapping to the CPU port.
Multicast frames still need to be trapped to the CPU port for snooping,
so set the SA_DIS bit of the MTK tag to 1 when transmitting those frames
to disable SA learning.

Fixes: b8f126a8d5 ("net-next: dsa: add dsa support for Mediatek MT7530 switch")
Signed-off-by: DENG Qingfang <dqfext@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-06-03 08:20:43 +02:00
..
dsa.c
dsa2.c net: dsa: Do not make user port errors fatal 2020-05-20 08:20:03 +02:00
dsa_priv.h net: dsa: fix phylink_start()/phylink_stop() calls 2020-03-18 07:17:39 +01:00
Kconfig
Makefile
master.c net: dsa: Do not leave DSA master with NULL netdev_ops 2020-05-14 07:58:20 +02:00
port.c net: dsa: Don't instantiate phylink for CPU/DSA ports unless needed 2020-03-18 07:17:47 +01:00
slave.c net: dsa: fix phylink_start()/phylink_stop() calls 2020-03-18 07:17:39 +01:00
switch.c
tag_8021q.c net: dsa: tag_8021q: replace dsa_8021q_remove_header with __skb_vlan_pop 2020-04-01 11:01:34 +02:00
tag_brcm.c net: dsa: Fix duplicate frames flooded by learning 2020-04-01 11:01:33 +02:00
tag_dsa.c
tag_edsa.c
tag_gswip.c
tag_ksz.c
tag_lan9303.c
tag_mtk.c net: dsa: mt7530: fix roaming from DSA user ports 2020-06-03 08:20:43 +02:00
tag_qca.c
tag_sja1105.c net: dsa: tag_8021q: replace dsa_8021q_remove_header with __skb_vlan_pop 2020-04-01 11:01:34 +02:00
tag_trailer.c