* [PATCH net v2 1/2] net: dsa: mv88e6xxx: Limit chip-wide frame size config to CPU ports
2024-07-17 9:08 [PATCH net v2 0/2] net: dsa: Fix chip-wide frame size config in some drivers Martin Willi
@ 2024-07-17 9:08 ` Martin Willi
2024-07-17 11:46 ` Vladimir Oltean
2024-07-17 9:08 ` [PATCH net v2 2/2] net: dsa: b53: Limit chip-wide jumbo frame " Martin Willi
2024-07-18 11:30 ` [PATCH net v2 0/2] net: dsa: Fix chip-wide frame size config in some drivers patchwork-bot+netdevbpf
2 siblings, 1 reply; 6+ messages in thread
From: Martin Willi @ 2024-07-17 9:08 UTC (permalink / raw)
To: Andrew Lunn, Florian Fainelli, Vladimir Oltean, Chris Packham,
Murali Krishna Policharla
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Marvell chips not supporting per-port jumbo frame size configurations use
a chip-wide frame size configuration. In the commit referenced with the
Fixes tag, the setting is applied just for the last port changing its MTU.
While configuring CPU ports accounts for tagger overhead, user ports do
not. When setting the MTU for a user port, the chip-wide setting is
reduced to not include the tagger overhead, resulting in an potentially
insufficient maximum frame size for the CPU port. Specifically, sending
full-size frames from the CPU port on a MV88E6097 having a user port MTU
of 1500 bytes results in dropped frames.
As, by design, the CPU port MTU is adjusted for any user port change,
apply the chip-wide setting only for CPU ports.
Fixes: 1baf0fac10fb ("net: dsa: mv88e6xxx: Use chip-wide max frame size for MTU")
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Martin Willi <martin@strongswan.org>
---
drivers/net/dsa/mv88e6xxx/chip.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 07c897b13de1..5b4e2ce5470d 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -3626,7 +3626,8 @@ static int mv88e6xxx_change_mtu(struct dsa_switch *ds, int port, int new_mtu)
mv88e6xxx_reg_lock(chip);
if (chip->info->ops->port_set_jumbo_size)
ret = chip->info->ops->port_set_jumbo_size(chip, port, new_mtu);
- else if (chip->info->ops->set_max_frame_size)
+ else if (chip->info->ops->set_max_frame_size &&
+ dsa_is_cpu_port(ds, port))
ret = chip->info->ops->set_max_frame_size(chip, new_mtu);
mv88e6xxx_reg_unlock(chip);
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH net v2 1/2] net: dsa: mv88e6xxx: Limit chip-wide frame size config to CPU ports
2024-07-17 9:08 ` [PATCH net v2 1/2] net: dsa: mv88e6xxx: Limit chip-wide frame size config to CPU ports Martin Willi
@ 2024-07-17 11:46 ` Vladimir Oltean
0 siblings, 0 replies; 6+ messages in thread
From: Vladimir Oltean @ 2024-07-17 11:46 UTC (permalink / raw)
To: Martin Willi
Cc: Andrew Lunn, Florian Fainelli, Chris Packham,
Murali Krishna Policharla, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, netdev
On Wed, Jul 17, 2024 at 11:08:19AM +0200, Martin Willi wrote:
> Marvell chips not supporting per-port jumbo frame size configurations use
> a chip-wide frame size configuration. In the commit referenced with the
> Fixes tag, the setting is applied just for the last port changing its MTU.
>
> While configuring CPU ports accounts for tagger overhead, user ports do
> not. When setting the MTU for a user port, the chip-wide setting is
> reduced to not include the tagger overhead, resulting in an potentially
> insufficient maximum frame size for the CPU port. Specifically, sending
> full-size frames from the CPU port on a MV88E6097 having a user port MTU
> of 1500 bytes results in dropped frames.
>
> As, by design, the CPU port MTU is adjusted for any user port change,
> apply the chip-wide setting only for CPU ports.
>
> Fixes: 1baf0fac10fb ("net: dsa: mv88e6xxx: Use chip-wide max frame size for MTU")
> Suggested-by: Vladimir Oltean <olteanv@gmail.com>
> Signed-off-by: Martin Willi <martin@strongswan.org>
> ---
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH net v2 2/2] net: dsa: b53: Limit chip-wide jumbo frame config to CPU ports
2024-07-17 9:08 [PATCH net v2 0/2] net: dsa: Fix chip-wide frame size config in some drivers Martin Willi
2024-07-17 9:08 ` [PATCH net v2 1/2] net: dsa: mv88e6xxx: Limit chip-wide frame size config to CPU ports Martin Willi
@ 2024-07-17 9:08 ` Martin Willi
2024-07-17 11:46 ` Vladimir Oltean
2024-07-18 11:30 ` [PATCH net v2 0/2] net: dsa: Fix chip-wide frame size config in some drivers patchwork-bot+netdevbpf
2 siblings, 1 reply; 6+ messages in thread
From: Martin Willi @ 2024-07-17 9:08 UTC (permalink / raw)
To: Andrew Lunn, Florian Fainelli, Vladimir Oltean, Chris Packham,
Murali Krishna Policharla
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Broadcom switches supported by the b53 driver use a chip-wide jumbo frame
configuration. In the commit referenced with the Fixes tag, the setting
is applied just for the last port changing its MTU.
While configuring CPU ports accounts for tagger overhead, user ports do
not. When setting the MTU for a user port, the chip-wide setting is
reduced to not include the tagger overhead, resulting in an potentially
insufficient chip-wide maximum frame size for the CPU port.
As, by design, the CPU port MTU is adjusted for any user port change,
apply the chip-wide setting only for CPU ports. This aligns the driver
to the behavior of other switch drivers.
Fixes: 6ae5834b983a ("net: dsa: b53: add MTU configuration support")
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Martin Willi <martin@strongswan.org>
---
drivers/net/dsa/b53/b53_common.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c
index 8f50abe739b7..0783fc121bbb 100644
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -2256,6 +2256,9 @@ static int b53_change_mtu(struct dsa_switch *ds, int port, int mtu)
if (is5325(dev) || is5365(dev))
return -EOPNOTSUPP;
+ if (!dsa_is_cpu_port(ds, port))
+ return 0;
+
enable_jumbo = (mtu >= JMS_MIN_SIZE);
allow_10_100 = (dev->chip_id == BCM583XX_DEVICE_ID);
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH net v2 2/2] net: dsa: b53: Limit chip-wide jumbo frame config to CPU ports
2024-07-17 9:08 ` [PATCH net v2 2/2] net: dsa: b53: Limit chip-wide jumbo frame " Martin Willi
@ 2024-07-17 11:46 ` Vladimir Oltean
0 siblings, 0 replies; 6+ messages in thread
From: Vladimir Oltean @ 2024-07-17 11:46 UTC (permalink / raw)
To: Martin Willi
Cc: Andrew Lunn, Florian Fainelli, Chris Packham,
Murali Krishna Policharla, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni, netdev
On Wed, Jul 17, 2024 at 11:08:20AM +0200, Martin Willi wrote:
> Broadcom switches supported by the b53 driver use a chip-wide jumbo frame
> configuration. In the commit referenced with the Fixes tag, the setting
> is applied just for the last port changing its MTU.
>
> While configuring CPU ports accounts for tagger overhead, user ports do
> not. When setting the MTU for a user port, the chip-wide setting is
> reduced to not include the tagger overhead, resulting in an potentially
> insufficient chip-wide maximum frame size for the CPU port.
>
> As, by design, the CPU port MTU is adjusted for any user port change,
> apply the chip-wide setting only for CPU ports. This aligns the driver
> to the behavior of other switch drivers.
>
> Fixes: 6ae5834b983a ("net: dsa: b53: add MTU configuration support")
> Suggested-by: Vladimir Oltean <olteanv@gmail.com>
> Signed-off-by: Martin Willi <martin@strongswan.org>
> ---
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net v2 0/2] net: dsa: Fix chip-wide frame size config in some drivers
2024-07-17 9:08 [PATCH net v2 0/2] net: dsa: Fix chip-wide frame size config in some drivers Martin Willi
2024-07-17 9:08 ` [PATCH net v2 1/2] net: dsa: mv88e6xxx: Limit chip-wide frame size config to CPU ports Martin Willi
2024-07-17 9:08 ` [PATCH net v2 2/2] net: dsa: b53: Limit chip-wide jumbo frame " Martin Willi
@ 2024-07-18 11:30 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-07-18 11:30 UTC (permalink / raw)
To: Martin Willi
Cc: andrew, f.fainelli, olteanv, chris.packham, murali.policharla,
davem, edumazet, kuba, pabeni, netdev
Hello:
This series was applied to netdev/net.git (main)
by Paolo Abeni <pabeni@redhat.com>:
On Wed, 17 Jul 2024 11:08:18 +0200 you wrote:
> Some DSA chips support a chip-wide frame size configurations, only. Some
> drivers adjust that chip-wide setting for user port changes, overriding
> the frame size requirements on the CPU port that includes tagger overhead.
>
> Fix the mv88e6xxx and b53 drivers and align them to the behavior of other
> drivers.
>
> [...]
Here is the summary with links:
- [net,v2,1/2] net: dsa: mv88e6xxx: Limit chip-wide frame size config to CPU ports
https://git.kernel.org/netdev/net/c/66b6095c264e
- [net,v2,2/2] net: dsa: b53: Limit chip-wide jumbo frame config to CPU ports
https://git.kernel.org/netdev/net/c/c5118072e228
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] 6+ messages in thread