aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-14port-qmi: net ports using IPA driver expect rmnet based multiplexingAleksander Morgado
When using the IPA driver we cannot blindly use the master network interface, we must always use RMNET based multiplexing.
2021-04-14port-qmi: avoid using QmiDeviceExpectedDataFormat in the port setupAleksander Morgado
The QmiDeviceExpectedDataFormat is specific to modules exposed by the qmi_wwan driver, it has nothing to do with other drivers we may find in the system like bam-dmux or ipa, which don't allow changing the expected data format. The port setup logic is now updated to use a new flags bitmask that specifies which kernel data modes are supported or currently available.
2021-04-14context: allow disabling QRTR on runtime even if support is builtAleksander Morgado
2021-04-14kernel-device,qrtr: common physdev UID for all QRTR nodesAleksander Morgado
Add a common physdev UID to all ports in the Qualcomm SoC, so that they are all bound together to the same modem object. This change assumes that no external plugged device ever exports a QRTR node in the QRTR bus (e.g. that no PCI or USB device would ever do that). This assumption is likely wrong, but given that we're currently limiting the QRTR support to the Qualcomm SoC plugin, the assumption is valid for us for now.
2021-04-14qrtr-bus-watcher: add a class to watch for QRTR nodesAndrew Lassalle
Add a watcher to listen for QRTR add/remove signals.
2021-04-14kernel-device,qrtr: add MMKernelDeviceQrtr skeletonAndrew Lassalle
Add the skeleton of MMKernelDeviceQrtr and allow building it by the introduction of with-qrtr.
2021-04-14log: enable QRTR loggingAndrew Lassalle
Add the 'Qrtr' domain so logging from libqrtr is enabled.
2021-04-14filter: add filter for QRTR devicesAndrew Lassalle
Add support for devices using the subsystem "qrtr".
2021-04-14ci: add build tests with QRTR supportAleksander Morgado
2021-04-14build: look for libqrtr-glib with pkg-configAleksander Morgado
The WITH_QRTR symbol in config.h will let us know both if libqrtr-glib is found and if libqmi-glib is compiled with QRTR support (as per the exposed "qmi_qrtr_supported" variable in pkg-config).
2021-04-14iface-modem: minor refactor in the unload required logicAleksander Morgado
No change in the logic, just in how it's setup. E.g. we will load the max number of retries just once when the logic starts, instead of checking it on every iteration. Also some other minor coding style changes included, e.g. adding the timeout between retries as a defined symbol.
2021-04-14iface-modem: Increase unlock_required retriesPavan Holla
If a SIM is known to exist, for e.g. if it was created during load_sim_slots, persist a few more times before giving up on the SIM to be ready. There are modems on which the SIM takes more than 15s to be ready, luckily, they happen to be QMI modems where the SIM's iccid in load_sim_slots lets us know that there is a sim.
2021-04-12cli: avoid attempting to setup timeout on NULL proxyAleksander Morgado
mm_manager_get_proxy() may actually return NULL if creating the internal GDBusProxy for the Manager interface fails.
2021-04-12kerneldevice: fix segfault when processing event for non-existing portAleksander Morgado
ModemManager[6954]: <warn> [1618260091.319919] [br0] invalid sysfs path read for net/br0 ** ERROR:kerneldevice/mm-kernel-device-generic.c:235:ptr_array_add_sysfs_attribute_link_basename: assertion failed: (array && sysfs_path && attribute) Bail out! ERROR:kerneldevice/mm-kernel-device-generic.c:235:ptr_array_add_sysfs_attribute_link_basename: assertion failed: (array && sysfs_path && attribute) Thread 1 "ModemManager" received signal SIGABRT, Aborted. (gdb) bt #0 0x00007ffff7438ef5 in raise () at /usr/lib/libc.so.6 #1 0x00007ffff7422862 in abort () at /usr/lib/libc.so.6 #2 0x00007ffff76c2084 in () at /usr/lib/libglib-2.0.so.0 #3 0x00007ffff771d85d in g_assertion_message_expr () at /usr/lib/libglib-2.0.so.0 #4 0x00005555556a5337 in ptr_array_add_sysfs_attribute_link_basename (array=0x5555557de520, sysfs_path=0x0, attribute=0x555555703bd8 "driver", out_value=0x0) at kerneldevice/mm-kernel-device-generic.c:235 #5 0x00005555556a542b in preload_contents_other (self=0x5555557a6c60) at kerneldevice/mm-kernel-device-generic.c:255 #6 0x00005555556a6485 in preload_contents (self=0x5555557a6c60) at kerneldevice/mm-kernel-device-generic.c:517 #7 0x00005555556a7fb6 in check_preload (self=0x5555557a6c60) at kerneldevice/mm-kernel-device-generic.c:980 #8 0x00005555556a855f in initable_init (initable=0x5555557a6c60, cancellable=0x0, error=0x7fffffffe5c8) at kerneldevice/mm-kernel-device-generic.c:1127 #9 0x00007ffff78a2f41 in g_initable_new_valist () at /usr/lib/libgio-2.0.so.0 #10 0x00007ffff78a2ffa in g_initable_new () at /usr/lib/libgio-2.0.so.0 #11 0x00005555556a8205 in mm_kernel_device_generic_new_with_rules (props=0x5555557a5fa0, rules=0x7fffec001e30, error=0x7fffffffe5c8) at kerneldevice/mm-kernel-device-generic.c:1042 #12 0x00005555556a827d in mm_kernel_device_generic_new (props=0x5555557a5fa0, error=0x7fffffffe5c8) at kerneldevice/mm-kernel-device-generic.c:1063 #13 0x00005555555aba9c in handle_kernel_event (self=0x555555793220, properties=0x5555557a5fa0, error=0x7fffffffe5c8) at mm-base-manager.c:414
2021-04-12shared-qmi: Remove iteration over slots at startupPavan Holla
MM used to iterate over each SIM slot to load IMSI, operator name etc. However, switching slots at start up caused a few issues in the real world. a) Sierra Wireless' AUTO-SIM feature, the hidden SIM slot switching is actually triggering a full modem reset (because the firmware detects a new SIM for a different operator, and automatically resets itself to load the firmware+carrier config associated to that other operator). b) The IMSI on slot 2 is reported to be the same as slot 1. This is solved by adding a 1000ms delay before reading IMSI on slot 2, after GET_CARD_STATUS indicates the sim is ready. The delay means a 2s startup penalty when both slots are loaded. c) 2/5 developers have encountered a fw bug where the modem incorrectly reports that the SIM on slot 1 has vanished after the sequence of slot switches. This makes the modem unusable. d) If the eSIM daemon changes slots and opens a channel to the eUICC, MM will detect a hotswap, and break the channel during reprobe. e) SIMs from a certain large operator in the US take over 20s to be ready. Thus, switching to such a SIM for just loading IMSI may not be worth it. This change does not affect detection of sims in all slots. We still expose the iccid and presence of all sims. However, properties like IMSI and operator_name will not be exposed for the inactive slot.
2021-04-09iface-modem-time: fix invalid read when loading network timezone failsAleksander Morgado
==226546== Invalid read of size 4 ==226546== at 0x5068CB7: g_error_matches (in /usr/lib/libglib-2.0.so.0.6600.7) ==226546== by 0x1BAC86: load_network_timezone_ready (mm-iface-modem-time.c:218) ==226546== by 0x4EA827E: g_simple_async_result_complete (in /usr/lib/libgio-2.0.so.0.6600.7) ==226546== by 0x17AE2C: at_command_ready (mm-base-modem-at.c:538) ==226546== by 0x4EA827E: g_simple_async_result_complete (in /usr/lib/libgio-2.0.so.0.6600.7) ==226546== by 0x24B475: serial_command_ready (mm-port-serial-at.c:378) ==226546== by 0x4EA827E: g_simple_async_result_complete (in /usr/lib/libgio-2.0.so.0.6600.7) ==226546== by 0x244F94: command_context_complete_and_free (mm-port-serial.c:141) ==226546== by 0x246861: port_serial_got_response (mm-port-serial.c:755) ==226546== by 0x246923: port_serial_timed_out (mm-port-serial.c:785) ==226546== by 0x50863C3: ??? (in /usr/lib/libglib-2.0.so.0.6600.7) ==226546== by 0x5085B83: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.6600.7)
2021-04-09libmm-glib,bearer-properties: fix usage of CMP_FLAGS_NO_RM_PROTOCOLAleksander Morgado
2021-04-08modem-helpers: new helper to lookup range from CGDCONT=? responseAleksander Morgado
2021-04-08modem-helpers-qmi: match QMI_WDS_AUTHENTICATION_NONE with ↵Aleksander Morgado
MM_BEARER_ALLOWED_AUTH_NONE There is no point in returning UNKNOWN when the WDS auth value is NONE.
2021-04-08broadband-modem-qmi: remove unused variablesAleksander Morgado
2021-04-08CI: make use of ci-templatesBenjamin Tissoires
full list of benefits at: https://freedesktop.pages.freedesktop.org/ci-templates/templates.html#why-use-the-ci-templates But the main ones are: - reproducible (just download the container and run the `script` part to be in the same environment the CI was running) - no more before script that pulls hundreds of MB and spend useless time. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
2021-04-07fibocom: add port type hints for the NL668-AMZrshuo Zhang
2021-04-02iface-modem-simple: add multiplex info in connection details loggingAleksander Morgado
2021-04-02iface-modem-simple: minor renames in logging of connection detailsAleksander Morgado
2021-04-02iface-modem-3gpp-ussd: use common method to abort invocation if not enabledAleksander Morgado
2021-04-02iface-modem: publish helper to abort invocation if state not reachedAleksander Morgado
So that we can use it in other interfaces to abort invocations e.g. if the modem is not yet enabled.
2021-04-02base-bearer: add autoptr setup for MMBearerConnectResultAleksander Morgado
2021-04-01modem-helpers: ip family normalization doesn't need log_objectAleksander Morgado
2021-03-31base-bearer: remove default IP family propertyAleksander Morgado
There is no point in providing a configurable default IP family in the bearer object, because we can always assume IPv4 as being the only default expected. Simplify the logic and also provide a new method to get the normalize the IP family, using IPv4 as default always.
2021-03-31cinterion: remove unused checkup of default IP familyAleksander Morgado
Looks like the logic is just there to write a debug log, as the selected IP family is not used anywhere else. Just remove this.
2021-03-31shared-qmi: Fix crash when a hotswap occurs while loading slotsPavan Holla
2021-03-31port-serial: remove misleading commentsAleksander Morgado
2021-03-31port-serial: the 'FlashOk' property is not really set on constructAleksander Morgado
2021-03-31mmtty: new --spew-control optionAleksander Morgado
So that we simulate enabling the spew control, as we do during probing.
2021-03-31mmtty: allow enabling LF with --send-lfAleksander Morgado
2021-03-31mmtty: fix printing logs with --verboseAleksander Morgado
The _mm_log() implementation provided in 'mm-log-test.h' relies on g_test_verbose() to decide whether the logs are printed or not. We are not running under the GTest setup in mmtty, so that would not work properly. Just provide a custom _mm_log() method that checks for the verbose_flag instead.
2021-03-31mmtty: make sure \r\n is removed from the user lineAleksander Morgado
2021-03-24iface-modem: avoid check for SIM swap if no interface skeleton availableAleksander Morgado
2021-03-24iface-modem: avoid lock info update if no interface skeleton availableAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/351
2021-03-24cli,3gpp-ussd: move actions to a separate source fileAleksander Morgado
All the USSD operations together in a separate file, as they're managed in a separate 3GPP USSD interface.
2021-03-24docs,libmm-glib: move USSD to its own sectionAleksander Morgado
It's not a generic interface, it's a feature interface, same as messaging or location.
2021-03-24docs: explicitly ignore .actions filesAleksander Morgado
These are generated by gtk-doc.
2021-03-24broadband-modem: don't warn enabling/disabling USSD failuresAleksander Morgado
USSD is a feature interface, not critical for connection management, so skip warning on interface enabling/disabling failures.
2021-03-24libmm-glib,bearer-properties: fix 'allowed-auth' comparisonAleksander Morgado
2021-03-23build: require libgudev 232 to include autoptr supportAleksander Morgado
The code in git master already relies on autoptr support in GUdev types, which was introduced in commit 272533131c6ed38479a88805, included in libgudev 232. See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/349
2021-03-23api,bearer: minor alignment fixAleksander Morgado
2021-03-23api: add 'Since' tagsAleksander Morgado
These are not actively used by gdbus-codegen or gtk-doc, but they're helpful anyway so that users know when a given API method was introduced.
2021-03-23docs,libmm-glib: add low-level SAR interface referenceAleksander Morgado
2021-03-23docs,libmm-glib: add missing reference to mm_sim_preferred_network_list_free()Aleksander Morgado
2021-03-23docs,api: include missing reference to the SAR interfaceAleksander Morgado