pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40799?usp=email )


Change subject: 5gc: Introduce test TC_periodic_registration_updating
......................................................................

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(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/99/40799/1

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 https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40799?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I63da25a3927cb459563d4325adc690beb8a67451
Gerrit-Change-Number: 40799
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>

Reply via email to