osmith has submitted this change. ( 
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, 60 insertions(+), 1 deletion(-)

Approvals:
  osmith: Looks good to me, approved
  Jenkins Builder: Verified
  fixeria: Looks good to me, but someone else must approve




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..01dcb1a 100644
--- a/5gc/ConnHdlr.ttcn
+++ b/5gc/ConnHdlr.ttcn
@@ -423,6 +423,34 @@
        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();
+}
+
+/* 3GPP TS 38.413 8.3.3 UE Context Release (AMF initiated) */
+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: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Iab438d5a7cc5f2ba58943e4568c1fb5e5f41f99d
Gerrit-Change-Number: 40819
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pes...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanits...@sysmocom.de>
Gerrit-Reviewer: osmith <osm...@sysmocom.de>

Reply via email to