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>