[PATCH v2] realtek: Fix VLAN issues introduced by multicast patches
Bjørn Mork
bjorn at mork.no
Sun May 9 03:04:16 PDT 2021
From: Birger Koblitz <mail at birger-koblitz.de>
This adds the CPU port to the unknown multicast flooding port mask,
which fixes the VLAN issues introduced by the multicast group patches
Signed-off-by: Birger Koblitz <mail at birger-koblitz.de>
Signed-off-by: Bjørn Mork <bjorn at mork.no> [whitespace fix]
---
Massaged through sed -e 's/^. /\+ /'
Bjørn
.../realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c | 2 +-
.../realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c | 2 +-
.../realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c | 6 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c
index dfd773c5e6fc..f2bac01ffa62 100644
--- a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c
+++ b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c
@@ -398,7 +398,7 @@ static void rtl838x_vlan_profile_setup(int profile)
* On RTL93XX, the portmask is directly set in the profile,
* see e.g. rtl9300_vlan_profile_setup
*/
- rtl838x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0xfffffff);
+ rtl838x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0x1fffffff);
}
static inline int rtl838x_vlan_port_egr_filter(int port)
diff --git a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c
index 74472461a15b..c7e827b67494 100644
--- a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c
+++ b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c
@@ -411,7 +411,7 @@ static void rtl839x_vlan_profile_setup(int profile)
sw_w32(p[0], RTL839X_VLAN_PROFILE(profile));
sw_w32(p[1], RTL839X_VLAN_PROFILE(profile) + 4);
- rtl839x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0x000fffffffffffff);
+ rtl839x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0x001fffffffffffff);
}
static inline int rtl839x_vlan_port_egr_filter(int port)
diff --git a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c
index 820c78165a3c..4f590621bea6 100644
--- a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c
+++ b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c
@@ -153,9 +153,9 @@ static void rtl930x_vlan_profile_setup(int profile)
// Enable routing of Ipv4/6 Unicast and IPv4/6 Multicast traffic
p[0] |= BIT(17) | BIT(16) | BIT(13) | BIT(12);
- p[2] = 0x0fffffff; // L2 unknwon MC flooding portmask: all but the CPU-port
- p[3] = 0x0fffffff; // IPv4 unknwon MC flooding portmask
- p[4] = 0x0fffffff; // IPv6 unknwon MC flooding portmask
+ p[2] = 0x1fffffff; // L2 unknwon MC flooding portmask all ports, including the CPU-port
+ p[3] = 0x1fffffff; // IPv4 unknwon MC flooding portmask
+ p[4] = 0x1fffffff; // IPv6 unknwon MC flooding portmask
sw_w32(p[0], RTL930X_VLAN_PROFILE_SET(profile));
sw_w32(p[1], RTL930X_VLAN_PROFILE_SET(profile) + 4);
--
2.20.1
More information about the openwrt-devel
mailing list