pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40386?usp=email )

Change subject: 5gc: Initial support encoding NG NAS UL messages
......................................................................

5gc: Initial support encoding NG NAS UL messages

Change-Id: Id59564114cf18ae745e3e385e2c91779a453e545
---
M 5gc/C5G_Tests.ttcn
M 5gc/gen_links.sh
M 5gc/regen_makefile.sh
A library/NG_NAS_Functions.ttcn
4 files changed, 85 insertions(+), 1 deletion(-)

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




diff --git a/5gc/C5G_Tests.ttcn b/5gc/C5G_Tests.ttcn
index 823d216..62553fc 100644
--- a/5gc/C5G_Tests.ttcn
+++ b/5gc/C5G_Tests.ttcn
@@ -29,6 +29,12 @@
 import from NGAP_Functions all;
 import from NGAP_Emulation all;

+import from NG_NAS_Common all;
+import from NG_NAS_MsgContainers all;
+import from NAS_CommonTemplates all;
+import from NG_NAS_Templates all;
+import from NG_NAS_Functions all;
+
 /* (maximum) number of emulated eNBs */
 const integer NUM_NGRAN := 1;

@@ -240,6 +246,9 @@
 private function f_register() runs on ConnHdlr {
        var template (value) UserLocationInformation p_ueLocInf;
        var template (value) NGAP_PDU tx_pdu;
+       var template (value) NG_NAS_UL_Message_Type nas_ul_msg;
+       var NAS_PDU nas_pdu;
+

        p_ueLocInf := m_uPTransportLayerInformation_userLocationInformationNR(
                        m_userLocationInformationNR(
@@ -248,9 +257,16 @@

        ));

+       nas_ul_msg := 
cs_NG_REGISTRATION_REQUEST(cs_RegistrationType(tsc_NG_RegistrationInitial, 
'1'B),
+                                                tsc_NasKsi_NoKey,
+                                                '0'B,
+                                                
cs_NG_MobileIdentitySUCI('0000'B /* Type IMSI */,
+                                                                         
'00f110214300014444330302'O));
+       nas_pdu := enc_NG_NAS_UL_Message_Type(valueof(nas_ul_msg));
+

        tx_pdu := m_ngap_initMsg(m_n2_initialUeMessage(g_pars.c5g_idx,
-                                                      
'7e004179000d0109f1500000000079890040642e02f070'O, /* Registration request */
+                                                      nas_pdu, /* Registration 
request */
                                                       p_ueLocInf,
                                                       mo_Signalling));

diff --git a/5gc/gen_links.sh b/5gc/gen_links.sh
index b86d4ed..2cab445 100755
--- a/5gc/gen_links.sh
+++ b/5gc/gen_links.sh
@@ -18,6 +18,44 @@
 FILES="IPL4asp_Functions.ttcn  IPL4asp_PT.cc  IPL4asp_PT.hh 
IPL4asp_PortType.ttcn  IPL4asp_Types.ttcn  IPL4asp_discovery.cc 
IPL4asp_protocol_L234.hh"
 gen_links $DIR $FILES

+####################
+# NG_NAS start
+####################
+DIR=$BASEDIR/nas/ccsrc/Externals
+FILES="common_ext.cc "
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/nas/ttcn/Lib3GPP/Common
+FILES="CommonDefs.ttcn "
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/nas/ttcn/Lib3GPP/PicsPixit
+FILES="EUTRA_NR_Parameters.ttcn  NAS_5GC_Parameters.ttcn  Parameters.ttcn "
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/nas/ttcn/Lib3GPP/CommonIP
+FILES="CommonIP.ttcn  LoopbackIP_PacketFilterTest.ttcn LoopbackIP.ttcn "
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/nas/ttcn/Lib3GPP/EPS_NAS
+FILES="EPS_NAS_LoopBack_TypeDefs.ttcn  EPS_NAS_TypeDefs.ttcn "
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/nas/ttcn/Lib3GPP/Common4G5G
+FILES="Common4G5G_LoopBack.ttcn  Common4G5G.ttcn  
EUTRA_NR_SecurityFunctions.ttcn "
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/nas/ttcn/Lib3GPP/NAS
+FILES="NAS_AuthenticationCommon.ttcn NAS_AuxiliaryDefsAndFunctions.ttcn 
NAS_CommonTemplates.ttcn NAS_CommonTypeDefs.ttcn SMS_Templates.ttcn 
SMS_TypeDefs.ttcn "
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/nas/ttcn/Lib3GPP/NG_NAS
+FILES="EAP_TypeDefs.ttcn NG_NAS_Common.ttcn NG_NAS_MsgContainers.ttcn 
NG_NAS_Templates.ttcn NG_NAS_TypeDefs.ttcn NG_V2X_MsgContainers.ttcn 
NG_V2X_TypeDefs.ttcn "
+gen_links $DIR $FILES
+####################
+# NG_NAS end
+####################
+
 DIR=../library/ngap
 FILES="NGAP_CommonDataTypes.asn  NGAP_Constants.asn  NGAP_Containers.asn  
NGAP_IEs.asn  NGAP_PDU_Contents.asn  NGAP_PDU_Descriptions.asn "
 FILES+="NGAP_EncDec.cc NGAP_Types.ttcn NGAP_Pixits.ttcn NGAP_Templates.ttcn "
@@ -28,6 +66,7 @@
 FILES+="SCTP_Templates.ttcn "
 FILES+="DNS_Helpers.ttcn "
 FILES+="NGAP_CodecPort.ttcn NGAP_CodecPort_CtrlFunctDef.cc 
NGAP_CodecPort_CtrlFunct.ttcn NGAP_Functions.ttcn NGAP_Emulation.ttcn "
+FILES+="NG_NAS_Functions.ttcn "
 gen_links $DIR $FILES

 gen_links_finish
diff --git a/5gc/regen_makefile.sh b/5gc/regen_makefile.sh
index 583f48a..44f7a56 100755
--- a/5gc/regen_makefile.sh
+++ b/5gc/regen_makefile.sh
@@ -8,6 +8,7 @@
        IPL4asp_PT.cc
        IPL4asp_discovery.cc
        Native_FunctionDefs.cc
+       common_ext.cc
        NGAP_CodecPort_CtrlFunctDef.cc
        NGAP_EncDec.cc
        TCCConversion.cc
diff --git a/library/NG_NAS_Functions.ttcn b/library/NG_NAS_Functions.ttcn
new file mode 100644
index 0000000..4f0e4da
--- /dev/null
+++ b/library/NG_NAS_Functions.ttcn
@@ -0,0 +1,28 @@
+module NG_NAS_Functions {
+
+/* (C) 2025 by sysmocom - s.f.m.c. GmbH <i...@sysmocom.de>
+ * All rights reserved.
+ *
+ * Released under the terms of GNU General Public License, Version 2 or
+ * (at your option) any later version.
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+import from NG_NAS_MsgContainers all;
+import from NG_NAS_TypeDefs all;
+import from EAP_TypeDefs all;
+
+external function enc_NG_NAS_UL_Message_Type(in NG_NAS_UL_Message_Type pdu) 
return octetstring
+with { extension "prototype(convert)" extension "encode(RAW)" }
+
+external function dec_NG_NAS_UL_Message_Type(in octetstring stream) return 
NG_NAS_UL_Message_Type
+with { extension "prototype(convert)" extension "decode(RAW)" }
+
+external function enc_NG_NAS_DL_Message_Type(in NG_NAS_DL_Message_Type pdu) 
return octetstring
+with { extension "prototype(convert)" extension "encode(RAW)" }
+
+external function dec_NG_NAS_DL_Message_Type(in octetstring stream) return 
NG_NAS_DL_Message_Type
+with { extension "prototype(convert)" extension "decode(RAW)" }
+
+}

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40386?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: Id59564114cf18ae745e3e385e2c91779a453e545
Gerrit-Change-Number: 40386
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pes...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <lafo...@osmocom.org>
Gerrit-Reviewer: osmith <osm...@sysmocom.de>
Gerrit-Reviewer: pespin <pes...@sysmocom.de>

Reply via email to