2022-11-23 11:50:20

by Oleksij Rempel

[permalink] [raw]
Subject: [PATCH net-next v5 5/5] net: dsa: microchip: enable MTU normalization for KSZ8795 and KSZ9477 compatible switches

KSZ8795 and KSZ9477 compatible series of switches use global max frame
size configuration register. So, enable MTU normalization for this reason.

Signed-off-by: Oleksij Rempel <[email protected]>
---
drivers/net/dsa/microchip/ksz8795.c | 2 ++
drivers/net/dsa/microchip/ksz9477.c | 2 ++
2 files changed, 4 insertions(+)

diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c
index d01bfd609130..d88d0b989e1a 100644
--- a/drivers/net/dsa/microchip/ksz8795.c
+++ b/drivers/net/dsa/microchip/ksz8795.c
@@ -1426,6 +1426,8 @@ int ksz8_switch_init(struct ksz_device *dev)
*/
dev->ds->vlan_filtering_is_global = true;

+ dev->ds->mtu_enforcement_ingress = true;
+
return 0;
}

diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c
index f6e7968ab105..4fb07fbdf565 100644
--- a/drivers/net/dsa/microchip/ksz9477.c
+++ b/drivers/net/dsa/microchip/ksz9477.c
@@ -1134,6 +1134,8 @@ int ksz9477_setup(struct dsa_switch *ds)
struct ksz_device *dev = ds->priv;
int ret = 0;

+ dev->ds->mtu_enforcement_ingress = true;
+
/* Required for port partitioning. */
ksz9477_cfg32(dev, REG_SW_QM_CTRL__4, UNICAST_VLAN_BOUNDARY,
true);
--
2.30.2


2022-11-23 13:59:59

by Arun Ramadoss

[permalink] [raw]
Subject: Re: [PATCH net-next v5 5/5] net: dsa: microchip: enable MTU normalization for KSZ8795 and KSZ9477 compatible switches

Hi Oleksij,

On Wed, 2022-11-23 at 12:26 +0100, Oleksij Rempel wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you
> know the content is safe
>
> KSZ8795 and KSZ9477 compatible series of switches use global max
> frame
> size configuration register. So, enable MTU normalization for this
> reason.
>
> Signed-off-by: Oleksij Rempel <[email protected]>
> ---
> drivers/net/dsa/microchip/ksz8795.c | 2 ++
> drivers/net/dsa/microchip/ksz9477.c | 2 ++
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/net/dsa/microchip/ksz8795.c
> b/drivers/net/dsa/microchip/ksz8795.c
> index d01bfd609130..d88d0b989e1a 100644
> --- a/drivers/net/dsa/microchip/ksz8795.c
> +++ b/drivers/net/dsa/microchip/ksz8795.c
> @@ -1426,6 +1426,8 @@ int ksz8_switch_init(struct ksz_device *dev)
> */
> dev->ds->vlan_filtering_is_global = true;
>
> + dev->ds->mtu_enforcement_ingress = true;
> +
> return 0;
> }
>
> diff --git a/drivers/net/dsa/microchip/ksz9477.c
> b/drivers/net/dsa/microchip/ksz9477.c
> index f6e7968ab105..4fb07fbdf565 100644
> --- a/drivers/net/dsa/microchip/ksz9477.c
> +++ b/drivers/net/dsa/microchip/ksz9477.c
> @@ -1134,6 +1134,8 @@ int ksz9477_setup(struct dsa_switch *ds)
> struct ksz_device *dev = ds->priv;
> int ret = 0;
>
> + dev->ds->mtu_enforcement_ingress = true;
> +

For the ksz8, you have added enforcement_ingress in ksz8_switch_init
but for ksz9477, you added in ksz9477_setup. Can you move
initialization from ksz8_switch_init to ksz8_setup to make similar
implementation for both the switches.

> /* Required for port partitioning. */
> ksz9477_cfg32(dev, REG_SW_QM_CTRL__4, UNICAST_VLAN_BOUNDARY,
> true);
> --
> 2.30.2
>