Message ID | 20210509100416.27537-1-bjorn@mork.no |
---|---|
State | Accepted |
Delegated to: | Petr Štetiar |
Headers | show |
Series | [v2] realtek: Fix VLAN issues introduced by multicast patches | expand |
On Sun, May 09, 2021 at 12:04:16PM +0200, Bjørn Mork wrote: > From: Birger Koblitz <mail@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@birger-koblitz.de> > Signed-off-by: Bjørn Mork <bjorn@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 ^^^^^^^^^ Maybe also fix that typo while at it ;) > > sw_w32(p[0], RTL930X_VLAN_PROFILE_SET(profile)); > sw_w32(p[1], RTL930X_VLAN_PROFILE_SET(profile) + 4); > -- > 2.20.1 > > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
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);