All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alvin Šipraga" <ALSI@bang-olufsen.dk>
To: Linus Walleij <linus.walleij@linaro.org>,
	Andrew Lunn <andrew@lunn.ch>,
	Vivien Didelot <vivien.didelot@gmail.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Vladimir Oltean <olteanv@gmail.com>,
	"David S . Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	Mauri Sandberg <sandberg@mailfence.com>,
	DENG Qingfang <dqfext@gmail.com>
Subject: Re: [PATCH net-next 4/5 v2] net: dsa: rtl8366rb: Support flood control
Date: Mon, 30 Aug 2021 23:35:31 +0000	[thread overview]
Message-ID: <a9430bbd-7d84-e857-b98a-3662a23db012@bang-olufsen.dk> (raw)
In-Reply-To: <20210830214859.403100-5-linus.walleij@linaro.org>

On 8/30/21 11:48 PM, Linus Walleij wrote:
> Now that we have implemented bridge flag handling we can easily
> support flood (storm) control as well so let's do it.
> 
> Cc: Vladimir Oltean <olteanv@gmail.com>
> Cc: Alvin Šipraga <alsi@bang-olufsen.dk>
> Cc: Mauri Sandberg <sandberg@mailfence.com>
> Cc: DENG Qingfang <dqfext@gmail.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---

Reviewed-by: Alvin Šipraga <alsi@bang-olufsen.dk>

> ChangeLog v1->v2:
> - New patch
> ---
>   drivers/net/dsa/rtl8366rb.c | 38 ++++++++++++++++++++++++++++++++++++-
>   1 file changed, 37 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/dsa/rtl8366rb.c b/drivers/net/dsa/rtl8366rb.c
> index 2cadd3e57e8b..4cb0e336ce6b 100644
> --- a/drivers/net/dsa/rtl8366rb.c
> +++ b/drivers/net/dsa/rtl8366rb.c
> @@ -149,6 +149,11 @@
>   
>   #define RTL8366RB_VLAN_INGRESS_CTRL2_REG	0x037f
>   
> +#define RTL8366RB_STORM_BC_CTRL			0x03e0
> +#define RTL8366RB_STORM_MC_CTRL			0x03e1
> +#define RTL8366RB_STORM_UNDA_CTRL		0x03e2
> +#define RTL8366RB_STORM_UNMC_CTRL		0x03e3
> +
>   /* LED control registers */
>   #define RTL8366RB_LED_BLINKRATE_REG		0x0430
>   #define RTL8366RB_LED_BLINKRATE_MASK		0x0007
> @@ -1158,7 +1163,8 @@ rtl8366rb_port_pre_bridge_flags(struct dsa_switch *ds, int port,
>   				struct netlink_ext_ack *extack)
>   {
>   	/* We support enabling/disabling learning */

Perhaps you can remove this comment altogether, since we support more 
things now, and it is self evident anyway.

> -	if (flags.mask & ~(BR_LEARNING))
> +	if (flags.mask & ~(BR_LEARNING | BR_BCAST_FLOOD |
> +                           BR_MCAST_FLOOD | BR_FLOOD))
>   		return -EINVAL;
>   
>   	return 0;
> @@ -1180,6 +1186,36 @@ rtl8366rb_port_bridge_flags(struct dsa_switch *ds, int port,
>   			return ret;
>   	}
>   
> +	if (flags.mask & BR_BCAST_FLOOD) {
> +		ret = regmap_update_bits(smi->map, RTL8366RB_STORM_BC_CTRL,
> +					 BIT(port),
> +					 (flags.val & BR_BCAST_FLOOD) ? BIT(port) : 0);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	if (flags.mask & BR_MCAST_FLOOD) {
> +		ret = regmap_update_bits(smi->map, RTL8366RB_STORM_MC_CTRL,
> +					 BIT(port),
> +					 (flags.val & BR_MCAST_FLOOD) ? BIT(port) : 0);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	/* Enable/disable both types of unicast floods */
> +	if (flags.mask & BR_FLOOD) {
> +		ret = regmap_update_bits(smi->map, RTL8366RB_STORM_UNDA_CTRL,
> +					 BIT(port),
> +					 (flags.val & BR_FLOOD) ? BIT(port) : 0);
> +		if (ret)
> +			return ret;
> +		ret = regmap_update_bits(smi->map, RTL8366RB_STORM_UNMC_CTRL,
> +					 BIT(port),
> +					 (flags.val & BR_FLOOD) ? BIT(port) : 0);
> +		if (ret)
> +			return ret;
> +	}
> +
>   	return 0;
>   }
>   
> 

  parent reply	other threads:[~2021-08-30 23:35 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-30 21:48 [PATCH net-next 0/5 v2] RTL8366RB improvements Linus Walleij
2021-08-30 21:48 ` [PATCH net-next 1/5 v2] net: dsa: rtl8366rb: support bridge offloading Linus Walleij
2021-08-30 22:33   ` Vladimir Oltean
2021-08-30 23:24   ` Alvin Šipraga
2021-08-31  1:01   ` Florian Fainelli
2021-08-30 21:48 ` [PATCH net-next 2/5 v2] net: dsa: rtl8366: Drop custom VLAN set-up Linus Walleij
2021-08-30 22:35   ` Vladimir Oltean
2021-08-30 23:27   ` Alvin Šipraga
2021-08-31  1:02   ` Florian Fainelli
2021-08-30 21:48 ` [PATCH net-next 3/5 v2] net: dsa: rtl8366rb: Support disabling learning Linus Walleij
2021-08-30 22:40   ` Vladimir Oltean
2021-09-07 15:52     ` Linus Walleij
2021-09-08 21:09       ` Vladimir Oltean
2021-08-30 21:48 ` [PATCH net-next 4/5 v2] net: dsa: rtl8366rb: Support flood control Linus Walleij
2021-08-30 22:43   ` Vladimir Oltean
2021-08-30 23:42     ` Alvin Šipraga
2021-08-30 23:35   ` Alvin Šipraga [this message]
2021-08-31  1:04   ` Florian Fainelli
2021-08-30 21:48 ` [PATCH net-next 5/5 v2] net: dsa: rtl8366rb: Support fast aging Linus Walleij
2021-08-30 22:46   ` Vladimir Oltean
2021-09-07 17:48     ` Linus Walleij
2021-09-08 20:10       ` Vladimir Oltean
2021-09-10 13:59         ` Linus Walleij
2021-09-10 17:57           ` Vladimir Oltean
2021-08-31  0:24   ` Alvin Šipraga

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a9430bbd-7d84-e857-b98a-3662a23db012@bang-olufsen.dk \
    --to=alsi@bang-olufsen.dk \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=dqfext@gmail.com \
    --cc=f.fainelli@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=sandberg@mailfence.com \
    --cc=vivien.didelot@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.