aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-05base-bearer: integrate connection status dispatcher scriptsAleksander Morgado
2022-04-05dispatcher-connection: new dispatcher for connection status scriptsAleksander Morgado
The user or the packages can install custom dispatcher scripts that will be run by the ModemManaer daemon itself upon bearer connection status updates. Scripts installed by users should go into the /etc/ModemManager/connection.d directory. Scripts installed by packages should go into the /usr/lib/ModemManager/connection.d directory. The name of the script will specify the order how it's run, so it's suggested to name them with a numeric prefix, e.g. "99-something".
2022-04-05dispatcher-fcc-unlock: inherit from the base dispatcher objectAleksander Morgado
2022-04-05dispatcher: new generic object to handle script dispatchersAleksander Morgado
Based on the FCC unlock specific one, but without any FCC unlock specific constraint.
2022-04-05profile-manager: profile-id and apn-type check not required for user settingssom
When the user provides the profile parameter, as per the MM documentation profile-id is an optional parameter. So with the fix the profile-id check in input is removed. apn-type is also optional when the user provides the settings. This check is also removed as part of the fix.
2022-04-04port-serial: ensure the port object is valid after BUFFER_FULL handlingAleksander Morgado
The BUFFER_FULL signal handler is effectively working in the same way as the response buffer processor, in both cases we may have scheduled the completion of the serial command, and that in turn may end up fully disposing the port object. We must make sure the port object is valid for as long as we need it in this function, so we take a reference while processing the response buffer. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/535
2022-03-30qmi: Fall back to NAS SSP/NAS TP capabilitiesSven Schwermer
If no DMS capabilities are reported, we fall back to the capabilities reported by NAS SSP or NAS TP. Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-03-29broadband-modem-mbim: Set InitialEPSBearer's authentication to CHAP when is ↵Andrew Lassalle
UNKNOWN This is the same behavior that is used when creating the bearer in mm-bearer-mbim.
2022-03-29bearer-properties: Match UNKNOWN auth to CHAP for loose comparisonAndrew Lassalle
MBIM and QMI fallback to CHAP when a username or password is present but no authentication type was provided. Consider CHAP==UNKNOWN when using loose comparison.
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-29telit: reorganize common_parse_bnd_response for readabilityCarlo Lobrano
2022-03-29telit: fix AT#BND parsing for LE910C1-EUXCarlo Lobrano
Some modems, like LE910C1-EUX, express the LTE part of #BND output in HEX format, but currently the MM parser for such case is limited to modems that have "ext_4g_bands". This commits use the new MMTelitModel info to decide how to parse #BND command output. Fixes #487
2022-03-29telit: detect modem model from revisionCarlo Lobrano
Telit revision string can be used to identify the specific model, which in turn is useful to specialize the behavior of the plugin. This change adds revision parsing to detect some telit modems. Initially it adds the ones that have different behaviors in #BND output parsing for example.
2022-03-29telit: override load revisionCarlo Lobrano
Currently, firmware revision string is obtained via AT+CGMR or AT+GMR commands from the default mm-broadband-modem. For a class of Telit modems however this command does not return the actual Telit Software Package version, but the "Modem FW Version", which is only a component of the whole firmware. For this class of modems, the correct string is obtained with "AT#SWPKGV" command. This change overrides load_revision* functions to add the ability to parse "AT#SWPKGV" command for the modems that support it, and falls back to the same logic that was implemented in mm-broadband-modem otherwise.
2022-03-28mm-netlink: use unaligned netlink attribute lengthBjørn Mork
Alignment padding is not accounted for in the netlink attribute length. Fix to avoid warnings later if we add shorter fixed length attributes, even though it currently makes no difference since we only add a 4 byte attribute Signed-off-by: Bjørn Mork <bjorn@mork.no>
2022-03-28mm-netlink: only change IFF_UP flagBjørn Mork
This fixes the missing NOARP flag on the second and following VLAN sub-interfaces when multiplexing over the cdc_mbim driver. ifi_change specifies all the flags we want to change. Any listed flag which isn't set in ifi_flags will be cleared by the kernel: if (ifm->ifi_change) flags = (flags & ifm->ifi_change) | (rtnl_dev_get_flags(dev) & ~ifm->ifi_change); Drivers like cdc_mbim set some netdev flags by default, indicating supported or unsupported features. The driver emulates an ethernet netdev but it doesn't implement ARP. Clearing NOARP on cdc_mbim netdevs will block IP transmissions, waiting for an ARP reply we never will receive. Signed-off-by: Bjørn Mork <bjorn@mork.no>
2022-03-28po add Dutch translationNathan Follens
2022-03-28foxconn: consolidate checks for T99W175 and T99W265Aleksander Morgado
These two devices require QDU and MCFG+APPS version string comparison. We now have a single place where we check for this requirements.
2022-03-28foxconn: consolidate logic deciding required update methodsAleksander Morgado
2022-03-28foxconn: consolidate logic deciding requested firmware version typeAleksander Morgado
We don't want to have in two different places the vid:pid match list when selecting the type of firmware version we ask for.
2022-03-28foxconn: switch to use autoptr() in firmware info loadingAleksander Morgado
2022-03-28foxconn: remove unneeded input bundle unrefAleksander Morgado
2022-03-28foxconn: use new qmi service(fox) to get firmware versionFreedom Liu
foxconn modules get firmware version: Try with the new FOX service first. If FOX service failed, try with DMS service. T99W175(vid:105b) ; T77W968(0489:e0b4 ; 0489:e0b5): qmi service: dms T99W265(0489:e0da ; 0489:e0db): qmi service: fox
2022-03-28build: require libqmi 1.31.4 for FOX service supportAleksander Morgado
2022-03-27build,meson: Fix udev rules and keyfiles testsIñigo Martínez
The port to the meson build system a set of defines were lost, that made the udev rules and the keyfiles tests to not run properly. This has been changed so defines are now in their proper place and tests are run properly. Fixes #537
2022-03-26linktop: new port type hintsAleksander Morgado
Flag ttyACM0 as data port and ttyACM1 as primary port, as per https://bugzilla.gnome.org/show_bug.cgi?id=637140#c10 Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/14
2022-03-25cinterion: Add support for PLSx3w modemsTheodore A. Roth
Signed-off-by: Theodore A. Roth <theodore_roth@trimble.com>
2022-03-23shared-qmi: ignore slot status indications until initial status is knownStephan Gerhold
Recent ModemManager versions no longer work on the Samsung A5 (Qualcomm MSM8916) smartphone: MM ends up in an infinite loop trying to probe the modem over and over again. Looking at the debug log it seems to be related to a "Slot Status" indication that comes in during probe time and causes MM to restart the probing process: [/dev/wwan0qmi0] Sent generic request (translated)... << QMUX: service = "uim" << QMI: message = "Register Events" (0x002E) << TLV: translated = physical-slot-status [/dev/wwan0qmi0] Received generic indication (translated)... << QMUX: service = "uim" << QMI: message = "Slot Status" (0x0048) << TLV: translated = { [0] = '[ physical_card_status = 'present', ... [/dev/wwan0qmi0] Received generic response (translated)... << QMUX: service = "uim" << QMI: message = "Register Events" (0x002E) << TLV: translated = SUCCESS [modem42] registered for slot status indications [/dev/wwan0qmi0] Sent generic request (translated)... << QMUX: service = "uim" << QMI: message = "Get Slot Status" (0x0047) [modem42] received slot status indication [modem42] An active slot had a status change, will reprobe the modem <infinite loop> The "Slot Status" indication (uim_slot_status_indication_cb) arrives immediately after starting to listen for the event, which is before ModemManager has actually loaded the initial slot status in uim_get_slot_status_ready. In this situation !slot_array_status_equal() will always cause the modem to reprobe, even though it is not necessary during the probe phase. To fix this add a simple check to uim_slot_status_indication_cb() that ignores the indication if the initial slot status was not loaded yet.
2022-03-22broadband-modem-mbim: consolidate initialized SIM creation methodAleksander Morgado
The logic to create a new SIM object from the slot status info was used in several places.
2022-03-22broadband-modem-mbim: update sim-type and esim-status of inactive slotsom
During initialization if the number of slots is more than 1 then update the sim-type and esim-status of the inactive slot as well.
2022-03-18telit: fix mode 'any' setting with AT commandsDaniele Palmas
When setting mode 'any' with +WS46 command the supported modes should be considered for choosing the at command correct argument.
2022-03-16test,modem-helpers: add test for the EM9191 COPS=? responseAleksander Morgado
Including 5GNR network reporting (act=12) https://forum.sierrawireless.com/t/5g-network-scan-with-the-em9191-operation-not-allowed/26374/9
2022-03-16modem-helpers: improve and fix COPS=? numeric fields parsingAleksander Morgado
The numeric fields in the +COPS=? response were relying on a very weak parsing logic, assuming that they were single-digit numeric values and not using the common string to integer conversion utilities. This commit improves the conversion from the 3GPP/ETSI defined network availability and access technology values to the MM defined ones, providing enum-based matches even if the numeric values are the same. The commit also fixes the parsing of access technology values > 10, required to report 5G related values.
2022-03-16modem-helpers: act given in COPS=? may have more than one digitAleksander Morgado
The new 5GNR related values are >= 10, so don't expect one single digit (\d), expect one or more (\d+).
2022-03-14systemd: don't run ModemManager in containersSimon Deziel
This assumes the needed modem hardware is typically not available inside containers. If however, the local admin configures the container to get access to the hardware in question, ModemManager can be instructed to run in that specific container by doing: `sudo systemctl edit ModemManager.service` Then entering the following text in the editor: [Unit] # Remove condition of "not container" ConditionVirtualization= Upon saving/exiting, ModemManager can then be started with: `sudo systemctl start ModemManager.service` Signed-off-by: Simon Deziel <simon@sdeziel.info>
2022-03-09modem-helpers: Consider minimum ID when choosing best profileSven Schwermer
+CGDCONT? may list profiles with IDs that are illegal to write, i.e. +CGDCONT=? returns a minimum ID larger than some of the existing profiles. E.g. for Fibocom L610-EU, +CGDCONT=? returns +CGDCONT: (1-7),"IP",,,(0-3),(0-4) +CGDCONT: (1-7),"IPV6",,,(0-3),(0-4) +CGDCONT: (1-7),"IPV4V6",,,(0-3),(0-4) +CGDCONT: (1-7),"PPP",,,(0-3),(0-4) +CGDCONT: (1-7),"Non-IP",,,(0-3),(0-4) while the default EPS bearer is established at profile 0: +CGDCONT: 0,"IP","xxx","xxx.xxx.xxx.xxx",0,0 [...] Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-03-09fibocom: new shared interface for common logicAleksander Morgado
The set_initial_eps_bearer_settings() operation is the same in XMM capable and generic MBIM modem objects. Place it in a common shared interface so that we don't duplicate code.
2022-03-09fibocom: toggle modem power after attach APN on mbimJack Song
2022-03-09mm-shared-qmi: Return an error in load_current_capabilities() if none is found.Prakash Pabba
2022-03-09fibocom: Add reset functionalitySven Schwermer
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-03-08broadband-bearer: remove unused cid_selection_3gpp() methodAleksander Morgado
It was replaced by the profile management operations instead in the 1.18 release.
2022-03-07intel: custom setup for all available AT portsAleksander Morgado
Fully disable send delay as we're using AT ports via the new WWAN subsystem.
2022-03-07xmm: setup single GPS control port exclusivelyAleksander Morgado
Use the same logic always to decide which is the best GPS control/data port, and then perform the initial port setup (GNSS engine off) only that single port.
2022-03-07xmm: prefer port flagged as AT_GPS_CONTROL to manage the GNSS engineAleksander Morgado
Use the new AT_GPS_CONTROL udev tag to decide which is the best port to manage the GNSS engine.
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-03-07intel: inherit GNSS location support from the shared XMM interfaceAleksander Morgado
We're not going to implement all XMM shared operations from the shared utils, as the newer Intel modems support the new operations in the Microsoft MBIM Extensions. Just inherit the GNSS management capabilities.
2022-03-07intel: periodic signal checks disabled by defaultAleksander Morgado
As we can rely on async MBIM notifications.
2022-03-07intel: SIM hot swap supported by defaultAleksander Morgado
2022-03-07intel: avoid attempting QMI over MBIM in non-Qualcomm deviceAleksander Morgado
2022-03-07intel: disable data over TTY by defaultAleksander Morgado
Only data over NET is expected