Commit Graph

83 Commits

Author SHA1 Message Date
Aleksander Morgado
c92dc21a18 api: new ID_MM_PORT_TYPE_QMI and ID_MM_PORT_TYPE_MBIM udev hints
It is no longer true that all QMI ports are exposed by the qmi_wwan
driver and that all MBIM ports are exposed by the cdc_mbim driver.
There are other generic setups that allow exposing these types of
ports using different drivers, and usually we can also know the type
of port in advance via other means. Therefore, allow adding udev port
type hints for QMI and MBIM ports as well.
2020-11-09 18:41:57 +01:00
Aleksander Morgado
5df9ddac18 filter: simplify CDC_WDM rule to a subsystem-only USBMISC check
This is not just a rename of the rule, we also now avoid doing an
explicit check on the port name as well, and we rely on subsystem
checks only; i.e. the same logic applied for net ports.

The port candidate rules already do a 'cdc-wdm*' device name check
so it shouldn't be a big deal.
2020-11-06 12:37:10 +01:00
Aleksander Morgado
0cd76bf1c4 api: deprecate MM_MODEM_CAPABILITY_LTE_ADVANCED
It's not used anywhere.
2020-04-09 12:38:49 +00:00
Aleksander Morgado
b774cbe658 build: bump copyright years to 2020 2020-01-03 20:43:45 +01:00
Aleksander Morgado
53a7dc2f63 docs,api: rework how indices are exposed in docs
Use <chapter> so that all per-version indices are included in the docs.
2019-10-28 10:28:27 +01:00
Aleksander Morgado
cc7fd0ad23 docs,api: add missing reference to ID_MM_PORT_TYPE_AUDIO 2019-10-24 13:05:25 +02:00
Aleksander Morgado
cf14fba5b7 docs,api: provide per-version indices 2019-10-24 13:02:37 +02:00
Aleksander Morgado
f6d5490eeb udev: remove ID_MM_PLATFORM_DRIVER_PROBE tag
This tag is completely redundant because users can whitelist the
platform TTY ports to use with the more generic ID_MM_DEVICE_PROCESS
tag, which is part of the explicit whitelist filter rule.
2019-08-29 20:07:03 +00:00
Aleksander Morgado
118b19bb75 udev: rename ID_MM_DEVICE_MANUAL_SCAN_ONLY to ID_MM_TTY_MANUAL_SCAN_ONLY
The udev tag that allows flagging devices that MAY be modems
(e.g. USB<->RS232 adapters) is only applicable to TTY devices, so
explicitly specify that in the tag name as well.
2019-08-29 20:07:03 +00:00
Aleksander Morgado
250639e3da udev: repurpose ID_MM_DEVICE_IGNORE and new MM_FILTER_RULE_EXPLICIT_BLACKLIST
Until now the ID_MM_DEVICE_IGNORE udev tag was being used in the
internal blacklist of devices shipped by ModemManager when running in
either DEFAULT or PARANOID filter modes. The name of the tag is
extremely misleading because it doesn't really make the full device be
ignored, the tag only applied to TTY ports.

This commit repurposes the tag so that it applies to ANY kind of
port (e.g. TTY, NET, cdc-wdm...) and also to any kind of filter type
(i.e. also applicable in STRICT mode).

The internal blacklist shipped by ModemManager, which should NOT be
used in STRICT mode, uses a new tag name, ID_MM_TTY_BLACKLIST.

The new ID_MM_DEVICE_IGNORE tag is therefore much more usable and its
name is really meaningful. If there are users or third-party projects
adding their own udev rules with the ID_MM_DEVICE_IGNORE tag name,
they should have no problem as the new rule is more restrictive than
the old one.
2019-08-29 20:07:03 +00:00
Ben Chan
ee8695178d docs: untabify 2019-08-29 12:05:09 +00:00
Aleksander Morgado
3e3dfc784d docs: add deprecated items to sections file 2019-07-02 18:40:23 +02:00
Aleksander Morgado
251ca4a847 build: update copyright years to 2019 2019-01-11 15:57:36 +01:00
Aleksander Morgado
8e342cf120 api,firmware: new UpdateSettings property 2019-01-03 18:53:52 +00:00
Aleksander Morgado
dc154cf005 api,bearer: new 'BearerType' property
Until now we have only allowed to use and setup 'default bearers' (in
4G) or 'primary contexts' (in 2G/3G).

We can define a couple of additional bearer types, though:

* The 'dedicated bearers' (in 4G) or 'secondary contexts' (in 2G/3G),
  which are associated to a specific default/primary one, but which
  provide specific QoS settings configured via traffic flow templates.

* The 'initial default EPS bearer', which is a special case of default
  bearer in LTE, which is automatically created and connected when the
  modem is registered in the LTE network.

This commit introduces a new 'MMBearerType' enumeration that will be
associated to each bearer through a 'BearerType' property in the
org.freedesktop.ModemManager1.Bearer interface, showing what kind of
bearer/context this is.

By default, right now, all bearer objects created are 'default'
bearers.
2018-12-07 16:20:53 +00:00
Aleksander Morgado
a32883d358 doc: fix multiple missing references 2018-10-27 10:53:31 +02:00
Aleksander Morgado
2a1a0b88fb udev: define all generic tags as symbols
This prevents errors due to nasty typos in the strings.

We define all symbols in a single header file that is NOT considered
part of the API, as there is no need for MM clients to know about
these tags code-wise. These tags are only meaningful when associated
to devices in udev.

Information of each tag is included in the general API documentation.

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/88
2018-09-25 17:55:53 +00:00
Aleksander Morgado
091bf4dbd8 api: support location assistance data
Sometimes SUPL-server based A-GPS is not possible, e.g. if the module
doesn't have Internet connectivity. In such cases, the modem may
support injecting additional "assistance data" that may be downloaded
from the Internet using external means (e.g. WiFi), in order to keep
having a quick time to first fix.

We now support using this location assistance data, with the following
new API elements:

 * A new mask of supported assistance data types is provided in the
   SupportedAssistanceData property.

 * A new list of URLs from where the aassistance data may be
   downloaded is also provided in a new AssistanceDataServers
   property.

 * A new InjectAssistanceData() method is provided, to perform the
   data injection in the module once it's been downloaded to the host
   system.
2018-08-21 13:26:08 +00:00
Ville Skyttä
90b89bb9f4 *: Spelling fixes 2018-01-25 09:52:12 +01:00
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
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
7b4bd888f0 build: updated copyright years up to 2016 2016-07-26 13:07:49 +02: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
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
Dan Williams
31695a3912 build: INCLUDES -> AM_CPPFLAGS to quiet automake warning 2014-08-05 09:52:20 -05: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
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
Aleksander Morgado
32de7d6fef introspection,api: new 'Oma' interface 2013-09-09 10:12:55 +02:00
Aleksander Morgado
37115dee93 api,introspection: new 'Signal' interface for extended signal quality 2013-08-21 12:33:09 +02:00
Aleksander Morgado
184c5a925a docs: update migration reference version number 2013-07-19 09:59:41 +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
Aleksander Morgado
f4c488ea58 docs: reorder version symbols 2013-06-13 12:44:06 +02:00
Aleksander Morgado
0d4cf54cfe api,header: fix MM_MINOR_VERSION definition 2013-06-13 11:43:27 +02:00
Aleksander Morgado
a43cecb456 api,header: setup and export MM version symbols in the API 2013-06-13 10:04:49 +02:00
Aleksander Morgado
c2b2f0eb2b docs,api: new migration reference 2013-06-12 11:52:36 +02:00
Aleksander Morgado
29fb3fad80 README,docs: update basic ModemManager information 2013-06-12 09:05:12 +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