Whenever I ping my router with 8162 bytes (the maximum data payload I can do), it returns that the packets were successfully sent, albeit with following error:
Trying ifconfig br-lan mtu 5000 causes it to soft brick, but setting it to ifconfig br-lan mtu 4000 works. Hm. I'll narrow it down to the highest number.
Okay. 4148 seems to be the highest number possible for br-lan before it causes reboot issues. Why is this number the highest it can go if br-lan is just a bridge?
The miscompare error at 1474 makes me to think that the packets actually get fragmented and sent in pieces.
4148 and 4122 in the error message makes me to think this:
4096 + 26 = 4122
4122 + 26 = 4148
Likely there is a 4096 byte buffer in the drivers somewhere.
And somehow a 26 bytes packet header gets applied into the process twice.
Strange.
You might install fping and test fragmentation like
root@router6000:~# fping -M -b 1500 192.168.1.5
192.168.1.5: error while sending ping: Message too large
192.168.1.5 is unreachable
root@router6000:~# fping -M -b 1473 192.168.1.5
192.168.1.5: error while sending ping: Message too large
192.168.1.5 is unreachable
root@router6000:~# fping -M -b 1472 192.168.1.5
192.168.1.5 is alive
(Busybox default ping does not have the fragmentation flag "-M" typical in Linux pings. Windows ping would have the flag "-f" for preventing fragmentation)
LAN 1-4 are not, but br-lan is a bridge. I thought that meant it is not physical.
My tests are all over the place. Sometimes things work, sometimes they don't. Now that I set the MTU under br-lan in the config file to be 4148, I cannot ping any higher than 2000 for the payload. Trying 2001+ fails whilst everything below it works.
This is incredibly confusing. I am using an XR500.