aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-08-29release: bump version to 0.6.00.6.0.00.6.0Dan Williams
2012-08-29release: update NEWSDan Williams
2012-08-29sierra: fix CSQ handling on APP1 portDan Williams
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-29sierra: 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-29core: speed up QCDM probing a bitDan Williams
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-29sierra: use DHCP for the USB 305 (AT&T Lightning)Dan Williams
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-29icera: allow implementors to supply custom call control commandsDan Williams
Some devices should use custom call control commands instead of AT%IPDPACT.
2012-08-28icera: handle additional IPv4 configuration optionsDan Williams
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-28zte: handle Icera-based devics that use DHCPDan Williams
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-27gsm: if the generic CNMI request fails, try a Qualcomm-compatible oneDan Williams
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-27sms: fix handling of 'data' property for multipart messagesDan Williams
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-27sms: suppress warnings when reconstructing multipart messagesDan Williams
Not all properties are strings, so when copying the GValue we have to use the source GValue's type, not STRING.
2012-08-27mbm: add Ericsson H5321gw (often found in Thinkpad X230)Dan Williams
2012-08-27gsm: better handling of IMSI responseDan Williams
Moto EZX devices prefix the response with +CIMI:, plus some Option devices suffix it with ",XXXXX" where X is a firmware version or something.
2012-08-24novatel: fix checking ERI for roaming/home decisionDan Williams
More fallout from b22b2d99db57e4cec8e6c3074dd20acd6845cb62 which changed the return type of the qcdm_result_get_*() functions.
2012-08-24icera: be more paranoid about cleaning up connect operationsDan Williams
In case the connect gets interrupted by a disconnect or something.
2012-08-24icera: retry configuring PDP context if it fails.Eric Shienbrood
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-24test: add utility to force a modem disconnectDan Williams
2012-08-24core: send State property change signalsDan Williams
It was already exported via D-Bus, but the change signals weren't getting sent out. I believe this was a holdover from when we weren't sure whether to export the internal state or not. But we should.
2012-08-23sierra: fix detection of APP1 portDan Williams
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-23core: add function to open probe ports without removing echoDan Williams
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-23sierra: fix detection of CDMA modemsDan Williams
They were getting detected as GSM, because of course the port type for CDMA modem AT ports is MM_PORT_TYPE_AT, which passed the check for GSM. Oops.
2012-08-16build: clean marshallers from git masterDan Williams
When switching branches from git master to MM_06 and 05, the marshallers generated by git master in src/ get #included rather than the ones from marshallers/. So make sure we clean them when doing 'make clean'.
2012-08-09mbm: use +CFUN=4 for powering downMarius B. Kotsbak
(bgo #665877) (lp:816400)
2012-08-08qcdm: interpret MCC value from StatusSnapshot commandDan Williams
2012-08-03sierra: implement band functions for Icera-based devicesDan Williams
2012-08-03icera/samsung: implement supported bandsDan Williams
2012-08-03api: move SupportedBands property to Gsm.Network interfaceDan Williams
Gsm.Card is really for the SIM, not for anything to do with bands or the device or whatever. Which was a mistake long cleaned up in MM 0.7+, but not in earlier versions. Plus, the SupportedBands and SupportedModes properties were never implemented in any in-tree drivers. In the 0.5/0.6 API, SupportedBands belongs on the Network interface along with the Get/Set methods for bands. The old property on the Card interface is deprecated, but not removed, to preserve backwards compatibility. The SupportedModes property is also deprecated, but not replaced by a corresponding property on the Network interface, because it returned a confusing mix of values (conflating access technology and allowed mode preference), plus it also was never used by in-tree drivers. If we really do need a property that advertises the supported allowed modes of the device (ie 2G_PREFERRED, 2G_ONLY, 3G_ONLY, etc) then we can add one on the Network interface later.
2012-08-03icera: add generic band handling functionsDan Williams
2012-08-03icera: add generic unlock retries checkingDan Williams
2012-07-30huawei: limit the number of deferred tasksAleksander Morgado
The Huawei plugin requires to probe first the USB interface 0; all the other probing tasks in the remaining ports will get deferred until the interface 0 gets probed. But, some modems (e.g. Huawei ET8282), don't expose the USB interface 0 as an AT port, so we get an infinite loop as no port ends up being probed. In order to fix this, we will limit to a predefined maximum the number of times a given probing task is deferred, 4 in this case. So, if a given probing task is deferred for more than 4x3s=12s, probing will get forced.
2012-07-28qcdm: get/set functions for hybrid preferenceDan Williams
2012-07-23core: looser SMS message data entry regexDan Williams
Who knows how many (if any) spaces modems return.
2012-07-23zte: add CFUN=4 power down propertyAlexander Orlov
Use CFUN=4 to disable radios, keeping access to the SIM
2012-07-21zte: fix regex used when parsing allowed mode responseAleksander Morgado
Also, just g_assert() if regex couldn't be compiled.
2012-07-20longcheer: implement unlock retries checkingDan Williams
2012-07-18release: bump version to 0.5.995.0 (0.6-rc1)0.6-rc10.5.995.00.5.995Dan Williams
2012-07-18release: update NEWSDan Williams
2012-07-18trivial: whitespace fixesDan Williams
2012-07-18gsm: fix sending SMS messages on some modems and use PDU by defaultDan Williams
It turns out we really do have to wait for the modem to return the ">" prompt before sending the message data, otherwise a number of modems will complain about the data and fail the message. Fix that by sending the first bit of the CMGS, waiting for the ">", and then sending the rest. This also switches all modems over to PDU mode by default if they support it, since it's more compatible and most recent modems don't even bother to support text mode anyway.
2012-07-17serial: fix AT port carriage return handlingDan Williams
Off-by-one, fix it.
2012-07-17hso: handle reading PIN/PUK retry countsDan Williams
2012-07-17decode: handle another UsbSnoop URB functionDan Williams
2012-07-17gsm: ensure cleanup commands are sent when disablingDan Williams
If there's no modem-specific power-down command, the port would be closed prematurely, perhaps leaving unsolicited messages enabled. Make sure that doesn't happen by ensuring that cleanup commands complete.
2012-07-17core: ignore unsupported qmi_wwan ports (rh #835153)Dan Williams
These ports require QMI commands to start, and MM < 0.7 doesn't support QMI, so we can't use these yet. They get recognized as ether ports, but since we can't drive them as ether ports yet, wierd things happen.
2012-07-16gsm: emit usable reason code when disconnecting due to roamingDan Williams
Tell clients that the reason we're disconnecting isn't some random hiccup, but that roaming isn't allowed and we're now roaming, and thus the modem is getting disconnected.
2012-07-16trivial: fix some build errors due to stricter warningsDan Williams
2012-07-16build: update enable-more-warnings to allow yes/no/errorDan Williams
2012-07-12uml290: git-ignore generated programAleksander Morgado
2012-07-12huawei: ignore unsolicited ^CSNR messagesAleksander Morgado
They seem to give the raw value of the SNR, but we already do signal quality reporting using ^RSSI, so not useful.