pespin submitted this change.

View Change

Approvals: pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified
5gc: Introduce test TC_periodic_registration_updating

Related: SYS#7073
Change-Id: I63da25a3927cb459563d4325adc690beb8a67451
---
M 5gc/C5G_Tests.ttcn
M 5gc/ConnHdlr.ttcn
M 5gc/expected-results.xml
3 files changed, 50 insertions(+), 3 deletions(-)

diff --git a/5gc/C5G_Tests.ttcn b/5gc/C5G_Tests.ttcn
index 9eb6f30..30615f2 100644
--- a/5gc/C5G_Tests.ttcn
+++ b/5gc/C5G_Tests.ttcn
@@ -92,7 +92,8 @@
cn_gtpu_ip := omit,
cn_gtpu_teid := omit,
qfi := omit,
- ue_ip := omit
+ ue_ip := omit,
+ guti := omit
}

type component MTC_CT {
@@ -301,6 +302,20 @@
vc_conn.done;
}

+private function f_TC_periodic_registration_updating() runs on ConnHdlr {
+ f_register();
+ f_periodic_register_update();
+}
+testcase TC_periodic_registration_updating() runs on MTC_CT {
+ f_init();
+ f_ngap_setup(0);
+
+ var ConnHdlrPars pars := f_init_pars(ue_idx := 0);
+ var ConnHdlr vc_conn;
+ vc_conn := f_start_handler_with_pars(refers(f_TC_periodic_registration_updating), pars);
+ vc_conn.done;
+}
+
private function f_TC_register_ping4() runs on ConnHdlr {
f_register();
f_pdu_sess_establish();
@@ -340,6 +355,7 @@
execute( TC_ng_setup_unknown_global_gnb_id_plmn() );
execute( TC_ng_setup_wrong_tac() );
execute( TC_ng_register() );
+ execute( TC_periodic_registration_updating() );
execute( TC_ng_register_ping4() );
execute( TC_ng_register_ping4_256() );
}
diff --git a/5gc/ConnHdlr.ttcn b/5gc/ConnHdlr.ttcn
index 144b00b..fe96b45 100644
--- a/5gc/ConnHdlr.ttcn
+++ b/5gc/ConnHdlr.ttcn
@@ -79,7 +79,8 @@
charstring cn_gtpu_ip optional,
OCT4 cn_gtpu_teid optional,
OCT1 qfi optional,
- charstring ue_ip optional
+ charstring ue_ip optional,
+ octetstring guti optional
};

type record RunProgParams {
@@ -388,6 +389,35 @@
as_ngap_handle_sec_mode();

NGAP.receive(cr_NG_REGISTRATION_ACCEPT) -> value rx_nas;
+ g_pars.ue_pars.guti := rx_nas.registration_Accept.guti.otherDigits;
+ NGAP.send(cs_NG_REGISTRATION_COMPLETE);
+
+ as_ngap_handle_configuration_update();
+}
+
+function f_periodic_register_update() runs on ConnHdlr {
+ var template (value) NG_NAS_UL_Message_Type nas_ul_msg;
+ var NG_NAS_DL_Message_Type rx_nas;
+
+ nas_ul_msg := cs_NG_REGISTRATION_REQUEST(cs_RegistrationType(tsc_NG_RegistrationPeriodic, '1'B),
+ g_pars.kset_id.nasKeySetId,
+ g_pars.kset_id.tsc,
+ cs_NG_MobileIdentity_Guti(omit, g_pars.ue_pars.guti),
+ p_UESecurityCap := f_UE_SecurityCapability());
+ NGAP.send(nas_ul_msg);
+
+ /* Expect updated KSI from network following 5G Core standards
+ * (open5gs.git 70310979c58fe186e9eaa06bec9d9a31f24ff7a1): */
+ if (g_pars.kset_id.nasKeySetId != tsc_NasKsi_NoKey) {
+ if (g_pars.kset_id.nasKeySetId == '110'B) {
+ g_pars.kset_id.nasKeySetId := '000'B;
+ } else {
+ g_pars.kset_id.nasKeySetId := int2bit(bit2int(g_pars.kset_id.nasKeySetId) + 1, 3);
+ }
+ }
+
+ NGAP.receive(cr_NG_REGISTRATION_ACCEPT) -> value rx_nas;
+ g_pars.ue_pars.guti := rx_nas.registration_Accept.guti.otherDigits;
NGAP.send(cs_NG_REGISTRATION_COMPLETE);

as_ngap_handle_configuration_update();
diff --git a/5gc/expected-results.xml b/5gc/expected-results.xml
index 98dee58..a94eb6f 100644
--- a/5gc/expected-results.xml
+++ b/5gc/expected-results.xml
@@ -1,9 +1,10 @@
<?xml version="1.0"?>
-<testsuite name='Titan' tests='1' failures='0' errors='0' skipped='0' inconc='0' time='MASKED'>
+<testsuite name='Titan' tests='7' failures='0' errors='0' skipped='0' inconc='0' time='MASKED'>
<testcase classname='C5G_Tests' name='TC_ng_setup_unknown_global_gnb_id_plmn' time='MASKED'/>
<testcase classname='C5G_Tests' name='TC_ng_setup_wrong_tac' time='MASKED'/>
<testcase classname='C5G_Tests' name='TC_ng_setup' time='MASKED'/>
<testcase classname='C5G_Tests' name='TC_ng_register' time='MASKED'/>
+ <testcase classname='C5G_Tests' name='TC_periodic_registration_updating' time='MASKED'/>
<testcase classname='C5G_Tests' name='TC_ng_register_ping4' time='MASKED'/>
<testcase classname='C5G_Tests' name='TC_ng_register_ping4_256' time='MASKED'/>
</testsuite>

To view, visit change 40799. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I63da25a3927cb459563d4325adc690beb8a67451
Gerrit-Change-Number: 40799
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>