Commit Graph

3920 Commits

Author SHA1 Message Date
Aleksander Morgado
a902e6859e api,introspection: new 'SetCurrentCapabilities' method
For those modems which expose a valid 'SupportedCapabilities' property with more
than one item in the list, we'll allow switching between them.
2013-06-05 19:15:15 +02:00
Aleksander Morgado
700ebc5c07 api,introspection: rename 'ModemCapabilities' to 'SupportedCapabilities'
And also make it a list of masks, specifying which are the specific combinations
supported, not just one mask with all.

E.g.:
  -------------------------
  Hardware |   manufacturer: 'Sierra Wireless, Incorporated'
           |          model: 'MC7710'
           |       revision: 'SWI9200X_03.05.19.04ap r5475 carmd-en-10527 2012/09/17 17:57:14'
           |      supported: 'gsm-umts
           |                  gsm-umts, lte'
           |        current: 'gsm-umts, lte'
           |   equipment id: '358178040668164'
2013-06-05 19:15:15 +02:00
Aleksander Morgado
1c67d050cb api,introspection: merge 'AllowedModes' and 'SupportedMode' into 'CurrentModes'
We now have a single 'CurrentModes' property which contains both values in a
tuple with signature "(uu)".

Also, rename 'SetAllowedModes()' to 'SetCurrentModes()', and update the list of
arguments expected to have a single "(uu)" tuple.
2013-06-05 19:15:14 +02:00
Aleksander Morgado
45ceba7692 api,introspection: 'SupportedModes' is now a list of possible combinations
Instead of just a mask of MMModemMode values, we now provide a list of the
allowed and preferred mode combinations supported by the modem. E.g.:

$> sudo mmcli -m 0
  -------------------------
  Modes    |      supported: 'allowed: 2g; preferred: none
           |                  allowed: 3g; preferred: none
           |                  allowed: 2g, 3g; preferred: none
           |                  allowed: 2g, 3g; preferred: 2g
           |                  allowed: 2g, 3g; preferred: 3g
           |                  allowed: 4g; preferred: none
           |                  allowed: 2g, 3g, 4g; preferred: none'
2013-06-05 19:15:14 +02:00
Aleksander Morgado
212d00c529 api,instrospection: rename 'Bands' to 'CurrentBands'
... and 'SetBands()' to 'SetCurrentBands()'.

We'll keep the 'Current' keyword in those properties which also have
'Supported' values.
2013-06-05 19:15:14 +02:00
Aleksander Morgado
4dc8d1ff3a broadband-modem-mbim: implement supported IP families loading 2013-06-05 19:15:14 +02:00
Aleksander Morgado
8f3bf6b894 broadband-modem-qmi: implement supported IP families loading
We'll default to IPv4 if the modem is CDMA-only, and IPv4+IPv6 otherwise.
2013-06-05 19:15:14 +02:00
Aleksander Morgado
2e223b5dbd mmcli,modem: show supported IP families in modem info 2013-06-05 19:15:14 +02:00
Aleksander Morgado
44ddbf48e2 broadband-bearer: use the new CGDCONT=? test response parser 2013-06-05 19:15:14 +02:00
Aleksander Morgado
7b3dd32df7 broadband-modem: implement default supported IP families loading
For CDMA-only devices, we will default to IPv4.

For 3GPP devices, we will use the AT+CGDCONT=? test command to query which are
the supported PDP types.
2013-06-05 19:15:14 +02:00
Aleksander Morgado
2acb125819 modem-helpers: new CGDCONT=? test response parser 2013-06-05 19:15:13 +02:00
Aleksander Morgado
bd360aa029 libmm-glib,modem: handle the new 'SupportedIpFamilies' property 2013-06-05 19:15:13 +02:00
Aleksander Morgado
b3222202bd api,introspection: new 'SupportedIpFamilies' property
This property will let the clients know which are the IP families supported by
the modem.
2013-06-05 19:15:13 +02:00
Aleksander Morgado
7ad30ecce1 modem-helpers: rename CGDCONT? tests
Adding the 'read' suffix, as they are for CGDCONT? read responses.
2013-06-05 19:15:13 +02:00
Aleksander Morgado
804642adc2 api: let MMBearerIpFamily be flags instead of a enumeration
We want to expose in the Modem interface the list of supported IP families, and
the easiest way to do so is to have the IP family as flags, and provide in the
interface a single enum.

Also, a value of 0 for a MMBearerIpFamily specifies that no flags are set, so
just rename it to 'NONE'.

And add a new 'ANY' value which sets all flags to 1.
2013-06-05 19:15:13 +02:00
Aleksander Morgado
a42234dd1c bearers: update connection logic in 3GPP+3GPP2 devices
https://bugzilla.gnome.org/show_bug.cgi?id=701333
2013-06-05 18:55:55 +02:00
Dan Williams
68a7d1a3ac broadband-modem-mbm: *EPIN response often needs a lot of time
If the modem was locked, it'll delay responding until the SIM is ready,
which can take a long time.
2013-05-31 13:13:57 -05:00
Dan Williams
fe5c81458f nokia: CS-12 appears to only accept PPP on USB interface 3
Attempting PPP on interface 1 never returns CONNECT, simply hangs and
times out at the dial.
2013-05-31 13:13:34 -05:00
Dan Williams
93fcaf93ce modem-helpers: handle commas within +COPS response items (bgo #701329)
Modems can probably put whatever they want between the quotes for
the operator name, including commas.  Handle that.

https://bugzilla.gnome.org/show_bug.cgi?id=701329
2013-05-31 13:13:09 -05:00
Dan Williams
67d3ed11d3 broadband-bearer: don't create PDP context when using an existing one (bgo #701151)
If the context is already defined, then we can just use it instead
of calling +CGDCONT to create it again.  Modems don't like this,
plus it's pointless.

https://bugzilla.gnome.org/show_bug.cgi?id=701151
2013-05-29 08:57:57 +02:00
Ben Chan
ba14d15df3 novatel-lte: increase number of retries for connection status checks
This patch increases the number of retries, from 4 to 60, for connection
status check during a connection / disconnection request, which handles
some scenario when the connection / disconnection request takes more
than 5 seconds to complete.
2013-05-28 17:31:25 +02:00
Ben Chan
c4f0ad6905 novatel-lte: normalize QMI status when included in DBus error message
This patches normalize a response for the AT$NWQMISTATUS command, by
replacing white-space characters with a space, before the response is
included in a DBus error message.
2013-05-28 10:03:40 +02:00
Aleksander Morgado
05ac6b6cf1 wavecom: don't grab ports handled by the qcserial driver
Sierra Wireless will assign the Wavecom USB vendor ID to some Gobi-based modems,
like the MC7750. Just ignore those by filtering out all devices with the Wavecom
USB vendor ID if they are handled by the qcserial driver.
2013-05-27 20:09:10 +02:00
Aleksander Morgado
e134a81a87 build: use --enable-gtk-doc instead of our custom --with-docs 2013-05-26 19:16:39 +02:00
Aleksander Morgado
3ed1cb2e1d docs: don't require 'dia' to build the docs
These diagrams are not expected to change much, so just include the generated
PNGs in the repository, and remove 'dia' from the prerequisites to build the
documentation.
2013-05-26 19:16:39 +02:00
Aleksander Morgado
5c8f1fe0f2 mmcli: fix newline prefixing
The last line in a multi-line string was getting lost if it wasn't '\n'
terminated.
2013-05-23 18:00:03 +02:00
Aleksander Morgado
a12be165d1 libmm-glib,modem: avoid accessing an already freed GArray
We cannot g_array_unref() the GArray when get()-ing bands as that will clear
the contents of the GArray, even if there are references around. Instead, just
dup the array contents when returning.
2013-05-23 18:00:03 +02:00
Aleksander Morgado
d0a8911cf6 modem-helpers-mbim: handle MBIM_PIN_TYPE_UNKNOWN in switch 2013-05-22 17:47:35 +02:00
Aleksander Morgado
7ceca95323 build: require mbim-glib >= 1.0.0 when building MBIM support 2013-05-22 17:47:07 +02:00
Ben Chan
3332333852 novatel: fix invalid comparison of unsigned expression
This patch fixes the following invalid comparison of unsigned expression:

novatel/mm-plugin-novatel.c:148:29: error: comparison of unsigned
      expression >= 0 is always true [-Werror,-Wtautological-compare]
    if (ctx->nwdmat_retries >= 0) {
        ~~~~~~~~~~~~~~~~~~~ ^  ~

Bug reported on https://code.google.com/p/chromium/issues/detail?id=242150
2013-05-20 10:25:32 +02:00
Aleksander Morgado
619b327012 broadband-modem-qmi: when listing all SMS fails, list per tag
Some QMI modems seem to fail when requesting to list all SMS messages in a given
storage. When this happens, we'll loop through all storages but performing per
tag list requests.
2013-05-20 10:15:28 +02:00
Aleksander Morgado
09d70454b4 sms-qmi: always specify message mode when deleting SMS messages 2013-05-20 10:14:10 +02:00
Aleksander Morgado
5caa0c96fb broadband-modem-qmi: always specify message mode when reading SMS 2013-05-20 10:14:10 +02:00
Aleksander Morgado
2a93ca9281 bearer: defer forced disconnection when modem unregistered while connected
If the bearer is connected and we get a notification of being unregistered, wait
up to 15s to force the disconnection, in case we can recover the registration
in the meantime.

https://bugzilla.gnome.org/show_bug.cgi?id=699803
2013-05-20 09:12:48 +02:00
Aleksander Morgado
e18e168682 bearer: allow registration changes from/to SEARCHING without disconnecting
We allow the modem to be connected while the registration state is 'SEARCHING',
which may happen when the coverage is poor.
2013-05-20 09:08:35 +02:00
Aleksander Morgado
2bb0a23b1f iface-modem-3gpp: remove the deferred registration updates
We should really notify registration updates right away in the DBus interface.
2013-05-20 09:08:35 +02:00
Ben Chan
82a0787906 device: check for NULL driver in add_port_driver
This patch fixes a crash in MMDevice::add_port_driver() due to
g_str_equal() dereferencing a NULL driver returned by
mm_device_utils_get_port_driver().

Bug reported on https://code.google.com/p/chromium/issues/detail?id=241823
2013-05-19 20:27:54 +02:00
Aleksander Morgado
e63e062a76 build: use -Wformat-security 2013-05-17 23:16:01 +02:00
Aleksander Morgado
48f47cd53f sms: fix validity variant parsing 2013-05-17 08:49:19 +02:00
Adrian Bunk
f31ab09433 configure.ac: enable maintainer mode by default
This is how it should be, and also consistent with NetworkManager.
2013-05-13 16:51:08 +02:00
Aleksander Morgado
027d95506c huawei: use ^SYSINFOEX if available instead of ^SYSINFO
Newer Huawei modems, like the E3276 or the ME906 won't support ^SYSINFO, and we
should instead use the newer ^SYSINFOEX. By default, use ^SYSINFOEX when
available, as it provides more information than the plain ^SYSINFO.

E.g.:
    ^SYSINFOEX:2,3,0,1,,3,"WCDMA",41,"HSPA+"
    ^SYSINFOEX:2,3,1,1,1,3,”WCDMA”,46,”DC-HSPA+”
2013-05-09 17:56:38 +02:00
Aleksander Morgado
f96bb04c00 huawei: ignore ^NDISSTAT unsolicited messages
These messages give us information about the current connection status in the
NDIS interface. We already have other means to know this status, so we just
ignore the unsolicited message for now.

E.g.:
    ^NDISSTAT: 1,,,"IPV4"
2013-05-09 14:45:13 +02:00
Aleksander Morgado
cba3f7db65 huawei: ignore ^HCSQ unsolicited messages
Newer Huawei modems use ^HCSQ to report per-interface signal quality values,
but we don't know yet what each field means for each technology, so just ignore
them for now.

E.g.:
    ^HCSQ: "GSM", 53
    ^HCSQ: "WCDMA", 26, 24, 43
    ^HCSQ: "LTE", 40, 28, 216, 14

We also don't use this message to update current access technology information,
as it is not detailed enough (e.g. WCDMA doesn't specify whether it's plain UMTS
or HSDPA or HSPA+...)
2013-05-09 14:45:12 +02:00
Aleksander Morgado
d169c99dc9 novatel: skip $NWDMAT if the modem has QMI ports 2013-05-07 18:49:57 +02:00
Aleksander Morgado
2c83334c25 novatel: allow QMI-powered modems 2013-05-07 09:11:28 +02:00
Aleksander Morgado
031657cea5 novatel: don't filter out the USB551L
We filter the E362 because it's managed by the Novatel LTE plugin. If we also
filter out the USB551L, but it's not explicitly grabbed by any other plugin, it
will default to the Generic one.
2013-05-07 09:08:17 +02:00
Aleksander Morgado
76d97c6334 novatel: don't explicitly filter by drivers
No real need to do it; the VID filter is already enough.
2013-05-07 09:05:49 +02:00
Dan Williams
89ae657fce telit: add basic plugin for Telit 3GPP and 3GPP2 devices 2013-05-06 12:38:50 -05:00
Dan Williams
c4fa405e2e sms: enforce message 'class' value validity
Class is -1 to 3, so warn about out-of-bounds values when it's
being set on the client side.
2013-05-06 10:51:01 -05:00
Dan Williams
9bbcd9d6a5 sms: add support for message class
We need to redefine the message class property to int since class
0 is a valid message class.  Thus -1 now means "unspecified class".
2013-05-06 10:45:55 -05:00