aboutsummaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2013-09-25cinterion: support QMI-based Cinterion PLXX and PHXX modulesAleksander Morgado
E.g. with a Cinterion PLS8 LTE modem: $ sudo mmcli -m 0 /org/freedesktop/ModemManager1/Modem/0 (device id '0042872f6597b3d772a3d9d3cd6f14f152af8a0b') ------------------------- Hardware | manufacturer: 'QUALCOMM INCORPORATED' | model: '0' | revision: 'M9615A-CETWMAZM-2.0.19015 1 [Jan 31 2013 00:00:00]' | supported: 'gsm-umts | lte | gsm-umts, lte' | current: 'gsm-umts, lte' | equipment id: 'unknown' ------------------------- System | device: '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7' | drivers: 'option1, qmi_wwan' | plugin: 'Cinterion' | primary port: 'cdc-wdm0' | ports: 'ttyUSB2 (at), cdc-wdm0 (qmi), wwp0s29u1u7i4 (net)' ------------------------- Numbers | own : 'unknown' ------------------------- Status | lock: 'sim-pin' | unlock retries: 'sim-pin (3), sim-pin2 (2), sim-puk (10), sim-puk2 (10)' | state: 'locked' | power state: 'on' | access tech: 'unknown' | signal quality: '0' (cached) ------------------------- Modes | supported: 'allowed: 2g, 3g, 4g; preferred: none' | current: 'allowed: 2g, 3g, 4g; preferred: none' ------------------------- Bands | supported: 'cdma-bc15-aws, dcs, egsm, u2100, u1800, u900, eutran-i, eutran-iii, eutran-vii, eutran-viii, eutran-xx' | current: 'cdma-bc15-aws, dcs, egsm, u2100, u1800, u900, eutran-i, eutran-iii, eutran-vii, eutran-viii, eutran-xx' ------------------------- IP | supported: 'ipv4, ipv6, ipv4v6' ------------------------- SIM | path: '/org/freedesktop/ModemManager1/SIM/0'
2013-09-23huawei: delay processing of network-initiated disconnectionAleksander Morgado
Originally developed by: Prathmesh Prabhu <pprabhu@chromium.org> Ben Chan <benchan@chromium.org> Huawei MU736 prematurely fires a ^NDISSTAT unsolicited message upon a network-initiated disconnection. The modem can go into a bad state if a reconnect attempt happens before the disconnection completes. This patch works around the issue by delaying the reporting of the disconnection.
2013-09-23bearer: consolidate unsolicited connection status reportsAleksander Morgado
Originally developed by: Ben Chan <benchan@chromium.org> This patch replaces mm_bearer_report_disconnection() with a more generic mm_bearer_report_connection_status(), which allows reporting any connection status of a bearer. This further allows getting rid of those custom report_connection_status functions in plugic specific bearer subclasses. Note that while plugin-specific implementations can receive multiple 'MMBearerConnectionStatus' values, the generic implementation is only allowed to receive DISCONNECTED. Plugins need to make sure that they process all the other status values, and only report DISCONNECTED to the parent when required. MBM: The MBM bearer implementation of report_connection_status() expects either CONNECTED or DISCONNECTED. If any of these is received and there is an ongoing connection attempt, the corresponding operation will be completed. If there is no connection attempt, we will just handle the DISCONNECTED state, calling the parent method to notify that the modem got network-disconnected. Icera: The Icera bearer implementation of report_connection_status() expects either CONNECTED, CONNECT FAILED or DISCONNECTED. If any of these is received and there is an ongoing connection or disconnection attempt, the corresponding operation will be completed. If there is no connection or disconnection attempt, we will just handle the CONNECT FAILED and DISCONNECTED states, calling the parent method (always with DISCONNECTED) to notify that the modem got network-disconnected. Option/HSO: The Option/HSO bearer implementation of report_connection_status() expects either CONNECTED, CONNECTION FAILED or DISCONNECTED. If any of these is received and there is an ongoing connection or disconnection attempt, the corresponding operation will be completed. If there is no connection or disconnection attempt, we will just handle the CONNECTION FAILED and DISCONNECTED states, calling the parent method (always with DISCONNECTED) to notify that the modem got network-disconnected. Huawei: The Huawei bearer implementation of report_connection_status() expects either CONNECTED or DISCONNECTED. These messages are not used to process pending connection or disconnection attempts; so if they are received while one of these is on-going, it will just be ignored. CONNECTED reports are also ignored, so we will just handle the DISCONNECTED state, calling the parent method to notify that the modem got network-disconnected. Altair-LTE: The Altair-LTE bearers will only report DISCONNECTED on network-disconnected cases. There is no custom report_connection_status(). Novatel-LTE: The Novatel-LTE bearers will only report DISCONNECTED on network-disconnected cases. There is no custom report_connection_status().
2013-09-19plugins: fix linkage of huawei test programLionel Landwerlin
https://bugzilla.gnome.org/show_bug.cgi?id=704481
2013-09-19plugins: add missing linker flagsLionel Landwerlin
https://bugzilla.gnome.org/show_bug.cgi?id=704481
2013-09-18huawei: handle disconnection via ^NDISSTAT unsolicited messageBen Chan
This patch changes MMBroadbandModemHuawei to use ^NDISSTAT unsolicited messages to handle network-initiated disconnection. As a ^NDISSTAT unsolicited message is similar to a ^NDISSTATQRY response, the patch extends the ^NDISSTATQRY parser code to handle both ^NDISSTAT and ^NDISSTATQRY responses.
2013-09-17altair-lte: use mm_base_modem_at_command_full{,_finish} correctlyBen Chan
This patch fixes own_enable_unsolicited_events_ready() to use mm_base_modem_at_command_full_finish(), instead of mm_base_modem_at_sequence_full_finish(), as the %STATCM=1 command is issued via mm_base_modem_at_command_full().
2013-09-17huawei: ignore ^CONNECT unsolicited messagesBen Chan
2013-09-16mtk: update udev rules to always match both VID/PID togetherDan Williams
See commit c79d266e627242b22a5e146ab157e34135e7a36a. If the rules to tag specific USB interface numbers only apply on the PID, we'll end up seeing that if the port has a parent with another PID, and that other PID also has a rule, port will get tagged multiple times.
2013-09-16mtk: add D-Link DWM-156 udev rulesDan Williams
For HW version A5 and possibly later, which are based on MediaTek chipsets instead of Qualcomm ones.
2013-09-16mtk: add plugin for various MediaTek devicesQuentin.Li
Signed-off-by: Quentin.Li <snowmanli88@gmail.com>
2013-09-11mbm: add another H5321gw IDBjørn Mork
This device ID is used in a Lenovo Thinkpad T430. Link: http://bugs.debian.org/705942 Reported-by: Etienne Bagnoud <etienne.bagnoud@irovision.ch> Signed-off-by: Bjørn Mork <bjorn@mork.no>
2013-09-10sim-huawei: fix refcountAleksander Morgado
g_async_result_get_source_object() returns a full reference, which needs to get unref-ed when no longer used.
2013-09-10sim-huawei: add SIM class to handle ICCID requestDan Williams
Use AT^ICCID if possible to read the ICCID.
2013-09-10core: add helper for parsing and validating the ICCIDDan Williams
2013-09-06telit: install udev rulesDan Williams
2013-09-05huawei: check NDISDUP support in the port onceAleksander Morgado
Don't query udev for the tag every time we recreate a bearer, just do it once. For some reason, re-querying the same tag after the first time doesn't always return the proper result.
2013-09-05huawei: fix uninitialized variable issuesBen Chan
This patch fixes the following uninitialized variable issues, which was introduced in the previous commit "huawei: retry connect/disconnect attempt upon ^NDISSTATQRY? failures" (commit 57c657bd066366db6892ac2a8adfec2ca209ccbe). huawei/mm-broadband-bearer-huawei.c:127:9: error: variable 'ipv4_available' is used uninitialized whenever '||' condition is true [-Werror,-Wsometimes-uninitialized] if (!response || ^~~~~~~~~ huawei/mm-broadband-bearer-huawei.c:141:9: note: uninitialized use occurs here if (ipv4_available && ipv4_connected) { ^~~~~~~~~~~~~~ huawei/mm-broadband-bearer-huawei.c:127:9: note: remove the '||' if its condition is always false if (!response || ^~~~~~~~~~~~ huawei/mm-broadband-bearer-huawei.c:115:28: note: initialize the variable 'ipv4_available' to silence this warning gboolean ipv4_available; ^ = 0 huawei/mm-broadband-bearer-huawei.c:484:9: error: variable 'ipv4_available' is used uninitialized whenever '||' condition is true [-Werror,-Wsometimes-uninitialized] if (!response || ^~~~~~~~~ huawei/mm-broadband-bearer-huawei.c:498:9: note: uninitialized use occurs here if (ipv4_available && !ipv4_connected) { ^~~~~~~~~~~~~~ huawei/mm-broadband-bearer-huawei.c:484:9: note: remove the '||' if its condition is always false if (!response || ^~~~~~~~~~~~ huawei/mm-broadband-bearer-huawei.c:472:28: note: initialize the variable 'ipv4_available' to silence this warning gboolean ipv4_available; ^ = 0
2013-09-04huawei: retry connect/disconnect attempt upon ^NDISSTATQRY? failuresPrathmesh Prabhu
The Huawei MU736 modem sometimes responds to the ^NDISSTATQRY? query with a '+CME ERROR: 100' error. This patch works around the issue by ignoring a few of these error responses in a connect / disconnect attempt. The overall timeout for the connect/disconnect operation is not affected by this change.
2013-09-02mbm: add udev rule for Toshiba branded H5321gw moduleBjørn Mork
Reported-by: Thomas Schäfer <tschaefer@t-online.de> Signed-off-by: Bjørn Mork <bjorn@mork.no>
2013-09-02huawei: ignore ^DSDORMANT unsolicited messagesBen Chan
2013-08-27novatel-lte: check if a connect operation has been cancelledBen Chan
2013-08-26at-serial-port: avoid 'enable_disable', use just 'enable' in method nameAleksander Morgado
2013-08-26huawei: ignore ^RFSWITCH unsolicited messagesBen Chan
This patch ignores the ^RFSWITCH unsolicited messages in order to avoid them being mixed with other unsolicited messages. The modem power state is explicitly determined by the ^RFSWITCH? command, if supported, so we don't need to depend on the ^RFSWITCH unsolicited messages.
2013-08-26huawei: ignore +CUSATP and +CUSATEND unsolicited messagesBen Chan
2013-08-26huawei: always parse operator name in +COPS responses as ASCIIBen Chan
Despite +CSCS? may claim supporting UCS2, Huawei modems always report the oerator name in ASCII in a +COPS response. This patch addresses that by always assuming the charset is IRA when parsing the operator name in a +COPS response.
2013-08-26altair-lte: increase timeout for %APNN, %DPDNACT, and %STATCMBen Chan
2013-08-21huawei: ignore ^NDISEND unsolicited messagesAleksander Morgado
2013-08-15altair-lte: increase timeout for +CFUN=4Ben Chan
2013-08-15huawei: improve ^NDISSTATQRY parser for newer firmwareAleksander Morgado
Newer firmware for Huawei devices will not split the IPv4 and IPv6 info in different lines for the ^NDISSTATQRY reply; instead they will be included in the same line. E.g. instead of ^NDISSTATQRY: 1,,,IPV4 ^NDISSTATQRY: 0,33,,IPV6 OK We may have: ^NDISSTATQRY:0,,,"IPV4",0,33,,"IPV6" Also note the optional spaces after the ':', and that in the new version the strings are enclosed in double quotes. https://bugzilla.gnome.org/show_bug.cgi?id=705339
2013-08-14huawei: implement modem reset via +CFUN=16 for MU736Ben Chan
2013-08-12huawei: enlarge the checking times for ndisstatqry in disconnectingFangxiaozhi (Franko)
In sometimes, the disconnection of NDISDUP will spend more time than 10s. So it is better to enlarge the checking times, such as up to 60 times.
2013-08-12huawei: implement modem resetBen Chan
2013-08-06huawei: ignore ^PDPDEACT unsolicited messagesBen Chan
2013-08-06huawei: handle whitespace in RSSI responsesBen Chan
This patch modifies the regular expressions for parsing ^RSSI, ^RSSILVL, and ^HRSSILVL responses to handle any whitespace that is inserted between the colon and the RSSI value. The issue is identified by Dan Williams <dcbw@redhat.com>
2013-08-05huawei: implement modem power up and downBen Chan
This patch is originally developed by: Franko Fang <fangxiaozhi@huawei.com> And then reviewed and updated by: Ben Chan <benchan@chromium.org>
2013-07-31huawei: reset disconnect_pending to NULL when ^NDISSTATQRY failsBen Chan
2013-07-14altair-lte: set serial port send delay to 0Ben Chan
With a non-zero send delay, the communication over the ttyACM port of the modem is not very stable when USB auto-suspend is enabled for the modem. The send delay is not necessary and thus removed by this patch. Ori Inbar <ori.inbar@altair-semi.com> reported the issue and suggested this fix.
2013-07-11build: fix multiply defined EXTRA_DISTDan Williams
plugins/Makefile.am:375: warning: EXTRA_DIST multiply defined in condition TRUE ... gtester.make:6: ... 'EXTRA_DIST' previously defined here plugins/Makefile.am:1: 'gtester.make' included from here
2013-07-11huawei: use ^NDISSTATQRY to check for connection statusAleksander Morgado
Patch based on changes from Franko Fang <fangxiaozhi@huawei.com>.
2013-07-11huawei: new helper to parse ^NDISSTATQRY responsesAleksander Morgado
2013-07-10x22x: add support for Olivetti Olicard 200Dan Williams
2013-07-04altair-lte: support load_power_state in MMIfaceModemBen Chan
Being able to determine the current power state of the modem is necessary to ensure reliable modem operations.
2013-06-28altair-lte: propagate error when load_{supported,current}_bands failsBen Chan
This patch fixes a potential crash when MMIfaceModem::load_current_bands_ready() dereferences a NULL GError pointer, which happens when the altair-lte plugin fails to load the current bands but does not propagate the error. It also fixes a similar issue with the plugin fails to load the supported bands, even though MMIfaceModem::load_supported_bands_ready() checks for a NULL GError pointer.
2013-06-28novatel-lte: propagate error when load_current_bands failsBen Chan
This patch fixes the following crash when MMIfaceModem::load_current_bands_ready() dereferences a NULL GError pointer, which happens when the novatel-lte plugin fails to load the current bands but does not propagate the error. Thread 0 *CRASHED* ( SIGSEGV @ 0x00000000 ) 0x7f04d6c89c36 [ModemManager] - mm-iface-modem.c:3886 load_current_bands_ready 0x7f04d6942236 [libgio-2.0.so.0.3200.4] - gsimpleasyncresult.c:767 g_simple_async_result_complete 0x7f04d6942338 [libgio-2.0.so.0.3200.4] - gsimpleasyncresult.c:779 complete_in_idle_cb 0x7f04d67fad74 [libglib-2.0.so.0.3200.4] - gmain.c:2539 g_main_context_dispatch 0x7f04d67fb0f7 [libglib-2.0.so.0.3200.4] - gmain.c:3146 g_main_context_iterate 0x7f04d67fb551 [libglib-2.0.so.0.3200.4] - gmain.c:3340 g_main_loop_run 0x7f04d6c68795 [ModemManager] - main.c:142] main 0x7f04d6213464 [libc-2.15.so] - libc-start.c:234] __libc_start_main 0x7f04d6c68318 [ModemManager] + 0x0001d318]
2013-06-27altair-lte: avoid sending ATZ when enabling the modemBen Chan
This patch prevents an ATZ command, which causes the modem to reboot, from being sent to the modem when the modem is being enabled.
2013-06-26icera: load supported modes with AT%IPSYS=?Aleksander Morgado
http://bugzilla.gnome.org/show_bug.cgi?id=703023
2013-06-24broadband-bearer-hso: IPv4 prefix is always /32Dan Williams
The modem doesn't give us a prefix in the OWANDATA response, but it's always /32. This didn't get set previously because NetworkManager always just used /32 for the 'static' configuration, but NM isn't the only user of MM, and only MM knows for sure that the prefix should be /32.
2013-06-24hso: if IPv6 bearer type requested, create a generic bearerAleksander Morgado
Option/HSO modems don't seem to support IPv6 when using the net interface. So if IPv6 is requested, create a generic bearer. $ sudo mmcli -m 0 --simple-connect="apn=internet,ip-type=ipv6" successfully connected the modem $ sudo mmcli -b 0 Bearer '/org/freedesktop/ModemManager1/Bearer/0' ------------------------- Status | connected: 'yes' | suspended: 'no' | interface: 'ttyHS3' | IP timeout: '20' ------------------------- Properties | apn: 'internet' | roaming: 'allowed' | IP type: 'ipv6' | user: 'none' | password: 'none' | number: 'none' | Rm protocol: 'unknown' ------------------------- IPv4 configuration | method: 'ppp' ------------------------- IPv6 configuration | method: 'unknown' $ sudo mmcli -m 0 --simple-disconnect successfully disconnected all bearers in the modem https://bugzilla.gnome.org/show_bug.cgi?id=702472
2013-06-05huawei: default to IPv4 if no specific IP type to use given in NDISDUP modemsAleksander Morgado