This fixes a bug where frames sent to the switch itself were
flooded to all ports unless the MAC address of the CPU-port
was learned otherwise.

Tested-by: Wenli Looi <wl...@ucalgary.ca>
Tested-by: Bjørn Mork <bj...@mork.no>
Signed-off-by: Birger Koblitz <g...@birger-koblitz.de>
---
 .../linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c  | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c 
b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c
index 4780632983..858b692640 100644
--- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c
+++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c
@@ -205,6 +205,12 @@ static int rtl83xx_setup(struct dsa_switch *ds)

        priv->r->l2_learning_setup();

+       // Make sure all frames sent to the switch's MAC are trapped to the 
CPU-port
+       if (priv->family_id == RTL8380_FAMILY_ID)
+           sw_w32(0x2, RTL838X_SPCL_TRAP_SWITCH_MAC_CTRL);  // 0: FWD, 1: 
DROP, 2: TRAP2CPU
+       else
+           sw_w32(0x2, RTL839X_SPCL_TRAP_SWITCH_MAC_CTRL);
+
        /* Enable MAC Polling PHY again */
        rtl83xx_enable_phy_polling(priv);
        pr_debug("Please wait until PHY is settled\n");
-- 
2.25.1


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

Reply via email to