aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-02-11modem-helpers: allow optional whitespace in +CGDCONT responseThomas Sailer
Add testcase for Thuraya XT. Signed-off-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
2016-02-11qmi: just one InvalidCommand error is enough to avoid all DMS UIM commandsAleksander Morgado
The MMBroadbandModemQmi will not create a MMSimQmi until the unlock status has been checked, and therefore this means that when the SIM object is being created we already know whether the modem supports DMS UIM commands or not, so avoid further fallbacks in the SIM object.
2016-02-11sim-qmi: implement SIM verify/unblock/change/enable with UIM serviceAleksander Morgado
Newer modems like the MC7455 don't implement the "DMS UIM" commands in the DMS service, and therefore these modems need to use the UIM service directly. We include a new flag to detect whether any of the DMS UIM commands is flagged as invalid, and if so, we'll fallback to the UIM specific implementations for all. libqmi version bump to 1.13.7, which includes the new required methods.
2016-02-11broadband-modem-qmi: implement unlock retries loading with UIM serviceAleksander Morgado
Newer modems like the MC7455 don't implement the "DMS UIM" commands in the DMS service, and therefore these modems need to use the UIM service directly.
2016-02-11serial: remove duplicated ECHO & ECHOETomas Jura
2016-02-11mbm: stop echos on gps portTomas Jura
2016-02-04plugin: telit: add current mode loadingDaniele Palmas
This patch adds current mode loading in Telit plugin
2016-02-04plugin: telit: add supported modes loadingDaniele Palmas
This patch add supported modes loading in Telit plugin.
2016-01-30sim-qmi: port to GTaskAleksander Morgado
2016-01-30broadband-modem-qmi: plug memleak when listing SMS messagesAleksander Morgado
2016-01-30broadband-modem-qmi: locked states also indicate readiness of the SIM cardAleksander Morgado
When the card application is flagged as needing PIN or PUK, then the card can be considered as being ready.
2016-01-25telit: minor coding style fixesAleksander Morgado
2016-01-25telit: add load_supported_bands interfaceCarlo Lobrano
2016-01-25telit: add udev rule for Telit LE910 V2 modemCarlo Lobrano
2016-01-24broadband-modem-qmi: use "UIM Get Card Status" if "DMS UIM" command unavailableAleksander Morgado
The newer modules like the MC7455 which support multiple SIM cards won't implement the legacy "DMS UIM" commands.
2016-01-24bearer-qmi: use static IP if LLP is raw-ipAleksander Morgado
When using raw-ip we'll default to request static IP setup for now, so that we don't rely on the DHCP client supporting raw-ip interfaces.
2016-01-24port-qmi: support new Qualcomm chipsets working always in raw-ipAleksander Morgado
The port opening logic is changed completely. Before this change, the logic would only try 802.3 setting via CTL when the QmiDevice was being open. With this new change, instead, we'll use WDA and the new libqmi APIs to query the link layer protocol expected by both the device and the kernel. If the LLP matches in both, we assume we're done; if they differ we'll try to update the LLP expected by the kernel to the one setup in WDA. This change will allow us to run with the modem using raw-ip if that is what WDA reports by default. Also bumped the libqmi version to 1.13.6, which has support for the new required APIs.
2016-01-24build: require GLib 2.36Aleksander Morgado
We now need it for GTask support.
2016-01-23port-serial: rework response parsingAleksander Morgado
Response parsing was being done in different places for AT and QCDM subclasses; in the case of AT it was being done early, before returning the byte array in the mm_serial_port_command_finish() response. In the case of QCDM, it was being done after mm_serial_port_command_finish(), and that was forcing every caller to cleanup the response buffer once the response was processed. With the new logic in this patch, the response is always parsed (i.e. looked for a valid response or an error detected) before mm_serial_port_command_finish() returns, and actually this method now returns a totally different GByteArray, not the internal response buffer GByteArray, so there's no longer any need for the caller to explicitly clean it up. The one doing the cleanup is the parser method itself in every case. This change also allows us to return serial port responses in idle, but that's not changed for now as there's no immediate need.
2016-01-23port-serial: remove response buffer when an error is returnedAleksander Morgado
When valid responses were returned to the caller of the serial command, the caller itself was responsible for removing from the GByteArray the data that it was successfully processed (all the data in AT, just 1 message in QCDM). But, the same logic was missing for the case of errors; we were not explicitly removing the response and therefore in some cases we would see it propagated into the next command response. It was common to see this issue when the echo removal was disabled in the serial port, as in Option/HSO modems: <debug> (ttyHS3): --> 'AT+CNUM<CR>' <debug> (ttyHS3): <-- '<CR><LF>+CME ERROR: 14<CR><LF>' <debug> Got failure code 14: SIM busy <debug> (ttyHS3) device open count is 1 (close) <warn> couldn't load list of Own Numbers: 'Failed to parse NV MDN command result: -17' <debug> (ttyHS3) device open count is 2 (open) <debug> (ttyHS3): --> 'AT_OPSYS?<CR>' <debug> (ttyHS3): <-- '<CR><LF>_OPSYS: 1,2<CR><LF><CR><LF>OK<CR><LF>' <warn> couldn't load current allowed/preferred modes: 'Couldn't parse OPSYS response: '+CME ERROR: 14 _OPSYS: 1,2''
2016-01-20libmm-glib: make C++ happy by not using 'class'Dan Williams
2016-01-19bearer-qmi: print IP details at 'info' log levelDan Williams
2016-01-17broadband-modem: plug memleaks when processing QCDM responsesAleksander Morgado
2016-01-16broadband-modem,time: make sure that error is set when operation failsAleksander Morgado
2016-01-16tests,generic: rename basic DBus testAleksander Morgado
2016-01-16tests,port-context: explicitly close the socket that is added to the listenerAleksander Morgado
Since GLib 2.42, the sockets that are added to socket listeners may no longer be closed automatically when the listener is finalized. In order to avoid that, we will keep our own socket reference and close/unref it ourselves. This issue was preventing adding new test cases with the same port names. $ ./test-service-generic --verbose GTest: random seed: R02S889153ee0f2e59c570f4edff9caa4176 GTest: run: /MM/Service/Generic/enable-disable Activating service name='org.freedesktop.ModemManager1' Successfully activated service 'org.freedesktop.ModemManager1' (MSG: DEBUG: client connection closed) (MSG: MESSAGE: Found modem at '/org/freedesktop/ModemManager1/Modem/0') ** Message: Found modem at '/org/freedesktop/ModemManager1/Modem/0' (MSG: DEBUG: client connection closed) GTest: result: OK GTest: run: /MM/Service/Generic/cme-error-detected Activating service name='org.freedesktop.ModemManager1' Successfully activated service 'org.freedesktop.ModemManager1' (MSG: FATAL-ERROR: Cannot bind socket: Error binding to address: Address already in use) ** (/home/aleksander/Development/foss/ModemManager/plugins/.libs/lt-test-service-generic:32043): ERROR **: Cannot bind socket: Error binding to address: Address already in use
2016-01-16tests,test-fixture: don't rely on other threads to update dbus propertiesAleksander Morgado
We were wrongly using a main loop in the port context thread to manage the global main context. That was silently making the DBus property notifications kind of work, as they were being updated via another thread, so here we could just sleep() and recheck the property values. Given that having that unrelated thread updating the dbus properties of our MMManager object is not a good thing, we'll instead totally ignore that and fully re-create the MMManager in each iteration with the sync() method, which has its own internal thread.
2016-01-16tests,port-context: properly setup per-thread main contextAleksander Morgado
Instead of creating a new main context to be used in the thread, we were using the global context. So, fix that, and create a totally new pair of main context and main loop to be used within the thread.
2016-01-13libqcdm: fix mixed whitespace in test-qcdm.cDan Williams
2016-01-12broadband-modem,voice: fix regex leakAleksander Morgado
2016-01-10mbm: query supported modes to the modem with +CFUN=?Aleksander Morgado
We were trying to load the generic modes supported reported by either *CNTI=2 or AT+WS46=?, so that then we could filter out the MBM-specific modes unsupported. But, this may not be ideal, as both these two commands may fail: [mm-broadband-modem.c:1612] modem_load_supported_modes(): loading supported modes... [mm-port-serial.c:1237] mm_port_serial_open(): (ttyACM1) device open count is 3 (open) [mm-port-serial.c:1294] _close_internal(): (ttyACM1) device open count is 2 (close) [mm-port-serial-at.c:440] debug_log(): (ttyACM1): --> 'AT*CNTI=2<CR>' [mm-port-serial-at.c:440] debug_log(): (ttyACM1): <-- '<CR><LF>ERROR<CR><LF>' [mm-serial-parsers.c:364] mm_serial_parser_v1_parse(): Got failure code 100: Unknown error [mm-broadband-modem.c:1546] supported_modes_cnti_ready(): Generic query of supported 3GPP networks with *CNTI failed: 'Unknown error' [mm-port-serial.c:1237] mm_port_serial_open(): (ttyACM1) device open count is 3 (open) [mm-port-serial.c:1294] _close_internal(): (ttyACM1) device open count is 2 (close) [mm-port-serial-at.c:440] debug_log(): (ttyACM1): --> 'AT+WS46=?<CR>' [mm-port-serial-at.c:440] debug_log(): (ttyACM1): <-- '<CR><LF>ERROR<CR><LF>' [mm-serial-parsers.c:364] mm_serial_parser_v1_parse(): Got failure code 100: Unknown error [mm-broadband-modem.c:1494] supported_modes_ws46_test_ready(): Generic query of supported 3GPP networks with WS46=? failed: 'Unknown error' [mm-iface-modem.c:3974] load_supported_modes_ready(): couldn't load Supported Modes: 'Couldn't retrieve supported modes' Instead, we'll ask the modem for the list of modes supported, and return that directly.
2015-12-19cli: validate SUPL server before showing itAleksander Morgado
2015-12-19cli: allow enabling/disabling location signaling via DBusAleksander Morgado
Not making them '--location-enable|disable-signal' because that's the pattern used to enable/disable location sources. Instead, use the '--location-set-*' pattern, as that is what we're already using for the other location setup update.
2015-12-19location: support updating the GPS refresh timeAleksander Morgado
The default setup uses a refresh time of 30s, which means that even if the GPS location updates are received at a higher frequency, the DBus interface will still expose at most one update every 30s. This patch includes a new "SetGpsRefreshTime()" method in the Location interface, which takes a single 'u' parameter, specifying the refresh rate to use, in seconds. This method also allows 0 being passed, which will make the implementation to publish the GPS location updates are soon as ModemManager detects them. Along with the new method, a "GpsRefreshTime" read-only property is exposed to specify the refresh time in effect. The new method and property will only be applicable if the device has GPS capabilities. https://bugs.freedesktop.org/show_bug.cgi?id=89924
2015-12-19build: don't redefine test_modem_helpers_telit_LDADDAleksander Morgado
2015-12-19telit: use explicit FIRST step nameAleksander Morgado
2015-12-19telit: don't talk to the user in a GErrorAleksander Morgado
2015-12-19telit: prefix helper methods with 'mm_telit'Aleksander Morgado
2015-12-19telit: fix minor coding style issuesAleksander Morgado
2015-12-19telit: add load_unlock_retries interfaceCarlo Lobrano
2015-12-11telit: add modem_reset to telit pluginCarlo Lobrano
2015-12-07bearer-mbim: implement stats loadingAleksander Morgado
2015-12-07bearer-qmi: implement stats loadingAleksander Morgado
Use the "WDS Get Packet Statistics" method to query for the ongoing number of bytes transmitted or received. The QMI implementation uses different WDS clients for IPv4 and IPv6; the stats reported are a combination of the values retrieved from both WDS clients.
2015-12-07base-bearer: setup periodic stats loadingAleksander Morgado
If the bearer implementation supports it, load stats periodically. By default every 30s for now.
2015-12-07cli: print stats if bearer reports themAleksander Morgado
2015-12-07libmm-glib: retrieve stats from the bearerAleksander Morgado
The MMBearer object is updated to provide getter methods to retrieve the new MMBearerStats object.
2015-12-07libmm-glib: new helper object to handle bearer statsAleksander Morgado
The new MMBearerStats object provides a simple API to interact with the new dictionary containing the bearer connection stats.
2015-12-07introspection: new 'Stats' property in the bearer objectAleksander Morgado
The new property is a dictionary which may include different parameters, depending on what is actually supported by the underlying modem. For now, just bytes RX/TX. Note that this object will expose the stats *as reported by the modem*. These values may differ from e.g. what is seen in the network interface stats.
2015-12-07license: mmcli is GPLv2+, not GPLv3+Aleksander Morgado
mmcli is GPLv2+; that's what --version has always said and that's what the README in ModemManager sources specifies: License. The ModemManager and mmcli binaries are both GPLv2+. The libmm-glib library is LGPLv2+.
2015-12-04telit: add modem_power_down to telit pluginCarlo Lobrano