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.

Might consider ModemManager and luci-proto-modemmanager...

It uses the full MBIM/QMI stack, and should work better - and it properly handles QMI and QMI as a MBIM service...

Regarding VZW - check the Quectel AT command docs, there should be a profile selection for VZ that you can set as a default - so this would include the APN needed...

1 Like

Regarding VZW - check the Quectel AT command docs, there should be a profile selection for VZ that you can set as a default - so this would include the APN needed

It is. I implied it by stating:

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.

If you don't configure those values, it works: The Quectel is properly reading the sim and pulling the necessary connection profile information from it. If I put in the Netgear OEM firmware, before, I was able to log into the first LBR20, as it had a prior owner and I did not yet reset/have the credentials, it connected. I don't know what Netgear is using in their firmware for talking with the modem

modemmanager

as you said, they may be using that. I know it's using the modem in QMI mode.

fyi the modem is using the absolutely latest firmware from somewhere around mid-2024, provided by quectel, which resolves some bugs related to modem stability and connectivity, that are present in firmwares on the Netgear site, their specific packaging of the A05 and A06 firmwares. The 'bug' that caused this thread to be opened, has persisted throughout. It has something to do, I suspect, with the way the QMI and MBIM are talking to the modem. While the bug is 99% likely to be in the quectel device firmware, I am wondering if there is some fix for either of those, as modemmanager is just a more sophisticated layer on top of either libmbim or libqmi.

Most people would stop there. Have you done the ping tests to see if there is any MTU issue?

Just to touch on this, again: I installed modemmanager and transferred over the plain qmippp interface to modemmanager, as per various people suggesting the same thing, including you, like it's some miracle fix for quectelgarbage. The same issues were present: modemmanager is correctly detecting the MTU (as 1428 instead of the default 1500), and the interface is crashing 2 minutes after being started. [which as I recall from trying plain MBIM and or changing the MTU on the QMI, is the same time-frame before a hard crash]. It works brilliant -for 2 minutes. Time to run a test-ipv6.com test, and bring up google.com, all in a flash, with ipv6 making no issues about large packets (because the MTU is being detected and set to 1428).

After that time, the entire device requires a reboot to get the quectel modem working again. Simply restarting the qmippp gives Device Not Present errors. I.e. it is a locked-up piece of Quectelgarbage. Keep in mind as I stated earlier, this exact same behavior is seen on earlier EG18-NA firmwares, and on a completely different device, the GL-X750 with the EC06-AF modem, again, a garbage quectel device.)

I doubt the so-called 'engineers' at quectel will ever fix their crap, so I am wondering if there is a workaround to be done on openwrt.

most people

I don't care about herd mentality.

asks a question already addressed numerous times.

From the related thread on the GLiNet forums:

It does not matter if it's Openwrt v22 - v24, and it does not matter what revision of firmware is being used in the quectel devices. Only setting the MTU explicitly, or using a protocol (MBIM) that detects then sets the MTU, causes the modem to lock itself up.

I've spoken with systems adminstrators, one that managed over a thousand Quectel devices, and he confirmed they are buggy garbage, with numerous hardware and software issues. And that, the only way to work with them, is to work-around the known bugs which Quectel does not seem to have the interest or capability of solving. It seems they merely license the technology from Qualcomm, but have very little understanding of it themselves, and cut all kinds of corners when fabricating chips that result in the hardware glitches (which may be related to the software glitches).