aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2025-03-27port-probe: allow per-port ID_MM_TTY_AT_PROBE_TRIES tag for custom number of ↵Dan Williams
AT probes For modems that need more time to respond to AT port probes (like some Telit devices, and Cinterion-based Telit MV31/MV32) allow a custom number of AT probe tries on a per-port basis for generic probing, or plugins that opt into this functionality. Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-03-13api: fix license headers in MM APIAleksander Morgado
The libmm-glib library, as well as the ModemManager headers installed as part of the D-Bus service API, have always been LGPLv2+ licensed, because we want users of the service to rely on them in their own programs, even if they are proprietary. Some files had an incorrect GPLv2+ header instead of the LGPLv2+ and that was confusing. All public headers in the MM API have the correct license text now. Signed-off-by: Aleksander Morgado <aleksandermj@chromium.org>
2025-03-11treewide: Fix typosGuido Günther
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-01api,enums: added NGRAN-67 bandSlark Xiao
According to 3GPP Rel17.2, TS 38104, band NGRAN-67 is supported. Currently Qualcomm SDX72 chip support this band and MM would show a '(null)' info in the "Bands" area. Band info as below: n67, 738MHz-758MHz, SDL Signed-off-by: Slark Xiao <slark_xiao@163.com>
2024-12-01cbm: Add CellBroadcast interfaceGuido Günther
This adds support for the Cell Broadcast interface allowing to receive, list, read and delete Cell Broadcast messages via the org.freedesktop.ModemManager1.Modem.CellBroadcast and org.freedesktop.ModemManager1.Cbm interfaces. Signed-off-by: Guido Günther <agx@sigxcpu.org>
2024-10-07api,enums: remove doc for undeclared enum valueAleksander Morgado
2024-10-07api: fix MM_BEARER_IP_FAMILY_ANY ABI break introduced in 1.20Aleksander Morgado
The value was changed in commit 4ab2c80858e207871d0bdc377988 from 0xFFFFFFFF to 0xFFFFFFF7. Revert that ABI break.
2024-09-16cinterion: implement FDL update methodLukas Voegl
Adds AT^SFDL based Firmware Download as an update method for supported Cinterion modems. Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-09-09quectel: implement DFOTA update methodLukas Voegl
2024-07-31port-probe: detect XMMRPC portsThomas Vogt
2024-06-12api: new NetworkRejection propertyUjjwal Pande
When a modem is not able to register to the network, MBIM and QMI indications related to registration reports network rejection cause codes if request is rejected by the network. This information is currently logged in the ModemManager but not exposed outside of ModemManager. These are the changes to define interface to expose network reject cause codes over d-bus to the above layers which could be used by above layers to present this information in a user friendly way.
2024-01-15build: fix ModemManager-names.h generation warningYegor Yefremov
Use configure_file() instead of custom_target(). This resolves the following warning: WARNING: Source item '/home/user/ModemManager/header-generator.xsl' cannot be converted to File object, because it is a generated file. This will become a hard error in the future.
2023-12-11iface-location: allow enabling without SIMRaphaël Jakse
When the modem is in a failed state because of a SIM-related error, like a missing SIM, or if the modem is SIM-locked, allow the Location interface to initialize and be enabled anyway. This allows someone without a SIM to use the GPS, which does not particularly require a phone subscription. It also allows someone with a SIM to use the GPS even if the SIM is still locked. This patch was reworked, while keeping the original idea, by: Aleksander Morgado <aleksander@aleksander.es> Fixes #183
2023-10-27api,errors: new MMCarrierLockError typeAleksander Morgado
This new error type will be used to report errors in the carrier lock operations performed through ModemManager. They have a one to one mapping to the MBIM status specific errors.
2023-10-26api,errors: add generic MM_CORE_ERROR_THROTTLED errorAleksander Morgado
Will be used to report operations that are not run as they have been attempted too many times already. Modems will usually report this kind of error e.g. when attempting to connect with the same invalid APN too many times. The modem at some point decides that it won't attempt the APN connection with the network any more, so it returns this error to the caller right away.
2023-10-26api,errors: add generic MM_CORE_ERROR_PROTOCOL errorAleksander Morgado
Will be used to report control protocol failures detected in the communication with the device (e.g. malformed QMI or MBIM messages, and so on).
2023-10-26api,errors: add generic MM_CORE_ERROR_TIMEOUT errorAleksander Morgado
Will be used to report operation timeout errors.
2023-06-16broadband-modem-qmi|mbim: allow limiting multiplexed links with udev tagsAleksander Morgado
Certain QMI or MBIM devices may not be able to support multiplexing at all, or they may support a limited amount of links. The new ID_MM_MAX_MULTIPLEXED_LINKS udev tag allows specifying the maximum number of supported multiplexed links; e.g. 0 to report none supported or 1 to report that one single multiplexed link is supported.
2023-05-12broadband-modem-mbim: account for race condition in quick hot swap caseNagi Marupaka
On MBIM modems, when the SIM is ejected and re-inserted in a quick manner, the state machine logic encounters a race condition and eventually, the modem response for subscriber status is ignored. This change accounts for that state transition without erroring out. Fixes #672.
2023-04-13udev: new ID_MM_REQUIRED tagAleksander Morgado
Users with QMI or MBIM capable modems may want to ensure that these are never managed using plain AT commands, as that also involves using PPP. This fallback to AT could happen if the QMI or MBIM port probing fails for whatever reason. The new `ID_MM_REQUIRED` udev tag allows specifying that a given port MUST be successfully grabbed when creating a new modem object, or otherwise the modem object will not be created at all (even if there are other fallback control ports like AT that could have been used). Use this tag with caution. It is assumed that when this tag is used some other external process may be monitoring the existence of the modem object in DBus as exposed by ModemManager, and if it does not appear for any reason then the modem would be reseted with some other mechanism (e.g. GPIOs, if available). If no such mechanism to autorecover the modem is in place, using this tag may leave the modem exposed in the kernel but ignored by ModemManager. This tag must be applied on the specific port for which the existence and usability must be ensured. E.g. flagging the MBIM port of the Fibocom L850 module as required: $ vim /lib/udev/rules.d/78-mm-test.rules ACTION!="add|change|move|bind", GOTO="mm_test_rules_end" SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}" ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="0007", ENV{.MM_USBIFNUM}=="00", ENV{ID_MM_REQUIRED}="1" LABEL="mm_test_rules_end" $ sudo udevadm control --reload $ sudo udevadm trigger $ sudo udevadm info -p /sys/class/usbmisc/cdc-wdm0 ... E: ID_MM_REQUIRED=1 E: ID_MM_CANDIDATE=1
2023-02-17modem-cellinfo: adding bandwidth and serving cell typesom
adding bandwidth information in mm-dbus interface for the serving cell. In serving cell, the details on whether the pcell/scell are from MCS or SCG is also updated. Co-author: Shilpa Shivakumar
2022-11-07build: drop autotoolsAleksander Morgado
2022-09-19api,enums: added NGRAN-53 bandXiao Liyun
According to 3GPP Rel16.3, 38104, band NGRAN-53 is supported. Band info as below: n53 2483.5 MHz - 2495 MHz, TDD Signed-off-by: Slark Xiao <slark_xiao@163.com>
2022-09-16enum, bearer: added non-ip bearerAlexey Orishko
2022-09-16enum,MMModemAccessTechnology: added Cat-M and NB-IoT LPWA access technologiesAlexey Orishko
2022-08-16api,enums: added NGRAN-13 and NGRAN-26 bands.Aleksander Morgado
2022-07-27mm-enums: Added E-UTRAN Band 85 to MMModemBand.Alexey Orishko
LTE Band 85 is supported by modems based on Qualcomm 9205 chipset.
2022-07-16api,tags: fix typo in ID_MM_PORT_TYPE_AT_GPS_CONTROL docAleksander Morgado
2022-05-25iface-modem: report failed modems with unknown capabilitiesAleksander Morgado
Instead of not creating a modem object, create it in failed state with the "unknown capabilities" failed state reason.
2022-05-25iface-modem: fail initialization if eSIM without profilesAleksander Morgado
A modem using an eSIM without profiles should not be allowed to get enabled, it should be really treated as a modem without a physical SIM.
2022-03-29core: remove "all rights reserved" from copyright linesAleksander Morgado
The rights each contributor has are the ones stated by the GPL/LGPL, not more and not less.
2022-03-07api: allow tagging AT ports as GPS controlAleksander Morgado
There are devices with multiple AT ports where only one of them is supposed to be used for GNSS control (and data).
2022-01-26api,enums: add Sahara firmware update methodIvan Mikhanchuk
2022-01-18api,modem: new 'GetCellInfo()' methodAleksander Morgado
This new method allows querying the modem for information about the current serving cell(s) as well as any other neighboring cell that may be found. The information for the cells is given in an array of dictionaries, where each element of the dictionary is a new dictionary itself. Each cell type has a different set of properties that may be given in the dictionary, and some of those properties in each type are also applicable under certain conditions (e.g. only applicable to the cell if it's a 'serving' cell instead of 'neighboring'). The API documentation explains in detail what is expected in each case.
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: 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-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-11api,enums: minor alignment fix in commentsAleksander Morgado
2021-12-11libmm-glib,sim: new 'SimType', 'Removability' and 'EsimStatus' propertiesAleksander Morgado
2021-11-14api,enums: add NGRAN bands in MMModemBand enumPrakash Pabba
2021-11-04core: replace 'greylist' with 'allowlist'Aleksander Morgado
There's a single replacement, and it made sense to have 'allowlist' there.
2021-11-04core: replace 'whitelist' with 'allowlist' and 'blacklist' with 'blocklist'Aleksander Morgado
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-03api,enums: fix Since tag in MMModem3gppPacketServiceStateAleksander Morgado
2021-11-03api,enums: new APN type definitionsAleksander Morgado
Mostly based on the Microsoft extensions for MBIM. They'll need to be mapped to other protocols (e.g. QMI) somehow.
2021-11-02api,3gpp: new 'PacketServiceState' propertyAleksander Morgado
This property allows the user to know whether the device is attached or detached from the packet domain service.
2021-10-11api: new TDS capabilityDaniele Palmas
2021-09-07build: Port to mesonIñigo Martínez
meson is a build system focused on speed an ease of use, which helps speeding up the software development. This patch adds meson support along autotools.
2021-06-16api,tags: deprecate tags used in LEGACY and PARANOID filter typesAleksander Morgado