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


Change subject: 5gc: Add tests for UE release context request procedure
......................................................................

5gc: Add tests for UE release context request procedure

Change-Id: Icaaeb2923fdcaba47a72ed0aedc5661f68c03774
---
M 5gc/C5G_Tests.ttcn
M 5gc/ConnHdlr.ttcn
M 5gc/expected-results.xml
3 files changed, 62 insertions(+), 2 deletions(-)



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

diff --git a/5gc/C5G_Tests.ttcn b/5gc/C5G_Tests.ttcn
index f72fef8..fda9e23 100644
--- a/5gc/C5G_Tests.ttcn
+++ b/5gc/C5G_Tests.ttcn
@@ -330,6 +330,36 @@
        vc_conn.done;
 }

+/* 3GPP TS 23.502 4.2.6 AN Release */
+private function f_TC_ue_context_release_no_pdu_session() runs on ConnHdlr {
+       f_register();
+       f_ue_context_release();
+}
+testcase TC_ue_context_release_no_pdu_session() 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_ue_context_release_no_pdu_session), pars);
+       vc_conn.done;
+}
+private function f_TC_ue_context_release_with_pdu_session() runs on ConnHdlr {
+       f_register();
+       f_pdu_sess_establish();
+       f_sleep(1.0);
+       f_ue_context_release();
+}
+testcase TC_ue_context_release_with_pdu_session() 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_ue_context_release_with_pdu_session), 
pars);
+       vc_conn.done;
+}
+
 private function f_TC_register_ping4() runs on ConnHdlr {
        f_register();
        f_pdu_sess_establish();
@@ -371,6 +401,8 @@
        execute( TC_ng_setup_wrong_tac() );
        execute( TC_ng_register() );
        execute( TC_periodic_registration_updating() );
+       execute( TC_ue_context_release_no_pdu_session() );
+       execute( TC_ue_context_release_with_pdu_session() );
        execute( TC_ng_register_ping4() );
        execute( TC_ng_register_ping4_256() );
 }
diff --git a/5gc/ConnHdlr.ttcn b/5gc/ConnHdlr.ttcn
index dbec212..c72a620 100644
--- a/5gc/ConnHdlr.ttcn
+++ b/5gc/ConnHdlr.ttcn
@@ -455,13 +455,14 @@
 }

 /* 3GPP TS 38.413 8.3.3 UE Context Release (AMF initiated) */
-private altstep as_ngap_handle_UeContextReleaseCmd() runs on ConnHdlr {
+private altstep as_ngap_handle_UeContextReleaseCmd(template (present) Cause 
exp_cause := ?) runs on ConnHdlr {
        var NGAP_PDU rx_ngap;
        var template (present) NGAP_PDU exp_ngap :=
                mw_ngap_initMsg(mw_n2_UEContextReleaseCommand(
                                        mw_uE_NGAP_IDs_uE_NGAP_ID_pair(
                                                
mw_uE_NGAP_ID_pair(g_pars.ue_pars.amf_id,
-                                                                  
g_pars.ue_pars.ran_id))));
+                                                                  
g_pars.ue_pars.ran_id)),
+                                       p_cause := exp_cause));

        [] NGAP.receive(exp_ngap) -> value rx_ngap {
                
NGAP.send(m_ngap_succMsg(f_ts_n2_UEContextReleaseComplete(g_pars.ue_pars.amf_id,
@@ -470,6 +471,31 @@
        }
 }

+/* 3GPP TS 38.413 8.3.2 UE Context Release Request (NG-RAN node initiated),
+ * 3GPP TS 23.502 4.2.6 AN Release */
+function f_ue_context_release(template (value) Cause cause := 
m_cause_radioNetwork(unspecified)) runs on ConnHdlr {
+       var template (value) NGAP_PDU tx_pdu;
+
+       if (ispresent(g_pars.ue_pars.sess_pars.cn_gtpu_teid)) {
+               var template (value) PDUSessionResourceListCxtRelReq li_req;
+               var template (value) PDUSessionResourceItemCxtRelReq it_req;
+               it_req := 
m_pDUSessionResourceItemCxtRelReq(g_pars.ue_pars.sess_pars.id);
+               li_req := { it_req };
+               tx_pdu := 
m_ngap_initMsg(m_n2_UEContextReleaseRequest_withPDUSessionList(
+                                               g_pars.ue_pars.amf_id,
+                                               g_pars.ue_pars.ran_id,
+                                               li_req,
+                                               cause));
+       } else {
+               tx_pdu := m_ngap_initMsg(m_n2_UEContextReleaseRequest(
+                                               g_pars.ue_pars.amf_id,
+                                               g_pars.ue_pars.ran_id,
+                                               cause));
+       }
+       NGAP.send(tx_pdu);
+       as_ngap_handle_UeContextReleaseCmd(exp_cause := cause);
+}
+
 /* Handle a PDUSessionResourceSetupRequestTransfer contained inside NGAP 
InitialContextSetupRequest and return a Result for InitialContextSetupResponse 
*/
 private function 
f_pdu_handle_session_resource_released_item(PDUSessionResourceToReleaseItemRelCmd
 cmd) runs on ConnHdlr return PDUSessionResourceReleasedItemRelRes
 {
diff --git a/5gc/expected-results.xml b/5gc/expected-results.xml
index a94eb6f..99ded9c 100644
--- a/5gc/expected-results.xml
+++ b/5gc/expected-results.xml
@@ -5,6 +5,8 @@
   <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_ue_context_release_no_pdu_session' 
time='MASKED'/>
+  <testcase classname='C5G_Tests' 
name='TC_ue_context_release_with_pdu_session' 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/+/40893?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: Icaaeb2923fdcaba47a72ed0aedc5661f68c03774
Gerrit-Change-Number: 40893
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pes...@sysmocom.de>

Reply via email to