We let protocol implementations provide the uplink and downlink speeds
agreed with the network as part of the connect result, and we then move
them to the bearer stats in DBus.
These values show the rates that have been negotiated with the network
during the PS domain attach.
These are not the current ongoing data rates associated to the network
usage at some given moment.
Includes updates by Aleksander Morgado to fix coding style issues and
add missing documentation items.
Until now we just reported any registration status change as PS, and
that was fine because we wouldn't need to have any logic on top to
build a consolidated registration state.
But now we need to know whether the reported registration status is
for a packet domain (e.g. PS/EPS/5GS) in order to correctly update the
PacketServiceStatus property in DBus.
So, monitor the packet service status reported by the modem, and
decide which domain registration we're updating every time.
If we're registered in either PS, EPS or 5GS, we can assume packet
domain service is attached.
If we're only registered in CS, packet domain is detached.
This change relies on protocol implementations to properly report
separate CS/PS/EPS/5GS domain registration states.
For T99W175, Qualcomm realized mcfg switching mechanism
in FW side. It can work indepently without MM's help.
Therefore, delete mcfg switching mechanism in MM.
Without setting memory to NULL it is possible that ctx->list
point to an unitialized pointer and trig a segfault when we
free it (for example when the firmware list is not supported)
Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com>
It stores the epoch timestamp of the current bearer session start.
If there is no connected bearer, it is set to 0 and not displayed
in mmcli output.
Signed-off-by: Frederic Martinsons <frederic.martinsons@sigfox.com>
Includes updates by Aleksander Morgado to fix coding style issues.
The values exposed in the Signal interface must not be cleared every
time polling is disabled, because the user may have also enabled
threshold based loading. And viceversa; if the user disables threshold
based polling, we should not unconditionally clear the values as
polling may still be enabled.
We setup a common Private context associated to the interface, and we
keep the current state there, which is also in sync with the DBus
interface.
We will only clear the signal values if both polling-based and
threshold-based setups are disabled.
Following the same reasoning, the mm_iface_modem_signal_update()
method used by implementations to report new signal quality details
is updated so that it's a no-op if no polling-based or threshold-based
setup has been enabled.
Also allow updating the per-access technology signal quality
information via indications.
Includes updates by Aleksander Morgado to fix coding style issues and
some other GTask related problems.
A new SetupThreshold() method is added to configure and control the
device signal notifications sent to the host. RSSI and error rate
based thresholds are initially assumed, but the interface allows
growing the method with additional threshold types.
Includes updates by Aleksander Morgado to improve documentation of the
new methods and properties.
When changing the allowed modes using the "Register State Set"
request, the response would arrive once we have been registered in the
network. This is obviously not ideal, as we just want to know if the
mode preference was changed, we don't care if we're registered or not.
Instead of waiting for the response to arrive or to timeout, we now
also process incoming indications that arrive during the wait time,
and if any of them shows the preferred modes to be the same ones as we
just requested, we complete the operation right away.
In MBIM we use the same "Register State Set Request" for 2 different
things: configuring the allowed modes, and selecting the operator to
use (manual/automatic).
We need to keep track of which were the last things requested by the
user so that we don't overwrite previous user actions when we process
newer ones.