Re: [RFC net-next] net: dsa: mt7530: support MDB and bridge flag operations
From: Vladimir Oltean <olteanv@gmail.com>
Date: 2021-02-24 08:46:28
Also in:
linux-mediatek, lkml, netdev
On Wed, Feb 24, 2021 at 04:10:18PM +0800, DENG Qingfang wrote:
quoted hunk ↗ jump to hunk
Support port MDB and bridge flag operations. As the hardware can manage multicast forwarding itself, offload_fwd_mark can be unconditionally set to true. Signed-off-by: DENG Qingfang <dqfext@gmail.com> --- Changes: Add bridge flag operations and resend as RFC drivers/net/dsa/mt7530.c | 123 +++++++++++++++++++++++++++++++++++++-- drivers/net/dsa/mt7530.h | 1 + net/dsa/tag_mtk.c | 14 +---- 3 files changed, 121 insertions(+), 17 deletions(-)diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index bca4fc724e45..341a6b3f7ef6 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c@@ -1000,8 +1000,9 @@ mt753x_cpu_port_enable(struct dsa_switch *ds, int port) mt7530_write(priv, MT7530_PVC_P(port), PORT_SPEC_TAG); - /* Unknown multicast frame forwarding to the cpu port */ - mt7530_rmw(priv, MT7530_MFC, UNM_FFP_MASK, UNM_FFP(BIT(port))); + /* Disable flooding by default */
I think the comment is incorrect and this _enables_ flooding (which btw is ok until we get the address filtering thing sorted out).
quoted hunk ↗ jump to hunk
+ mt7530_rmw(priv, MT7530_MFC, BC_FFP_MASK | UNM_FFP_MASK | UNU_FFP_MASK, + BC_FFP(BIT(port)) | UNM_FFP(BIT(port)) | UNU_FFP(BIT(port))); /* Set CPU port number */ if (priv->id == ID_MT7621)@@ -1138,6 +1139,55 @@ mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state) mt7530_rmw(priv, MT7530_SSP_P(port), FID_PST_MASK, stp_state); } +static int +mt7530_port_pre_bridge_flags(struct dsa_switch *ds, int port, + struct switchdev_brport_flags flags, + struct netlink_ext_ack *extack) +{ + if (flags.mask & ~(BR_AUTO_MASK | BR_MCAST_FLOOD | BR_BCAST_FLOOD)) + return -EINVAL;
I think BR_AUTO_MASK is confusing (because it is internal to the bridge layer) and could be better expressed as BR_FLOOD | BR_LEARNING.
+ + return 0; +} +
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel