[PATCH 2/2] sierra: enable QMI connection status polling in Netgear AC341U

Aleksander Morgado aleksander at aleksander.es
Sat Sep 23 03:51:26 UTC 2017


The Netgear AC341U seems to delay reporting packet service status
indications or actually not even send them. This leaves us with modems
in connected state in ModemManager but actually disconnected. We can
detect this situation by actively polling ourselves the connection
status.

See e.g. this case where the indication is received 2.5 mins after the
first OutOfCall error detected when loading statistics.

    Aug 30 22:52:50 ModemManager[574]: <info>  Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> connected)
    Aug 30 22:52:50 ModemManager[574]: <info>  Simple connect state (8/8): All done
    Aug 30 22:52:50 ModemManager[574]: <warn>  Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall'
    Aug 30 22:53:20 ModemManager[574]: <warn>  Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall'
    Aug 30 22:53:50 ModemManager[574]: <warn>  Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall'
    Aug 30 22:54:20 ModemManager[574]: <warn>  Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall'
    Aug 30 22:56:21 ModemManager[574]: <info>  bearer call end reason (2): 'generic-client-end'
    Aug 30 22:56:21 ModemManager[574]: <info>  bearer verbose call end reason (3,2000): [cm] client-end
    Aug 30 22:56:21 ModemManager[574]: <info>  Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connected -> registered)
---
 plugins/Makefile.am               |  2 ++
 plugins/sierra/77-mm-sierra.rules | 12 ++++++++++++
 2 files changed, 14 insertions(+)
 create mode 100644 plugins/sierra/77-mm-sierra.rules

diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 98a95f53..ea691cd2 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -350,6 +350,8 @@ libmm_plugin_option_hso_la_LIBADD   = $(OPTION_COMMON_LIBADD_FLAGS)
 # plugin: sierra (new QMI or MBIM modems)
 ################################################################################
 
+dist_udevrules_DATA += sierra/77-mm-sierra.rules
+
 pkglib_LTLIBRARIES += libmm-plugin-sierra.la
 libmm_plugin_sierra_la_SOURCES = \
 	sierra/mm-plugin-sierra.c \
diff --git a/plugins/sierra/77-mm-sierra.rules b/plugins/sierra/77-mm-sierra.rules
new file mode 100644
index 00000000..cea83bdb
--- /dev/null
+++ b/plugins/sierra/77-mm-sierra.rules
@@ -0,0 +1,12 @@
+
+# do not edit this file, it will be overwritten on update
+ACTION!="add|change|move", GOTO="mm_sierra_end"
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="1199", GOTO="mm_sierra"
+GOTO="mm_sierra_end"
+
+LABEL="mm_sierra"
+
+# Netgear AC341U: enable connection status polling explicitly
+ATTRS{idVendor}=="1199", ATTRS{idProduct}=="9057", ENV{ID_MM_QMI_CONNECTION_STATUS_POLLING_ENABLE}="1"
+
+LABEL="mm_sierra_end"
\ No newline at end of file
-- 
2.13.1



More information about the ModemManager-devel mailing list