Commit Graph
21 Commits
Author SHA1 Message Date
Rukun Mao 3da84c2079 suspend: add suspend/resume support with powerd on ChromeOS
ModemManager handles suspend and resume signals sent from powerd

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/547
2022-06-09 08:32:13 +00:00
Aleksander Morgado 853aa29be8 iface-modem-3gpp-profile-manager: support 'apn-type' as index field
The modem may report the 'apn-type' field is the one to be used as
index; if that's the case, allow setting and deleting profiles based
on the given 'apn-type' field.

This change also makes the internal profile management operations use
one index field or another, based on what the protocol implements.
2021-12-26 10:12:11 +01:00
Aleksander Morgado cf376204e8 base-bearer: allow reporting uplink/downlink speeds via indications 2021-11-03 12:43:39 +01:00
Aleksander Morgado 16acff930b base-bearer: implement support for 'uplink-speed' and 'downlink-speed'
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.
2021-11-03 12:41:51 +01:00
Aleksander Morgado 8d019a399c base-bearer: remove default multiplex support symbol
Using "requested" as a common default for every possible
implementation works, because it can handle setups without
multiplexing capabilities (e.g. plain AT+PPP modems) and also setups
without non-multiplexing capabilities (e.g. IPA based SoCs).

But if we don't want "requested" as default, then there will be
failing cases; e.g. we cannot use "none" as default for all as it
would break IPA, and we cannot use "required" as default for all as it
would break AT+PPP setups.

So, remove the common default, it's not flexible enough.
2021-08-09 12:22:26 +00:00
Aleksander Morgado daf72fe169 base-bearer: setup common default for unknown multiplex fallback
If the user doesn't provide a specific multiplex setting, we'll
fallback to a predefined default.

For now, the default is REQUESTED.
2021-07-13 15:47:38 +02:00
Aleksander Morgado e4f7da5624 base-bearer: propagate the new connection status after reload
Just triggering a connection status reload won't change the actual
bearer object state.

We change the signature of the reload_connection_status_finish()
method so that it returns the actual reloaded bearer connection
status, and so both the load_ and reload_ methods can be implemented
with exactly the same method, something that was not possible before.

Once we get the new connection status reloaded, we apply it in the
bearer object only if it's DISCONNECTED (and it wasn't DISCONNECTED
before). This should cover the true real case we're interested in, and
nothing else (i.e. we won't overcomplicate the logic attempting to
handle disconnected->connected transitions detected in the sync()
operation).
2021-05-26 13:14:52 +00:00
Aleksander Morgado 29a1c24538 base-bearer: improve comments of the load/reload_connection_status() methods 2021-05-26 13:14:52 +00:00
Dylan Van Assche 8913bab1c5 base-bearer: synchronize state when resuming
Refresh connection status on resume to confirm
that the connection bearers are still valid.
2021-05-26 13:14:52 +00:00
Aleksander Morgado 43db860c44 base-bearer: report connection error on network initiated disconnections
By default, fallback to "unknown" mobile equipment error when the
modem gets disconnected by the network and we don't have any way to
know a more detailed reason.
2021-05-23 01:22:07 +02:00
Aleksander Morgado dd7938b3e4 bearer-list: allow lookup by connected profile id
Some of the operations performed by the profile management interface
will require checking whether the operation is attempted on a profile
for which there is a known connected bearer object.

We introduce a new method to lookup a bearer in the bearer list by its
connected profile id.
2021-04-29 10:13:22 +00:00
Aleksander Morgado e4ef8319ec base-bearer: propagate connected profile id value in the connect result
Implementations that support profile management will provide the
connected profile id value in the MMBearerConnectResult returned to
the base bearer object during the connection attempt.
2021-04-29 10:13:22 +00:00
Aleksander Morgado cc59492caf base-bearer: add autoptr setup for MMBearerConnectResult 2021-04-02 15:05:02 +02:00
Aleksander Morgado 2c27a7aadc base-bearer: remove default IP family property
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-31 23:46:31 +02:00
Aleksander Morgado 73db7f205c api,bearer: new 'Multiplexed' property
This property will be TRUE if the bearer has the data session
connected through a multiplexed interface.

If the bearer is disconnected, or connected without multiplexing, the
property will report FALSE.
2021-03-10 10:59:22 +01:00
Aleksander Morgado 5d150ed23e core,plugins: consolidate connection/disconnection timeout values
Each different plugin or protocol had a different connection attempt
value. E.g. QMI and MBIM both used 60s max for the connection attempt,
while the u-blox plugin had up to 180s for ECM based connection
setups.

This commit consolidates all plugins and protocols to use the same
timeout values for commands that may take long to respond, e.g. a
connection atempt under low signal quality conditions.

A value of 180s for the connection attempt steps and 120s for a
disconnection attempt step is considered. Note, though, that in some
cases (like a IPv4v6 setup attempt using QMI) we may have more than
one such long step, so this doesn't mean that a connection attempt
will always take less than 180s.

Users of the connection/disconnection APIs should be able to handle
the case where the attempt times out in their side (e.g. with a lower
DBus request timeout), and which would not mean the actual request
they did really failed. E.g. a connection attempt with a DBus timeout
of 30s may fail in the user with a timeout error, but the attempt
would still go on for as much as the plugin/protocol needs.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/270
2020-11-14 09:41:43 +00:00
Aleksander Morgado 00949c4ad3 core: add autoptr cleanup methods to all internal types 2020-09-19 20:27:10 +02:00
Ben Chan 3c4c983642 base-bearer: fix typo in 'bearer-default-ip-family' property name 2017-03-28 22:46:35 +02:00
Aleksander Morgado 26d0d718f7 base-bearer: new periodic monitoring of connection status 2016-10-12 11:29:52 +02:00
Aleksander Morgado 3bf118d01a base-bearer: setup periodic stats loading
If the bearer implementation supports it, load stats periodically. By default
every 30s for now.
2015-12-07 14:20:54 +01:00
Aleksander Morgado 3ca267b01f bearer: rename 'MMBearer' to 'MMBaseBearer'
Just so that we don't have same header names in src/ and /libmm-glib.
2014-07-06 16:55:29 +02:00