api,bearer: new 'profile-id' setting

We define a new 'profile-id' setting in the bearer properties that
users will use to specify which connection profile of the ones
available in the device should be connected.

When the 'profile-id' is given, the associated bearer object will be
bound to the 'profile-id', and the user is able to provide additional
settings to apply on top (e.g. if the profile storage doesn't allow
some of the settings we support, like 'apn-type', or if the setting is
completely unrelated to profiles, like 'multiplex').

After introducing the 'profile-id' as a valid setting in the bearer
properties, we also reimplement the properties object internals to
make use a 3GPP profile for the subset of common settings between both
objects.
This commit is contained in:
Aleksander Morgado
2021-04-29 10:13:22 +00:00
parent e2789b18a1
commit 793370f2f8
10 changed files with 257 additions and 206 deletions
+7
View File
@@ -694,9 +694,16 @@ connect_auth_ready (MMBaseModem *self,
MMBearerApnType apn_type;
gchar *str;
MMBearerIpFamily ip_family;
gint profile_id;
#define VALIDATE_UNSPECIFIED(str) (str ? str : "unspecified")
profile_id = mm_simple_connect_properties_get_profile_id (ctx->properties);
if (profile_id != MM_3GPP_PROFILE_ID_UNKNOWN)
mm_obj_dbg (self, " profile ID: %d", profile_id);
else
mm_obj_dbg (self, " profile ID: %s", VALIDATE_UNSPECIFIED (NULL));
mm_obj_dbg (self, " PIN: %s", VALIDATE_UNSPECIFIED (mm_simple_connect_properties_get_pin (ctx->properties)));
mm_obj_dbg (self, " operator ID: %s", VALIDATE_UNSPECIFIED (mm_simple_connect_properties_get_operator_id (ctx->properties)));
mm_obj_dbg (self, " allowed roaming: %s", mm_simple_connect_properties_get_allow_roaming (ctx->properties) ? "yes" : "no");