(eth0 - wan) MTU default mismatch

For my router, eth0 connects to wan.

The MTU for eth0 is defaulting to 1502, while wan says 1500.

Normally, before 24.10 (23.05), both were 1500.

Why is it increasing by 2 bytes? Should I decrease eth0 back to 1500 manually?

Side note: I use jumbo frames, so previously my LAN ports were set to 8192 MTU. Now, they're limited to 8190 while eth1 can be set to 8192. This is quite confusing.

What is in ubus call system board?
Do you use vlan for internet?
Please show output of

cat /etc/config/network

(hide any fixed IPs/MAC-s, passwords, secrets)

1 Like

UBUS:

{
        "kernel": "6.6.73",
        "hostname": "***",
        "system": "ARMv7 Processor rev 0 (v7l)",
        "model": "Netgear Nighthawk XR500",
        "board_name": "netgear,xr500",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "24.10.0",
                "revision": "r28427-6df0e3d02a",
                "target": "ipq806x/generic",
                "description": "OpenWrt 24.10.0 r28427-6df0e3d02a",
                "builddate": "1738624177"
}

Then for network config (DSA):


config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix '*******'
	option packet_steering '1'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'lan1'
	list ports 'lan2'
	list ports 'lan3'
	list ports 'lan4'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	list ipaddr '10.0.0.1/24'
	list dns '10.0.0.1'
	option delegate '0'

config interface 'wan'
	option device 'wan'
	option proto 'dhcp'
	option hostname '*'
	option peerdns '0'
	list dns '10.0.0.1'
	option delegate '0'

config device
	option name 'eth0'
	option ipv6 '0'

config device
	option name 'lan1'
	option ipv6 '0'
	option mtu '8190'

config device
	option name 'eth1'
	option ipv6 '0'
	option mtu '8190'

config device
	option name 'wlan0'
	option ipv6 '0'

config device
	option name 'lan4'
	option ipv6 '0'
	option mtu '8190'

config device
	option name 'lan2'
	option ipv6 '0'
	option mtu '8190'

config device
	option name 'lan3'
	option mtu '8190'

config device
	option name 'wan'

Here is what it shows on the GUI.

Interestingly, there is an issue that arises when trying to ping the router. Windows Jumbo Packet size is set to 8190 (for reference):

I actually have the same thing after upgrading my two R7800 to 24.10.0, eth0 and eth1 have 1502 MTU, all other devices (e.g. br-lan, br-lan.1, br-lan.2, lan1, lan2, phys0-ap0, etc etc) have 1500 assigned. I am using them as dumb APs. I do not really see any ill effects though, at least I dont think so... Would it make sense to assign 1500 to them?

1 Like

Odd thing is, if I let my eth1 default, it sets itself to 8192 instead of 8190.
So it seems OpenWRT is adding 2 bytes for some odd reason.

Check with ifconfig eth0 mtu 1500....9000 to find supported MTU.

I went a looked at my router (a GL.iNet GL-MT6000) and all MTUs are as expected except eth0 (WAN), which is 1504. I don't use jumbo frames, nor do I use VLANs on WAN.

I also checked a E4200V2 I have, that only has a eth0 but that is 1508,... I have a RT-AC68U which has everything 1500...

DSA is extra vlan-like tag on that common interface.
Kind of keep wifi or serial as backup if you are changing it.

I have checked those.

eth0+eth1: 8192
LAN1234: 8190

Before 24.10, all were 8192 max.

I wonder why it's adding extra bytes..?

Because dsa uses additional tag.
What makes you think 8k mtu was ever applied anywhere?

Because that is what I had it set to as the max.

DSA uses additional tags ONLY for eth0+eth1, correct?

What tags is it applying even? Is it necessary for operation?

It is totally described in linux kernel documentation.

That is finding a needle in a haystack.

srsly?
https://www.google.com/search?q=linux+dsa+documentation

1 Like

You're misunderstanding what I am saying. Finding exactly what to look for in the documentation itself is a difficult process.

  1. I have no idea what I am looking for.
  2. It's incredibly long and requires in-depth knowledge of the component to understand what you're reading just to be able to find one simple answer to a simple question.