Commit Graph

6792 Commits

Author SHA1 Message Date
Aleksander Morgado
ae90ed66a2 broadband-modem-qmi: 3GPP USSD support
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/26
2020-04-20 16:48:52 +02:00
Teijo Kinnunen
d98597e430 quectel: Check SIM swap after "+QUSIM: 1" URC
Quectel emits "+QUSIM: 1" after eUICC reinitialization. Detect it
and perform SIM swap check if one is encountered.

The motivation here is that M2M eUICC profile switch causes eUICC
reset and this is one way to detect and handle profile switches
properly on Quectel modems. The existing SIM hot swap mechanism is
used as it appears to be suitable for handling profile switches as
well as physical swapping of SIM cards.
2020-04-17 07:45:47 +00:00
Aleksander Morgado
1802bd07ac man,mmcli: remove non-existent --list-bearers option
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/203
2020-04-16 15:52:54 +02:00
Aleksander Morgado
b95bcfe6e3 api,location: improve InjectAssistanceData() method docs
Explain when this method should be used instead of A-GPS.
2020-04-12 17:49:36 +02:00
Aleksander Morgado
ef56114244 api,location: improve Setup() method docs
Explicitly state that the signals_location argument affects the
behavior of the Location property.
2020-04-12 17:40:52 +02:00
Aleksander Morgado
d93526a114 api,location: improve Location property docs
Clearly specify that GetLocation() is another way to retrieve the
location information instead of the Location property.
2020-04-12 17:15:58 +02:00
Aleksander Morgado
330e0b33a4 base-bearer: log connection attempt failure reason
We were logging it as debug, increase logging level to warning to make
sure it's always logged.
2020-04-10 11:45:03 +00:00
Aleksander Morgado
073043ca6b base-bearer: log stats on disconnection 2020-04-10 11:45:03 +00:00
Aleksander Morgado
eebd7582bb base-bearer: don't run disconnection path multiple times 2020-04-10 11:45:03 +00:00
Aleksander Morgado
79daa3099e api,bearer: add 'total-rx-bytes', 'total-tx-bytes' and 'total-duration' stats
Compiling the amount of bytes transferred and received during all
tracked connection attempts, as well as the total duration of all the
connections.
2020-04-10 11:45:03 +00:00
Aleksander Morgado
f325ef5902 api,bearer: add 'attempts' and 'failed-attempts' statistics
When we're reusing over and over the same bearer object, we can
provide statistical information about the number of connection
attempts that have been done and how many of them failed.
2020-04-10 11:45:03 +00:00
Aleksander Morgado
b3ec30403f doc,api: add reference to --with-at-command-via-dbus in Command() info 2020-04-10 11:38:47 +02:00
Aleksander Morgado
868d0dbf3f api,doc: fix missing Command() doc output in html 2020-04-10 11:38:47 +02:00
Aleksander Morgado
797f2a5a2e api,doc: fix some property gtk-doc links 2020-04-10 11:38:47 +02:00
Aleksander Morgado
9c0a937cf3 broadband-modem-qmi: since 1.24.6 all strings are valid UTF-8 2020-04-10 08:24:52 +00:00
Aleksander Morgado
4758e49d87 broadband-modem-qmi: request operator reload explicitly
If the modem switches from one roaming operator to a different roaming
operator, the actual operator MCCMNC/description will change even if
the registration state keeps on being the same (roaming). Detect that,
and trigger operator info reloading explicitly.
2020-04-10 08:24:52 +00:00
Aleksander Morgado
ff97a77631 broadband-modem-mbim: request operator reload explicitly
If the modem switches from one roaming operator to a different roaming
operator, the actual operator MCCMNC/description will change even if
the registration state keeps on being the same (roaming). Detect that,
and trigger operator info reloading explicitly.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/154
2020-04-10 08:24:52 +00:00
Aleksander Morgado
5313c25bd8 broadband-modem-qmi: explicitly disable autoconnect during enable
If the QMI device has autoconnect enabled, it will collide in one way
or another with the ModemManager triggered connection sequence,
usually because the user-requested settings are different to the
autoconnected ones.

So, detect whether autoconnect is enabled or not, and if it is,
explicitly disable it.
2020-04-09 15:48:23 +02:00
Aleksander Morgado
a60beedcc5 port-qmi: allow users to release clients when no longer needed 2020-04-09 15:48:23 +02:00
Aleksander Morgado
32e2623052 iface-modem-3gpp: add 5GNR to full 3GPP act mask
So that the logic looking for 3GPP related registration info works in
the QMI modem object when selected network is reported as 'unknown'
but still the radio interfaces list reports 5GNR.

  <<<<<< TLV:
  <<<<<<   type       = "Serving System" (0x01)
  <<<<<<   length     = 6
  <<<<<<   value      = 01:02:01:00:01:0C
  <<<<<<   translated = [ registration_state = 'registered' cs_attach_state = 'detached' ps_attach_state = 'attached' selected_network = 'unknown' radio_interfaces = '{ [0] = '5gnr '}' ]
2020-04-09 12:38:50 +00:00
Aleksander Morgado
2293fbe6ba shared-qmi: include all possible 5G related combinations if SSP is supported 2020-04-09 12:38:50 +00:00
Aleksander Morgado
c9ee47dd8f helpers-qmi: always log all queried capabilities when building current 2020-04-09 12:38:50 +00:00
Aleksander Morgado
8eaffb654f fibocom: add FM150 port type hints 2020-04-09 12:38:50 +00:00
Aleksander Morgado
03f625aa3b fibocom: support QMI capable devices 2020-04-09 12:38:50 +00:00
Aleksander Morgado
426f69d64b tests,modem-helpers: regex number is index of an array, so starts at 0 2020-04-09 12:38:50 +00:00
Aleksander Morgado
8aec9e3889 test,modem-helpers: use MMModem3gppRegistrationState values in tests 2020-04-09 12:38:50 +00:00
Aleksander Morgado
28b0e2b439 modem-helpers: simplify logic to create array of GRegex
Iterate over the list of available patterns, instead of adding
them one by one.
2020-04-09 12:38:50 +00:00
Aleksander Morgado
c78da3de7e broadband-modem: run +C5GREG state checks
The generic CREG parser is improved to also allow parsing +C5GREG
responses and URCs.
2020-04-09 12:38:50 +00:00
Aleksander Morgado
040eb3880c helpers: use generic number parsing methods in CREG parser
This fixes the s8500 wave unit test, which was incorrectly parsing the
Act field reported as 'B' as "GSM" (strtol(B)=0)

Also, given that the generic parsing methods are able to parse numbers
from quoted strings, this change allows us to remove the Thuraya
specific CREG matching that just took into consideration quoted
strings. The Thuraya unit tests are also fixed up to provide proper
testing of the logic.
2020-04-09 12:38:50 +00:00
Aleksander Morgado
40b36a25ca test,modem-helpers: remove obsolete comments in u-blox CREG tests
We already support "SMS only" registration state.
2020-04-09 12:38:50 +00:00
Aleksander Morgado
ccb45a8941 libmm-glib,helpers: ignore all leading whitespaces when parsing numbers 2020-04-09 12:38:50 +00:00
Aleksander Morgado
7eee214b8e helpers: add additional AcT values from 27.007 2020-04-09 12:38:50 +00:00
Aleksander Morgado
68917f502e api: new 'attached RLOS' registration state
Reporting the state when the UE attaches to access restricted local
operator services.
2020-04-09 12:38:50 +00:00
Aleksander Morgado
1c7304eb71 libmm-glib,helpers: allow reading hex strings from match info 2020-04-09 12:38:50 +00:00
Aleksander Morgado
539562af01 libmm-glib,helpers: skip quotes when reading numbers from match infos
Useful when the regex applied to the parseable strings don't have an
special ignore rule for the quotes.
2020-04-09 12:38:50 +00:00
Aleksander Morgado
44ace9642c modem-helpers: improved +WS46 mode '25' handling
The mode '25' means different things on LTE-capable and
non-LTE-capable devices, so improve the logic to clarify that.
2020-04-09 12:38:50 +00:00
Aleksander Morgado
f31182c08d iface-modem-3gpp: don't fixup CS network support
This is already done by the modem interface as soon as current
capabilities are loaded.
2020-04-09 12:38:50 +00:00
Aleksander Morgado
05301f23a1 iface-modem-3gpp: new 5GS network support 2020-04-09 12:38:50 +00:00
Aleksander Morgado
9144a9fa34 helpers-qmi: support 5G capabilities and modes 2020-04-09 12:38:50 +00:00
Aleksander Morgado
1cfd5daf9b api: new 5GNR access technology 2020-04-09 12:38:50 +00:00
Aleksander Morgado
f912de3574 broadband-modem: support 5G in +WS46 to capabilities conversion 2020-04-09 12:38:50 +00:00
Aleksander Morgado
5db3fa88e9 api: new 5G mode 2020-04-09 12:38:50 +00:00
Aleksander Morgado
7354dc928f api: new 5GNR capability 2020-04-09 12:38:50 +00:00
Aleksander Morgado
bf771be7fa build: require libqmi 1.25.4 for full 5G enum support 2020-04-09 12:38:49 +00: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
78266ac489 iface-modem: simplify is_cdma_only() check
The check needs to look for a matching single bit, so no need to make
it too complex.
2020-04-09 12:38:49 +00:00
Aleksander Morgado
e1cfe3b4ee api,cdma: fix small typo
Reported by Malte Grosse.
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/202#note_460466
2020-04-09 14:36:47 +02:00
Aleksander Morgado
1a67db047e cli: improve --help output for --modem and --sim options
Specify the full list of supported object lookup methods.
2020-04-09 05:38:07 +00:00
Aleksander Morgado
d72a9df041 cli: allow looking up for first available modem or SIM
When a system only has one single modem, it's convenient to just look
for the first available modem or SIM object, instead of needing to
provide the full path or the exact index number.

This improvement allows users to use the "any" keyword, or any of its
substrings (e.g. "an" or even "a") to match the first available object
of the requested type.

E.g.:

  $ mmcli -m a
    --------------------------------
    General  |            dbus path: /org/freedesktop/ModemManager1/Modem/0
             |            device id: 1a48f1180f1fb0166d91f7b139d027136b59ba63
    --------------------------------
    Hardware |         manufacturer: Sierra Wireless Inc.
             |                model: Sierra Wireless EM7345 4G LTE
    ...

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/196
2020-04-09 05:38:07 +00:00
Aleksander Morgado
cc99ab562b cli: consolidate logic to process user provided object lookup info
The user may specify DBus objects in several ways, e.g. with full
object paths, just with the object numeric ids, or in some other cases
with the full device UID.

Setup one single method to process this info for all object types, so
that it's also easier to add new lookup methods for all at the same
time.
2020-04-09 05:38:07 +00:00