]> git.itanic.dy.fi Git - linux-stable/commit
Merge branch 'net-ethernet-ti-am65-cpsw-allow-for-mtu-values'
authorJakub Kicinski <kuba@kernel.org>
Fri, 12 Jan 2024 00:54:47 +0000 (16:54 -0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 12 Jan 2024 00:54:47 +0000 (16:54 -0800)
commit66cee759ffa3d1146a22182c3d5a6404c7cfe9fd
tree94d4d80d240f98a8342ca38a53e2e67c01f33fcf
parente3fe8d28c67bf6c291e920c6d04fa22afa14e6e4
parent64e47d8afb5ca533b27efc006405e5bcae2c4a7b
Merge branch 'net-ethernet-ti-am65-cpsw-allow-for-mtu-values'

Sanjuán García, Jorge says:

====================
net: ethernet: ti: am65-cpsw: Allow for MTU values

The am65-cpsw-nuss driver has a fixed definition for the maximum ethernet
frame length of 1522 bytes (AM65_CPSW_MAX_PACKET_SIZE). This limits the switch
ports to only operate at a maximum MTU of 1500 bytes. When combining this CPSW
switch with a DSA switch connected to one of its ports this limitation shows up.
The extra 8 bytes the DSA subsystem adds internally to the ethernet frame
create resulting frames bigger than 1522 bytes (1518 for non VLAN + 8 for DSA
stuff) so they get dropped by the switch.

One of the issues with the the am65-cpsw-nuss driver is that the network device
max_mtu was being set to the same fixed value defined for the max total frame
length (1522 bytes). This makes the DSA subsystem believe that the MTU of the
interface can be set to 1508 bytes to make room for the extra 8 bytes of the DSA
headers. However, all packages created assuming the 1500 bytes payload get
dropped by the switch as oversized.

This series offers a solution to this problem. The max_mtu advertised on the
network device and the actual max frame size configured on the switch registers
are made consistent by letting the extra room needed for the ethernet headers
and the frame checksum (22 bytes including VLAN).
====================

Link: https://lore.kernel.org/r/20240105085530.14070-1-jorge.sanjuangarcia@duagon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>