The IPv6 performance is great - it just takes longer to set IPv6 up than does IPv4 (or their respective setup is serialized in the device code; IPv6 setup always follows IPv4 setup in the log).
I suspect others may find this to be true as well.
The message was just a surprise because I'd not seen it before this build.
..maybe add a note in the docs about this, but I don't see the need for a code change.
In my case, 4.8 completely broke my cellular connection on the GL-X3000.
Logs
Mon Apr 28 11:12:52 2025 daemon.notice netifd: Interface 'modem_0001' is now down
Mon Apr 28 11:12:52 2025 daemon.notice netifd: Interface 'modem_0001' is setting up now
Mon Apr 28 11:12:52 2025 user.info modem: (qcm.sh:28) (unlock_sim_pin)sim_status:READY modem_bus:0001:01:00.0
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (7692): Failed to parse message data
Mon Apr 28 11:12:53 2025 user.info modem: (qcm.sh:101) Device only supports raw-ip mode but is missing this required driver attribute: /sys/class/net/rmnet_mhi0/qmi/raw_ip.
Mon Apr 28 11:12:53 2025 user.info modem: (qcm.sh:148) Setting ifname rmnet_mhi0 MTU to default 1500
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] QConnectManager_Linux_V1.6.3.1
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] Usage: qcm [options]
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -s [apn [user password auth]] Set apn/user/password/auth get from your network provider. auth: 1~pap, 2~chap, 3~MsChapV2
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -p pincode Verify sim card pin if sim card is locked
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -p [quectel-][qmi|mbim]-proxy Request to use proxy
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -f logfilename Save log message of this program to file
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -u usbmonlog filename Save usbmon log to file
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -i interface Specify which network interface to setup data call when multi-modems exits
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -4 Setup IPv4 data call (default)
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -6 Setup IPv6 data call
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -n pdn Specify which pdn to setup data call (default 1 for QMI, 0 for MBIM)
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -m iface-idx Bind QMI data call to wwan0_ when QMAP used. E.g '-n 7 -m 1' bind pdn-7 data call to wwan0_1
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -b Enable network interface bridge function (default 0)
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:662] -v Verbose log mode, for debug purpose.
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:663] [Examples]
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:663] Example 1: qcm
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:663] Example 2: qcm -s 3gnet
Mon Apr 28 11:12:53 2025 daemon.notice netifd: modem_0001 (8210): [04-28_11:12:53:663] Example 3: qcm -s 3gnet carl 1234 1 -p 1234 -f gobinet_log.txt
Mon Apr 28 11:12:53 2025 daemon.notice netifd: Interface 'modem_0001' is now down
Mon Apr 28 11:12:53 2025 daemon.notice netifd: Interface 'modem_0001' is setting up now
Mon Apr 28 11:12:53 2025 user.info modem: (qcm.sh:28) (unlock_sim_pin)sim_status:READY modem_bus:0001:01:00.0
Mon Apr 28 11:12:54 2025 daemon.notice netifd: modem_0001 (8248): Failed to parse message data
After reviewing the qcm command logs, I suspected there was an issue with passing parameters as arguments. The APN wasn't using the -s
flag, which is required according to the qcm help output. I patched it myself, but I'm surprised that I appear to be the only one experiencing this issue.
Same issue with my x3000 upgrade; lost cellular settings and VPN wireguard settings
Mine was also broken, but that's because it wiped my custom modem (SIM) config that included a specific APN my carrier requires. Once I restored that, my connection proceeded normally.
In my case, restoring SIM card configuration wasn't enough.
To fix my connection, I'd to login to router through SSH and manually fix a few lines in qcm.sh.
Could you let me know which version you upgraded from to v4.8.0? Also, what was the DHCP configuration in the previous version?
No 4.8 for Slate GL-AXT1800 ?!!
@em411 Before dialing in v4.8 qcm.sh, the APN parameters have been set, so there is no need for the -s option during dialing. Please provide the return values of the AT+CGDCONT? and AT+CGPADDR commands after dialing
AT+CGDCONT
OK
AT+CGPADDR
+CGPADDR: 1,"42.0.15.65.76.7.117.168.0.0.0.28.94.52.233.1"
+CGPADDR: 2,"42.0.15.67.49.12.99.186.0.0.0.28.94.52.234.1"
+CGPADDR: 3,"0.0.0.0","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0"
+CGPADDR: 4,"0.0.0.0","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0"
+CGPADDR: 5,"0.0.0.0"
OK
SIM Card Settings
Special APNs: Not use
APN: internetipv6
IP Type: IPv4&IPv6
International Data Roaming: True
Protocol: QCM
Port: /dev/mhi_QMI0
TTL: 65
HL: 65
MTU: 1500
Authentication: PAP
Username: internetipv6
Password: internetipv6
Enable Band Masking: false
Here's a diff with changes that I made:
May I ask what version of tailscale you are shipping with 4.8? Its a quite old version in 4.7.7.
@em411 Here ${cid:=-n $apn_use} Did you remove it? This means using the first way to bearer dial-up, removing it may cause problems, you can restore the original script, then dial, and then see the results, or share the device to goodcloud, I check it remotely
I upgraded to version 4.8 on an X3000 and noticed a minor GUI issue. When hovering over the hamburger menu, the "Lock Operator" text overlaps with "Modem AT Command." Adjusting the text size didn’t resolve it. This occurs in Safari 18.4.
Additionally, the modem uses AT&T 5G+ (N77), but the GUI displays "AT&T 5G." Could an option be added to show "5G+" in the GUI for consistency with AT&T’s alpha tag?
@ikun, I upgraded from 4.7.4 release.
The prior DHCP settings were defaults except for a reservation for my OPNsense firewall.
Except for when I want to test without the firewall, no other clients can connect there.
I noticed tower options smearing, too in Win11 Firefox
I reversed my changes and it won't connect anymore using the same Sim Card Settings.
Logs
Tue Apr 29 14:01:26 2025 daemon.notice netifd: Interface 'modem_0001' is now down
Tue Apr 29 14:01:26 2025 daemon.notice netifd: Interface 'modem_0001' is setting up now
Tue Apr 29 14:01:27 2025 user.debug modem: (hotplug-call:10) iface:modem_0001 action:ifup-failed
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+CPIN? timeout:8s
Tue Apr 29 14:01:27 2025 user.debug modem: (qcm.sh:26) (check_sim_and_pin_status)sim_status:READY
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QCCID timeout:8s
Tue Apr 29 14:01:27 2025 user.debug modem: (qcm.sh:38) (get_sim_iccid)iccid:8948032412096274742F
Tue Apr 29 14:01:27 2025 user.info modem: (qcm.sh:28) (unlock_sim_pin)sim_status:READY modem_bus:0001:01:00.0
Tue Apr 29 14:01:27 2025 daemon.debug sms_manager: (at_client.c:117) atcmd:AT+CPMS?
timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:ATI timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+CIMI timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+CPIN? timeout:8s
Tue Apr 29 14:01:27 2025 user.debug modem: (qcm.sh:64) (get_operator_type)operator:normal
Tue Apr 29 14:01:27 2025 user.debug modem: (qcm.sh:17) (check_apn)apn:1
Tue Apr 29 14:01:27 2025 user.debug modem: (qcm.sh:7) (modem_AT_set_roaming)roaming:1
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QNWPREFCFG="roam_pref",255 timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QCFG="roamservice",255 timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:ATI timeout:8s
Tue Apr 29 14:01:27 2025 daemon.notice netifd: modem_0001 (5859): Failed to parse message data
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QNWPREFCFG="mode_pref",AUTO timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QNWPREFCFG="nr5g_disable_mode",0 timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QNWPREFCFG="lte_band",1:2:3:4:5:7:8:12:13:14:17:18:19:20:25:26:28:29:30:32:34:38:39:40:41:42:43:46:48:66:71 timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QCFG="band",0,8000000000000000 timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QNWPREFCFG="nr5g_band",1:2:3:5:7:8:12:13:14:18:20:25:26:28:29:30:38:40:41:48:66:70:71:75:76:77:78:79 timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QNWPREFCFG="nsa_nr5g_band",1:2:3:5:7:8:12:13:14:18:20:25:26:28:29:30:38:40:41:48:66:70:71:75:76:77:78:79 timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QUIMSLOT? timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QUIMSLOT? timeout:8s
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+QUIMSLOT? timeout:8s
Tue Apr 29 14:01:27 2025 user.debug modem: (qcm.sh:9) (modem_AT_set_apn)bus:0001:01:00.0 iccid:8948032412096274742F pin_code: modem_iface:modem_0001
Tue Apr 29 14:01:27 2025 user.debug modem: (qcm.sh:17) (modem_AT_set_apn)apns: dial_apn:internetipv6 apn_use: ip_type:IPV4V6
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:27 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:28 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:28 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:ATI timeout:8s
Tue Apr 29 14:01:28 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:28 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+CIMI timeout:8s
Tue Apr 29 14:01:28 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:28 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+CPIN? timeout:8s
Tue Apr 29 14:01:28 2025 user.debug modem: (qcm.sh:64) (get_operator_type)operator:normal
Tue Apr 29 14:01:28 2025 user.debug modem: (qcm.sh:17) (check_apn)apn:1
Tue Apr 29 14:01:28 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:28 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+CGDCONT? timeout:8s
Tue Apr 29 14:01:28 2025 daemon.debug gl_modem: (common.c:132) get modem pci pid:0x308 vid:0x17cb
Tue Apr 29 14:01:28 2025 daemon.debug gl_modem: (at_client.c:117) atcmd:AT+CGDCONT? timeout:8s
Tue Apr 29 14:01:28 2025 user.info modem: (qcm.sh:101) Device only supports raw-ip mode but is missing this required driver attribute: /sys/class/net/rmnet_mhi0/qmi/raw_ip.
Tue Apr 29 14:01:28 2025 user.info modem: (qcm.sh:148) Setting ifname rmnet_mhi0 MTU to default 1500
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:240] QConnectManager_Linux_V1.6.3.1
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:240] Usage: qcm [options]
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:240] -s [apn [user password auth]] Set apn/user/password/auth get from your network provider. auth: 1~pap, 2~chap, 3~MsChapV2
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:240] -p pincode Verify sim card pin if sim card is locked
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:240] -p [quectel-][qmi|mbim]-proxy Request to use proxy
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:240] -f logfilename Save log message of this program to file
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] -u usbmonlog filename Save usbmon log to file
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] -i interface Specify which network interface to setup data call when multi-modems exits
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] -4 Setup IPv4 data call (default)
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] -6 Setup IPv6 data call
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] -n pdn Specify which pdn to setup data call (default 1 for QMI, 0 for MBIM)
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] -k pdn Specify which pdn to hangup data call (by send SIGINT to 'quectel-CM -n pdn')
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] -m iface-idx Bind QMI data call to wwan0_ when QMAP used. E.g '-n 7 -m 1' bind pdn-7 data call to wwan0_1
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] -b Enable network interface bridge function (default 0)
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] -v Verbose log mode, for debug purpose.
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] [Examples]
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] Example 1: qcm
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] Example 2: qcm -s 3gnet
Tue Apr 29 14:01:28 2025 daemon.notice netifd: modem_0001 (6424): [04-29_14:01:28:241] Example 3: qcm -s 3gnet carl 1234 1 -p 1234 -f gobinet_log.txt
Tue Apr 29 14:01:28 2025 daemon.notice netifd: Interface 'modem_0001' is now down
Tue Apr 29 14:01:28 2025 daemon.notice netifd: Interface 'modem_0001' is setting up now
And yes, I've removed it on purpose, because I can't connect with it, even with -s "$apn" added.
@Update
Now I'm using this and it's working fine:
if [ "$apn_use" != "-1" ];then
if [ "$apn_use" != "" ]; then
#pdp_type='-4 -6'
proto_run_command "$interface" qcm ${pdp_type:=-4 -6} \
${cid:=-n $apn_use} \
${apn:+-s $apn} \
${username:+ $username} \
${password:+ $password} \
${auth:+ $auth}
else
proto_run_command "$interface" qcm ${pdp_type:=-4 -6} \
${apn:+-s $apn} \
${username:+ $username} \
${password:+ $password} \
${auth:+ $auth}
fi
else
proto_run_command "$interface" qcm ${pdp_type:=-4 -6}
fi
I upgraded to this new firmware to test it but noticing an issue with using adguard DNS and forcing all connections through VPN. Even though Services from GL iNet are set to use VPN I am noticing DNS leaks when testing using browserleaks. I have to switch to using encrypted DNS and turn off adguard for the DNS leaks to stop.
My GL-X3000 shows 1.66.4-1 (OpenWrt)
[update] ... but at the CLI I can update it to 1.82.5
while the Tailscale admin console still reports the old version. Odd.
[update x2] I little pushing and shoving and I now see 1.82.5
for the version in the Tailscale admin console.
I think I also have a problem with DNS and FW 4.8. As soon as I update the firmware, I get a notification from my provider that port 53 UDP should be open on my IP address, and I should disable it because it could lead to DOS attacks. I have certain devices running over VPN.
There is indeed an issue with the tower icon display, the internal team has found this issue, it will be fixed in the next release, thank you for your feedback
- The VPN server running does not need to open port 53 on the WAN.
- GL router does not open port 53 for WAN by default. How do you know the port 53 be open?
- Did the GL router enable the "Drop-in Gateway" mode?