Commit Graph

123 Commits

Author SHA1 Message Date
Aleksander Morgado
d4aaa436d9 modem-3gpp: allow loading and changing EPS UE mode of operation
The UE modes of operation for LTE are defined in 3GPP TS 24.301 (e.g.
section 4.3 in v10.3.0):
  * PS mode 1: EPS only, 'voice centric'
  * PS mode 2: EPS only, 'data centric'
  * CS/PS mode 1: EPS and non-EPS, 'voice centric'
  * CS/PS mode 2: EPS and non-EPS, 'data centric'

The mode specifies, among other things, how the UE should behave w.r.t
CS fallback depending on the capabilities reported by the network.
2018-01-20 15:41:07 +01:00
Aleksander Morgado
ce8c703574 docs: include device filter policies/rules documentation 2017-12-05 11:00:11 +01:00
Aleksander Morgado
42f4e975c9 docs: port probing reference in its own chapter 2017-12-05 10:58:29 +01:00
Ben Chan
9c6a1ebb1e libmm-glib: add helpers for loading hardware revision 2017-09-20 09:56:23 -07:00
Ben Chan
e32510418a api,introspection: new 'HardwareRevision' property
This property will let the clients know the hardware revision reported
by the modem.
2017-09-20 09:56:23 -07:00
Aleksander Morgado
f0bb6ef856 api: add MM_DISABLE_DEPRECATED guards around deprecated symbols
When this symbol is defined, e.g. via CFLAGS, building a program that
uses the ModemManager API will fail if the program references
deprecated symbols.

For now we just use it to keep gtk-doc-scan happy and avoid
unnecessary warnings.
2017-09-07 10:55:17 +02:00
Aleksander Morgado
84ac581f3f api: consolidate CDMA frequency enumerations
Define new symbols with easier names, just based on the Band Class.
2017-09-07 10:55:14 +02:00
Aleksander Morgado
7fb3aeacd3 api: new MM_BAND_UTRAN_ enumerations for WCDMA bands
Flag as deprecated the old names, and define new ones based on the
defined UTRAN band numbers, equivalent to what was done for LTE bands.
2017-09-07 10:54:52 +02:00
Aleksander Morgado
eedd4ab445 api: don't use intermediate variables for deprecation warnings
Using an intermediate constant variable breaks compilation with C
compilers, as these variables cannot be used as initializers.

Instead, define a deprecated type and cast all deprecated symbols to
that type. We lose the information about what the new replacement
symbol is, but we don't break compilation.

E.g.:
    test.c: In function ‘main’:
    test.c:8:5: warning: ‘MMModemBandDeprecated’ is deprecated [-Wdeprecated-declarations]
         printf ("band: %d\n", MM_MODEM_BAND_U2100);
         ^~~~~~
2017-09-07 10:54:49 +02:00
Ben Chan
3d800c2f49 compat: add compatibility definitions for old MM_MODEM_BAND_EUTRAN_* values
Those Roman numeral suffixes in MM_MODEM_BAND_EUTRAN_* were replaced
with 1, 2, 3, ..., etc. This patch adds a compatibility header,
ModemManager-compat.h, to alias the old MM_MODEM_BAND_EUTRAN_* values to
the new values.
2017-06-28 18:21:25 +02:00
Aleksander Morgado
355633f8d6 docs: update copyright year to 2017 2017-03-08 14:09:50 +01:00
Aleksander Morgado
9b3549e375 api,signal: new RSCP item 2016-10-12 13:24:08 +02:00
Aleksander Morgado
c4a584416a core: allow disabling auto-scan and notifying ports one by one via API
This commit enables a new core ModemManager daemon option, so that automatic
detection of available modems is totally disabled: '--no-auto-scan'. Note that
this option also replaces the previously used '--test-no-auto-scan' option,
which was only used during tests.

Along with the new ModemManager option, a new ReportKernelEvent() method in
the API is defined, which allows notifying the daemon of which interfaces it
should be accessing, as well as the main details of each interface. The only
mandatory parameters in the new method are 'action' (add/remove), 'name' (the
name of the interface) and 'subsystem' (the subsystem of the interface).

The mmcli tool has support for using the new api method via several new options:

 * The '--report-kernel-event' option allows specifying device ports one by
   one, and is a direct mapping of the ReportKernelEvent() method:
     $ sudo mmcli --report-kernel-event="action=add,name=wwan0,subsystem=net"
     $ sudo mmcli --report-kernel-event="action=add,name=cdc-wdm0,subsystem=usbmisc"

 * The '--report-kernel-event-auto-scan' option uses udev monitoring to notify
   events automatically to the daemon. This allows to operate in a way
   equivalent to the default daemon operation (with implicit auto-scan).

Worth noting that the ReportKernelEvent() method is only usable when
'--no-auto-scan' is explicitly used in the daemon. An error will be reported if
the method is tried while standard udev monitoring is enabled (implicit if
auto scan isn't explicitly disabled in the daemon).

If mmcli is going to be used only to report 'real time' events, an optional
'--initial-kernel-events=[PATH]' may be given in the ModemManager call to
automatically process a set of port kernel events one by one on boot. The file
may e.g. contain:
  action=add,name=wwan0,subsystem=net
  action=add,name=cdc-wdm0,subsystem=usbmisc
2016-09-29 15:43:05 +02:00
Aleksander Morgado
7b4bd888f0 build: updated copyright years up to 2016 2016-07-26 13:07:49 +02:00
Aleksander Morgado
6c35878f12 location: support updating the GPS refresh time
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-19 12:22:30 +01:00
Aleksander Morgado
730123598a libmm-glib: retrieve stats from the bearer
The MMBearer object is updated to provide getter methods to retrieve the new
MMBearerStats object.
2015-12-07 14:20:54 +01:00
Aleksander Morgado
27c6f15873 libmm-glib: new helper object to handle bearer stats
The new MMBearerStats object provides a simple API to interact with the new
dictionary containing the bearer connection stats.
2015-12-07 14:20:54 +01:00
Aleksander Morgado
2c0da94319 build: diagrams and logos are no longer generated during build, so don't remove them 2015-10-07 12:15:23 +02:00
Aleksander Morgado
b58ff7cdf0 build: don't add PNGs in content_files, no longer needed 2015-10-07 11:57:39 +02:00
Aleksander Morgado
7a7fddc931 libmm-glib,docs: update types
# Extra options to supply to gtkdoc-scan
   SCAN_OPTIONS = --rebuild-types
2015-08-02 12:02:32 +02:00
Aleksander Morgado
4043edfd17 libmm-glib,docs: avoid already defined id
DOC   Building HTML
../libmm-glib-docs.xml:6: element indexdiv: validity error : ID api-index-full already defined
  DOC   Fixing cross-references
2015-08-02 12:02:32 +02:00
Aleksander Morgado
6fbed014db docs,libmm-glib: add missing voice/call documentation 2015-08-02 12:02:32 +02:00
Aleksander Morgado
6ca7c49d80 docs,api: add missing links to the new Voice interface and Call object 2015-08-02 10:39:48 +02:00
Aleksander Morgado
a6adf04102 docs,voice: add missing voice related enum values 2015-08-02 10:39:48 +02:00
Aleksander Morgado
cd5ca169f1 libmm-glib,location: add helpers to get/set the SUPL server address 2014-09-05 11:28:10 +02:00
Aleksander Morgado
fbeee20d5b introspection,api: add SUPL server configuration in the Location interface 2014-09-05 11:28:10 +02:00
Dan Williams
31695a3912 build: INCLUDES -> AM_CPPFLAGS to quiet automake warning 2014-08-05 09:52:20 -05:00
Aleksander Morgado
2a5230c93e docs,libmm-glib: add methods to manage the MTU in the MMBearerIpConfig 2014-03-25 17:13:59 +01:00
Aleksander Morgado
4827e79848 libmm-glib,tests: use gdbus-codegen to generate code for the new Test interface 2014-02-13 13:41:14 +01:00
Aleksander Morgado
121fbd91e7 docs,api: fix section reference to the Messaging interface 2014-02-06 11:05:13 +01:00
Aleksander Morgado
94bf076f28 docs: update email address 2014-01-30 18:03:10 +01:00
Ben Chan
e438221258 libmm-glib: add methods to retrieve 'Bearers' property in Modem interface 2013-11-22 08:35:41 +01:00
Aleksander Morgado
a787d1bbb8 docs,libmm-glib: add missing methods for the new properties 2013-11-21 12:46:05 +01:00
Aleksander Morgado
86795b928e libmm-glib: allow new 'teleservice-id' and 'service-category' keywords in MMSmsProperties 2013-10-25 19:49:54 +02:00
Aleksander Morgado
0bb91ce53d api: add 'ServiceCategory' property to the SMS interface
Will be used in 3GPP2 SMS messages.
2013-10-25 19:47:16 +02:00
Aleksander Morgado
d0fb94c49f api: add 'TeleserviceId' property to the SMS interface
Will be used in 3GPP2 SMS messages.
2013-10-25 19:46:37 +02:00
Aleksander Morgado
92a2953e93 docs: fixed a couple of issues regarding the new MMModem3gppSubscriptionState enum 2013-10-09 10:19:21 +02:00
Thieu Le
f9a4f87d52 iface-modem-3gpp: add SubscriptionState property 2013-10-09 09:59:42 +02:00
Aleksander Morgado
8ab38ae968 libmm-glib: support for the 'OMA' interface 2013-09-09 10:15:18 +02:00
Aleksander Morgado
32de7d6fef introspection,api: new 'Oma' interface 2013-09-09 10:12:55 +02:00
Aleksander Morgado
0502646f9f api,introspection: use per-technology dictionaries in the 'Signal' interface 2013-08-21 12:34:51 +02:00
Aleksander Morgado
fcdbefa519 libmm-glib: handle the new 'Signal' interface 2013-08-21 12:33:09 +02:00
Aleksander Morgado
37115dee93 api,introspection: new 'Signal' interface for extended signal quality 2013-08-21 12:33:09 +02:00
Aleksander Morgado
c94943322b docs: add missing types 2013-08-13 16:05:07 +02:00
Aleksander Morgado
5de526f708 libmm-glib,cdma: implement manual activation methods 2013-08-08 09:50:04 +02:00
Aleksander Morgado
c0d4f3157a libmm-glib: new 'MMCdmaManualActivationProperties' helper object 2013-08-08 09:50:04 +02:00
Aleksander Morgado
184c5a925a docs: update migration reference version number 2013-07-19 09:59:41 +02:00
Aleksander Morgado
1bd60c7dac docs,libmm-glib: update type information 2013-07-08 13:10:51 +02:00
Aleksander Morgado
3206e95663 api,introspection: new 'Ports' property in the Modem interface
We will expose a new 'Ports' property listing all ports currently known by a
given modem. Ports which are not used but are detected as being part of the
modem will be listed with an 'unknown' port type.

This change uses the new 'MMModemPortType' enum and the new 'MMModemPortInfo'
helper struct to handle these values in libmm-glib. The already available
'MMPortType' enum hasn't been re-used for the interface because it contains
values that we don't need (e.g. IGNORED).

The port list is now also included in the modem information command of mmcli:

$ sudo mmcli -m 0

/org/freedesktop/ModemManager1/Modem/0 (device id '97b7b99e3e2bea103880545b619fb05a3cc81b26')
  -------------------------
  System   |         device: '/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4'
           |        drivers: 'qcserial, qmi_wwan'
           |         plugin: 'Gobi'
           |   primary port: 'cdc-wdm0'
           |          ports: 'ttyUSB0 (qcdm), ttyUSB1 (at), cdc-wdm0 (qmi), wwp0s29u1u4 (net)'

https://bugzilla.gnome.org/show_bug.cgi?id=702678
2013-06-24 19:44:57 +02:00
Aleksander Morgado
b582ba58e8 api,introspection: avoid exposing the Contacts interface
There is no implementation of the Contacts interface yet, just avoid exposing it
for now.

https://bugzilla.gnome.org/show_bug.cgi?id=701989
2013-06-18 16:19:19 +02:00