Age | Commit message (Collapse) | Author |
|
Read the APN Type mask when getting profile settings
and display it in qmicli.
This can be used later to filter APN in the list of APNs
(MBIM as a similar 'ContextType')
|
|
The rmnet backend allows some configuration when creating link
interfaces. This configuration specifies how the link being created
works, and is strictly dependent on the setup. E.g. when using rmnet
over IPA we may need to always specify that checksum offload is
supported, while when using rmnet over qmi_wwan, no checksum offload
is currently supported.
None of the flags are applicable to the qmi_wwan-only backend, and so
this new method will return an UNSUPPORTED error if any flag is given
to this backend.
The generic add_link() method is now equivalent to running
add_link_with_flags() with QMI_DEVICE_ADD_LINK_FLAG_NONE.
|
|
Define two UIM messages needed to get personalization status and remove
modem locks.
|
|
The TLVs that included a guint8 reject cause are updated to have them
reported with the new QmiNasRejectCause enum type.
The old methods that referred to the field as guint8 are flagged as
deprecated and compat replacements are provided to avoid API/ABI
breaks in the next libqmi release.
|
|
|
|
|
|
|
|
This new method allows the user of the library to delete, at once, all
the links found for the given network interface. By default, this
method will iterate over all found links calling
qmi_device_delete_link() for each, with QMI_DEVICE_MUX_ID_UNBOUND as
mux id.
|
|
This generic method allows us to list all links that have been created
from a base parent interface. The implementation is common for both
rmnet and qmiwwan backends, based on the "upper" links in sysfs.
|
|
We need a way to know whether we can do link management before
attempting to add a new link, because the whole connection logic will
depend on whether we can create those new links or not (e.g. we would
need to bind mux data port and enable QMAP aggregation before creating
the new link)
|
|
formats
E.g. we may want to know in advance if QMAP pass through is supported
or not, before attempting to use it.
|
|
|
|
This commit introduces a new QmiNetPortManager implementation based on
the add_mux/del_mux interface provided by the qmi_wwan driver.
Several kernel releases after the add_mux/del_mux interface was
implemented, the driver was updated to include a new mux_id sysfs
attribute in the instantiated link interface. In kernel versions that
have support for this mux_id interface the implementation of the
QmiNetPortManager is reliable and almost fully featured (except for
the suggested interface prefix with creating a new link).
In kernel versions before the mux_id attribute was introduced, the
implementation is reliable only if a long-running process is the one
taking care of the link management (e.g. ModemManager). The
implementation cannot be reliable with ephimeral programs using
QmiDevice objects for single operations (e.g. qmicli).
|
|
implementation
|
|
We use full words in the API method names.
|
|
|
|
It's been moved to its own project repository:
https://gitlab.freedesktop.org/mobile-broadband/libqrtr
|
|
The bus object should only handle the node added/removed signals; for
the service added/removed ones, it must be each node the one emitting
them.
|
|
The internal management of the nodes in the bus object is changed from
a hash table to a plain double linked list, so that implementing the
peek_nodes() and get_nodes() in the API is easier. When there aren't
many nodes, as is the usual case, there won't be loss in performance
between the lookup in the list vs the lookup in the hash table.
|
|
The QrtrBus object creation is now asynchronous, and the user can
request to wait for the initial lookup to be fully done during its
initialization phase.
If the lookup is not required, the user can explicitly disable it.
The qmi-proxy and qmicli setups are updated to use the new async
creation method and also providing a lookup timeout of 1000ms. We no
longer use wait_for_node() in these implementations, instead we just
assume that the QrtrBus always has the nodes we expect to use.
|
|
The QrtrBus and QrtrNode objects allowed monitoring the state of the
bus, but didn't allow communication (sending and receiving messages)
with the different ports in the different nodes in the QRTR bus.
This new QrtrClient allows to setup an independent separate channel to
communicate with one single port in one single node.
|
|
|
|
There's no real relationship between QRTR and these link management
APIs, e.g. we could also use the rmnet based link management on the
SoCs using RPMSG control ports with the bam-dmux kernel driver.
Just make these new APIs be unconditionally available, and if the
kernel driver doesn't support the operations, an error will be
returned to the user.
|
|
|
|
Required because qmi-version.h is generated in builddir.
|
|
|
|
And get rid of the `__qmi` prefix in the types and methods.
|
|
|
|
There's no true use of this enum in the public API, but we've
published since the very beginning, so just keep it.
|
|
|
|
|
|
This allows us to create and delete net interfaces for qmi devices
using netlink. If mux_id is set to QMI_DEVICE_MUX_ID_AUTOMATIC when
creating a net interface for `base_ifname`, we search for the lowest N
such that `base_ifname.N` is not an available interface, and assign
mux_id N+1. If another mux_id is given, then we try to create a net
interface using the provided mux_id.
This mux ID should be used in the WDS Bind Mux Data Port
message.
|
|
There is no need to individually exclude the values for QmiEndpointQrtr
since the entire header is already excluded.
|
|
Required in order to report to the network the status of the
processing of transfer-only messages.
See https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/257
|
|
|
|
|
|
|
|
To make it align with other APIs, where we always use full word
names. The old name is kept in compat support.
|
|
Name it as the message/response with the same ID.
Its only TLV already specifies that it's the action result what we're
reading.
|
|
Reads better than the previous 'Get LTE Max Attach PDN Num'.
Also rename the default TLV in the response to just 'Info' to avoid
generating very long methods repeating the name.
|
|
As a preparatory work to add the support for initial EPS bearer settings
in ModemManager.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Change-Id: I8f0e8a70c7d62014964eb1ac9ad590bc4baaa7ee
|
|
The .actions file is generated by newer gtk-doc releases, we just
treat it as e.g. the .signals or .types files.
This is also already fixed in upstream gtk-doc:
https://gitlab.gnome.org/GNOME/gtk-doc/-/merge_requests/61
|
|
This seems to allow blocking the location engine. When position sessions
are locked, there are no position reports sent. I'm not exactly sure
for what this is useful, but it's helpful to have the Get Engine Lock
message to make sure that no-one else has locked the engine.
The definitions have been translated from:
https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/location/tree/loc_api/loc_api_v02/location_service_v02.h?h=LA.BR.1.2.9.1-02310-8x16.0
https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/location/tree/loc_api/loc_api_v02/location_service_v02.c?h=LA.BR.1.2.9.1-02310-8x16.0
|
|
This is similar to WDS Bind Mux Data Port, but for older systems
without QMAP. It allows binding a WDS CID to one particular network
interface when using the BAM DMUX network driver.
It's not well documented, but the QMI message format can be found
in GobiAPI_2013-07-31-1347. The SIO port numbers can be determined
by checking when WDS Bind Data Port succeeds since the modem returns
InvalidArgument for unsupported port numbers.
|
|
(cherry picked from commit bc6b3c5e35d66b8193eb161b2c32022898bce7fd)
|
|
(cherry picked from commit 377a6add968bd54c70c9b57173774afa0c5077e6)
|
|
The BCD encoded PLMN strings in the "NAS Get Cell Location Info"
message should be read as byte arrays, and then processed by the user
to read the BCD encoded string. Attempting to read this kind of fields
as a standard ASCII strings will fail UTF-8 validation, and the whole
TLV will be skipped.
Fixes https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/47
|
|
Allow users of QmiDevice to know if the device is a Qmi or QRTR device.
|
|
SAR(Specific Absorption Rate) backoff is programmed using the Set_RF_State
message. Each RF state corresponds to a TX power. The mapping between TX
power and RF state is dictated by NV items. The RF state can be retrieved
using the Get_RF_State message.
|
|
This message is required to be sent by the client in many QMI refresh
scenarios.
|