core: new '--test-mbimex-profile-management' option
The profile management APIs implemented by Microsoft in the MBIM extensions provide certain features that are not available via other means (e.g. ip type, access type preference, roaming allowance...). Unfortunately, these APIs require the current list of profiles installed in the modem to be a bit special; e.g. with one profile max for each context/APN type. If this does not happen, the operations will fail, or they will update contexts that should not be updated. So, we disable for now the MBIM extension profile management support; the logic is there, but not used by default.
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
#include "mm-sms-mbim.h"
|
||||
|
||||
#include "ModemManager.h"
|
||||
#include "mm-context.h"
|
||||
#include "mm-log-object.h"
|
||||
#include "mm-errors-types.h"
|
||||
#include "mm-error-helpers.h"
|
||||
@@ -2634,8 +2635,11 @@ query_device_services_ready (MbimDevice *device,
|
||||
mm_obj_dbg (self, "5GNR registration settings are supported");
|
||||
self->priv->is_nr5g_registration_settings_supported = TRUE;
|
||||
} else if (device_services[i]->cids[j] == MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_PROVISIONED_CONTEXTS) {
|
||||
if (mm_context_get_test_mbimex_profile_management ()) {
|
||||
mm_obj_dbg (self, "Profile management extension is supported");
|
||||
self->priv->is_profile_management_ext_supported = TRUE;
|
||||
} else
|
||||
mm_obj_dbg (self, "Profile management extension is supported but not allowed");
|
||||
}
|
||||
}
|
||||
continue;
|
||||
|
@@ -227,6 +227,9 @@ static gboolean test_quick_suspend_resume;
|
||||
static gboolean test_no_qrtr;
|
||||
#endif
|
||||
static gboolean test_multiplex_requested;
|
||||
#if defined WITH_MBIM
|
||||
static gboolean test_mbimex_profile_management;
|
||||
#endif
|
||||
|
||||
static const GOptionEntry test_entries[] = {
|
||||
{
|
||||
@@ -275,6 +278,13 @@ static const GOptionEntry test_entries[] = {
|
||||
"Default to request multiplex support if no explicitly given",
|
||||
NULL
|
||||
},
|
||||
#if defined WITH_MBIM
|
||||
{
|
||||
"test-mbimex-profile-management", 0, 0, G_OPTION_ARG_NONE, &test_mbimex_profile_management,
|
||||
"Default to use profile management MBIM extensions",
|
||||
NULL
|
||||
},
|
||||
#endif
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
@@ -345,6 +355,14 @@ mm_context_get_test_multiplex_requested (void)
|
||||
return test_multiplex_requested;
|
||||
}
|
||||
|
||||
#if defined WITH_MBIM
|
||||
gboolean
|
||||
mm_context_get_test_mbimex_profile_management (void)
|
||||
{
|
||||
return test_mbimex_profile_management;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void
|
||||
|
@@ -57,5 +57,8 @@ gboolean mm_context_get_test_quick_suspend_resume (void);
|
||||
gboolean mm_context_get_test_no_qrtr (void);
|
||||
#endif
|
||||
gboolean mm_context_get_test_multiplex_requested (void);
|
||||
#if defined WITH_MBIM
|
||||
gboolean mm_context_get_test_mbimex_profile_management (void);
|
||||
#endif
|
||||
|
||||
#endif /* MM_CONTEXT_H */
|
||||
|
Reference in New Issue
Block a user