[PATCH 0/2] MBIM: Report 3GPP cause codes on errors

Bjørn Mork bjorn at mork.no
Thu Dec 19 05:22:23 PST 2013


BTW, seems I'm able to reproduce this error quite consitently, so I can
verify it on QMI using a Huawei E392 modem.  The libqmi debugging is a
tad better so at least you get the 3gpp cause parsed and presented in
the debug log:


ModemManager[8088]: [/dev/cdc-wdm1] Received message (translated)...
>>>>>> QMUX:
>>>>>>   length  = 31
>>>>>>   flags   = 0x80
>>>>>>   service = "wds"
>>>>>>   client  = 1
>>>>>> QMI:
>>>>>>   flags       = "response"
>>>>>>   transaction = 2
>>>>>>   tlv_length  = 19
>>>>>>   message     = "Start Network" (0x0020)
>>>>>> TLV:
>>>>>>   type       = "Result" (0x02)
>>>>>>   length     = 4
>>>>>>   value      = 01:00:0E:00
>>>>>>   translated = FAILURE: CallFailed
>>>>>> TLV:
>>>>>>   type       = "Call End Reason" (0x10)
>>>>>>   length     = 2
>>>>>>   value      = F6:03
>>>>>>   translated = gsm-wcdma-unknown-pdp
>>>>>> TLV:
>>>>>>   type       = "Verbose Call End Reason" (0x11)
>>>>>>   length     = 4
>>>>>>   value      = 06:00:1C:00
>>>>>>   translated = [ type = '3gpp' reason = '28' ]
ModemManager[8088]: <info>  [1387458899.586299] [mm-bearer-qmi.c:161] start_network_ready(): error: couldn't start network: QMI protocol error (14): 'CallFailed'
ModemManager[8088]: <info>  [1387458899.586366] [mm-bearer-qmi.c:175] start_network_ready(): call end reason (1014): 'gsm-wcdma-unknown-pdp'
ModemManager[8088]: <info>  [1387458899.586426] [mm-bearer-qmi.c:186] start_network_ready(): verbose call end reason (6,28): [3gpp] unknown-pdp
ModemManager[8088]: <debug> [1387458899.586534] [mm-bearer.c:466] connect_ready(): Couldn't connect bearer '/org/freedesktop/ModemManager1/Bearer/3': 'QMI protocol error (14): 'CallFailed''
ModemManager[8088]: <info>  [1387458899.586647] [mm-iface-modem.c:1371] __iface_modem_update_state_internal(): Modem /org/freedesktop/ModemManager1/Modem/1: state changed (connecting -> registered)
ModemManager[8088]: <debug> [1387458899.587641] [mm-iface-modem-simple.c:221] connect_bearer_ready(): Couldn't connect bearer: 'QMI protocol error (14): 'CallFailed''
ModemManager[8088]: <debug> [1387458927.042732] [mm-broadband-modem-qmi.c:2458] load_signal_quality(): loading signal quality...


And of course mmcli reports the same bearer error:

 error: couldn't connect the modem: 'GDBus.Error:org.freedesktop.libqmi.Error.Protocol.CallFailed: QMI protocol error (14): 'CallFailed''



But I guess the generic QMI 'CallFailed' status is wrong here as well?
We should probably log and return the '3gpp' cause code instead, if TLV
0x11 is present and the type is '3gpp'.


Bjørn


More information about the ModemManager-devel mailing list