[OpenWrt-Devel] [PATCH RFC] generic: mt7530: enable MAC learning on CPU port

DENG Qingfang dengqf6 at mail2.sysu.edu.cn
Mon Apr 6 08:12:40 EDT 2020


After switching to DSA, users reported that roaming between APs that
use DSA is broken, probably because the MAC table of the switch is
not synced between the host bridge properly [1].

Enabling MAC learning on CPU port can help, according to Andrew Lunn[2],
but it may cause some traffic to go through the slow path.

Use this as a workaround, until the bug is fixed upstream properly.

Run-tested with 2 MT7621 APs.

[1] https://github.com/openwrt/openwrt/pull/2798
[2] https://lore.kernel.org/netdev/20200405150915.GD161768@lunn.ch/
Signed-off-by: DENG Qingfang <dengqf6 at mail2.sysu.edu.cn>
---
 ...a-mt7530-enable-learning-on-cpu-port.patch | 31 +++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100644 target/linux/generic/hack-5.4/710-net-dsa-mt7530-enable-learning-on-cpu-port.patch

diff --git a/target/linux/generic/hack-5.4/710-net-dsa-mt7530-enable-learning-on-cpu-port.patch b/target/linux/generic/hack-5.4/710-net-dsa-mt7530-enable-learning-on-cpu-port.patch
new file mode 100644
index 0000000000..ad30f5a253
--- /dev/null
+++ b/target/linux/generic/hack-5.4/710-net-dsa-mt7530-enable-learning-on-cpu-port.patch
@@ -0,0 +1,31 @@
+From: DENG Qingfang <dqfext at gmail.com>
+Date: Mon, 6 Apr 2020 19:54:25 +0800
+Subject: [PATCH] net: dsa: mt7530: enable MAC learning on CPU port
+
+After switching to DSA, users reported that roaming between APs that
+use DSA is broken, probably because the MAC table of the switch is
+not synced between the host bridge properly [1].
+
+Enabling MAC learning on CPU port can help, according to Andrew Lunn[2],
+but it may cause some traffic to go through the slow path.
+
+Use this as a workaround, until the bug is fixed upstream properly.
+
+Run-tested with 2 MT7621 APs.
+
+[1] https://github.com/openwrt/openwrt/pull/2798
+[2] https://lore.kernel.org/netdev/20200405150915.GD161768@lunn.ch/
+Signed-off-by: DENG Qingfang <dqfext at gmail.com>
+
+--- a/drivers/net/dsa/mt7530.c
++++ b/drivers/net/dsa/mt7530.c
+@@ -712,9 +712,6 @@ mt7530_cpu_port_enable(struct mt7530_priv *priv,
+ 	mt7530_write(priv, MT7530_PVC_P(port),
+ 		     PORT_SPEC_TAG);
+ 
+-	/* Disable auto learning on the cpu port */
+-	mt7530_set(priv, MT7530_PSC_P(port), SA_DIS);
+-
+ 	/* Unknown unicast frame fordwarding to the cpu port */
+ 	mt7530_set(priv, MT7530_MFC, UNU_FFP(BIT(port)));
+ 
-- 
2.26.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list