libmm-glib,3gpp-profile: new 3GPP profile helper object

Define a new helper object which we're going to use to implement the
new profile management interface.

The 3GPP profile object provides the list of settings that modems may
be able to store in their profile list, e.g. "apn", "ip-type" and so
on. Not all modems will be able to support all the settings defined in
the profile object, and therefore, when looking for a specific 3GPP
profile object with a given set of settings, we must make sure we only
compare those settings that are supported by the modem.

The profile management implementation will be able to load during
runtime a set of "compare flags", specifying which settings should not
be checked during the comparison. E.g. a generic AT-based modem that
supports only "apn" and "ip-type" will be compared with the
NO_APN_TYPE and NO_AUTH flags; and an AT/Icera-based modem (which
supports auth settings) will use only NO_APN_TYPE.

The settings in the 3GPP profile should be considered a subset of the
bearer properties.
This commit is contained in:
Aleksander Morgado
2021-04-29 10:13:22 +00:00
parent ff8e21b535
commit e2789b18a1
6 changed files with 871 additions and 0 deletions
@@ -103,6 +103,10 @@
<title>USSD support</title>
<xi:include href="xml/mm-modem-3gpp-ussd.xml"/>
</section>
<section>
<title>Profile management support</title>
<xi:include href="xml/mm-3gpp-profile.xml"/>
</section>
<section>
<title>Location support</title>
<xi:include href="xml/mm-modem-location.xml"/>
@@ -1532,6 +1532,45 @@ MM_TYPE_CALL_AUDIO_FORMAT
mm_call_audio_format_get_type
</SECTION>
<SECTION>
<FILE>mm-3gpp-profile</FILE>
<TITLE>3GPP profile</TITLE>
MM_3GPP_PROFILE_ID_UNKNOWN
MM3gppProfile
mm_3gpp_profile_new
<SUBSECTION GettersSetters>
mm_3gpp_profile_get_apn
mm_3gpp_profile_set_apn
mm_3gpp_profile_get_apn_type
mm_3gpp_profile_set_apn_type
mm_3gpp_profile_get_allowed_auth
mm_3gpp_profile_set_allowed_auth
mm_3gpp_profile_get_user
mm_3gpp_profile_set_user
mm_3gpp_profile_get_password
mm_3gpp_profile_set_password
mm_3gpp_profile_get_ip_type
mm_3gpp_profile_set_ip_type
mm_3gpp_profile_get_profile_id
mm_3gpp_profile_set_profile_id
<SUBSECTION Private>
mm_3gpp_profile_new_from_dictionary
mm_3gpp_profile_new_from_string
mm_3gpp_profile_consume_string
mm_3gpp_profile_consume_variant
mm_3gpp_profile_get_dictionary
<SUBSECTION Standard>
MM3gppProfileClass
MM3gppProfilePrivate
MM_3GPP_PROFILE
MM_3GPP_PROFILE_CLASS
MM_3GPP_PROFILE_GET_CLASS
MM_IS_3GPP_PROFILE
MM_IS_3GPP_PROFILE_CLASS
MM_TYPE_3GPP_PROFILE
mm_3gpp_profile_get_type
</SECTION>
<SECTION>
<FILE>mm-enums-types</FILE>
<TITLE>Flags and Enumerations</TITLE>