| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
| |
The encoded LTE SNR value is between 0 and 35, not up to 97.
|
| |
|
| |
|
|
|
|
| |
Change-Id: I7f24d481cb92b2e817eba487d38739b8fed58b28
|
|
|
|
|
|
| |
This patch adds partial support for the Basic IP Connectivity Extensions
service defined in Microsoft Mobile Broadband Design Guide. Only the
Protocol Configuration Operations (PCO) command is defined.
|
| |
|
|
|
|
|
|
|
|
| |
mbim_cid_get_printable()
This patch adds a missing handling of MBIM_SERVICE_INTEL_FIRMWARE_UPDATE
in mbim_cid_get_printable() for commit d2ae618d ("intel-firmware-update:
add support for Intel Firmware Update service")
|
| |
|
|
|
|
|
|
| |
The QMI service allows QMI indications to be reported via MBIM
notifications, once they're enabled with 'Basic Connect Device Service
Subscribe List'.
|
| |
|
| |
|
|
|
|
|
|
| |
This patch updates MbimNwError to include additional cause codes, which
are related to PDP context activation, defined in the 3GPP TS 24.008
specification section 6.1.3.1.3.1.
|
|
|
|
|
| |
Python can be called python3, python2 or merely python, but we're fine with
either.
|
|
|
|
| |
Only the executables are supposed to possess those.
|
| |
|
|
|
|
|
|
|
|
| |
g_set_error_literal() requires a non-NULL 'message' argument. Passing
mbim_status_error_get_string() as the 'message' argument to
g_set_error_literal() could result in an assertion as
mbim_status_error_get_string() returns NULL for a status code without an
associated MbimStatusError enum.
|
| |
|
| |
|
|
|
|
| |
Updated libtool versioning for the stable release.
|
|
|
|
|
|
| |
This reverts commit 3134204465a2b13316bcbcf6c646b521c4389cec.
Didn't bump libtool library versioning...
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
They're already included in the non-inst core library.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Fixes: 9ef8723927c28d731e8f4041e45fb4df6c919a0b
|
| |
|
|
|
|
|
| |
MbimAtdsProvider is a struct and is already documented in the ATDS
service doc.
|
|
|
|
| |
Just to make gtk-doc happy really.
|
|
|
|
|
| |
Even when cloning a git checkout, as we have m4/compiler-warnings
under version control.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the need to run `gtkdocize' when building from git; this should
be an operation done by the maintainer when modernizing the gtk-doc
setup (think of e.g. gettextize), no need to do it unconditionally.
This makes it easier for platforms without gtk-doc to build from git.
When trying to build with documentation enabled and gtk-doc isn't
found, we get some nice warnings and errors in the configure report:
checking for gtk-doc... no
configure: WARNING:
You will not be able to create source packages with 'make dist'
because gtk-doc >= 1.0 is not found.
checking for gtkdoc-check... no
checking for gtkdoc-check... no
checking for gtkdoc-rebase... no
checking for gtkdoc-mkpdf... no
checking whether to build gtk-doc documentation... yes
configure: error:
You must have gtk-doc >= 1.0 installed to build documentation for
ModemManager. Please install gtk-doc or disable building the
documentation by adding '--disable-gtk-doc' to './configure'.
Files generated with gtkdocize (gtk-doc) 1.26.1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using an intermediate constant variable breaks compilation with C
compilers, as these variables cannot be used as initializers.
Instead, define a deprecated type and cast all deprecated symbols to
that type. We lose the information about what the new replacement
symbol is, but we don't break compilation.
Also, add MBIM_DISABLE_DEPRECATED guards around deprecated symbols. So
that when this symbol is defined, e.g. via CFLAGS, building a program
that uses the libmbim API will fail if the program references
deprecated symbols. For now we just use it to keep gtk-doc-scan happy
and avoid unnecessary warnings.
Equivalent to ModemManager commits eedd4ab4457 and f0bb6ef856.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we try to 'MBIM open' the channel with a Sierra Wireless EM7345
(FIH7160_V1.1_MODEM_01.1349.12) and the channel is already open in the
device (e.g. mbim-proxy crashed and we try to reopen, or just running
consecutive mbimcli commands with --no-close), the device returns a
'MBIM close done' message for every 'MBIM open' request we send.
We update the logic to try to detect this case, and if we do, we
launch an explicit 'MBIM close' operation before retrying the 'MBIM
open' again.
E.g. this is the flow when trying to run mbimcli command while the
MBIM channel is already open in the device side:
$ mbimcli -d /dev/cdc-wdm1 --query-device-caps --no-close --verbose
[06 ago 2017, 16:58:21] [Debug] opening device...
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Queried max control message size: 512
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message...
<<<<<< RAW:
<<<<<< length = 16
<<<<<< data = 01:00:00:00:10:00:00:00:01:00:00:00:00:02:00:00
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message (translated)...
<<<<<< Header:
<<<<<< length = 16
<<<<<< type = open (0x00000001)
<<<<<< transaction = 1
<<<<<< Contents:
<<<<<< max_control_transfer = 512
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received message...
>>>>>> RAW:
>>>>>> length = 16
>>>>>> data = 02:00:00:80:10:00:00:00:02:00:00:00:00:00:00:00
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] No transaction matched in received message
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received unexpected message (translated)...
>>>>>> Header:
>>>>>> length = 16
>>>>>> type = close-done (0x80000002)
>>>>>> transaction = 2
>>>>>> Contents:
>>>>>> status error = 'None' (0x00000000)
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message...
<<<<<< RAW:
<<<<<< length = 12
<<<<<< data = 02:00:00:00:0C:00:00:00:02:00:00:00
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message (translated)...
<<<<<< Header:
<<<<<< length = 12
<<<<<< type = close (0x00000002)
<<<<<< transaction = 2
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received message...
>>>>>> RAW:
>>>>>> length = 16
>>>>>> data = 02:00:00:80:10:00:00:00:02:00:00:00:00:00:00:00
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message...
<<<<<< RAW:
<<<<<< length = 16
<<<<<< data = 01:00:00:00:10:00:00:00:03:00:00:00:00:02:00:00
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Sent message (translated)...
<<<<<< Header:
<<<<<< length = 16
<<<<<< type = open (0x00000001)
<<<<<< transaction = 3
<<<<<< Contents:
<<<<<< max_control_transfer = 512
[06 ago 2017, 16:58:21] [Debug] [/dev/cdc-wdm1] Received message...
>>>>>> RAW:
>>>>>> length = 16
>>>>>> data = 01:00:00:80:10:00:00:00:03:00:00:00:00:00:00:00
[06 ago 2017, 16:58:21] [Debug] MBIM Device at '/dev/cdc-wdm1' ready
|
|
|
|
|
|
|
| |
Lets check if the operation timed out on the main state machine,
instead of when the open command response is processed. This will
allow us to queue up new steps sending/receiving messages and have
a single place to check the timeout for all of them.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Usually the canonicalize_file_name() GNU extension is preferred to the
POSIX realpath(), as it covers some of the limitations the latter has.
But this extension isn't available in lots of platforms or in other
c library implementations (e.g. musl), so just default to the POSIX
method to improve portability.
Note that the check for canonicalize_file_name() availability during
configure isn't as trivial as adding a new AC_CHECK_FUNCS(), and
importing a gnulib module seems overkill just for this one liner.
|
|
|
|
|
|
|
|
|
| |
If e.g. mbim-proxy is started by ModemManager and we send a Ctrl+C to
it, the signal would be propagated to the mbim-proxy process and we
would kill it right away, while leaving ModemManager still around
wondering why the socket to the proxy got a HUP.
Avoid this, by making sure the mbim-proxy gets its own process group.
|
|
|
|
|
|
| |
This patch adds a new '--query-pin-list' action to mbimcli for querying
the list of PINs supported by a MBIM device and additional details for
each PIN type.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the device is gone while an open() operation is ongoing, we're
completing and freeing the 'opening device info' struct, but we didn't
remove it from the private info, so when device_open_ready() happened,
we were trying to complete and free it again.
Avoid this issue by making sure no already-freed structs are kept in
the private info, and also allowing device_open_ready() to get called
without a valid pending 'opening device info'.
[30 Jul 2017, 15:24:33] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
<<<<<< Header:
<<<<<< length = 16
<<<<<< type = open (0x00000001)
<<<<<< transaction = 1
<<<<<< Contents:
<<<<<< max_control_transfer = 4096
[30 Jul 2017, 15:24:38] [Debug] [/dev/cdc-wdm0] Sent message...
<<<<<< RAW:
<<<<<< length = 16
<<<<<< data = 01:00:00:00:10:00:00:00:02:00:00:00:00:10:00:00
[30 Jul 2017, 15:24:38] [Debug] [/dev/cdc-wdm0] Sent message (translated)...
<<<<<< Header:
<<<<<< length = 16
<<<<<< type = open (0x00000001)
<<<<<< transaction = 2
<<<<<< Contents:
<<<<<< max_control_transfer = 4096
[30 Jul 2017, 15:24:42] [Debug] [/dev/cdc-wdm0] unexpected port hangup!
[30 Jul 2017, 15:24:42] [Debug] Client (7) connection closed...
[30 Jul 2017, 15:24:42] -Warning ** error opening device: Device is gone
[30 Jul 2017, 15:24:43] [Debug] open operation timed out: closed
==24404== Invalid read of size 8
==24404== at 0x4E4A673: peek_opening_device_info (in /usr/lib/libmbim-glib.so.4.2.0)
==24404== by 0x4E4BD7B: device_open_ready (in /usr/lib/libmbim-glib.so.4.2.0)
==24404== by 0x50CAF61: g_simple_async_result_complete (in /usr/lib/libgio-2.0.so.0.3707.0)
==24404== by 0x50CB028: complete_in_idle_cb (in /usr/lib/libgio-2.0.so.0.3707.0)
==24404== by 0x5602EEA: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x5603207: g_main_context_iterate.isra.13 (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x56035D1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x4010F8: main (in /usr/lib/mbim-proxy)
==24404== Address 0x6d3bfe0 is 0 bytes inside a block of size 16 free'd
==24404== at 0x4C2A0C0: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24404== by 0x4E4AC21: untrack_device (in /usr/lib/libmbim-glib.so.4.2.0)
==24404== by 0x5395392: _g_closure_invoke_va (in /usr/lib/libgobject-2.0.so.0.3707.0)
==24404== by 0x53A805D: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.3707.0)
==24404== by 0x53A8A51: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.3707.0)
==24404== by 0x4E49424: data_available (in /usr/lib/libmbim-glib.so.4.2.0)
==24404== by 0x5602EEA: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x5603207: g_main_context_iterate.isra.13 (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x56035D1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x4010F8: main (in /usr/lib/mbim-proxy)
==24404== Block was alloc'd at
==24404== at 0x4C2B3D0: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==24404== by 0x5607B00: g_malloc (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x5617E12: g_slice_alloc (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x5618385: g_slice_alloc0 (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x4E4B1A9: internal_open (in /usr/lib/libmbim-glib.so.4.2.0)
==24404== by 0x4E4BAC5: device_new_ready (in /usr/lib/libmbim-glib.so.4.2.0)
==24404== by 0x50CAF61: g_simple_async_result_complete (in /usr/lib/libgio-2.0.so.0.3707.0)
==24404== by 0x50CB028: complete_in_idle_cb (in /usr/lib/libgio-2.0.so.0.3707.0)
==24404== by 0x5602EEA: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x5603207: g_main_context_iterate.isra.13 (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x56035D1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.3707.0)
==24404== by 0x4010F8: main (in /usr/lib/mbim-proxy)
==24404==
|
| |
|