laforge has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15195


Change subject: library: Add S1AP Templates
......................................................................

library: Add S1AP Templates

Change-Id: I148b33eb5074d3549e7cd533af2cbf90f1c6d23f
---
A library/s1ap/S1AP_Templates.ttcn
1 file changed, 907 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/95/15195/1

diff --git a/library/s1ap/S1AP_Templates.ttcn b/library/s1ap/S1AP_Templates.ttcn
new file mode 100644
index 0000000..6c5dbce
--- /dev/null
+++ b/library/s1ap/S1AP_Templates.ttcn
@@ -0,0 +1,907 @@
+/* S1AP Templates in TTCN-3
+ * (C) 2019 Harald Welte <lafo...@gnumonks.org>
+ * 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
+ */
+
+module S1AP_Templates {
+
+import from S1AP_IEs all;
+import from S1AP_CommonDataTypes all;
+import from S1AP_Constants all;
+import from S1AP_Containers all;
+import from S1AP_PDU_Contents all;
+import from S1AP_PDU_Descriptions all;
+
+/*********************************************************************************
+ * non-UE related
+ 
*********************************************************************************/
+
+/*********************************************************************************
+ * 9.1.8 Management Messages
+ 
*********************************************************************************/
+
+/* 9.1.8.4 S1 SETUP REQUEST */
+template (value) S1AP_PDU
+ts_S1AP_SetupReq(template (value) Global_ENB_ID p_global_ENB_ID,
+                template (value) SupportedTAs p_supportedTAs,
+                template (value) PagingDRX p_pagingDRXs) := {
+       initiatingMessage := {
+               procedureCode := id_S1Setup,
+               criticality := reject,
+               value_ := {
+                       S1SetupRequest := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_Global_ENB_ID,
+                                               criticality := ignore,
+                                               value_ := { Global_ENB_ID := 
p_global_ENB_ID }
+                                       }, {
+                                               id := 
S1AP_Constants.id_SupportedTAs,
+                                               criticality := reject,
+                                               value_ := {SupportedTAs := 
p_supportedTAs}
+                                       } /* HACK: work around nextepc bug
+                                         , {
+                                               id := 
S1AP_Constants.id_pagingDRX,
+                                               criticality := ignore,
+                                               value_ := {PagingDRX := 
p_pagingDRXs}
+                                       } */
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_SetupReq(template (present) Global_ENB_ID p_global_ENB_ID := ?,
+                template (present) SupportedTAs p_supportedTAs := ?,
+                template (present) PagingDRX p_pagingDRXs := ?) := {
+       initiatingMessage := {
+               procedureCode := id_S1Setup,
+               criticality := reject,
+               value_ := {
+                       S1SetupRequest := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_Global_ENB_ID,
+                                               criticality := ignore,
+                                               value_ := { Global_ENB_ID := 
p_global_ENB_ID }
+                                       }, {
+                                               id := 
S1AP_Constants.id_SupportedTAs,
+                                               criticality := reject,
+                                               value_ := {SupportedTAs := 
p_supportedTAs}
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+/* 9.1.8.5 S1 SETUP RESPONSE */
+template (value) S1AP_PDU
+ts_S1AP_SetupResp(template (value) ServedGUMMEIs served_gummeis,
+                 template (value) RelativeMMECapacity rel_mme_capacity) := {
+       successfulOutcome := {
+               procedureCode := id_S1Setup,
+               criticality := reject,
+               value_ := {
+                       S1SetupResponse := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_ServedGUMMEIs,
+                                               criticality := reject,
+                                               value_ := { ServedGUMMEIs := 
served_gummeis }
+                                       }, {
+                                               id := 
S1AP_Constants.id_RelativeMMECapacity,
+                                               criticality := ignore,
+                                               value_ := { RelativeMMECapacity 
:= rel_mme_capacity }
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_SetupResp(template (present) ServedGUMMEIs served_gummeis := ?,
+                 template (present) RelativeMMECapacity rel_mme_capacity := ?) 
:= {
+       successfulOutcome := {
+               procedureCode := id_S1Setup,
+               criticality := reject,
+               value_ := {
+                       S1SetupResponse := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_ServedGUMMEIs,
+                                               criticality := reject,
+                                               value_ := { ServedGUMMEIs := 
served_gummeis }
+                                       }, {
+                                               id := 
S1AP_Constants.id_RelativeMMECapacity,
+                                               criticality := ignore,
+                                               value_ := { RelativeMMECapacity 
:= rel_mme_capacity }
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+/* 9.1.8.6 S1 SETUP FAILURE */
+template (value) S1AP_PDU
+ts_S1AP_SetupFail(template (value) Cause cause) := {
+       unsuccessfulOutcome := {
+               procedureCode := id_S1Setup,
+               criticality := reject,
+               value_ := {
+                       S1SetupFailure := {
+                               protocolIEs := {
+                                       {
+                                               id := S1AP_Constants.id_Cause,
+                                               criticality := ignore,
+                                               value_ := { Cause := cause }
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_SetupFail(template (present) Cause cause := ?) := {
+       unsuccessfulOutcome := {
+               procedureCode := id_S1Setup,
+               criticality := reject,
+               value_ := {
+                       S1SetupFailure := {
+                               protocolIEs := {
+                                       {
+                                               id := S1AP_Constants.id_Cause,
+                                               criticality := ignore,
+                                               value_ := { Cause := cause }
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+/* 9.1.8.1 RESET */
+template (value) S1AP_PDU
+ts_S1AP_Reset(template (value) Cause cause,
+             template (value) ResetType reset_type) := {
+       initiatingMessage := {
+               procedureCode := id_Reset,
+               criticality := reject,
+               value_ := {
+                       Reset := {
+                               protocolIEs := {
+                                       {
+                                               id := S1AP_Constants.id_Cause,
+                                               criticality := ignore,
+                                               value_ := { Cause := cause }
+                                       } , {
+                                               id := 
S1AP_Constants.id_ResetType,
+                                               criticality := reject,
+                                               value_ := { resetType := 
reset_type }
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_Reset(template (present) Cause cause := ?,
+             template (present) ResetType reset_type := ?) := {
+       initiatingMessage := {
+               procedureCode := id_Reset,
+               criticality := reject,
+               value_ := {
+                       Reset := {
+                               protocolIEs := {
+                                       {
+                                               id := S1AP_Constants.id_Cause,
+                                               criticality := ignore,
+                                               value_ := { Cause := cause }
+                                       } , {
+                                               id := 
S1AP_Constants.id_ResetType,
+                                               criticality := reject,
+                                               value_ := { resetType := 
reset_type }
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+/* 9.1.8.2 RESET ACKNOWLEDGE */
+template (value) S1AP_PDU
+ts_S1AP_ResetAck(template (value) UE_associatedLogicalS1_ConnectionListResAck 
val) := {
+       successfulOutcome := {
+               procedureCode := id_Reset,
+               criticality := reject,
+               value_ := {
+                       ResetAcknowledge := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_UE_associatedLogicalS1_ConnectionListResAck,
+                                               criticality := ignore,
+                                               value_ := { 
UE_associatedLogicalS1_ConnectionListResAck := val }
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_ResetAck(template (present) 
UE_associatedLogicalS1_ConnectionListResAck val := ?) := {
+       successfulOutcome := {
+               procedureCode := id_Reset,
+               criticality := reject,
+               value_ := {
+                       ResetAcknowledge := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_UE_associatedLogicalS1_ConnectionListResAck,
+                                               criticality := ignore,
+                                               value_ := { 
UE_associatedLogicalS1_ConnectionListResAck := val }
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+
+
+
+/*********************************************************************************
+ * 9.1.7 NAS Transport
+ 
*********************************************************************************/
+
+/* 9.1.7.1 INITIAL UE MESSAGE */
+template (value) S1AP_PDU
+ts_S1AP_InitialUE(template (value) ENB_UE_S1AP_ID p_eNB_value,
+                 template (value) NAS_PDU p_nasPdu,
+                 template (value) TAI p_tAI,
+                 template (value) EUTRAN_CGI  p_eUTRAN_CGI,
+                 template (value) RRC_Establishment_Cause p_rrcCause) := {
+       initiatingMessage := {
+               procedureCode := id_initialUEMessage,
+               criticality := ignore,
+               value_ := {
+                       InitialUEMessage := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {ENB_UE_S1AP_ID := 
p_eNB_value}
+                                       }, {
+                                               id := S1AP_Constants.id_NAS_PDU,
+                                               criticality := reject,
+                                               value_ := {nAS_PDU := p_nasPdu}
+                                       }, {
+                                               id := S1AP_Constants.id_TAI,
+                                               criticality := ignore,
+                                               value_ := {TAI := p_tAI}
+                                       }, {
+                                               id := 
S1AP_Constants.id_EUTRAN_CGI,
+                                               criticality := ignore,
+                                               value_ := {EUTRAN_CGI := 
p_eUTRAN_CGI}
+                                       }, {
+                                               id := 
S1AP_Constants.id_RRC_Establishment_Cause,
+                                               criticality := ignore,
+                                               value_ := 
{RRC_Establishment_Cause := p_rrcCause}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_InitialUE(template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
+                 template (present) NAS_PDU p_nasPdu := ?,
+                 template (present) TAI p_tAI := ?,
+                 template (present) EUTRAN_CGI p_eUTRAN_CGI := ?,
+                 template (present) RRC_Establishment_Cause p_rrcCause := ?) 
:= {
+       initiatingMessage := {
+               procedureCode := id_initialUEMessage,
+               criticality := ignore,
+               value_ := {
+                       InitialUEMessage := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {ENB_UE_S1AP_ID := 
p_eNB_value}
+                                       }, {
+                                               id := S1AP_Constants.id_NAS_PDU,
+                                               criticality := reject,
+                                               value_ := {nAS_PDU := p_nasPdu}
+                                       }, {
+                                               id := S1AP_Constants.id_TAI,
+                                               criticality := ignore,
+                                               value_ := {TAI := p_tAI}
+                                       }, {
+                                               id := 
S1AP_Constants.id_EUTRAN_CGI,
+                                               criticality := ignore,
+                                               value_ := {EUTRAN_CGI := 
p_eUTRAN_CGI}
+                                       }, {
+                                               id := 
S1AP_Constants.id_RRC_Establishment_Cause,
+                                               criticality := ignore,
+                                               value_ := 
{RRC_Establishment_Cause := p_rrcCause}
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+
+/* 9.1.7.2 DOWNLINK NAS TRANSPORT */
+template (value) S1AP_PDU
+ts_S1AP_DlNasTransport(template (value) MME_UE_S1AP_ID mme_id,
+                      template (value) ENB_UE_S1AP_ID enb_id,
+                      template (value) octetstring p_nasPdu) := {
+       initiatingMessage := {
+               procedureCode := id_downlinkNASTransport,
+               criticality := ignore,
+               value_ := {
+                       DownlinkNASTransport := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := S1AP_Constants.id_NAS_PDU,
+                                               criticality := reject,
+                                               value_ := {nAS_PDU := p_nasPdu}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_DlNasTransport(template (present) MME_UE_S1AP_ID mme_id := ?,
+                      template (present) ENB_UE_S1AP_ID enb_id := ?,
+                      template (present) octetstring p_nasPdu := ?) := {
+       initiatingMessage := {
+               procedureCode := id_downlinkNASTransport,
+               criticality := ignore,
+               value_ := {
+                       DownlinkNASTransport := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := S1AP_Constants.id_NAS_PDU,
+                                               criticality := reject,
+                                               value_ := {nAS_PDU := p_nasPdu}
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+
+/* 9.1.7.3 UPNLINK NAS TRANSPORT */
+template (value) S1AP_PDU
+ts_S1AP_UlNasTransport(template (value) MME_UE_S1AP_ID mme_id,
+                      template (value) ENB_UE_S1AP_ID enb_id,
+                      template (value) octetstring p_nasPdu,
+                      template (value) EUTRAN_CGI p_eUTRAN_CGI,
+                      template (value) TAI p_tAI) := {
+       initiatingMessage := {
+               procedureCode := id_uplinkNASTransport,
+               criticality := ignore,
+               value_ := {
+                       UplinkNASTransport := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := S1AP_Constants.id_NAS_PDU,
+                                               criticality := reject,
+                                               value_ := {nAS_PDU := p_nasPdu}
+                                       }, {
+                                               id := 
S1AP_Constants.id_EUTRAN_CGI,
+                                               criticality := ignore,
+                                               value_ := {EUTRAN_CGI := 
p_eUTRAN_CGI}
+                                       }, {
+                                               id := S1AP_Constants.id_TAI,
+                                               criticality := ignore,
+                                               value_ := {TAI := p_tAI}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_UlNasTransport(template (present) MME_UE_S1AP_ID mme_id := ?,
+                      template (present) ENB_UE_S1AP_ID enb_id := ?,
+                      template (present) octetstring p_nasPdu := ?,
+                      template (present) EUTRAN_CGI p_eUTRAN_CGI := ?,
+                      template (present) TAI p_tAI := ?) := {
+       initiatingMessage := {
+               procedureCode := id_uplinkNASTransport,
+               criticality := ignore,
+               value_ := {
+                       UplinkNASTransport := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := S1AP_Constants.id_NAS_PDU,
+                                               criticality := reject,
+                                               value_ := {nAS_PDU := p_nasPdu}
+                                       }, {
+                                               id := 
S1AP_Constants.id_EUTRAN_CGI,
+                                               criticality := ignore,
+                                               value_ := {EUTRAN_CGI := 
p_eUTRAN_CGI}
+                                       }, {
+                                               id := S1AP_Constants.id_TAI,
+                                               criticality := ignore,
+                                               value_ := {TAI := p_tAI}
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+/*********************************************************************************
+ * 9.1.4 Context Management
+ 
*********************************************************************************/
+
+/* 9.1.4.1 INITIAL CONTEXT SETUP REQ */
+template (value) S1AP_PDU
+ts_S1AP_IntialCtxSetupReq(template (value) MME_UE_S1AP_ID mme_id,
+                         template (value) ENB_UE_S1AP_ID enb_id,
+                         template (value) UEAggregateMaximumBitrate max_br,
+                         template (value) E_RABToBeSetupListCtxtSUReq 
rab_setup_items,
+                         template (value) UESecurityCapabilities ue_sec_par,
+                         template (value) SecurityKey sec_key) := {
+       initiatingMessage := {
+               procedureCode := id_InitialContextSetup,
+               criticality := reject,
+               value_ := {
+                       initialContextSetupRequest := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_uEaggregateMaximumBitrate,
+                                               criticality := reject,
+                                               value_ := 
{UEAggregateMaximumBitrate := max_br}
+                                       }, {
+                                               id := 
S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
+                                               criticality := reject,
+                                               value_ := 
{E_RABToBeSetupListCtxtSUReq := rab_setup_items}
+                                       }, {
+                                               id := 
S1AP_Constants.id_UESecurityCapabilities,
+                                               criticality := reject,
+                                               value_ := 
{UESecurityCapabilities := ue_sec_par}
+                                       }, {
+                                               id := 
S1AP_Constants.id_SecurityKey,
+                                               criticality := reject,
+                                               value_ := {SecurityKey := 
sec_key}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_IntialCtxSetupReq(template (present) MME_UE_S1AP_ID mme_id := ?,
+                         template (present) ENB_UE_S1AP_ID enb_id := ?,
+                         template (present) UEAggregateMaximumBitrate max_br 
:= ?,
+                         template (present) E_RABToBeSetupListCtxtSUReq 
rab_setup_items := ?,
+                         template (present) UESecurityCapabilities ue_sec_par 
:= ?,
+                         template (present) SecurityKey sec_key := ?) := {
+       initiatingMessage := {
+               procedureCode := id_InitialContextSetup,
+               criticality := reject,
+               value_ := {
+                       initialContextSetupRequest := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_uEaggregateMaximumBitrate,
+                                               criticality := reject,
+                                               value_ := 
{UEAggregateMaximumBitrate := max_br}
+                                       }, {
+                                               id := 
S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
+                                               criticality := reject,
+                                               value_ := 
{E_RABToBeSetupListCtxtSUReq := rab_setup_items}
+                                       }, {
+                                               id := 
S1AP_Constants.id_UESecurityCapabilities,
+                                               criticality := reject,
+                                               value_ := 
{UESecurityCapabilities := ue_sec_par}
+                                       }, {
+                                               id := 
S1AP_Constants.id_SecurityKey,
+                                               criticality := reject,
+                                               value_ := {SecurityKey := 
sec_key}
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+/* 9.1.4.3 INITIAL CONTEXT SETUP RESPONSE */
+template (value) S1AP_PDU
+ts_S1AP_InitialCtxSetupResp(template (value) MME_UE_S1AP_ID mme_id,
+                           template (value) ENB_UE_S1AP_ID enb_id,
+                           template (value) E_RABSetupListCtxtSURes 
rab_setup_items,
+                           template (value) E_RABList rab_items) := {
+       successfulOutcome := {
+               procedureCode := id_InitialContextSetup,
+               criticality := reject,
+               value_ := {
+                       InitialContextSetupResponse := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_E_RABSetupListBearerSURes,
+                                               criticality := ignore,
+                                               value_ := 
{E_RABSetupListCtxtSURes := rab_setup_items}
+                                       }, {
+                                               id := 
S1AP_Constants.id_E_RABFailedToSetupListBearerSURes,
+                                               criticality := ignore,
+                                               value_ := {E_RABList := 
rab_items}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_InitialCtxSetupResp(template (present) MME_UE_S1AP_ID mme_id := ?,
+                           template (present) ENB_UE_S1AP_ID enb_id := ?,
+                           template (present) E_RABSetupListCtxtSURes 
rab_setup_items := ?,
+                           template (present) E_RABList rab_items := ?) := {
+       successfulOutcome := {
+               procedureCode := id_InitialContextSetup,
+               criticality := reject,
+               value_ := {
+                       InitialContextSetupResponse := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_E_RABSetupListBearerSURes,
+                                               criticality := ignore,
+                                               value_ := 
{E_RABSetupListCtxtSURes := rab_setup_items}
+                                       }, {
+                                               id := 
S1AP_Constants.id_E_RABFailedToSetupListBearerSURes,
+                                               criticality := ignore,
+                                               value_ := {E_RABList := 
rab_items}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
+/* 9.1.4.4 INITIAL CONTEXT SETUP FAILURE */
+template (value) S1AP_PDU
+ts_S1AP_InitialCtxSetupFail(template (value) MME_UE_S1AP_ID mme_id,
+                           template (value) ENB_UE_S1AP_ID enb_id,
+                           template (value) Cause cause) := {
+       unsuccessfulOutcome := {
+               procedureCode := id_InitialContextSetup,
+               criticality := reject,
+               value_ := {
+                       InitialContextSetupFailure := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := S1AP_Constants.id_Cause,
+                                               criticality := ignore,
+                                               value_ := {Cause := cause}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_InitialCtxSetupFail(template (present) MME_UE_S1AP_ID mme_id := ?,
+                           template (present) ENB_UE_S1AP_ID enb_id := ?,
+                           template (present) Cause cause := ?) := {
+       unsuccessfulOutcome := {
+               procedureCode := id_InitialContextSetup,
+               criticality := reject,
+               value_ := {
+                       InitialContextSetupFailure := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := S1AP_Constants.id_Cause,
+                                               criticality := ignore,
+                                               value_ := {Cause := cause}
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+/* 9.1.4.5 UE CONTEXT RELEASE REQUEST */
+template (value) S1AP_PDU
+ts_S1AP_UeContextReleaseReq(template (value) MME_UE_S1AP_ID mme_id,
+                           template (value) ENB_UE_S1AP_ID enb_id,
+                           template (value) Cause cause) := {
+       initiatingMessage := {
+               procedureCode := id_UEContextReleaseRequest,
+               criticality := reject,
+               value_ := {
+                       UEContextReleaseRequest := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := S1AP_Constants.id_Cause,
+                                               criticality := ignore,
+                                               value_ := {Cause := cause}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_UeContextReleaseReq(template (present) MME_UE_S1AP_ID mme_id := ?,
+                           template (present) ENB_UE_S1AP_ID enb_id := ?,
+                           template (present) Cause cause := ?) := {
+       initiatingMessage := {
+               procedureCode := id_UEContextReleaseRequest,
+               criticality := reject,
+               value_ := {
+                       UEContextReleaseRequest := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, {
+                                               id := S1AP_Constants.id_Cause,
+                                               criticality := ignore,
+                                               value_ := {Cause := cause}
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+/* 9.1.4.6 UE CONTEXT RELEASE COMMAND */
+template (value) S1AP_PDU
+ts_S1AP_UeContextReleaseCmd(template (value) UE_S1AP_IDs mme_ids,
+                           template (value) Cause cause) := {
+       initiatingMessage := {
+               procedureCode := id_UEContextRelease,
+               criticality := reject,
+               value_ := {
+                       UEContextReleaseCommand := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_UE_S1AP_IDs,
+                                               criticality := ignore,
+                                               value_ := {UE_S1AP_IDs := 
mme_ids}
+                                       }, {
+                                               id := S1AP_Constants.id_Cause,
+                                               criticality := ignore,
+                                               value_ := {Cause := cause}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_UeContextReleaseCmd(template (present) UE_S1AP_IDs ue_ids := ?,
+                           template (present) Cause cause := ?) := {
+       initiatingMessage := {
+               procedureCode := id_UEContextRelease,
+               criticality := reject,
+               value_ := {
+                       UEContextReleaseCommand := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_UE_S1AP_IDs,
+                                               criticality := reject,
+                                               value_ := {UE_S1AP_IDs := 
ue_ids}
+                                       }, {
+                                               id := S1AP_Constants.id_Cause,
+                                               criticality := ignore,
+                                               value_ := {Cause := cause}
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+/* 9.1.4.7 UE CONTEXT RELEASE COMPLETE */
+template (value) S1AP_PDU
+ts_S1AP_UeContextReleaseCompl(template (value) MME_UE_S1AP_ID mme_id,
+                             template (value) ENB_UE_S1AP_ID enb_id) := {
+       successfulOutcome := {
+               procedureCode := id_UEContextRelease,
+               criticality := reject,
+               value_ := {
+                       UEContextReleaseComplete := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := reject,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_UeContextReleaseCompl(template (present) MME_UE_S1AP_ID mme_id := ?,
+                             template (present) ENB_UE_S1AP_ID enb_id := ?) := 
{
+       successfulOutcome := {
+               procedureCode := id_UEContextRelease,
+               criticality := reject,
+               value_ := {
+                       UEContextReleaseComplete := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+/* 9.1.4.20 CONNECTION ESTABLISHMENT INDICATION */
+template (value) S1AP_PDU
+ts_S1AP_ConnEstInd(template (value) MME_UE_S1AP_ID mme_id,
+                  template (value) ENB_UE_S1AP_ID enb_id) := {
+       initiatingMessage := {
+               procedureCode := id_ConnectionEstablishmentIndication,
+               criticality := reject,
+               value_ := {
+                       ConnectionEstablishmentIndication := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }
+                               }
+                       }
+               }
+       }
+}
+template (present) S1AP_PDU
+tr_S1AP_ConnEstInd(template (present) MME_UE_S1AP_ID mme_id := ?,
+                  template (present) ENB_UE_S1AP_ID enb_id := ?) := {
+       initiatingMessage := {
+               procedureCode := id_ConnectionEstablishmentIndication,
+               criticality := reject,
+               value_ := {
+                       ConnectionEstablishmentIndication := {
+                               protocolIEs := {
+                                       {
+                                               id := 
S1AP_Constants.id_MME_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {MME_UE_S1AP_ID := 
mme_id}
+                                       }, {
+                                               id := 
S1AP_Constants.id_eNB_UE_S1AP_ID,
+                                               criticality := ignore,
+                                               value_ := {ENB_UE_S1AP_ID := 
enb_id}
+                                       }, *
+                               }
+                       }
+               }
+       }
+}
+
+
+
+/* all non-UE-related S1AP messages */
+template (present) S1AP_PDU
+tr_S1AP_nonUErelated := (tr_S1AP_SetupReq, tr_S1AP_SetupResp, 
tr_S1AP_SetupFail,
+                        tr_S1AP_Reset, tr_S1AP_ResetAck
+                       );
+
+
+}

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15195
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I148b33eb5074d3549e7cd533af2cbf90f1c6d23f
Gerrit-Change-Number: 15195
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <lafo...@gnumonks.org>
Gerrit-MessageType: newchange

Reply via email to