aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-12-24libmm-glib: new 'roaming-allowance' in 3GPP profile and bearer propertiesAleksander Morgado
2021-12-24libmm-glib: new 'profile-enabled' in 3GPP profileAleksander Morgado
Not applicable to bearer properties, as this is exclusively a proflie management setting, unrelated to connection attempts.
2021-12-24libmm-glib: new 'access-type-preference' in 3GPP profile and bearer propertiesAleksander Morgado
2021-12-24api,bearer: new 'profile-source' settingAleksander Morgado
Sometimes it's useful to know how a given stored profile was created, so devices can store and report this kind of information.
2021-12-24api,bearer: new 'roaming-allowance' settingAleksander Morgado
The 'allow-roaming' setting should be considered deprecated for 3GPP devices that support the new 'roaming-allowance' setting, which is much more detailed (as it allows to differentiate between partner and non-partner networks) and may also be stored as part of a profile.
2021-12-24api,bearer: specify how 'allow-roaming' worksAleksander Morgado
This is never part of profile settings, it's a volatile configuration applicable to the connection attempt ongoing with the given bearer settings.
2021-12-24api,bearer: new 'profile-enabled' settingAleksander Morgado
This setting is stored as part of the profile in the device, and allows the user to specify that a given profile must not be used in any way by the modem (if set to 'FALSE').
2021-12-24api,bearer: new 'access-type-preference' settingAleksander Morgado
In 5G capable devices, which can support multiple types of access types (either 3GPP or non-3GPP), the UE may request to use a 3GPP access type exclusively, prefer a 3GPP access type, or just report no preference. When supported, this field may also be part of the settings that can be stored as part of a profile.
2021-12-24broadband-modem-mbim: implement 5GNR registration settings updateAleksander Morgado
2021-12-24broadband-modem-mbim: implement 5GNR registration settings loadingAleksander Morgado
2021-12-24iface-modem-3gpp: implement support for updating 5GNR registration settingsAleksander Morgado
2021-12-24iface-modem-3gpp: minor coding style changeAleksander Morgado
2021-12-24iface-modem-3gpp: implement loading 5GNR registration settings during initAleksander Morgado
2021-12-24cli,modem: add 5GNR registration settings in modem info outputAleksander Morgado
2021-12-24cli,modem-3gpp: new '--3gpp-set-nr5g-registration-settings' actionAleksander Morgado
2021-12-24libmm-glib,modem-3gpp: add support to get/set 5GNR registration settingsAleksander Morgado
2021-12-24libmm-glib: new helper to handle the 5GNR registration settingsAleksander Morgado
2021-12-24api,modem3gpp: add DRX cycle in 5G registration settingsAleksander Morgado
2021-12-24api,modem3gpp: new 5G registration settings support and MICO modeSom_SP
A new set of property+method is added to be able to configure the 5G specific registration settings, initially defining the support for the MICO mode. The property name starts with "Nr5g" instead of "5gNr" because of the limitations imposed by the GObject type system on how properties with numbers can be named.
2021-12-23build,meson: Remove incorrect args for i18n.merge_fileXeonacid
`i18n.merge_file` has been ignoring positional arguments for a time and explicitly rejects with error since meson 0.60.0.
2021-12-20broadband-modem-qmi: Introduce udev flag for reduced facility lock queryJakob Hauser
The udev flag "ID_MM_QMI_FACILITY_LOCK_QUERY_REDUCED" allows to skip facility lock state query "get_ck_status" on the DMS path for devices where this isn't implemented properly. On devices that have enabled "device locks", this flag won't work well. Skipping the query doesn't disable the locks. Fixes #448
2021-12-13ublox: add support to SIM hot swapAlexander Yashin
Main thing that's required to get modem hot-swapping to work is the UDCONF=50,1 command(see u-blox AT-command manual). But there are a lot of u-blox modules which do not support this command. So in this patch, it's supposed that this thing is configured beforehand(Like the UUSBCONF functioning mode) for modules, where SIM hot-swaping feature is possible. For the modems where it's not, the patch will not have any effects. ---- For ublox modems, CIEV: 12(X) messages allow to know if SIM is (un)plugged. The values are encoded as: - 0: no SIM detected - 1: SIM detected It's required from a modem to generate these events about the SIM detection state. To set up these `CIEV: 12,(X)` URC events the `+CMER=1,0,0,1,0` command is used. That command is supported by almost all u-blox modems except SARA-G300/SARA-G310/LEON-G1(For these models the hot-swap feature will not work). As this 12 that is used in CIEV may be completely different in other modules, the test command parsing is quite important to get that index number. So, this logic is also added in cind_simind_format_check_ready function. ---- It seems that it's necessary to issue this `+CMER` set up there despite that the `+CMER` configuration will take place later in the 3GPP interface enabling sequence. Because without it simind indications will not be enabled at all. CMER configuration may be later overwritten by 3GPP interface enabling sequence, but in the worst-case scenario only hot-swap feature will not work.
2021-12-13plugins: ublox: bearer: SIM absence should not break disconnectAlexander Yashin
If we have a modem with an established connection, and then the SIM is getting removed from that modem, this forces modem reprobing sequence. It looks like that: ``` mm-base-modem:mm_base_modem_process_sim_event -> mm-base-modem:mm_base_modem_disable -> mm-base-modem:disable -> mm-broadband-modem:common_disable -> mm-broadband-modem:disabling_step, -> ctx->step=DISABLING_STEP_FIRST -> ctx->step=DISABLING_STEP_WAIT_FOR_FINAL_STATE -> ctx->step=DISABLING_STEP_DISCONNECT_BEARERS ``` At this stage, there is no actual connection existing already, but bearer objects still exist and are still marked as connected. So, if there were any active bearers - they will be disconnected. In order to disconnect, ublox bearer sends +CGACT=0,%u, modem then will return CME ERROR: 10(SIM not inserted): ``` [modem0/ttyACM0/at] --> 'AT+CGACT=0,1<CR>' [modem0/ttyACM0/at] <-- '<CR><LF>+CME ERROR: 10<CR><LF>' [modem0/ttyACM0/at] operation failure: 10 (SIM not inserted) [modem0/bearer0] couldn't disconnect: SIM not inserted ``` this error will break disabling and reprobing. To fix that, it's require to add 'SIM not inserted' state as a valid condition to continue bearer disconnection.
2021-12-13base-bearer: make sure 'ReloadStatsSupported' is set before transitioning to ↵Aleksander Morgado
'Connected' By the time we report the bearer as 'Connected', the DBus client should also be able to know right away the value of 'ReloadStatsSupported', instead of needing to wait for it to be updated asynchronously. This logic adds one additional step in the generic connection sequence for this purpose, which is run after the modem is connected but before we report the state change via DBus.
2021-12-13api, dbus, bearer: Add ReloadStatsSupported bearer dbus propertyFrederic Martinsons
This property means that the current bearer can reload stats and read TX and RX bytes transmitted. The property is initiliazed as soon as the bearer is connected. Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com>
2021-12-11api,enums: minor alignment fix in commentsAleksander Morgado
2021-12-11port-probe: duplicate amount of AT probing attemptsAleksander Morgado
We originally did only 3 attempts every 3s, so the maximum probing time for a given TTY port looking for AT capabilities was 9 seconds. We now duplicate the amount of times, so up to 18s of port probing, which is quite a lot more than before, but unfortunately it's needed because most new modems take a lot of time to boot up internally. The way to avoid this long probing time is to make sure port type hints for the possible AT ports are set correctly. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/379
2021-12-11port-mbim: support MBIMEx v3.0Aleksander Morgado
The ModemManager codebase has been ported to support Basic Connect v3 messages as defined in MBIMEx v3.0, so at this point we can now switch to use it by default whenever possible.
2021-12-11broadband-modem-mbim,bearer-mbim: support packet service from MBIMEx v3.0Aleksander Morgado
Whenever MBIMEx v3.0 is enabled, the logic should create requests and parse responses using the updated format. Based on an initial implementation by Som_SP <somashekhar.puttagangaiah@intel.com>
2021-12-11broadband-modem-mbim,bearer-mbim: support connect from MBIMEx v3.0Aleksander Morgado
Whenever MBIMEx v3.0 is enabled, the logic should create requests and parse responses using the updated format. Based on an initial implementation by Som_SP <somashekhar.puttagangaiah@intel.com>
2021-12-11broadband-modem-mbim: treat 'no eSIM profile' as initializedAleksander Morgado
When an eSIM doesn't have any profile set, we should treat it as fully ready to be used; i.e. so that a new SIM object can be created and initialized. In this state, the "eSIM status" property will say "No profiles".
2021-12-11sim-mbim: load 'SimType', 'Removability' and 'EsimStatus' propertiesAleksander Morgado
We can use the MBIMEx v3.0 support to load the SIM type, SIM removability details and eSIM status.
2021-12-11broadband-modem-mbim,sim-mbim: support subscriber ready status from MBIMEx 3.0Aleksander Morgado
Whenever MBIMEx v3.0 is enabled, the logic should parse the response and indication messages using the updated format.
2021-12-11base-sim: new 'SimType', 'Removability' and 'EsimStatus' propertiesAleksander Morgado
We implement the methods to load the properties during SIM object initialization.
2021-12-11base-sim: reorder init ready() methodsAleksander Morgado
The ready() methods for each step in the initialization sequence must be ordered from bottom to top, so that we can read the logic in that same order.
2021-12-11base-sim: reorder load_preferred_networks()Aleksander Morgado
Add it along with the other initialization property loaders.
2021-12-11cli,sim: new 'SimType', 'Removability' and 'EsimStatus' propertiesAleksander Morgado
2021-12-11libmm-glib,sim: new 'SimType', 'Removability' and 'EsimStatus' propertiesAleksander Morgado
2021-12-11api,sim: new 'SimType', 'Removability' and 'EsimStatus' propertiessom
2021-12-11libmm-glib,sim: reoder get_preferred_networks()Aleksander Morgado
Add it along with the other getters.
2021-12-11sim-mbim: common method for Subscriber Ready StatusAleksander Morgado
Instead of running the Susbcriber Ready Status separately for IMSI and ICCID, we run it only once and store the results in a new private struct. It only saves one request/response right now, but it will save more once introduced other SIM parameters loaded with the same method.
2021-12-10fibocom: update FM101 port type hints to final layoutMingjie Zhang
The port type hints for the FM101 were updated to be in line with the final product layout, where USB interface #2 is now used as an AT port (not ignored) and USB interface #4 is now used as debug port. USB interface #6 is removed as it no longer exists.
2021-12-08filter: allow 'option' string in the TTY driver filter listAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/475
2021-12-01udev: avoid [0-9]* as shell globbing patternsAleksander Morgado
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-11-26sms-part-cdma: remove trailing whitespacesAleksander Morgado
2021-11-22libmm-glib,modem: fix warning when loading SIM slotsAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/465
2021-11-21sms-part-cdma: merge WDP multipart CDMA WAP messages.Matthew Via
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-21bearer-mbim: fix error handling in connection status reloadAleksander Morgado
We should not set the GError as autoptr(), as we're returning it as part of the GTask.
2021-11-21bearer-mbim: plug leak when checking if already disconnected failsAleksander Morgado
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-19broadband-modem-mbim: support lte attach info from MBIMEx 3.0som
whenever MBIM version is set to 3.0, lte attach info should invoke the MBIMEx 3.0 specific CID to fetch the data.