3gpp: update registration state enumeration with CSFB related states

Introduce "sms only" and "CSFB not preferred" home/roaming states to be reported
for the CS context, while already registered on LTE.

Based on 3GPP TS 27.007 v13.5.0.
This commit is contained in:
Aleksander Morgado
2016-10-12 13:24:08 +02:00
parent a561f6edf0
commit fe460b2f54
6 changed files with 140 additions and 30 deletions
+24
View File
@@ -1026,6 +1026,28 @@ test_creg2_leading_zeros_unsolicited (void *f, gpointer d)
test_creg_match ("unsolicited CREG=2 with leading zeros in integer fields", FALSE, reply, data, &result);
}
static void
test_creg2_ublox_solicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const gchar *reply = "\r\n+CREG: 2,6,\"8B37\",\"0A265185\",7\r\n";
/* NOTE: '6' means registered for "SMS only", home network; we just assume UNKNOWN in this case */
const CregResult result = { MM_MODEM_3GPP_REGISTRATION_STATE_HOME_SMS_ONLY, 0x8B37, 0x0A265185, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 8, FALSE, FALSE };
test_creg_match ("Ublox Toby-L2 solicited while on LTE", TRUE, reply, data, &result);
}
static void
test_creg2_ublox_unsolicited (void *f, gpointer d)
{
RegTestData *data = (RegTestData *) d;
const gchar *reply = "\r\n+CREG: 6,\"8B37\",\"0A265185\",7\r\n";
/* NOTE: '6' means registered for "SMS only", home network; we just assume UNKNOWN in this case */
const CregResult result = { MM_MODEM_3GPP_REGISTRATION_STATE_HOME_SMS_ONLY, 0x8B37, 0x0A265185, MM_MODEM_ACCESS_TECHNOLOGY_LTE, 6, FALSE, FALSE };
test_creg_match ("Ublox Toby-L2 unsolicited while on LTE", FALSE, reply, data, &result);
}
static void
test_cgreg1_solicited (void *f, gpointer d)
{
@@ -3255,6 +3277,8 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_creg2_leading_zeros_solicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_creg2_no_leading_zeros_unsolicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_creg2_leading_zeros_unsolicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_creg2_ublox_solicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_creg2_ublox_unsolicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_cgreg1_solicited, reg_data));
g_test_suite_add (suite, TESTCASE (test_cgreg1_unsolicited, reg_data));