Commit Graph

7868 Commits

Author SHA1 Message Date
Aleksander Morgado
559df16deb filter: allow 'option' string in the TTY driver filter list
Fixes
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/475
2021-12-08 14:30:59 +01:00
Aleksander Morgado
e9f254ba3f udev: avoid [0-9]* as shell globbing patterns
The udev rules expect matches based on shell globbing pattern, not
based on regex. This means that "[0-9]*" doesn't mean "zero or more
digits", it actually means "one digit and zero or more other
characters".

So, avoid the regex like match, even if it worked for us, because it
didn't mean what we thought it meant, plus, it breaks our custom udev
rules processing logic, in which we convert the input patterns into
real regex expressions.

See https://bbs.archlinux.org/viewtopic.php?pid=1415916#p1415916

While at it, also make sure that the wildcard matching is done
exclusively for prefix and suffix matches, never in the middle of
a string, or our custom rules parser would not match correctly.
2021-12-01 22:12:06 +01:00
Aleksander Morgado
558a681fc8 sms-part-cdma: remove trailing whitespaces 2021-11-26 09:38:18 +01:00
Aleksander Morgado
d2b620c5fa libmm-glib,modem: fix warning when loading SIM slots
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/465
2021-11-22 13:04:52 +00:00
Matthew Via
6db9a48c34 sms-part-cdma: merge WDP multipart CDMA WAP messages.
CDMA WAPs have multipart message information in a 3 byte header in-band
with the user data, as described in WAP-259-WDP-20010614-a.  Set the
message concat parameters and use the message-id as the reference.
2021-11-21 21:17:20 +00:00
Aleksander Morgado
afb213ac05 bearer-mbim: fix error handling in connection status reload
We should not set the GError as autoptr(), as we're returning it as
part of the GTask.
2021-11-21 15:18:27 +01:00
Aleksander Morgado
647a438b43 bearer-mbim: plug leak when checking if already disconnected fails
If the modem reports any error during the connection status check,
we're creating a GError but never disposing it. We don't need that
GError for anything, so just discard it.
2021-11-21 14:51:24 +01:00
som
74ed6eeeff broadband-modem-mbim: support lte attach info from MBIMEx 3.0
whenever MBIM version is set to 3.0, lte attach info should
invoke the MBIMEx 3.0 specific CID to fetch the data.
2021-11-19 23:32:51 +01:00
Fran Dieguez
46463d1b6a po: add galician language translations 2021-11-19 22:48:06 +01:00
Aleksander Morgado
e7a6bb7504 data,fcc-unlock: add example unlock scripts
Added scripts for Foxconn SDX55, Quectel EM120, and several old Sierra
Wireless manufactured devices:
 * Installed but not used by default, the user needs to setup manual
   links from ${pkgdatadir}/fcc-unlock.available.d, to
   ${pkgsysconfdir}/fcc-unlock.d in order to enable them.
 * Installed with rights only for the owner, so that the dispatcher in
   ModemManager can validate them.
 * They rely on $PATH to find the qmicli/mbimcli tools.

In addition to these scripts, per-vid:pid links are created in the
same ${pkgdatadir}/fcc-unlock.available.d directory, specifying which
are the specific devices that require the FCC unlock operation.

This patch also creates the ${pkgsysconfdir}/fcc-unlock.d and
${pkglibdir}/fcc-unlock.d directories where ModemManager looks for the
enabled tools.

Note that the meson setup doesn't support creating/deleting links
officially yet, so we use a workaround using meson.add_install_script
that is not perfect (i.e. doesn't handle the symlink removal during
uninstall). See https://github.com/mesonbuild/meson/issues/1602
2021-11-18 11:20:41 +01:00
Aleksander Morgado
81302efa66 iface-modem: use external dispatcher to attempt FCC unlock
We remove the built-in FCC unlock procedures from the ModemManager, we
will no longer run them automatically, and instead rely on external
scripts/programs to do that.

Packages providing the external FCC unlock tools can install them in
${pkglibdir}/fcc-unlock.d.

Users manually enabling external FCC unlock tools can install them in
${pkgsysconfdir}/fcc-unlock.d.

The user-enabled path takes precedence over the package-enabled one.
2021-11-17 11:30:01 +01:00
Aleksander Morgado
21c775703c libmm-glib: fix license in sources
The libmm-glib library is LGPLv2+, not GPLv2+.
2021-11-16 17:54:26 +01:00
Prakash Pabba
103eb9cf29 shared-qmi,modem-helpers-qmi: Add support for NR5G band preference
Implement support for the NR5G band list to get current NR5G bands.
This will also allow us to configure supported NR5G bands via mmcli.
2021-11-14 20:19:37 +05:30
Prakash Pabba
6e1cb371ca shared-qmi,modem-helpers-qmi: Add support for NR5G band capability
Implement support for the NR5G band list to get supported NR5G
band capabilities.

  localhost ~ # qmicli -d qrtr://0 --dms-get-band-capabilities
  [qrtr://0] Device band capabilities retrieved:
        Bands: 'bc-0-a-system, bc-0-b-system, bc-1-all-blocks, gsm-dcs-1800, gsm-900-extended, bc-10, gsm-850, gsm-pcs-1900, wcdma-2100, wcdma-pcs-1900, wcdma-1700-us, wcdma-850-us, wcdma-800, wcdma-900, wcdma-850-japan'
        LTE bands: '1, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 17, 18, 19, 20, 21, 25, 26, 28, 29, 30, 32, 34, 38, 39, 40, 41, 42, 43'
        LTE bands (extended): '1, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 17, 18, 19, 20, 21, 25, 26, 28, 29, 30, 32, 34, 38, 39, 40, 41, 42, 43, 46, 48, 66, 68, 71'
        NR5G bands: '1, 2, 3, 5, 7, 8, 12, 13, 14, 18, 20, 25, 26, 28, 29, 30, 38, 40, 41, 48, 66, 70, 71, 77, 78, 79'
2021-11-14 20:19:37 +05:30
Prakash Pabba
35d5287dda mm-shared-qmi: Add check for 5g modem iface type 2021-11-14 20:19:37 +05:30
Prakash Pabba
a498e4674d broadband-modem-qmi: Process Signal Info for NR5G
MM was not processing NR5G signal strength for QMI signal info
response/indication message. Thus modem access technology and
signal quality was not reported for NR5G-only modems.

Process and consider NR5G signal strength too while getting
signal quality for modem interface.

As 5GNR does not have RSSI, take NR5G signal quality to be minimum
of percentage strength computed using RSRP, SNR and RSRQ values
individually.
2021-11-14 20:19:37 +05:30
Prakash Pabba
07512ef2a4 broadband-modem-qmi: Process System Info for NR5G
MM was not processing NR5G service info for QMI system info
response/indication message. This led to NR5G-only modems never
having 'registered' status.

Process NR5G system info and accordingly update the 5gs
registration status for qmi modems.

This commit also removes some stale comments.
2021-11-14 20:19:37 +05:30
Prakash Pabba
0936204eb5 api,enums: add NGRAN bands in MMModemBand enum 2021-11-14 20:18:52 +05:30
Prakash Pabba
2e4bba105e build,meson: bump libqmi version to 1.31.2
In order to be able to use new 5GNR apis.
2021-11-11 18:21:52 +05:30
ZhangMingjie
3a880fd832 plugins: add fibocom FM101 to fibocom port types rules file
This patch add fibocom FM101 to 77-mm-fibocom-port-types.rules file.
which contains two sets of vid and pid pairs, "2cb7:01a2" and "2cb7:01a4".
2021-11-10 20:19:47 +08:00
Aleksander Morgado
59ad8409a6 kerneldevice,generic: simplify DEVPATH matching logic
Use autoptr to avoid the embedded goto.
2021-11-09 10:50:26 +01:00
Aleksander Morgado
03fce4775e kerneldevice,generic: input pattern to string match is not regex
The input pattern given to the string_match() method is not a regex
pattern and we cannot use it as that, because all the special
characters (e.g. '.') would not be treated correctly.

Also, the prefix matching with the wildcard at the end of the string
needs to be converted to a proper regex wildcard, i.e. '.*'.

This logic also adds support for suffix matching, with a wildcard at
the beginning of the string, e.g. as the ones used for the wwan kernel
device name matching rules (i.e. '*MBIM').

Unit tests are added to cover all cases, most of these tests were
failing without the fixes implemented here.
2021-11-09 10:50:26 +01:00
Aleksander Morgado
73b44ea51b kerneldevice,generic: move string match method to helpers
So that we can propertly unit-test it.
2021-11-09 10:50:26 +01:00
Daniele Palmas
e5f08b7766 broadband-modem-qmi: prefer system info indication if available
Prefer system info indication if available and fall back to
serving system indication if the former is not supported.
2021-11-09 08:34:01 +00:00
Daniele Palmas
ba84f97855 broadband-modem-qmi: prefer signal info indication if available
Prefer signal info indication if available and fall back to
signal strength indication if the former is not supported.
2021-11-09 08:34:01 +00:00
Daniele Palmas
a1fdba508d broadband-modem-qmi: replace get serving system 3gpp with get system info
Set get system info as default and fall back to get serving system 3gpp
for those modems not supporting the former.
2021-11-09 08:34:01 +00:00
Daniele Palmas
639d0c62a9 broadband-modem-qmi: replace get signal strength with get signal info
Set get signal info as default and fall back to get signal strength
for those modems not supporting the former.
2021-11-09 08:34:01 +00:00
Iñigo Martínez
ec2e5403f1 build,meson: Make feature options boolean
Different options are set as `feature`, also every possible plugin,
but this may cause confusion.

All options set as `feature` but plugins have been made `boolean` to
avoid further confusions.

`help2man` is also installed in the CI image because is required to
build different libraries.
2021-11-08 09:28:55 +00:00
Aleksander Morgado
7a7bc2e444 RELEASING: update default branch name to 'main' 2021-11-04 23:33:20 +01:00
Aleksander Morgado
8680afffe0 ci: switch to trigger pipelines on the 'main' branch 2021-11-04 23:33:02 +01:00
Aleksander Morgado
15db736024 po: switch 'master' to 'main' in Project-Id-Version 2021-11-04 23:32:18 +01:00
Aleksander Morgado
93bff5a061 broadband-bearer: minor fix in code comment 2021-11-04 22:53:27 +01:00
Aleksander Morgado
0012c63bf4 core: replace 'greylist' with 'allowlist'
There's a single replacement, and it made sense to have 'allowlist' there.
2021-11-04 22:51:42 +01:00
Aleksander Morgado
a37ce05a02 core: replace 'slave' with 'secondary' 2021-11-04 22:50:23 +01:00
Aleksander Morgado
e8ebd3af7e core: replace 'master' with 'main' 2021-11-04 22:50:00 +01:00
Aleksander Morgado
9f679d4cac core: replace 'dummy' with 'placeholder' 2021-11-04 22:44:20 +01:00
Aleksander Morgado
3444b02932 core: replace 'whitelist' with 'allowlist' and 'blacklist' with 'blocklist'
We keep the 'WHITELIST-ONLY' filter type name still as an option in
--filter-policy=[POLICY], but deprecated and with the better
'ALLOWLIST-ONLY' replacement suggested from now on.
2021-11-04 22:40:28 +01:00
Aleksander Morgado
eae2e28577 api,bearer: specify that 'profile-name' is part of profile management
The setting does not make much sense in an explicit connection attempt.
2021-11-04 21:21:57 +01:00
Aleksander Morgado
797cc6828a api,bearer: minor indentation fixes 2021-11-04 21:21:57 +01:00
Aleksander Morgado
88de20689c docs,libmm-glib: add SAR interface to main page 2021-11-03 14:09:28 +01:00
Aleksander Morgado
2750d8fa67 docs,libmm-glib: rework main page, pco is not an interface 2021-11-03 14:08:54 +01:00
Aleksander Morgado
2762c3ef84 docs,libmm-glib: add missing references to object_{peek|get}_modem_ssr() 2021-11-03 14:03:13 +01:00
Aleksander Morgado
7d816e2e90 docs,libmm-glib: add missing referecens to get_error_rate_threshold() and get_rssi_threshold() 2021-11-03 14:03:13 +01:00
Aleksander Morgado
452adeaf64 docs,ilbmm-glib: add missing references to mm_gdbus_modem_signal_call_setup_thresholds() 2021-11-03 14:03:13 +01:00
Aleksander Morgado
6343491aa5 docs,libmm-glib: add missing reference to mm_bearer_stats_get_start_date() 2021-11-03 14:03:13 +01:00
Aleksander Morgado
f8cba1cbdb api,enums: fix Since tag in MMModem3gppPacketServiceState 2021-11-03 14:03:13 +01:00
Aleksander Morgado
d114ee8703 docs,libmm-glib: add index for 1.20 2021-11-03 14:03:13 +01:00
Aleksander Morgado
6316a3bc43 docs,api: add index for 1.20 2021-11-03 14:03:13 +01:00
Aleksander Morgado
cf376204e8 base-bearer: allow reporting uplink/downlink speeds via indications 2021-11-03 12:43:39 +01:00
Aleksander Morgado
21c8cadb41 bearer-mbim: implement support for 'uplink-speed' and 'downlink-speed'
During the packet service attach operation we'll get notified of which
is the agreed uplink/downlink bitrates, so include them in the stats.
2021-11-03 12:41:51 +01:00