netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] net: dsa: mt7530: fix handling of 802.1X PAE frames
@ 2023-08-13 10:59 Arınç ÜNAL
  2023-08-14 15:05 ` Vladimir Oltean
  2023-08-19 11:41 ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 3+ messages in thread
From: Arınç ÜNAL @ 2023-08-13 10:59 UTC (permalink / raw)
  To: Arınç ÜNAL, Daniel Golle, Landen Chao,
	DENG Qingfang, Sean Wang, Andrew Lunn, Florian Fainelli,
	Vladimir Oltean, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno
  Cc: Bartel Eerdekens, mithat.guner, erkin.bozoglu, netdev,
	linux-kernel, linux-arm-kernel, linux-mediatek

802.1X PAE frames are link-local frames, therefore they must be trapped to
the CPU port. Currently, the MT753X switches treat 802.1X PAE frames as
regular multicast frames, therefore flooding them to user ports. To fix
this, set 802.1X PAE frames to be trapped to the CPU port(s).

Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 switch")
Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
---
 drivers/net/dsa/mt7530.c | 4 ++++
 drivers/net/dsa/mt7530.h | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index 38b3c6dda386..b8bb9f3b3609 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -1006,6 +1006,10 @@ mt753x_trap_frames(struct mt7530_priv *priv)
 	mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK,
 		   MT753X_BPDU_CPU_ONLY);
 
+	/* Trap 802.1X PAE frames to the CPU port(s) */
+	mt7530_rmw(priv, MT753X_BPC, MT753X_PAE_PORT_FW_MASK,
+		   MT753X_PAE_PORT_FW(MT753X_BPDU_CPU_ONLY));
+
 	/* Trap LLDP frames with :0E MAC DA to the CPU port(s) */
 	mt7530_rmw(priv, MT753X_RGAC2, MT753X_R0E_PORT_FW_MASK,
 		   MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY));
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index 08045b035e6a..17e42d30fff4 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -66,6 +66,8 @@ enum mt753x_id {
 /* Registers for BPDU and PAE frame control*/
 #define MT753X_BPC			0x24
 #define  MT753X_BPDU_PORT_FW_MASK	GENMASK(2, 0)
+#define  MT753X_PAE_PORT_FW_MASK	GENMASK(18, 16)
+#define  MT753X_PAE_PORT_FW(x)		FIELD_PREP(MT753X_PAE_PORT_FW_MASK, x)
 
 /* Register for :03 and :0E MAC DA frame control */
 #define MT753X_RGAC2			0x2c
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net] net: dsa: mt7530: fix handling of 802.1X PAE frames
  2023-08-13 10:59 [PATCH net] net: dsa: mt7530: fix handling of 802.1X PAE frames Arınç ÜNAL
@ 2023-08-14 15:05 ` Vladimir Oltean
  2023-08-19 11:41 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: Vladimir Oltean @ 2023-08-14 15:05 UTC (permalink / raw)
  To: Arınç ÜNAL
  Cc: Daniel Golle, Landen Chao, DENG Qingfang, Sean Wang, Andrew Lunn,
	Florian Fainelli, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Matthias Brugger, AngeloGioacchino Del Regno,
	Bartel Eerdekens, mithat.guner, erkin.bozoglu, netdev,
	linux-kernel, linux-arm-kernel, linux-mediatek

On Sun, Aug 13, 2023 at 01:59:17PM +0300, Arınç ÜNAL wrote:
> 802.1X PAE frames are link-local frames, therefore they must be trapped to
> the CPU port. Currently, the MT753X switches treat 802.1X PAE frames as
> regular multicast frames, therefore flooding them to user ports. To fix
> this, set 802.1X PAE frames to be trapped to the CPU port(s).
> 
> Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 switch")
> Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
> ---
>  drivers/net/dsa/mt7530.c | 4 ++++
>  drivers/net/dsa/mt7530.h | 2 ++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
> index 38b3c6dda386..b8bb9f3b3609 100644
> --- a/drivers/net/dsa/mt7530.c
> +++ b/drivers/net/dsa/mt7530.c
> @@ -1006,6 +1006,10 @@ mt753x_trap_frames(struct mt7530_priv *priv)
>  	mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK,
>  		   MT753X_BPDU_CPU_ONLY);
>  
> +	/* Trap 802.1X PAE frames to the CPU port(s) */
> +	mt7530_rmw(priv, MT753X_BPC, MT753X_PAE_PORT_FW_MASK,
> +		   MT753X_PAE_PORT_FW(MT753X_BPDU_CPU_ONLY));
> +

In the interest of efficiency, this could have been merged with the
previous write to MT753X_BPC, which would save some MDIO transactions:

	mt7530_rmw(priv, MT753X_BPC,
		   MT753X_BPDU_PORT_FW_MASK | MT753X_PAE_PORT_FW_MASK,
		   MT753X_BPDU_CPU_ONLY |
		   MT753X_PAE_PORT_FW(MT753X_BPDU_CPU_ONLY));

In the interest of readability, this is probably fine too.

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

>  	/* Trap LLDP frames with :0E MAC DA to the CPU port(s) */
>  	mt7530_rmw(priv, MT753X_RGAC2, MT753X_R0E_PORT_FW_MASK,
>  		   MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY));
> diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
> index 08045b035e6a..17e42d30fff4 100644
> --- a/drivers/net/dsa/mt7530.h
> +++ b/drivers/net/dsa/mt7530.h
> @@ -66,6 +66,8 @@ enum mt753x_id {
>  /* Registers for BPDU and PAE frame control*/
>  #define MT753X_BPC			0x24
>  #define  MT753X_BPDU_PORT_FW_MASK	GENMASK(2, 0)
> +#define  MT753X_PAE_PORT_FW_MASK	GENMASK(18, 16)
> +#define  MT753X_PAE_PORT_FW(x)		FIELD_PREP(MT753X_PAE_PORT_FW_MASK, x)
>  
>  /* Register for :03 and :0E MAC DA frame control */
>  #define MT753X_RGAC2			0x2c
> -- 
> 2.39.2
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net] net: dsa: mt7530: fix handling of 802.1X PAE frames
  2023-08-13 10:59 [PATCH net] net: dsa: mt7530: fix handling of 802.1X PAE frames Arınç ÜNAL
  2023-08-14 15:05 ` Vladimir Oltean
@ 2023-08-19 11:41 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-08-19 11:41 UTC (permalink / raw)
  To: =?utf-8?b?QXLEsW7DpyDDnE5BTCA8YXJpbmMudW5hbEBhcmluYzkuY29tPg==?=
  Cc: daniel, Landen.Chao, dqfext, sean.wang, andrew, f.fainelli,
	olteanv, davem, edumazet, kuba, pabeni, matthias.bgg,
	angelogioacchino.delregno, bartel.eerdekens, mithat.guner,
	erkin.bozoglu, netdev, linux-kernel, linux-arm-kernel,
	linux-mediatek

Hello:

This patch was applied to netdev/net.git (main)
by David S. Miller <davem@davemloft.net>:

On Sun, 13 Aug 2023 13:59:17 +0300 you wrote:
> 802.1X PAE frames are link-local frames, therefore they must be trapped to
> the CPU port. Currently, the MT753X switches treat 802.1X PAE frames as
> regular multicast frames, therefore flooding them to user ports. To fix
> this, set 802.1X PAE frames to be trapped to the CPU port(s).
> 
> Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 switch")
> Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
> 
> [...]

Here is the summary with links:
  - [net] net: dsa: mt7530: fix handling of 802.1X PAE frames
    https://git.kernel.org/netdev/net/c/e94b590abfff

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-08-19 11:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-13 10:59 [PATCH net] net: dsa: mt7530: fix handling of 802.1X PAE frames Arınç ÜNAL
2023-08-14 15:05 ` Vladimir Oltean
2023-08-19 11:41 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).