126 Commits
Author SHA1 Message Date
Daniele Palmas b1d5006953 api,enums: add EUTRAN 106 band
Add EUTRAN 106 band with an offset of 1000 since the current numbering
scheme overlaps with MM_MODEM_BAND_CDMA_*.

Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
2025-07-09 10:41:35 +02:00
Aleksander Morgado 48a686a6d9 api: fix license headers in MM API
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-13 00:35:24 +00:00
Guido Günther 68933455df treewide: Fix typos
Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-03-11 23:15:57 +01:00
Slark Xiao 1fb6a53595 api,enums: added NGRAN-67 band
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>
2025-03-01 09:31:54 -06:00
Guido Günther 62f7b76e8e cbm: Add CellBroadcast interface
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-12-01 21:41:10 +00:00
Aleksander Morgado d1ed88638e api,enums: remove doc for undeclared enum value 2024-10-07 13:44:34 +00:00
Aleksander Morgado 1f828e3802 api: fix MM_BEARER_IP_FAMILY_ANY ABI break introduced in 1.20
The value was changed in commit 4ab2c80858 from
0xFFFFFFFF to 0xFFFFFFF7. Revert that ABI break.
2024-10-07 13:39:02 +00:00
Lukas Voegl 76b48f6194 cinterion: implement FDL update method
Adds AT^SFDL based Firmware Download as an update method for supported Cinterion modems.

Signed-off-by: Lukas Voegl <lvoegl@tdt.de>
2024-09-16 12:26:18 +02:00
Lukas Voegl d763b94677 quectel: implement DFOTA update method 2024-09-09 08:26:15 +00:00
Thomas Vogt c2e3a8c10e port-probe: detect XMMRPC ports 2024-07-31 17:36:14 +00:00
Ujjwal Pande 2904510e76 api: new NetworkRejection property
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-06-12 09:39:12 +00:00
Raphaël Jakse 63dd4ad263 iface-location: allow enabling without SIM
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-12-11 12:37:42 +00:00
som e8d63c1743 modem-cellinfo: adding bandwidth and serving cell type
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
2023-02-17 10:43:20 +00:00
Xiao Liyun cd5e22841a api,enums: added NGRAN-53 band
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-19 08:46:52 +00:00
Alexey Orishko 4ab2c80858 enum, bearer: added non-ip bearer 2022-09-16 10:52:56 +00:00
Alexey Orishko 664610819e enum,MMModemAccessTechnology: added Cat-M and NB-IoT LPWA access technologies 2022-09-16 10:52:56 +00:00
Aleksander Morgado b1bdc34130 api,enums: added NGRAN-13 and NGRAN-26 bands. 2022-08-16 12:50:16 +00:00
Alexey Orishko 04d1e5a380 mm-enums: Added E-UTRAN Band 85 to MMModemBand.
LTE Band 85 is supported by modems based on Qualcomm 9205 chipset.
2022-07-27 11:59:27 +00:00
Aleksander Morgado 9c773fcad4 iface-modem: report failed modems with unknown capabilities
Instead of not creating a modem object, create it in failed state with
the "unknown capabilities" failed state reason.
2022-05-25 11:15:06 +02:00
Aleksander Morgado 234f185c3a iface-modem: fail initialization if eSIM without profiles
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-05-25 11:14:45 +02:00
Aleksander Morgado d5805002c1 core: remove "all rights reserved" from copyright lines
The rights each contributor has are the ones stated by the GPL/LGPL,
not more and not less.
2022-03-29 16:36:15 +02:00
Ivan Mikhanchuk dfc2327842 api,enums: add Sahara firmware update method 2022-01-26 10:58:24 -08:00
Aleksander Morgado 554faa855c api,modem: new 'GetCellInfo()' method
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.
2022-01-18 09:00:10 +00:00
Aleksander Morgado fc6bc84d22 api,bearer: new 'profile-source' setting
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-24 14:02:30 +01:00
Aleksander Morgado 73a29c3e33 api,bearer: new 'roaming-allowance' setting
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-24 14:02:30 +01:00
Aleksander Morgado 339b51652a api,bearer: new 'access-type-preference' setting
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-24 14:02:28 +01:00
Aleksander Morgado 724342deac api,modem3gpp: add DRX cycle in 5G registration settings 2021-12-24 12:41:27 +00:00
Som_SP e951008ae8 api,modem3gpp: new 5G registration settings support and MICO mode
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-24 12:41:27 +00:00
Aleksander Morgado 07c4e95ac9 api,enums: minor alignment fix in comments 2021-12-11 22:12:13 +01:00
Aleksander Morgado 0eda648bb9 libmm-glib,sim: new 'SimType', 'Removability' and 'EsimStatus' properties 2021-12-11 12:53:37 +01:00
Prakash Pabba 0936204eb5 api,enums: add NGRAN bands in MMModemBand enum 2021-11-14 20:18:52 +05:30
Aleksander Morgado f8cba1cbdb api,enums: fix Since tag in MMModem3gppPacketServiceState 2021-11-03 14:03:13 +01:00
Aleksander Morgado dc000ec5b4 api,enums: new APN type definitions
Mostly based on the Microsoft extensions for MBIM. They'll need to be
mapped to other protocols (e.g. QMI) somehow.
2021-11-03 10:36:27 +01:00
Aleksander Morgado f55ea211a9 api,3gpp: new 'PacketServiceState' property
This property allows the user to know whether the device is attached
or detached from the packet domain service.
2021-11-02 09:50:17 +00:00
Daniele Palmas 176b3f53c2 api: new TDS capability 2021-10-11 16:02:40 +00:00
Ivan Mikhanchuk 4165052e8f api: add Firehose firmware update method 2021-06-16 00:40:26 -07:00
Aleksander Morgado 40c647ce3e Revert "api: QDU update method defined in MM 1.16.6 already"
This reverts commit 6ffe84a122.
2021-06-06 12:15:56 +02:00
Aleksander Morgado 6ffe84a122 api: QDU update method defined in MM 1.16.6 already
(cherry picked from commit 2cb38c568ff1fb26b23bad5e8a2851547448c30e)
2021-05-22 00:38:47 +02:00
Freedom Liu 35b1672b85 foxconn: add new MBIM QDU firmware update method support
Based on the QDU service newly added in libmbim,
T99W175 module (vid: 0x105b) supports MBIM QDU based update.
2021-04-30 10:44:19 +02:00
Aleksander Morgado ff8e21b535 api,bearer: new 'apn-type' setting
This new setting allows the user setting up the connection to specify
the purpose of the connection being brought up.

Until now, we would always assume that connections are exclusively
brought up for connecting to the Internet, also limited by the
inability to connect to multiple different APNs at the same time.

But that may really not be true as there may be additional services
that may be accessed through other APNs, like MMS services or even
private networks for companies that have their own APNs on a given
operator (e.g. not that uncommon with banks and connected cars).

The new APN type setting will not change the way the bearer is
connected, but will allow the connection manager to decide what kind
of networking setup the specific connection needs.

This new setting can be provided by the user itself, or implicitly
read from the device if the device stores this information.
2021-04-29 10:13:22 +00:00
Aleksander Morgado 064e92e9b7 api,simple: new 'multiplex' setting in bearer properties
Both the Simple.Connect() and Modem.CreateBearer() are updated to
allow a new 'multiplex' setting in the properties provided by the user
in both of these methods.

The new setting expects a MMBearerMultiplexSupport enum indicating
what kind of multiplex needs the user has:
 * none: if multiplex must not be used.
 * requested: if multiplex should be used if available.
 * required: if multiplex must be used.

The underlying implementations will take care of accepting or
rejecting the setting depending on the system and modem capabilities.
2021-03-10 10:59:19 +01:00
Stephan Gerhold a174edb74d api: expose ignored ports as MM_MODEM_PORT_TYPE_IGNORED
At the moment, ignored ports show up as (unknown) in the ports list
in mmcli. This makes it look like something went wrong while probing.

Actually ModemManager already tracks unknown and ignored ports separately
(MM_PORT_TYPE_UNKNOWN vs MM_PORT_TYPE_IGNORED) but the API always exposes
them as MM_MODEM_PORT_TYPE_UNKNOWN.

Add MM_MODEM_PORT_TYPE_IGNORED and use this for ignored ports so they
show up as (ignored) instead in mmcli.
2020-10-30 09:26:24 +01: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 1cfd5daf9b api: new 5GNR access technology 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 0cd76bf1c4 api: deprecate MM_MODEM_CAPABILITY_LTE_ADVANCED
It's not used anywhere.
2020-04-09 12:38:49 +00:00
Aleksander Morgado cf14fba5b7 docs,api: provide per-version indices 2019-10-24 13:02:37 +02:00
Aleksander Morgado e3a1364ddc core: allow flagging ports as 'audio'
Instead of flagging them as 'ignored' so that they aren't probed, we
can also flag them as 'audio' now, so that the logic knows which port
to report as used for audio in the Call object.
2019-10-15 13:19:10 +02:00
Aleksander Morgado c8d715e5f0 api: set enum values not part of the API as private
So that we can avoid gtk-doc complaining about them:

  2019-10-14 10:46:59,583:common.py:ParseEnumDeclaration:427:WARNING:Cannot parse enumeration member:
  ../../../include/ModemManager-enums.h:924: warning: Value description for MMModemLocationSource::MM_MODEM_LOCATION_SOURCE_FIRST is missing in source code comment block.
  ../../../include/ModemManager-enums.h:924: warning: Value description for MMModemLocationSource::MM_MODEM_LOCATION_SOURCE_LAST is missing in source code comment block.
2019-10-14 11:05:50 +02:00