aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-03-24 07:01:36 +0100
committerAleksander Morgado <aleksander@aleksander.es>2020-04-09 12:38:50 +0000
commit68917f502e60a73bd1904bf6bf98b65354a55251 (patch)
tree3c7ba220a273e1634426c0925c82bbbe057dce71
parent1c7304eb718a76dc679b1c08d3e5f0a5cf2d7a2d (diff)
api: new 'attached RLOS' registration state
Reporting the state when the UE attaches to access restricted local operator services.
-rw-r--r--include/ModemManager-enums.h2
-rw-r--r--src/mm-base-bearer.c1
-rw-r--r--src/mm-modem-helpers.c4
3 files changed, 5 insertions, 2 deletions
diff --git a/include/ModemManager-enums.h b/include/ModemManager-enums.h
index 47d2ccca..9377ba0f 100644
--- a/include/ModemManager-enums.h
+++ b/include/ModemManager-enums.h
@@ -1193,6 +1193,7 @@ typedef enum { /*< underscore_name=mm_modem_cdma_rm_protocol >*/
* @MM_MODEM_3GPP_REGISTRATION_STATE_EMERGENCY_ONLY: Emergency services only. Since 1.8.
* @MM_MODEM_3GPP_REGISTRATION_STATE_HOME_CSFB_NOT_PREFERRED: Registered for "CSFB not preferred", home network (applicable only when on LTE). Since 1.8.
* @MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING_CSFB_NOT_PREFERRED: Registered for "CSFB not preferred", roaming network (applicable only when on LTE). Since 1.8.
+ * @MM_MODEM_3GPP_REGISTRATION_STATE_ATTACHED_RLOS: Attached for access to Restricted Local Operator Services (applicable only when on LTE). Since 1.14.
*
* GSM registration code as defined in 3GPP TS 27.007.
*
@@ -1210,6 +1211,7 @@ typedef enum { /*< underscore_name=mm_modem_3gpp_registration_state >*/
MM_MODEM_3GPP_REGISTRATION_STATE_EMERGENCY_ONLY = 8,
MM_MODEM_3GPP_REGISTRATION_STATE_HOME_CSFB_NOT_PREFERRED = 9,
MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING_CSFB_NOT_PREFERRED = 10,
+ MM_MODEM_3GPP_REGISTRATION_STATE_ATTACHED_RLOS = 11,
} MMModem3gppRegistrationState;
/**
diff --git a/src/mm-base-bearer.c b/src/mm-base-bearer.c
index c74eccff..461c4058 100644
--- a/src/mm-base-bearer.c
+++ b/src/mm-base-bearer.c
@@ -480,6 +480,7 @@ modem_3gpp_registration_state_changed (MMIfaceModem3gpp *modem,
case MM_MODEM_3GPP_REGISTRATION_STATE_HOME_SMS_ONLY:
case MM_MODEM_3GPP_REGISTRATION_STATE_HOME_CSFB_NOT_PREFERRED:
case MM_MODEM_3GPP_REGISTRATION_STATE_SEARCHING:
+ case MM_MODEM_3GPP_REGISTRATION_STATE_ATTACHED_RLOS:
self->priv->reason_3gpp = CONNECTION_FORBIDDEN_REASON_NONE;
break;
case MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING:
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index 5ecbfe12..e6dbd74c 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -2096,8 +2096,8 @@ mm_3gpp_parse_creg_response (GMatchInfo *info,
return FALSE;
}
- /* 'roaming (csfb not preferred)' is the last valid state */
- if (stat > MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING_CSFB_NOT_PREFERRED) {
+ /* 'attached RLOS' is the last valid state */
+ if (stat > MM_MODEM_3GPP_REGISTRATION_STATE_ATTACHED_RLOS) {
mm_obj_warn (log_object, "unknown registration state value '%lu'", stat);
stat = MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN;
}