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


Change subject: s1gw: add TCs for UE CONTEXT RELEASE procedures
......................................................................

s1gw: add TCs for UE CONTEXT RELEASE procedures

Change-Id: I065692f311e9d03630ab3ca2f6a03465418f0e71
Related: SYS#7310
---
M s1gw/S1GW_ConnHdlr.ttcn
M s1gw/S1GW_Tests.ttcn
M s1gw/expected-results.xml
3 files changed, 94 insertions(+), 1 deletion(-)



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

diff --git a/s1gw/S1GW_ConnHdlr.ttcn b/s1gw/S1GW_ConnHdlr.ttcn
index b2b207d..e84c3ab 100644
--- a/s1gw/S1GW_ConnHdlr.ttcn
+++ b/s1gw/S1GW_ConnHdlr.ttcn
@@ -859,4 +859,47 @@
        f_ConnHdlr_rx_initial_ctx_setup_rsp(erabs);
 }

+function f_ConnHdlr_ue_ctx_release_req(S1AP_IEs.Cause cause := c_REL_CMD_CAUSE)
+runs on ConnHdlr {
+       var MME_UE_S1AP_ID mme_ue_id := g_pars.mme_ue_id;
+       var ENB_UE_S1AP_ID enb_ue_id := g_pars.idx;
+       var S1AP_PDU pdu;
+
+       log("[eNB -> S1GW] -> MME: UE CONTEXT RELEASE REQUEST");
+       f_ConnHdlr_tx_s1ap_from_enb(ts_S1AP_UeContextReleaseReq(mme_ue_id, 
enb_ue_id, cause));
+       f_ConnHdlr_session_delete(g_pars.erabs);
+       log("eNB -> [S1GW -> MME]: UE CONTEXT RELEASE REQUEST");
+       f_ConnHdlr_rx_s1ap_from_enb(pdu, tr_S1AP_UeContextReleaseReq(mme_ue_id, 
enb_ue_id, cause));
+}
+
+function f_ConnHdlr_ue_ctx_release_cmd(S1AP_IEs.Cause cause := c_REL_CMD_CAUSE)
+runs on ConnHdlr {
+       var template (value) UE_S1AP_IDs ue_ids := {
+               uE_S1AP_ID_pair := {
+                       mME_UE_S1AP_ID := g_pars.mme_ue_id,
+                       eNB_UE_S1AP_ID := g_pars.idx,
+                       iE_Extensions := omit
+               }
+       };
+       var S1AP_PDU pdu;
+
+       log("eNB <- [S1GW <- MME]: UE CONTEXT RELEASE COMMAND");
+       f_ConnHdlr_tx_s1ap_from_mme(ts_S1AP_UeContextReleaseCmd(ue_ids, cause));
+       f_ConnHdlr_session_delete(g_pars.erabs);
+       log("[eNB <- S1GW] <- MME: UE CONTEXT RELEASE COMMAND");
+       f_ConnHdlr_rx_s1ap_from_mme(pdu, tr_S1AP_UeContextReleaseCmd(ue_ids, 
cause));
+}
+
+function f_ConnHdlr_ue_ctx_release_compl()
+runs on ConnHdlr {
+       var MME_UE_S1AP_ID mme_ue_id := g_pars.mme_ue_id;
+       var ENB_UE_S1AP_ID enb_ue_id := g_pars.idx;
+       var S1AP_PDU pdu;
+
+       log("[eNB -> S1GW] -> MME: UE CONTEXT RELEASE COMPLETE");
+       f_ConnHdlr_tx_s1ap_from_enb(ts_S1AP_UeContextReleaseCompl(mme_ue_id, 
enb_ue_id));
+       log("eNB -> [S1GW -> MME]: UE CONTEXT RELEASE COMPLETE");
+       f_ConnHdlr_rx_s1ap_from_enb(pdu, 
tr_S1AP_UeContextReleaseCompl(mme_ue_id, enb_ue_id));
+}
+
 }
diff --git a/s1gw/S1GW_Tests.ttcn b/s1gw/S1GW_Tests.ttcn
index 089bd0d..8bb2f09 100644
--- a/s1gw/S1GW_Tests.ttcn
+++ b/s1gw/S1GW_Tests.ttcn
@@ -468,6 +468,48 @@
        f_TC_exec(refers(f_TC_initial_ctx_setup_failure));
 }

+/* Test UE CONTEXT RELEASE REQUEST procedure (eNB initiated) */
+function f_TC_ue_ctx_release_req(charstring id) runs on ConnHdlr {
+       f_ConnHdlr_s1ap_register(g_pars.genb_id);
+       f_ConnHdlr_s1ap_connect(mp_enb_bind_ip, mp_s1gw_enb_ip);
+       f_ConnHdlr_s1ap_setup(g_pars.genb_id);
+
+       f_ConnHdlr_initial_ctx_setup_req(g_pars.erabs);
+       f_ConnHdlr_initial_ctx_setup_rsp(g_pars.erabs);
+       f_ConnHdlr_ue_ctx_release_req();
+
+       f_ConnHdlr_s1ap_disconnect();
+       f_ConnHdlr_s1ap_unregister(g_pars.genb_id);
+}
+testcase TC_ue_ctx_release_req() runs on test_CT {
+       f_TC_exec(refers(f_TC_ue_ctx_release_req), num_erabs := 1);
+}
+testcase TC_ue_ctx_release_req3() runs on test_CT {
+       f_TC_exec(refers(f_TC_ue_ctx_release_req), num_erabs := 3);
+}
+
+/* Test UE CONTEXT RELEASE COMMAND/COMPLETE procedure (MME initiated) */
+function f_TC_ue_ctx_release_cmd_compl(charstring id) runs on ConnHdlr {
+       f_ConnHdlr_s1ap_register(g_pars.genb_id);
+       f_ConnHdlr_s1ap_connect(mp_enb_bind_ip, mp_s1gw_enb_ip);
+       f_ConnHdlr_s1ap_setup(g_pars.genb_id);
+
+       f_ConnHdlr_initial_ctx_setup_req(g_pars.erabs);
+       f_ConnHdlr_initial_ctx_setup_rsp(g_pars.erabs);
+
+       f_ConnHdlr_ue_ctx_release_cmd();
+       f_ConnHdlr_ue_ctx_release_compl();
+
+       f_ConnHdlr_s1ap_disconnect();
+       f_ConnHdlr_s1ap_unregister(g_pars.genb_id);
+}
+testcase TC_ue_ctx_release_cmd_compl() runs on test_CT {
+       f_TC_exec(refers(f_TC_ue_ctx_release_cmd_compl), num_erabs := 1);
+}
+testcase TC_ue_ctx_release_cmd_compl3() runs on test_CT {
+       f_TC_exec(refers(f_TC_ue_ctx_release_cmd_compl), num_erabs := 3);
+}
+
 function f_TC_pfcp_heartbeat(charstring id) runs on ConnHdlr {
        var integer rts := f_PFCPEM_get_recovery_timestamp();
        var PDU_PFCP pfcp_pdu;
@@ -501,6 +543,10 @@
        execute( TC_initial_ctx_setup_multi() );
        execute( TC_initial_ctx_setup3_multi() );
        execute( TC_initial_ctx_setup_failure() );
+       execute( TC_ue_ctx_release_req() );
+       execute( TC_ue_ctx_release_req3() );
+       execute( TC_ue_ctx_release_cmd_compl() );
+       execute( TC_ue_ctx_release_cmd_compl3() );
        execute( TC_pfcp_heartbeat() );
 }

diff --git a/s1gw/expected-results.xml b/s1gw/expected-results.xml
index c6995c9..c5cb28f 100644
--- a/s1gw/expected-results.xml
+++ b/s1gw/expected-results.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<testsuite name='S1GW_Tests' tests='16' failures='0' errors='0' skipped='0' 
inconc='0' time='MASKED'>
+<testsuite name='S1GW_Tests' tests='20' failures='0' errors='0' skipped='0' 
inconc='0' time='MASKED'>
   <testcase classname='S1GW_Tests' name='TC_setup' time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_setup_multi' time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_conn_term_by_mme' time='MASKED'/>
@@ -15,5 +15,9 @@
   <testcase classname='S1GW_Tests' name='TC_initial_ctx_setup_multi' 
time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_initial_ctx_setup3_multi' 
time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_initial_ctx_setup_failure' 
time='MASKED'/>
+  <testcase classname='S1GW_Tests' name='TC_ue_ctx_release_req' time='MASKED'/>
+  <testcase classname='S1GW_Tests' name='TC_ue_ctx_release_req3' 
time='MASKED'/>
+  <testcase classname='S1GW_Tests' name='TC_ue_ctx_release_cmd_compl' 
time='MASKED'/>
+  <testcase classname='S1GW_Tests' name='TC_ue_ctx_release_cmd_compl3' 
time='MASKED'/>
   <testcase classname='S1GW_Tests' name='TC_pfcp_heartbeat' time='MASKED'/>
 </testsuite>

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/39462?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: I065692f311e9d03630ab3ca2f6a03465418f0e71
Gerrit-Change-Number: 39462
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>

Reply via email to