summaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* broadband-modem-mbim: account for race condition in quick hot swap caseNagi Marupaka2023-05-121-0/+2
| | | | | | | | | 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.
* udev: new ID_MM_REQUIRED tagAleksander Morgado2023-04-131-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* modem-cellinfo: adding bandwidth and serving cell typesom2023-02-171-0/+25
| | | | | | | | | 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
* build: drop autotoolsAleksander Morgado2022-11-071-23/+0
|
* api,enums: added NGRAN-53 bandXiao Liyun2022-09-191-0/+2
| | | | | | | | 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>
* enum, bearer: added non-ip bearerAlexey Orishko2022-09-161-2/+4
|
* enum,MMModemAccessTechnology: added Cat-M and NB-IoT LPWA access technologiesAlexey Orishko2022-09-161-0/+4
|
* api,enums: added NGRAN-13 and NGRAN-26 bands.Aleksander Morgado2022-08-161-0/+4
|
* mm-enums: Added E-UTRAN Band 85 to MMModemBand.Alexey Orishko2022-07-271-0/+2
| | | | LTE Band 85 is supported by modems based on Qualcomm 9205 chipset.
* api,tags: fix typo in ID_MM_PORT_TYPE_AT_GPS_CONTROL docAleksander Morgado2022-07-161-1/+1
|
* iface-modem: report failed modems with unknown capabilitiesAleksander Morgado2022-05-251-1/+3
| | | | | Instead of not creating a modem object, create it in failed state with the "unknown capabilities" failed state reason.
* iface-modem: fail initialization if eSIM without profilesAleksander Morgado2022-05-252-18/+22
| | | | | | 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.
* core: remove "all rights reserved" from copyright linesAleksander Morgado2022-03-291-1/+1
| | | | | The rights each contributor has are the ones stated by the GPL/LGPL, not more and not less.
* api: allow tagging AT ports as GPS controlAleksander Morgado2022-03-071-0/+13
| | | | | There are devices with multiple AT ports where only one of them is supposed to be used for GNSS control (and data).
* api,enums: add Sahara firmware update methodIvan Mikhanchuk2022-01-261-0/+2
|
* api,modem: new 'GetCellInfo()' methodAleksander Morgado2022-01-181-0/+24
| | | | | | | | | | | | | | | | | 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.
* api,bearer: new 'profile-source' settingAleksander Morgado2021-12-241-0/+22
| | | | | Sometimes it's useful to know how a given stored profile was created, so devices can store and report this kind of information.
* api,bearer: new 'roaming-allowance' settingAleksander Morgado2021-12-241-0/+18
| | | | | | | 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.
* api,bearer: new 'access-type-preference' settingAleksander Morgado2021-12-241-0/+19
| | | | | | | | | | 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.
* api,modem3gpp: add DRX cycle in 5G registration settingsAleksander Morgado2021-12-241-0/+24
|
* api,modem3gpp: new 5G registration settings support and MICO modeSom_SP2021-12-241-0/+20
| | | | | | | | | | 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.
* api,enums: minor alignment fix in commentsAleksander Morgado2021-12-111-27/+27
|
* libmm-glib,sim: new 'SimType', 'Removability' and 'EsimStatus' propertiesAleksander Morgado2021-12-111-0/+48
|
* api,enums: add NGRAN bands in MMModemBand enumPrakash Pabba2021-11-141-1/+101
|
* core: replace 'greylist' with 'allowlist'Aleksander Morgado2021-11-041-1/+1
| | | | There's a single replacement, and it made sense to have 'allowlist' there.
* core: replace 'whitelist' with 'allowlist' and 'blacklist' with 'blocklist'Aleksander Morgado2021-11-041-3/+3
| | | | | | 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.
* api,enums: fix Since tag in MMModem3gppPacketServiceStateAleksander Morgado2021-11-031-1/+1
|
* api,enums: new APN type definitionsAleksander Morgado2021-11-031-9/+21
| | | | | Mostly based on the Microsoft extensions for MBIM. They'll need to be mapped to other protocols (e.g. QMI) somehow.
* api,3gpp: new 'PacketServiceState' propertyAleksander Morgado2021-11-021-0/+16
| | | | | This property allows the user to know whether the device is attached or detached from the packet domain service.
* api: new TDS capabilityDaniele Palmas2021-10-111-0/+2
|
* build: Port to mesonIñigo Martínez2021-09-071-0/+41
| | | | | | 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.
* api,tags: deprecate tags used in LEGACY and PARANOID filter typesAleksander Morgado2021-06-161-39/+43
|
* api: add Firehose firmware update methodIvan Mikhanchuk2021-06-161-0/+2
|
* Revert "api: QDU update method defined in MM 1.16.6 already"Aleksander Morgado2021-06-061-1/+1
| | | | This reverts commit 6ffe84a122b9a79a8f0951af5ee5075f16726bdd.
* api,errors: document all DBus error name prefixesAleksander Morgado2021-05-221-5/+52
| | | | | | | | | Since ModemManager 1.0 we were publishing symbols to identify all the possible DBus error name prefixes, but these were never documented, they were explicitly ignored in gtk-doc. Let's provide proper documentation for them and make them first-class API symbols.
* api: update MMMobileEquipmentError enum valuesAleksander Morgado2021-05-222-129/+628
| | | | | | | | | | | | Update the list of mobile equipment error codes according to v17.1.0 of 3GPP TS 27.007 (March 2021). A lot of the enum values that were prefixed with the 'GPRS_' keyword have now been flagged as deprecated, and a new enum name given to the corresponding value. The deprecated symbol names are kept in the compat support to avoid breaking API/ABI.
* api: QDU update method defined in MM 1.16.6 alreadyAleksander Morgado2021-05-221-1/+1
| | | | (cherry picked from commit 2cb38c568ff1fb26b23bad5e8a2851547448c30e)
* foxconn: add new MBIM QDU firmware update method supportFreedom Liu2021-04-301-0/+2
| | | | | Based on the QDU service newly added in libmbim, T99W175 module (vid: 0x105b) supports MBIM QDU based update.
* api,bearer: new 'apn-type' settingAleksander Morgado2021-04-291-0/+51
| | | | | | | | | | | | | | | | | | | | | 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.
* api,simple: new 'multiplex' setting in bearer propertiesAleksander Morgado2021-03-101-0/+18
| | | | | | | | | | | | | | | 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.
* api: new ID_MM_PORT_TYPE_QMI and ID_MM_PORT_TYPE_MBIM udev hintsAleksander Morgado2020-11-091-0/+30
| | | | | | | | | It is no longer true that all QMI ports are exposed by the qmi_wwan driver and that all MBIM ports are exposed by the cdc_mbim driver. There are other generic setups that allow exposing these types of ports using different drivers, and usually we can also know the type of port in advance via other means. Therefore, allow adding udev port type hints for QMI and MBIM ports as well.
* build: don't remove ModemManager-names.h on 'clean'Aleksander Morgado2020-11-081-1/+1
| | | | | | | | The ModemManager-names.h header file is generated on git builds, and shipped within the release tarball, so treat it as a maintainer managed file that should only be removed on 'maintainer-clean'. This allows us to avoid requiring xsltproc to build release tarballs.
* api: expose ignored ports as MM_MODEM_PORT_TYPE_IGNOREDStephan Gerhold2020-10-301-0/+2
| | | | | | | | | | | | 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.
* api: new 'attached RLOS' registration stateAleksander Morgado2020-04-091-0/+2
| | | | | Reporting the state when the UE attaches to access restricted local operator services.
* api: new 5GNR access technologyAleksander Morgado2020-04-091-0/+2
|
* api: new 5G modeAleksander Morgado2020-04-091-0/+2
|
* api: new 5GNR capabilityAleksander Morgado2020-04-091-1/+3
|
* api: deprecate MM_MODEM_CAPABILITY_LTE_ADVANCEDAleksander Morgado2020-04-092-2/+18
| | | | It's not used anywhere.
* include,errors: define +CME ERROR code 151 equal to 171Aleksander Morgado2019-12-161-0/+2
| | | | | | | | | | | | When the MT detects an attempt to disconnect the last PDN or when the network returns a response message with cause value #49, the "Last PDN disconnection not allowed" error is returned. The numeric error code was changed from 151 to 171 in 3GPP Rel-11, and therefore there are devices out there that would conform to Rel-10 or below and that would report +CME ERROR code 151 instead of 171. Given that 151 isn't defined to a different meaning in the specs, let's define it in the same way as 171.
* api,compat: fix warnings during doc buildAleksander Morgado2019-10-241-2/+2
| | | | | | | | | We just move the MM_DISABLE_DEPRECATED check to after the MM_DEPRECATED symbol definition, because gtkdoc-scan gets pretty confused, likely due to the symbol ending with the "_DEPRECATED" suffix. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/91