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 <pespin(a)sysmocom.de>