Fixes warnings on AT+PPP based devices:
ModemManager[602870]: <debug> [1626948725.168355] [modem0] allowed up to 1 active bearers
(ModemManager:602870): GLib-GObject-WARNING **: 12:12:05.185: value "0" of type 'guint' is invalid or out of range for property 'max-active-multiplexed-bearers' of type 'guint'
A pointer can not be used anymore after its ownership has been transfered
using the g_steal_pointer function (pointer is nullified).
In this function, g_steal_pointer() is used when inserting 'value' inside
the array but can also be subsequently used when dumping 'value' to
'out_value' via g_strdup().
Fix that with simple reordering.
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
The following functionalities are implemented:
1. Hold all and accept
2. Hangup all and accept
3. Hangup all
4. Join multiparty
5. Leave multiparty
6. Call transfer
Only the plural ATTRS form was checked but we also need to support
the single ATTR for matching device's attribute only.
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
The template files in the `build-aux` directory used in enums sources
and headers generation use the `{$name}-template.[ch]` pattern.
However, the examples in the official guide[0] and usually GNOME and
Freedesktop packages use the `{$name}.[ch].template` pattern.
Due to this, the name of the template files and build commands have
been changed.
[0] https://developer.gnome.org/gobject/stable/glib-mkenums.html
The timeout in this command is extremely large, because there are some
modules like the EGS5 that build the response based on the current
network registration, and that implies the module needs to be
registered. If for any reason there is no serving network where to
register, the response comes after a very long time, up to 100s.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/408
We should check if WDA is supported before running any other logic
that may change the state of the kernel or the modem. E.g. if we don't
do this as the first step, the loading of the supported kernel data
modes may end up changing the expected kernel data mode to raw-ip.
==99766== 96 (24 direct, 72 indirect) bytes in 1 blocks are definitely lost in loss record 3,791 of 4,243
==99766== at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==99766== by 0x50DCAC9: g_malloc (gmem.c:106)
==99766== by 0x50F46D6: g_slice_alloc (gslice.c:1069)
==99766== by 0x50CE9F2: g_list_insert_sorted_real (glist.c:1109)
==99766== by 0x753DE92: ???
==99766== by 0x753E6D4: ???
==99766== by 0x753E897: ???
==99766== by 0x1F059D: mm_plugin_create_modem (mm-plugin.c:922)
==99766== by 0x166693: mm_device_create_modem (mm-device.c:481)
==99766== by 0x161547: device_support_check_ready (mm-base-manager.c:219)
==99766== by 0x4F03533: g_task_return_now (gtask.c:1219)
==99766== by 0x4F07078: UnknownInlinedFun (gtask.c:1289)
==99766== by 0x4F07078: g_task_return (gtask.c:1245)
It's been observed that running CPOL? would completely break the AT
port of the modules like the GIO225.
Fully disable this feature in the whole option and option-hso plugins,
by creating a new custom SIM object with the features disabled
completely, and setup as a new shared interface object.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/404
==748616== 37 bytes in 1 blocks are definitely lost in loss record 2,850 of 4,938
==748616== at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==748616== by 0x249CCF: qcdm_cmd_log_config_new (commands.c:1742)
==748616== by 0x24A321: qcdm_cmd_log_config_set_mask_new (commands.c:1901)
==748616== by 0x1DAE12: modem_cdma_setup_cleanup_unsolicited_events (mm-broadband-modem.c:8643)
==748616== by 0x1DAF21: modem_cdma_setup_unsolicited_events (mm-broadband-modem.c:8671)
==748616== by 0x1AE49F: interface_enabling_step (mm-iface-modem-cdma.c:1627)
==748616== by 0x1AE680: mm_iface_modem_cdma_enable (mm-iface-modem-cdma.c:1693)
==748616== by 0x1E2DF6: enabling_step (mm-broadband-modem.c:11756)
==748616== by 0x1E204E: iface_modem_3gpp_ussd_enable_ready (mm-broadband-modem.c:11606)
==748616== by 0x4F03533: g_task_return_now (gtask.c:1219)
==748616== by 0x4F07078: UnknownInlinedFun (gtask.c:1289)
==748616== by 0x4F07078: g_task_return (gtask.c:1245)
==748616== by 0x1AA323: interface_enabling_step (mm-iface-modem-3gpp-ussd.c:702)
WWAN network devices expose link management over netlink (wwan type),
but it is not yet supported by libmbim.
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
The wwan subsystem is a new bus agnostic framework exposing wwan
device and its components (ports, netdev...). It can be useful to
get the wwan device a device belongs to
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Signal quality property signature of the Modem Simple interface
is not an unsigned integer, but a struct containing
an unsigned integer indicating the strength and
a boolean to indicate if the value was recently taken.
Will be set by base modem when organizing ports, similar to
net driver name. Required for fetching the TX and RX endpoint IDs
through sysfs from linux 5.14 onwards.
When querying the slots using "Slot info status", the modem expects
the slot index passed in the [0,number_slots-1] range.
But for the ModemManager API, the slot indices start at 1; i.e. they
are in the [1,number_of_slots] range.
Consider that wen reporting the current slot index using MBIM.