aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-08-31sierra: allow users to help debug APP1 PPP capabilityDan Williams
Most Sierra PPP-based devices are supposed to allow PPP on the APP1 port, which has a dumb AT parser, leaving the main port (with the intelligent AT parser) free for status and signal strength. But out of all the devices I've tested it with (8775, 8781, AC881, and C885), only the C885 actually works. The rest (including three different firmware versions for the 8775) either crash or disconnect shortly after PPP starts. To help figure out which devices actually support this, when running MM in debug mode, users can set the MM_SIERRA_APP1_PPP_OK environment variable and assume the APP1 port allows PPP. This is only for debugging purposes.
2012-08-31huawei: additional unsolicited messages to ignoreAleksander Morgado
2012-08-31sierra: skip echo removal in the secondary portAleksander Morgado
This is the port to git master of the following commit: commit d1be19d231a395339b1f452d1a30b73ea77ad528 Author: Dan Williams <dcbw@redhat.com> Date: Tue Aug 28 21:58:43 2012 -0500 sierra: fix CSQ handling on APP1 port The APP1 port doesn't always prefix its replies with <CR><LF> which runs afoul of the built-in echo removal. Since Sierra modems are on the whole well-behaved WRT echo removal, just disable it on the secondary ports. Only changes behavior for PPP-based devices since they are the only ones that use the APP1 ports.
2012-08-31port-probe: speed up QCDM probing a bitAleksander Morgado
This is the port to git master of the following commit: commit 01201860de5565a78823913423c6b2a762e3731f Author: Dan Williams <dcbw@redhat.com> Date: Tue Aug 28 21:12:14 2012 -0500 core: speed up QCDM probing a bit The point of sending two "version info" commands was to ensure that the terminating 0x7E of the first one was processed as a QCDM frame boundary and that any random data in the buffer (like AT commands from probing) got cleared out. The second command would always get processed as a valid QCDM command if the device supported QCDM, since there was no garbage before it. Instead of that dance, just prepend the version info message with an extra 0x7E to ensure a clean QCDM frame which the device hopefully responds to immediately. Second, actually process that response instead of throwing it away. Should save about 3 seconds when probing QCDM ports.
2012-08-31sierra: use DHCP for the USB 305 (AT&T Lightning)Aleksander Morgado
This is the port to git master of the following commit: commit 44f70121f75d59dbf31a4a9a1a4e87293e509e7a Author: Dan Williams <dcbw@redhat.com> Date: Tue Aug 28 20:18:40 2012 -0500 sierra: use DHCP for the USB 305 (AT&T Lightning) For some reason, my AT&T Lightning just doesn't work with static IP (AT%IPDPADDR) any more. No traffic passes even though everything is set up the way it was before. No idea what happened. Using latest firmware 2.0.0.11. But what's interesting is on Windows the generic Sierra Watcher app uses DHCP. But on Linux, when using AT%IPDPACT, DHCP doesn't work. That's odd. But it turns out the modem supports the "standard" Sierra proprietary AT!SCACT commands, and that *does* make DHCP work. Crazy no? So since the Windows app uses DHCP, it's likely that the non-DHCP case (AT%IPDPACT/AT%IPDPADDR) either isn't well tested or isn't well supported. With that in mind, let's just use DHCP for this device in Linux too.
2012-08-31icera: handle additional IPv4 configuration optionsAleksander Morgado
This is the port to git master of the following commit: commit c8153b1ecdec1995258b114c90b575af1e721d3d Author: Dan Williams <dcbw@redhat.com> Date: Tue Aug 28 12:16:26 2012 -0500 icera: handle additional IPv4 configuration options Newer devices like the ZTE/Vodafone K3805-z have an enhanced %IPDPADDR command that includes a netmask and gateway, and these are necessary to configure the device since it uses /24 instead of a /32. Since the device is nice enough to tell us that, we should probably use that information. Unfortunately the MM API doens't expose the netmask and gateway yet, so we'll have to add a GetIP4ConfigEx() method or something like that, but this commit sets us up to do that.
2012-08-31modem-helpers: new helper to convert from netmask string to CIDRAleksander Morgado
2012-08-31zte: handle Icera-based devics that use DHCPAleksander Morgado
This is the port to git master of the following commit: commit d2654a287c309346cc46b535dd974b0a5fc06fd4 Author: Dan Williams <dcbw@redhat.com> Date: Tue Aug 28 12:15:30 2012 -0500 zte: handle Icera-based devics that use DHCP Since we can't autodetect that the devices use DHCP, we'll need to tag them with udev rules for the time being.
2012-08-31sierra: use an additional AT+WS46=? to detect LTE capabilitiesAleksander Morgado
Some Sierra modems (e.g. MC7710) will report LTE-specific supported modes in the AT+WS46=? reply, but not +CLTE capability in the AT+GCAP reply: AT+GCAP +GCAP: +CGSM OK AT+WS46=? +WS46: (12,22,25,28,29) OK
2012-08-31broadband-modem: if the generic CNMI request fails, try a ↵Aleksander Morgado
Qualcomm-compatible one This is the port to git master of the following commit: commit 1d9164ec90788d1be134482ff88c501e3c5d623c Author: Dan Williams <dcbw@redhat.com> Date: Mon Aug 27 18:20:33 2012 -0500 gsm: if the generic CNMI request fails, try a Qualcomm-compatible one Many devices based on Qualcomm chipsets don't support a <ds> value of '1', despite saying they do in the AT+CNMI=? response. But they do accept '2'. Since we're not doing much with delivery status reports yet, if we get a CME 303 (not supported) error when setting the message indication parameters via CNMI, fall back to the Qualcomm-compatible CNMI parameters. If we don't do this, we don't get SMS indications on these devices, because the original CNMI failed. Tested on Huawei E1550, Huawei E160G, ZTE MF622, and Novatel XU870.
2012-08-31sms: fix handling of 'data' property for multipart messagesAleksander Morgado
This is the port to git master of the following commit: commit 1c29ce5999d11dee2898e7bf41c00995a00c71d0 Author: Dan Williams <dcbw@redhat.com> Date: Mon Aug 27 17:36:49 2012 -0500 sms: fix handling of 'data' property for multipart messages Text was getting concatenated when reconstructing the full message, but the data wasn't. That meant that non-text multipart messages, like the binary APN/MMS settings messages that operators often send, were broken.
2012-08-31api,introspection: new `Data' property in the SMS interfaceAleksander Morgado
We need to expose the raw data for the case where we get SMS messages with binary content (e.g. settings SMS).
2012-08-31mbm: add Ericsson H5321gw (often found in Thinkpad X230)Dan Williams
2012-08-31sim: better handling of IMSI responseAleksander Morgado
This is a port to git master of the following commit: commit 0b051f9c7033143c56f59267794d1cadf4bd3416 Author: Dan Williams <dcbw@redhat.com> Date: Mon Aug 27 10:24:50 2012 -0500 gsm: better handling of IMSI response Moto EZX devices prefix the response with "+CIMI:" while most devices do not.
2012-08-31novatel: fix checking ERI for roaming/home decisionAleksander Morgado
This is a port to git master of the following commit: commit c21e29c50b5661308fb3b223c05f6942c06dc15d Author: Dan Williams <dcbw@redhat.com> Date: Fri Aug 24 13:31:04 2012 -0500 novatel: fix checking ERI for roaming/home decision More fallout from b22b2d99db57e4cec8e6c3074dd20acd6845cb62 which changed the return type of the qcdm_result_get_*() functions.
2012-08-31icera: retry configuring PDP context if it fails.Aleksander Morgado
This is the port to git master of the following commit: commit fb3187847b9c62d5205962c3c707ac1f44eaddcc Author: Eric Shienbrood <ers@chromium.org> Date: Thu Aug 11 16:58:34 2011 -0400 icera: retry configuring PDP context if it fails. If a connect operation is attempted immediately after a disconnect, it sometimes fails with CME error 583 - "a profile (CID) is currently active". Apparently, even though the preceding operation (%IPDPACT) to deactivate the PDP context returned an OK response, the context is not really completely available until a fraction of a second later. This causes the %IPDPCFG operation that is part of the subsequent connect attempt to fail with error 583. This change retries the %IPDPCFG after a one second delay. BUG=chrome-os-partner:4936 TEST=This can be tested from the UI, but I found it easier to produce the timing needed to trigger the bug by running mm-disconnect and mm-connect from a shell. Start out with the modem in the connected state. In the shell, run sudo /usr/local/lib/flimflam/test/mm-disconnect; sudo /usr/local/lib/flimflam/test/mm-connect --number='*99#' --apn=wap.cingular modem-manager should emit the log line "Invalid error code: 583". Prior to this change, the connect operation would fail. Now it should succeed. Change-Id: I6ae0e6a9f5405b54b0b465fe91d9542529f365c2 Reviewed-on: http://gerrit.chromium.org/gerrit/5781 Tested-by: Eric Shienbrood <ers@chromium.org> Reviewed-by: Nathan J. Williams <njw@chromium.org>
2012-08-31test: add utility to force a modem disconnectDan Williams
2012-08-31sierra: fix detection of APP1 portAleksander Morgado
This is the port to git master of the following commit: commit e0242b4db7fb1556e79f6829d22edf411f9f6ba4 Author: Dan Williams <dcbw@redhat.com> Date: Thu Aug 23 21:14:38 2012 -0500 sierra: fix detection of APP1 port The APP1 port (which has a limited AT parser) doesn't prefix its replies with <CR><LF> like nice modems do, and that means it runs afoul of the echo removal bits of the AT serial port code. We need to parse the whole string even though it's not prefixed properly to find the APP1 string in the response.
2012-08-31plugin: let plugins decide if they want echo removal during AT probingAleksander Morgado
This is the port to git master of the following patch: commit 21e66dfa1774ac2ee037ac8b6e8bb4d71a6f7931 Author: Dan Williams <dcbw@redhat.com> Date: Thu Aug 23 21:13:35 2012 -0500 core: add function to open probe ports without removing echo Some devices (Sierra GSM ones) return stuff we need but don't bother to prefix it with <CR><LF>, so we need to optionally turn off the echo removal at probe time.
2012-08-31bearer: check only roaming allowance when launching a connectionAleksander Morgado
Don't abort the connection if the modem reports unregistered in either 3GPP or CDMA, as mixed CDMA+3GPP modems may connect even if not registered in both technologies.
2012-08-31sierra: fix dialling context deallocationAleksander Morgado
We were using the slice allocator, not plain g_malloc().
2012-08-30hso: fix error handling in PIN retry countsAleksander Morgado
2012-08-30longcheer: fix error handling in PIN retry countsAleksander Morgado
2012-08-30icera: fix error handling in loading supported/current bandsAleksander Morgado
2012-08-30sierra: detect stupid secondary portsAleksander Morgado
Some sierra modems (e.g. MC7710) have a secondary port that likes to reply OK to any AT command passed. Detect that as soon as possible, and don't consider the Icera port probing result from that secondary port.
2012-08-30icera: fix error handling in PIN retry countsAleksander Morgado
GErrors need to be always NULL initialized.
2012-08-30broadband-modem-qmi: implement current bands loadingAleksander Morgado
Also, sync with libqmi: commit b03ca502f45f75541c2b2ccebf44e712ab925456 Author: Aleksander Morgado <aleksander@lanedo.com> Date: Thu Aug 30 19:17:19 2012 +0200 nas: consolidate `QmiNasActiveBand' names
2012-08-30broadband-modem-qmi: move common enum translators to new -helpers-qmi.[ch] filesAleksander Morgado
2012-08-30bearer-qmi: try to use proper QMI port to connect a given net interfaceAleksander Morgado
2012-08-30base-modem: allow looking for the QMI port associated to a given data portAleksander Morgado
QMI and wwan ports come in pairs. Each wwan port has an associated control QMI port, which is the only port allowed to send the Start|Stop Network QMI requests to start|stop the connection in the given wwan interface. Paired QMI and wwan interfaces (should) share the same parent udev device, quoting Bjørn: "If we ignore the unfortunate 3.4 and 3.5 kernels, then a matching wwanX and cdc-wdmY set will always share the same parent USB interface on QMI devices. Having the same parent USB device is *not* sufficient. You cannot control wwan0 using cdc-wdm1 in the above example."
2012-08-30iface-mode-simple: when setting bands or modes, wait some time to settle downAleksander Morgado
When bands or allowed modes are changed, the modem will very likely reset its current registration and start from scratch. We will now give it some seconds to settle down before going on with the connection request, so that the modem has enough time to report being unregistered. Without this sleep time, the unsolicited message reporting being unregistered may arrive *after* having checked registration status in the Simple connect sequence, and therefore we end up failing the connection request.
2012-08-30port-probe: fix generic icera support check during probingAleksander Morgado
2012-08-30huawei: enable QMI-powered Huawei modemsAleksander Morgado
2012-08-30sierra: enable QMI-powered Sierra modemsAleksander Morgado
2012-08-30port-probe: easier check for Icera support over a list of port probesAleksander Morgado
2012-08-30bearer: add roaming connection allowance rules from the broadband bearerAleksander Morgado
Connection allowance rules need to be applied to every kind of bearer, regardless of whether it's based on the generic broadband bearer or not.
2012-08-30bearer-qmi: 'no-effect' errors while disconnecting aren't fatalAleksander Morgado
2012-08-30bearer-qmi: assume we need the global packet data handle on no-effect errorsAleksander Morgado
2012-08-30novatel-lte: use 'AT+CRSM=176,28423,0,0,9' instead of 'AT+CIMI' to read IMSIBen Chan
Based on empirical results, 'AT+CRSM=176,28423,0,0,9' is found more reliable than 'AT+CIMI' for reading IMSI.
2012-08-30novatel-lte: add a 2-second wait after SIM unlockBen Chan
2012-08-30iface-modem: run after-sim-unlock also when PIN request is not enabledAleksander Morgado
Whenever we query current unlock required status and we get that we're unlocked, we'll launch the after-sim-unlock step so that we try to ensure that the SIM is ready.
2012-08-30plugin-manager: never suggest result to the probe which generated the suggestionAleksander Morgado
2012-08-29qmi-bearer: use new enum types for call end reasonsAleksander Morgado
Sync with libqmi: commit d473f9ab35b85b76ebd6510a69a49ffa141d85f1 Author: Aleksander Morgado <aleksander@lanedo.com> Date: Tue Aug 28 13:18:44 2012 +0200 wds: implement "Verbose Call End Reason" types commit d39c997771da9a8037e61f1b4fc5ccfbb34be952 Author: Aleksander Morgado <aleksander@lanedo.com> Date: Mon Aug 27 20:29:16 2012 +0200 wds: implement "Call End Reason" type
2012-08-29qmi-bearer: fix IPv6 disconnection logicAleksander Morgado
2012-08-29bearer-qmi: only keep internal state if IP type specific connection succeedsAleksander Morgado
2012-08-29bearer-qmi: if possible, use "WDS Set IP Family" to select IP family preferenceAleksander Morgado
2012-08-29bearer-qmi: only specify IP family preference TLV if one explicitly requestedAleksander Morgado
2012-08-29bearer-qmi: allocate different WDS clients for IPv4 and IPv6 setupsAleksander Morgado
2012-08-29qmi-port: allow allocating more than one client of a given serviceAleksander Morgado
We'll uniquely identify each client generated by the service ID and a user defined flag, so that we then allow to peek/get the specific client.
2012-08-29bearer-qmi: enable dual IPv4/IPv6 connectionsAleksander Morgado
We provide separate steps to connect/disconnect IPv4 and IPv6.