Re: [MM] 'qmi-support' branch merged to git master



>> So, the 'qmi-support' was just merged to git master, which means that
>> you'll now need libqmi git master [1] to compile ModemManager. All new
>> QMI-related development will now go into git master directly.
> 
> Wow, great work!
> 
> I noticed that you even support multiple bearers now, allowing me to
> configure multiple APNs on the same modem (the 3rd QMI/wwan device is
> fake - I'm experimenting.  It does not work):
> 
> ModemManager[25642]: <debug> [1346264110.916784] [mm-broadband-modem-qmi.c:143] modem_create_bearer(): Creating QMI bearer in QMI modem
> ModemManager[25642]: <debug> [1346264110.917592] [mm-broadband-modem-qmi.c:122] modem_create_bearer_finish(): New bearer created at DBus path '/org/freedesktop/ModemManager1/Bearer/0'
> ModemManager[25642]: <debug> [1346264115.797676] [mm-broadband-modem-qmi.c:143] modem_create_bearer(): Creating QMI bearer in QMI modem
> ModemManager[25642]: <debug> [1346264115.797963] [mm-broadband-modem-qmi.c:122] modem_create_bearer_finish(): New bearer created at DBus path '/org/freedesktop/ModemManager1/Bearer/1'
> ModemManager[25642]: <debug> [1346264118.807731] [mm-broadband-modem-qmi.c:143] modem_create_bearer(): Creating QMI bearer in QMI modem
> ModemManager[25642]: <debug> [1346264118.808034] [mm-broadband-modem-qmi.c:122] modem_create_bearer_finish(): New bearer created at DBus path '/org/freedesktop/ModemManager1/Bearer/2'
> 
> 
> 
> 
> bjorn@nemi:~$ mmcli -m 0   --list-bearers
> 
> Found 3 bearers:
> 
>         /org/freedesktop/ModemManager1/Bearer/0
> 
>         /org/freedesktop/ModemManager1/Bearer/1
> 
>         /org/freedesktop/ModemManager1/Bearer/2
> 
> 
> Connecting one of them works fine, but will always connect wwan0 it
> seems: 

Expected; the logic to select the wwan interface corresponding to a
given QMI interface is not ready yet. I'll fix that tomorrow and let you
know for a quick test. Actually, the logic is the reverse one, we have a
list of data ports (the wwan ones) and we'll look for the corresponding
QMI devices.

> 
> bjorn@nemi:~$ mmcli -b 0
> Bearer '/org/freedesktop/ModemManager1/Bearer/0'
>   -------------------------
>   Status             |   connected: 'no'
>                      |   suspended: 'no'
>                      |   interface: 'unknown'
>                      |  IP timeout: '20'
>   -------------------------
>   Properties         |         apn: 'telenor'
>                      |     roaming: 'allowed'
>                      |     IP type: 'ipv4'
>                      |        user: 'none'
>                      |    password: 'none'
>                      |      number: 'none'
>                      | Rm protocol: 'unknown'
>   -------------------------
>   IPv4 configuration |   method: 'unknown'
>   -------------------------
>   IPv6 configuration |   method: 'unknown'
> bjorn@nemi:~$ mmcli -b 1
> Bearer '/org/freedesktop/ModemManager1/Bearer/1'
>   -------------------------
>   Status             |   connected: 'yes'
>                      |   suspended: 'no'
>                      |   interface: 'wwan0'
>                      |  IP timeout: '20'
>   -------------------------
>   Properties         |         apn: 'pilot.telenor'
>                      |     roaming: 'allowed'
>                      |     IP type: 'ipv4'
>                      |        user: 'none'
>                      |    password: 'none'
>                      |      number: 'none'
>                      | Rm protocol: 'unknown'
>   -------------------------
>   IPv4 configuration |   method: 'dhcp'
>   -------------------------
>   IPv6 configuration |   method: 'unknown'
> 
> 
> Attempting to connect more than one bearer makes ModemManager crash:
> 
> bjorn@nemi:~$ mmcli -b 0 -c
> error: couldn't connect the bearer: 'GDBus.Error:org.freedesktop.DBus.Error.NoReply: Message did not receive a reply (timeout by message bus)'
> 
> 
> 
> ModemManager[25642]:   Client ID: 05
> ModemManager[25642]:   Transaction ID: 03:00
> ModemManager[25642]: [/dev/cdc-wdm0] Received message...
>>>>>>> QMUX:
>>>>>>>   length  = 19
>>>>>>>   flags   = 0x80
>>>>>>>   service = "wds"
>>>>>>>   client  = 5
>>>>>>> QMI:
>>>>>>>   flags       = "response"
>>>>>>>   transaction = 3
>>>>>>>   tlv_length  = 7
>>>>>>>   message     = "Set IP Family" (0x004D)
>>>>>>> TLV:
>>>>>>>   type       = "Result" (0x02)
>>>>>>>   length     = 4
>>>>>>>   value      = 00:00:00:00
>>>>>>>   translated = SUCCESS
> ModemManager[25642]: KEY: 03:00:05:01:00:00:00:00
> ModemManager[25642]:   Service: 01
> ModemManager[25642]:   Client ID: 05
> ModemManager[25642]:   Transaction ID: 03:00
> ModemManager[25642]: <debug> [1346264213.789248] [mm-bearer-qmi.c:438] connect_context_step(): Starting IPv4 connection...
> ModemManager[25642]: [/dev/cdc-wdm0] Sending message...
> <<<<<< QMUX:
> <<<<<<   length  = 22
> <<<<<<   flags   = 0x00
> <<<<<<   service = "wds"
> <<<<<<   client  = 5
> <<<<<< QMI:
> <<<<<<   flags       = "none"
> <<<<<<   transaction = 4
> <<<<<<   tlv_length  = 10
> <<<<<<   message     = "Start Network" (0x0020)
> <<<<<< TLV:
> <<<<<<   type       = "APN" (0x14)
> <<<<<<   length     = 7
> <<<<<<   value      = 74:65:6C:65:6E:6F:72
> <<<<<<   translated = telenor
> ModemManager[25642]: KEY: 04:00:05:01:00:00:00:00
> ModemManager[25642]:   Service: 01
> ModemManager[25642]:   Client ID: 05
> ModemManager[25642]:   Transaction ID: 04:00
> ModemManager[25642]: [/dev/cdc-wdm0] Received message...
>>>>>>> QMUX:
>>>>>>>   length  = 19
>>>>>>>   flags   = 0x80
>>>>>>>   service = "wds"
>>>>>>>   client  = 5
>>>>>>> QMI:
>>>>>>>   flags       = "response"
>>>>>>>   transaction = 4
>>>>>>>   tlv_length  = 7
>>>>>>>   message     = "Start Network" (0x0020)
>>>>>>> TLV:
>>>>>>>   type       = "Result" (0x02)
>>>>>>>   length     = 4
>>>>>>>   value      = 01:00:1A:00
>>>>>>>   translated = FAILURE: NoEffect
> ModemManager[25642]: KEY: 04:00:05:01:00:00:00:00
> ModemManager[25642]:   Service: 01
> ModemManager[25642]:   Client ID: 05
> ModemManager[25642]:   Transaction ID: 04:00
> 
> (ModemManager:25642): GLib-GIO-CRITICAL **: g_simple_async_result_take_error: assertion `error != NULL' failed
> Segmentation fault

Oh; interesting... can you get me a backtrace?

> 
> 
> I assume some of the problem is that you use /dev/cdc-wdm0 for all the
> bearers. That's fine for QMI_NAS etc, but for QMI_WDS you need to match
> the wwanX interface for each bearer.

The code to grab different QMI ports is in place; just the method I
talked about before is missing, the one looking for the matching QMI
port for a given wwan. I'll focus tomorrow in getting all this in place.

-- 
Aleksander


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]