parsing ^NDISSTATQry response from Huawei E353
Aleksander Morgado
aleksander at aleksander.es
Sat Mar 28 10:37:47 PDT 2015
On Sat, Mar 28, 2015 at 11:32 AM, Mikko Vinni <mmvinni at yahoo.com> wrote:
> Hi,
>
> Testing a Huawei E353 directly connected to my laptop (instead of a WLAN router) gives this
> debug output (note the lowercase ry in ^NDISSTATQry):
>
>
> maalis 27 22:09:02 ubium-1 ModemManager[2508]: <debug> [1427486942.121397] [mm-port-serial-at.c:440] debug_log(): (cdc-wdm0): --> 'AT^NDISSTATQRY?<CR><LF>'
> maalis 27 22:09:02 ubium-1 ModemManager[2508]: <debug> [1427486942.128666] [mm-port-serial-at.c:440] debug_log(): (cdc-wdm0): <-- '<CR><LF>^NDISSTATQry:1<CR><LF><CR><LF>OK<CR><LF>'
> maalis 27 22:09:02 ubium-1 ModemManager[2508]: <debug> [1427486942.128827] [huawei/mm-broadband-bearer-huawei.c:161] connect_ndisstatqry_check_ready(): Unexpected response to ^NDISSTATQRY command: Missing ^NDISSTAT / ^NDISSTATQRY prefix (Attempts so far: 11)
> maalis 27 22:09:02 ubium-1 ModemManager[2508]: <debug> [1427486942.128886] [mm-port-serial.c:1294] _close_internal(): (cdc-wdm0) device open count is 0 (close)
> maalis 27 22:09:02 ubium-1 ModemManager[2508]: <debug> [1427486942.128924] [mm-port-serial.c:1310] _close_internal(): (cdc-wdm0) closing serial port...
> maalis 27 22:09:02 ubium-1 ModemManager[2508]: <debug> [1427486942.131157] [mm-port-serial.c:1359] _close_internal(): (cdc-wdm0) serial port closed
> maalis 27 22:09:02 ubium-1 ModemManager[2508]: <debug> [1427486942.755252] [mm-port-serial-at.c:440] debug_log(): (ttyUSB2): <-- '<CR><LF>^DSFLOWRPT:000001F6,00000000,00000000,0000000000000000,0000000000000288,000B4000,00290400<CR><LF>'
> maalis 27 22:09:02 ubium-1 ModemManager[2508]: <debug> [1427486942.755416] [huawei/mm-broadband-modem-huawei.c:1650] huawei_status_changed(): Duration: 502 Up: 0 Kbps Down: 0 Kbps Total: 0 Total: 0
> maalis 27 22:09:03 ubium-1 ModemManager[2508]: <debug> [1427486943.120052] [mm-base-bearer.c:465] connect_ready(): Couldn't connect bearer '/org/freedesktop/ModemManager1/Bearer/0': 'Connection attempt not supported.'
> maalis 27 22:09:03 ubium-1 ModemManager[2508]: <info> [1427486943.120152] [mm-iface-modem.c:1392] __iface_modem_update_state_internal(): Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> registered)
> ---
>
>
>
> The connection doesn't work.
>
> I recall this modem having worked before, so something must have changed (not the parsing of
> '^NDISSTATQRY:' in http://cgit.freedesktop.org/ModemManager/ModemManager/tree/plugins/huawei/mm-modem-helpers-huawei.c though, which seems to be hardcoded to look for the string in uppercase).
>
> Currently running
> ModemManager (version 1.4.6) and NetworkManager (version 1.0.0) on Arch Linux (kernel 3.19.2-1-ARCH). The modem is:
>
>
> # mmcli -m 0
>
> /org/freedesktop/ModemManager1/Modem/0 (device id '3433326290b146a4ae694d0a9d6ba061292e957b')
> -------------------------
> Hardware | manufacturer: 'huawei'
> | model: 'E353'
> | revision: '21.137.05.00.864'
> | supported: 'gsm-umts'
> | current: 'gsm-umts'
> | equipment id: '867989013808965'
> -------------------------
> System | device: '/sys/devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.2'
> | drivers: 'huawei_cdc_ncm, option1'
> | plugin: 'Huawei'
> | primary port: 'ttyUSB2'
> | ports: 'ttyUSB0 (at), ttyUSB2 (at), cdc-wdm0 (at), wwp0s26u1u2i1 (net)'
> -------------------------
> Numbers | own : 'unknown'
> -------------------------
> Status | lock: 'none'
> | unlock retries: 'sim-pin (3), sim-pin2 (3), sim-puk (10), sim-puk2 (10)'
> | state: 'registered'
> | power state: 'on'
> | access tech: 'umts'
> | signal quality: '25' (recent)
> -------------------------
> Modes | supported: 'allowed: 2g, 3g; preferred: none
> | allowed: 2g, 3g; preferred: 2g
> | allowed: 2g, 3g; preferred: 3g
> | allowed: 2g; preferred: none
> | allowed: 3g; preferred: none'
> | current: 'allowed: 2g, 3g; preferred: 3g'
> -------------------------
> Bands | supported: 'unknown'
> | current: 'unknown'
> -------------------------
> IP | supported: 'ipv4'
> -------------------------
> 3GPP | imei: '867989013808965'
> | enabled locks: 'none'
> | operator id: '24405'
> | operator name: 'elisa'
> | subscription: 'unknown'
> | registration: 'home'
> -------------------------
> SIM | path: '/org/freedesktop/ModemManager1/SIM/0'
>
> -------------------------
> Bearers | paths: 'none'
>
> ----
>
> Is this a known issue or something that should be debugged further?
>
The issue really is the NDISSTATQRY? response parsing:
/* Give up if too many unexpected responses to NIDSSTATQRY are
encountered. */
if (ctx->failed_ndisstatqry_count > 10) {
/* Clear context */
ctx->self->priv->connect_pending = NULL;
g_simple_async_result_set_error (ctx->result,
MM_MOBILE_EQUIPMENT_ERROR,
MM_MOBILE_EQUIPMENT_ERROR_NOT_SUPPORTED,
"Connection attempt not
supported.");
connect_3gpp_context_complete_and_free (ctx);
return;
}
I'll change that to make it case insensitive.
Someone at Huawei deserves a punishment for this ^NDISSTATQry thing.
--
Aleksander
https://aleksander.es
More information about the ModemManager-devel
mailing list