Issues with IPv4v6 and IPv6 on openwrt with a Quectel EG06-E

Bjørn Mork bjorn at mork.no
Fri Nov 8 09:12:51 UTC 2019


Aleksander Morgado <aleksander at aleksander.es> writes:

> Hey Bjørn,
>
>> > 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?
>>
>
> Don't think autoconnect is enabled, but will check. The weird thing is
> the combination of "NoEffect" on WDS start network, and then
> "OutOfCall" in WDS get current settings. If it were autoconnected, the
> get current settings wouldn't say OutOfCall (if I'm not mistaken).

Probably not.  Are you sure the context is really connected as IPV4V6?
What happens if you try to connect the same APN as IPV6 (only)?

>> Or short version:  I have absolutely no idea.
>>
>
> Heh :D
>
>> 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 :-)
>>
>
> Nice!
>
>> 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'
>>
>
> That seems right to me... strange. Are you able to run this?
> $ mmcli -m "/sys/devices/platform/soc/soc:pcie at 82000000/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2"
> -K

Works as expected:

root at wrt1900ac-1:~# mmcli -m "/sys/devices/platform/soc/soc:pcie at 82000000/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2" -K
modem.dbus-path                                 : /org/freedesktop/ModemManager1/Modem/2
modem.generic.device-identifier                 : a3fae1362318a2c2345da91ce9fb3d3772060a4f
modem.generic.manufacturer                      : Sierra Wireless, Incorporated
modem.generic.model                             : EM7565
modem.generic.revision                          : SWI9X50C_01.09.04.00 6d3218 jenkins 2019/02/26 20:33:22
modem.generic.carrier-configuration             : default
modem.generic.carrier-configuration-revision    : --
modem.generic.hardware-revision                 : 10001
modem.generic.supported-capabilities.length     : 1
modem.generic.supported-capabilities.value[1]   : gsm-umts, lte
modem.generic.current-capabilities.length       : 1
modem.generic.current-capabilities.value[1]     : gsm-umts, lte
modem.generic.equipment-identifier              : 359260080103515
modem.generic.device                            : /sys/devices/platform/soc/soc:pcie at 82000000/pci0000:00/0000:00:01.0/0000:01:00.0/usb3/3-2
modem.generic.drivers.length                    : 2
modem.generic.drivers.value[1]                  : qcserial
modem.generic.drivers.value[2]                  : qmi_wwan
modem.generic.plugin                            : Sierra
modem.generic.primary-port                      : cdc-wdm0
modem.generic.ports.length                      : 2
modem.generic.ports.value[1]                    : cdc-wdm0 (qmi)
modem.generic.ports.value[2]                    : wwan0 (net)
modem.generic.own-numbers                       : --
modem.generic.unlock-required                   : sim-pin2
modem.generic.unlock-retries.length             : 4
modem.generic.unlock-retries.value[1]           : sim-pin (3)
modem.generic.unlock-retries.value[2]           : sim-pin2 (2)
modem.generic.unlock-retries.value[3]           : sim-puk (10)
modem.generic.unlock-retries.value[4]           : sim-puk2 (10)
modem.generic.state                             : connected
modem.generic.state-failed-reason               : --
modem.generic.power-state                       : on
modem.generic.access-technologies.length        : 1
modem.generic.access-technologies.value[1]      : lte
modem.generic.signal-quality.value              : 76
modem.generic.signal-quality.recent             : yes
modem.generic.supported-modes.length            : 4
modem.generic.supported-modes.value[1]          : allowed: 3g; preferred: none
modem.generic.supported-modes.value[2]          : allowed: 4g; preferred: none
modem.generic.supported-modes.value[3]          : allowed: 3g, 4g; preferred: 3g
modem.generic.supported-modes.value[4]          : allowed: 3g, 4g; preferred: 4g
modem.generic.current-modes                     : allowed: 2g, 3g, 4g; preferred: 4g
modem.generic.supported-bands.length            : 33
modem.generic.supported-bands.value[1]          : utran-1
modem.generic.supported-bands.value[2]          : utran-3
modem.generic.supported-bands.value[3]          : utran-4
modem.generic.supported-bands.value[4]          : utran-6
modem.generic.supported-bands.value[5]          : utran-5
modem.generic.supported-bands.value[6]          : utran-8
modem.generic.supported-bands.value[7]          : utran-9
modem.generic.supported-bands.value[8]          : utran-2
modem.generic.supported-bands.value[9]          : eutran-1
modem.generic.supported-bands.value[10]         : eutran-2
modem.generic.supported-bands.value[11]         : eutran-3
modem.generic.supported-bands.value[12]         : eutran-4
modem.generic.supported-bands.value[13]         : eutran-5
modem.generic.supported-bands.value[14]         : eutran-7
modem.generic.supported-bands.value[15]         : eutran-8
modem.generic.supported-bands.value[16]         : eutran-9
modem.generic.supported-bands.value[17]         : eutran-12
modem.generic.supported-bands.value[18]         : eutran-13
modem.generic.supported-bands.value[19]         : eutran-18
modem.generic.supported-bands.value[20]         : eutran-19
modem.generic.supported-bands.value[21]         : eutran-20
modem.generic.supported-bands.value[22]         : eutran-26
modem.generic.supported-bands.value[23]         : eutran-28
modem.generic.supported-bands.value[24]         : eutran-29
modem.generic.supported-bands.value[25]         : eutran-30
modem.generic.supported-bands.value[26]         : eutran-32
modem.generic.supported-bands.value[27]         : eutran-41
modem.generic.supported-bands.value[28]         : eutran-42
modem.generic.supported-bands.value[29]         : eutran-43
modem.generic.supported-bands.value[30]         : eutran-46
modem.generic.supported-bands.value[31]         : eutran-48
modem.generic.supported-bands.value[32]         : eutran-66
modem.generic.supported-bands.value[33]         : utran-19
modem.generic.current-bands.length              : 33
modem.generic.current-bands.value[1]            : utran-1
modem.generic.current-bands.value[2]            : utran-3
modem.generic.current-bands.value[3]            : utran-4
modem.generic.current-bands.value[4]            : utran-6
modem.generic.current-bands.value[5]            : utran-5
modem.generic.current-bands.value[6]            : utran-8
modem.generic.current-bands.value[7]            : utran-9
modem.generic.current-bands.value[8]            : utran-2
modem.generic.current-bands.value[9]            : eutran-1
modem.generic.current-bands.value[10]           : eutran-2
modem.generic.current-bands.value[11]           : eutran-3
modem.generic.current-bands.value[12]           : eutran-4
modem.generic.current-bands.value[13]           : eutran-5
modem.generic.current-bands.value[14]           : eutran-7
modem.generic.current-bands.value[15]           : eutran-8
modem.generic.current-bands.value[16]           : eutran-9
modem.generic.current-bands.value[17]           : eutran-12
modem.generic.current-bands.value[18]           : eutran-13
modem.generic.current-bands.value[19]           : eutran-18
modem.generic.current-bands.value[20]           : eutran-19
modem.generic.current-bands.value[21]           : eutran-20
modem.generic.current-bands.value[22]           : eutran-26
modem.generic.current-bands.value[23]           : eutran-28
modem.generic.current-bands.value[24]           : eutran-29
modem.generic.current-bands.value[25]           : eutran-30
modem.generic.current-bands.value[26]           : eutran-32
modem.generic.current-bands.value[27]           : eutran-41
modem.generic.current-bands.value[28]           : eutran-42
modem.generic.current-bands.value[29]           : eutran-43
modem.generic.current-bands.value[30]           : eutran-46
modem.generic.current-bands.value[31]           : eutran-48
modem.generic.current-bands.value[32]           : eutran-66
modem.generic.current-bands.value[33]           : utran-19
modem.generic.supported-ip-families.length      : 3
modem.generic.supported-ip-families.value[1]    : ipv4
modem.generic.supported-ip-families.value[2]    : ipv6
modem.generic.supported-ip-families.value[3]    : ipv4v6
modem.3gpp.imei                                 : 359260080103515
modem.3gpp.enabled-locks                        : --
modem.3gpp.operator-code                        : 24201
modem.3gpp.operator-name                        : TELENOR
modem.3gpp.registration-state                   : home
modem.3gpp.pco                                  : --
modem.3gpp.eps.ue-mode-operation                : --
modem.3gpp.eps.initial-bearer.dbus-path         : --
modem.3gpp.eps.initial-bearer.settings.apn      : --
modem.3gpp.eps.initial-bearer.settings.ip-type  : --
modem.3gpp.eps.initial-bearer.settings.user     : --
modem.3gpp.eps.initial-bearer.settings.password : --
modem.cdma.meid                                 : --
modem.cdma.esn                                  : --
modem.cdma.sid                                  : --
modem.cdma.nid                                  : --
modem.cdma.cdma1x-registration-state            : --
modem.cdma.evdo-registration-state              : --
modem.cdma.activation-state                     : --
modem.generic.sim                               : /org/freedesktop/ModemManager1/SIM/2
modem.generic.bearers.length                    : 1
modem.generic.bearers.value[1]                  : /org/freedesktop/ModemManager1/Bearer/0


> Also, does the system log say anything like "Device not found in
> sysfs" or "No device specified"?

No, there is no log message at all.  Which I guess must mean that this
fails before MM is involved, as I've enabled DEBUG MM logging.

>>
>> 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?
>>
>
> Did you reload network after changing /etc/config/network? Or a
> reboot, that would have helped as well.

I did reload network, but I'll try rebooting in case there is something
I missed on the way.  The installation order is probably not how this
was meant to work:

 1) OpenWrt last updated and booted a month ago.
 2) Modem connected.
 3) qcserial and qmi_wwan drivers installed
 4) ModemManager installed


> Lovely! Thanks for doing this test. If you could try to retest after
> rebooting the router to see if the settings are applied correctly,
> that would be fantastic.

Will try.  I guess I should figure out how to get some debugging out of
netifd if I can't make this work.

>> 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.
>>
>
> There is a new luci package for the modemmanager protocol setup as
> well, but haven't tested it myself.

It's been a while since I tried luci (any part of it).  But maybe I
should now, just to make sure


More information about the libqmi-devel mailing list