pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40819?usp=email )
Change subject: 5gc: Implement UE-initiated de-registration procedure
......................................................................
5gc: Implement UE-initiated de-registration procedure
Change-Id: Iab438d5a7cc5f2ba58943e4568c1fb5e5f41f99d
Related: SYS#7073
---
M 5gc/C5G_Tests.ttcn
M 5gc/ConnHdlr.ttcn
M deps/Makefile
M library/NG_NAS_Osmo_Templates.ttcn
4 files changed, 59 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/19/40819/1
diff --git a/5gc/C5G_Tests.ttcn b/5gc/C5G_Tests.ttcn
index 30615f2..0b71059 100644
--- a/5gc/C5G_Tests.ttcn
+++ b/5gc/C5G_Tests.ttcn
@@ -291,6 +291,7 @@
private function f_TC_register() runs on ConnHdlr {
f_register();
+ f_deregister();
}
testcase TC_ng_register() runs on MTC_CT {
f_init();
@@ -305,6 +306,7 @@
private function f_TC_periodic_registration_updating() runs on ConnHdlr {
f_register();
f_periodic_register_update();
+ f_deregister();
}
testcase TC_periodic_registration_updating() runs on MTC_CT {
f_init();
@@ -322,6 +324,7 @@
f_sleep(1.0);
f_ping4(g_pars.ue_pars.run_prog_pars.ping_hostname);
f_pdu_sess_release();
+ f_deregister();
}
testcase TC_ng_register_ping4() runs on MTC_CT {
f_init();
diff --git a/5gc/ConnHdlr.ttcn b/5gc/ConnHdlr.ttcn
index fe96b45..81ad34f 100644
--- a/5gc/ConnHdlr.ttcn
+++ b/5gc/ConnHdlr.ttcn
@@ -423,6 +423,33 @@
as_ngap_handle_configuration_update();
}
+/* 3GPP TS 24.501 5.5.2.2 UE-initiated de-registration procedure,
+ * 3GPP TS 23.502 4.2.2.3.2 UE-initiated Deregistration */
+function f_deregister() 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_DEREGISTRATION_REQUEST_MO(crs_DeregisterType ('0'B,/*
p_SwitchOff */
+ '0'B,/* p_ReReg */
+ '01'B/* p_Access */),
+ g_pars.kset_id,
+ cs_NG_MobileIdentity_Guti(omit, g_pars.ue_pars.guti));
+ NGAP.send(nas_ul_msg);
+
+ NGAP.receive(cr_NG_DEREGISTRATION_ACCEPT_MO);
+ as_ngap_handle_UeContextReleaseCmd();
+}
+
+private altstep as_ngap_handle_UeContextReleaseCmd() runs on ConnHdlr {
+ var NGAP_PDU rx_ngap;
+
+ [] NGAP.receive(mw_ngap_initMsg(mw_n2_UEContextReleaseCommand)) -> value rx_ngap {
+ var AMF_UE_NGAP_ID amf_id := valueof(f_NGAP_get_AMF_UE_NGAP_ID(rx_ngap));
+ var RAN_UE_NGAP_ID ran_id := valueof(f_NGAP_get_RAN_UE_NGAP_ID(rx_ngap));
+ NGAP.send(m_ngap_succMsg(f_ts_n2_UEContextReleaseComplete(amf_id, ran_id, f_ULI())));
+ }
+}
+
/* 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/deps/Makefile b/deps/Makefile
index 818d610..4dba0a1 100644
--- a/deps/Makefile
+++ b/deps/Makefile
@@ -72,7 +72,7 @@
# Use tag names from 'git describe --tags' or commit hashes. This way we get
# exact commits of deps when doing regression testing.
-nas_commit= dcb175be8b2d9b4daf3e8a4ebf27da3caae8f7cb
+nas_commit= ab43cccb96db6067ffba1c763b47cb25cd61b780
titan.Libraries.TCCUsefulFunctions_commit= R.35.B-6-gb3687da
titan.ProtocolEmulations.M3UA_commit= b58f92046e48a7b1ed531e243a2319ebca53bf4c
titan.ProtocolEmulations.SCCP_commit= 750a3e836831e58eae59d4757ef5d0c759f9ca5d
diff --git a/library/NG_NAS_Osmo_Templates.ttcn b/library/NG_NAS_Osmo_Templates.ttcn
index c1c8b44..4f8e8cc 100644
--- a/library/NG_NAS_Osmo_Templates.ttcn
+++ b/library/NG_NAS_Osmo_Templates.ttcn
@@ -405,6 +405,34 @@
}
}
+/* 24.501 cl. 8.2.12 (UE originating deregister) */
+template (value) NG_NAS_UL_Message_Type
+cs_NG_DEREGISTRATION_REQUEST_MO(template (value) DeregisterType p_DeregisterType,
+ template (value) NAS_KeySetIdentifier p_KSI,
+ template (value) NG_MobileIdentity p_MobileId) :=
+{
+ deregistration_RequestMO := {
+ protocolDiscriminator := tsc_EPD_GMM, /* cl. 9.2 M V 1
*/
+ spareHalfOctet := tsc_SpareHalfOctet, /* cl. 9.3 M V 1/2
*/
+ securityHeaderType := tsc_SHT_NoSecurityProtection,
+ messageType := tsc_MT_NG_DeregistrationRequest_MO, /* cl. 9.7 M V 1
*/
+ ngKSI := p_KSI, /* cl. 9.11.3.32 M V
1/2 */
+ deregistrationType := p_DeregisterType, /* cl. 9.11.3.20 M V
1/2 */
+ ngMobileId := p_MobileId /* cl. 9.11.3.4 M LV
5-? */
+ }
+}
+
+/* 24.501 cl. 8.2.13 De-registration accept (UE originating de-registration) */
+template (present) NG_NAS_DL_Message_Type cr_NG_DEREGISTRATION_ACCEPT_MO :=
+{
+ deregistration_Accept := {
+ protocolDiscriminator := tsc_EPD_GMM, /* cl. 9.2 M V 1 */
+ spareHalfOctet := tsc_SpareHalfOctet, /* cl. 9.3 M V 1/2 */
+ securityHeaderType := tsc_SHT_NoSecurityProtection,
+ messageType := tsc_MT_NG_DeregistrationAccept_MO /* cl. 9.7 M V 1
*/
+ }
+};
+
/* 24.501 cl. 8.2.19 */
template (present) NG_NAS_DL_Message_Type
cr_NG_CONFIGURATION_UPDATE_COMMAND(template ConfigUpdateInd p_ConfigUpdateInd := *,
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40819?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: Iab438d5a7cc5f2ba58943e4568c1fb5e5f41f99d
Gerrit-Change-Number: 40819
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>