The dreaded MTU on a cell device causing basic connection issues

tags: QMI QUECTEL EG18-NA (2024-08 firmware, more recent than the stock netgear, which has helped)

IF I leave everything alone on the default QMI connection to the internal quectel modem, and only change the openwrt default of ipv4 to ipv4/6 so I can properly connect to sites like download.openwrt.org and pass ipv6 tests, it's a decent connection for what it is in terms of reliability.

HOWEVER, if I go to Network, Interfaces, Device, WWAN0 (the device the qmi / quectel interface uses) and change the IP4 & 6 MTU's to the recommended 1420 for the provider (verizon), the cell connection is very difficult to make, if at all.

What seems to be happening, is somehow Openwrt is forwarding the MTU information to the quectel modem, and it causes the quectel to become unstable/unusable. It's not the actual value set on the MTU, but that it's set to anything at all.

It seems that way, that Openwrt is pushing the MTU value to the quectel and it's dying. It won't connect properly unless I 'unconfigure' the wwan0 device. Here's an idea: is there something I should program on the Quectel first (using picocom/AT commands) for the MTU to be 1420? Could it be that Openwrt is setting that device's MTU to 1420 and then it no longer matches what the Quectel is using, and the issue is there?

Would appreciate feedback, thanks!

You have to talk to your provider. 4/5g underlying tech can transport 2kB-10kB frames

1 Like

It might be technically true. But all over the internet searches you'll find that people have to reduce the MTU to get effective transport of information across cell links.

What I was able to do for the time being, is send all traffic through a wireguard tunnel to a VPN provider, and set the MTU of the tunnel to 1320. That seems to work. I would like to be able to set the basic WWAN MTU, but this seems to be yet another quectel firmware bug.

Switch the modem to MBIM and configure everything as shown in https://openwrt.org/docs/guide-user/network/wan/wwan/ltedongle
Do not manually set MTU and discover it as shown here. Show the final result (digits only).

2 Likes

For the Busybox ping built into OpenWrt, the syntax is ping -s <size> <destination>. If size is too large for the link, the pings fail to go through. Busybox does not display a "fragmentation needed" error message that most instructions refer to.

MTU should be 28 more than the largest possible size for IPv4, or 48 more for IPv6. If a (v4) test with size 1472 or larger is successful, this means the actual MTU is 1500 or more thus no action is needed, since the Ethernet and wifi links into the router enforce an MTU of 1500 and will be the bottle-neck.

Instructions on the Internet are likely to be outdated from back in the 2G 3G days when cellular modems were a "dial up" psuedo-serial device and ppp headers were involved.

1 Like

If I tell the Quectel cell modem to run in MBIM and configure Openwrt (have done this before), it double-nats. Runs a router inside the modem and doesn't give the IP information directly to openwrt. IIR that was the reason that only QMI actually works with these, although they do 'support' MBIM and rNDIS.

You're wrong.

1 Like

Ok. The only part I was wrong is the minutia about is how it double-nats. NDIS does, not MBIM. But, whatever... as it's not really important. There was a valid reason for me not running a Quectel modem on any Openwrt equipment in MBIM mode, and I tested it again and re-discovered what it is:

There is a serious problem. The Quectel modem and SIM (verizon in this case) only works in QMI (AT+QCFG="usbnet",0) mode, if NO APN and NO MTU is configured.

That happens with two different manufacturer's devices and two different quectel modems, different models, both, entirely. One is a Cat6 with no CA and another is a Cat18 with CA. One router is a GLINET, one is a NETGEAR. It's probably the garbage hardware and software inside the quectel, actually causing the issues, but here's the issues related to Openwrt functioning with it:

If you use QMI, and do not set anything, and just let it connect, it works. It's stable. But MTU is 1500, and the interface has no way to detect it. It should be 1428 - or, whatever size you want. 1428 - it's all over online, and well-known as a value. But, when you set the MTU, the connection, while it starts out very smooth and fast because now the MTU is correct, it quickly becomes very unstable; the shtty quectel garbage locks-up, the router needs to be rebooted. Expect a connection to last some minutes, not days, with the MTU set. Unset the MTU, reboot, and it goes back to normal.

Do NOT set the APN, either, or similar bad behavior occurs. The modem will pull the correct profile automatically from the SIM, and setting the APN makes it not work correctly.

MBIM: If you switch the modem to MBIM (AT+QCFG="usbnet",2), and setup the MBIM wwan0 device, it works great - at first. It does autodetect the MTU, as 1428. That's the greyed-out field in the box under Advanced Settings, telling you it's the default (unlike QMI which says 1500). However, you cannot not set an APN and enable the adapter/interface. Openwrt will not permit you, through Luci, to leave it empty. I did not try through the shell, directly.

And soon, you get PIN errors - but the sim has no PIN requirement. And NO CARRIER etc all kinds of errors attempting to connect. At first, with MBIM, it works for a few minutes, nice and smooth, but then it fails. When I retested all of the above, over the last several days, on the LBR20 with it's EG18-NA, I remembered all the problems I had with the GLINET GL-X750 and it's EC25-AF (Cat6 no CA), and the experiences were the same. I thought it was the GL-X750 itself, at first, but the more I experienced, and talked with people who had thousands of Quectel modems in devices they were in technical departments overseeing, the more I got the feedback that they are garbage. Something licensed from Qualcomm, that the staff at Quectel just fabs out, but has little expertise in making them work right. Like that fake car part that doesn't fit right, or perform well, but looks similar to the OEM. It's not that that area of the world can't make quality stuff, it's just that Quectel is an example of a company staffed with people who don't.

Meanwhile, the question is how can the Openwrt device work around such garbage? Is there a way to make a custom build with MBIM that does not require input of an APN? I'm even considering just putting another router after the LBR20, like an MX4300, and setting the MTU on it's wan interface, since setting the MTU directly on the device with the Quectel, causes the Quectel interface to crash.

P.S. sites like test-ipv6.com correctly report that large packets are not being handled correctly, and the MTU should be set (on the wwan). Besides all the obvious speed / performance improvements in the brief periods when it was.