Issues with IPv4v6 and IPv6 on openwrt with a Quectel EG06-E
Bjørn Mork
bjorn at mork.no
Thu Nov 7 20:34:41 UTC 2019
Aleksander Morgado <aleksander at aleksander.es> writes:
> Hey Thomas, Bjørn and all,
>
> I'm trying to test IPv4v6 and IPv6 using a Quectel EG06-E, which runs
> in QMI mode. This is in OpenWRT, using this branch that I'm working
> on:
> https://github.com/aleksander0m/openwrt-packages/commit/b5805c3e1d2965662d2fe16aa80140a242339abd
> (BTW, any additional test with that branch would be very welcome)
>
> When I fire up the connection through ModemManager, the logic will
> create separate WDS clients for the IPv4 and IPv6 "start network"
> commands (only one IPv6 client in case of IPv6 only).
>
> What I see in the logs is that the "start network" command for the
> IPv4 part works successfully, but the one for the IPv6 part returns a
> "NoEffect" error.
>
> <<<<<< QMUX:
> <<<<<< length = 26
> <<<<<< flags = 0x80
> <<<<<< service = "wds"
> <<<<<< client = 20
> <<<<<< QMI:
> <<<<<< flags = "response"
> <<<<<< transaction = 3
> <<<<<< tlv_length = 14
> <<<<<< message = "Start Network" (0x0020)
> <<<<<< TLV:
> <<<<<< type = "Result" (0x02)
> <<<<<< length = 4
> <<<<<< value = 01:00:1A:00
> <<<<<< translated = FAILURE: NoEffect
>
> In the logic of MM, a "NoEffect" error is treated as no error, so the
> logic goes on and tries to "WDS Get Current Settings" with the IPv6
> client, and that one fails with an OutOfCall error.
>
> <<<<<< QMUX:
> <<<<<< length = 19
> <<<<<< flags = 0x80
> <<<<<< service = "wds"
> <<<<<< client = 20
> <<<<<< QMI:
> <<<<<< flags = "response"
> <<<<<< transaction = 4
> <<<<<< tlv_length = 7
> <<<<<< message = "Get Current Settings" (0x002D)
> <<<<<< TLV:
> <<<<<< type = "Result" (0x02)
> <<<<<< length = 4
> <<<<<< value = 01:00:0F:00
> <<<<<< translated = FAILURE: OutOfCall
>
> Does anyone have any idea what could be happening here?
> These tests are using the "data.tre.dk" APN in Denmark.
autoconnect is disabled? You do use the proper ip-family TLV and/or WDS
request for this firmware version? Maybe some weird interaction with
the default bearer?
Or short version: I have absolutely no idea.
Provoked by all you hard work here, I finally got my act together and
connected a modem to an OpenWrt router. For the first time ever :-)
I though I should test your dual-stack branch, but I couldn't figure out
how to properly configure the interface. What I've got is this:
config interface 'mm'
option device '/sys/devices/platform/soc/soc:pcie at 82000000/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2'
option proto 'modemmanager'
option apn 'telenor.smart'
option pincode '1234'
option iptype 'ipv4v6'
But I only get this "NO_DEVICE" error:
root at wrt1900ac-1:/etc/config# ifstatus mm
{
"up": false,
"pending": false,
"available": false,
"autostart": true,
"dynamic": false,
"proto": "modemmanager",
"data": {
},
"errors": [
{
"subsystem": "interface",
"code": "NO_DEVICE"
}
]
}
Maybe because I didn't bother to reboot this router, so there is some
setup I was missing?
Well, the good news is that I have no problems making a dual-stack
connection by using mmcli directly:
root at wrt1900ac-1:/etc/config# mmcli -m 2
-----------------------------
General | dbus path: /org/freedesktop/ModemManager1/Modem/2
| device id: a3fae1362318a2c2345da91ce9fb3d3772060a4f
-----------------------------
Hardware | manufacturer: Sierra Wireless, Incorporated
| model: EM7565
| firmware revision: SWI9X50C_01.09.04.00 6d3218 jenkins 2019/02/26 20:33:22
| carrier config: default
| h/w revision: 10001
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id: 359260080103515
-----------------------------
System | device: /sys/devices/platform/soc/soc:pcie at 82000000/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2
| drivers: qcserial, qmi_wwan
| plugin: Sierra
| primary port: cdc-wdm0
| ports: cdc-wdm0 (qmi), wwan0 (net)
-----------------------------
Status | lock: sim-pin2
| unlock retries: sim-pin (3), sim-pin2 (2), sim-puk (10), sim-puk2 (10)
| state: disabled
| power state: on
| signal quality: 0% (cached)
-----------------------------
Modes | supported: allowed: 3g; preferred: none
| allowed: 4g; preferred: none
| allowed: 3g, 4g; preferred: 3g
| allowed: 3g, 4g; preferred: 4g
| current: allowed: 2g, 3g, 4g; preferred: 4g
-----------------------------
Bands | supported: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8,
| utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5,
| eutran-7, eutran-8, eutran-9, eutran-12, eutran-13, eutran-18,
| eutran-19, eutran-20, eutran-26, eutran-28, eutran-29, eutran-30,
| eutran-32, eutran-41, eutran-42, eutran-43, eutran-46, eutran-48,
| eutran-66, utran-19
| current: utran-1, utran-3, utran-4, utran-6, utran-5, utran-8,
| utran-9, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5,
| eutran-7, eutran-8, eutran-9, eutran-12, eutran-13, eutran-18,
| eutran-19, eutran-20, eutran-26, eutran-28, eutran-29, eutran-30,
| eutran-32, eutran-41, eutran-42, eutran-43, eutran-46, eutran-48,
| eutran-66, utran-19
-----------------------------
IP | supported: ipv4, ipv6, ipv4v6
-----------------------------
3GPP | imei: 359260080103515
-----------------------------
SIM | dbus path: /org/freedesktop/ModemManager1/SIM/2
root at wrt1900ac-1:/etc/config# mmcli -m 2 --simple-connect="apn=telenor.smart,ip-type=ipv4v6"
successfully connected the modem
root at wrt1900ac-1:/etc/config# mmcli -b 0
--------------------------------
General | dbus path: /org/freedesktop/ModemManager1/Bearer/0
| type: default
--------------------------------
Status | connected: yes
| suspended: no
| interface: wwan0
| ip timeout: 20
--------------------------------
Properties | apn: telenor.smart
| roaming: allowed
| ip type: ipv4v6
--------------------------------
IPv4 configuration | method: static
| address: 10.193.92.5
| prefix: 30
| gateway: 10.193.92.6
| dns: 193.213.112.4, 130.67.15.198
| mtu: 1500
--------------------------------
IPv6 configuration | method: static
| address: 2a02:2121:282:b9c0:2915:dea7:6ac9:b9a9
| prefix: 64
| gateway: 2a02:2121:282:b9c0:e94c:b7b2:5a2d:422b
| dns: 2001:4600:4:fff::52, 2001:4600:4:1fff::52
| mtu: 1540
root at wrt1900ac-1:/etc/config# ip addr add 10.193.92.5/30 dev wwan0
root at wrt1900ac-1:/etc/config# ip addr add 2a02:2121:282:b9c0:2915:dea7:6ac9:b9a9/64 dev wwan0
root at wrt1900ac-1:/etc/config# ip link set wwan0 up
root at wrt1900ac-1:/etc/config# ip route add 8.8.8.8 dev wwan0
root at wrt1900ac-1:/etc/config# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 38 byte packets
1 77.16.1.145.tmi.telenormobil.no (77.16.1.145) 149.505 ms 22.958 ms 13.762 ms
2 10.67.125.162 (10.67.125.162) 25.679 ms 14.818 ms 24.812 ms
3 ti0275a400-ae12-21.ti.telenor.net (193.213.177.137) 14.647 ms 18.229 ms 14.782 ms
4 ti0275c360-ae14-0.ti.telenor.net (146.172.101.93) 31.781 ms 33.357 ms 23.776 ms
5 ti3001c360-ae3-0.ti.telenor.net (146.172.14.150) 20.664 ms 46.252 ms 22.986 ms
6 ti3001b400-ae4-0.ti.telenor.net (146.172.105.29) 34.380 ms 33.140 ms 24.831 ms
7 148.122.10.70 (148.122.10.70) 23.570 ms 33.152 ms 34.728 ms
8^C
root at wrt1900ac-1:/etc/config# ip route add 2001:4860:4860::8888 dev wwan0
root at wrt1900ac-1:/etc/config# traceroute 2001:4860:4860::8888
traceroute to 2001:4860:4860::8888 (2001:4860:4860::8888), 30 hops max, 64 byte packets
1 2a02:2121:282:b9c0:0:35:1e12:1040 (2a02:2121:282:b9c0:0:35:1e12:1040) 38.096 ms 21.183 ms 20.737 ms
2 * * *
3 2a02:2120::1000:0:0:31 (2a02:2120::1000:0:0:31) 50.232 ms 43.362 ms 21.804 ms
4 ti280841735j370-ae1-20.ti.telenor.net (2001:4600:a:101::bc6) 23.963 ms 15.840 ms 20.931 ms
5 ti0275a400-ae12-21.ti.telenor.net (2001:4600:9:500:1::f5) 24.996 ms 16.855 ms 24.795 ms
6 ti0275c360-lo0-0.ti.telenor.net (2001:4600:0:100::2) 31.666 ms 22.532 ms 28.780 ms
7 ti3001c360-lo0-0.ti.telenor.net (2001:4600:0:100::a) 43.587 ms 23.807 ms 29.823 ms
8 ti3001b400-lo0-0.ti.telenor.net (2001:4600::11) 29.619 ms 22.509 ms 30.802 ms
9 2001:4600:10::13e (2001:4600:10::13e) 28.664 ms 19.780 ms 38.777 ms
10 2a00:1450:804f::1 (2a00:1450:804f::1) 30.649 ms * 59.663 ms
11 dns.google (2001:4860:4860::8888) 29.561 ms 32.225 ms 29.796 ms
So this part is looking good, including MMs ability to create a QMI
dual-stack connection. Now I only have to figure out how to tweak the
UCI settings to properly test your proto fixes.
Bjørn
More information about the libqmi-devel
mailing list