s1ap: add templates for E-RAB SETUP REQUEST/RESPONSE

Change-Id: I145e2068ba62cdff8f3075f97c274e248864a9f7
Related: SYS#6772
diff --git a/library/s1ap/S1AP_Templates.ttcn b/library/s1ap/S1AP_Templates.ttcn
index 26e1ae1..64167ec 100644
--- a/library/s1ap/S1AP_Templates.ttcn
+++ b/library/s1ap/S1AP_Templates.ttcn
@@ -971,4 +971,161 @@
 			 tr_S1AP_Reset, tr_S1AP_ResetAck, tr_S1AP_ResetAck_any, tr_S1AP_MMEDirectInfTrans
 			);
 
+
+/* 9.1.3.1 E-RAB SETUP REQUEST */
+template (value) E_RABToBeSetupItemBearerSUReq
+ts_S1AP_RABToBeSetupItemBearerSUReq(template (value) E_RAB_ID rab_id,
+				    template (value) E_RABLevelQoSParameters qos_params,
+				    template (value) TransportLayerAddress tla,
+				    template (value) GTP_TEID gtp_teid,
+				    template (value) NAS_PDU nas_pdu) := {
+	e_RAB_ID := rab_id,
+	e_RABlevelQoSParameters := qos_params,
+	transportLayerAddress := tla,
+	gTP_TEID := gtp_teid,
+	nAS_PDU := nas_pdu,
+	iE_Extensions := omit
+}
+template (value) E_RABToBeSetupListBearerSUReq
+ts_S1AP_RABToBeSetupListBearerSUReq(template (value) E_RABToBeSetupItemBearerSUReq it) := {
+	{
+		id := S1AP_Constants.id_E_RABToBeSetupItemBearerSUReq,
+		criticality := reject,
+		value_ := { E_RABToBeSetupItemBearerSUReq := it }
+	}
+}
+
+template (value) S1AP_PDU
+ts_S1AP_RABSetupReq(template (value) MME_UE_S1AP_ID mme_id,
+		    template (value) ENB_UE_S1AP_ID enb_id,
+		    template (value) E_RABToBeSetupListBearerSUReq rab_setup_items) := {
+	initiatingMessage := {
+		procedureCode := S1AP_Constants.id_E_RABSetup,
+		criticality := reject,
+		value_ := {
+			E_RABSetupRequest := {
+				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_RABToBeSetupListBearerSUReq,
+						criticality := reject,
+						value_ := { E_RABToBeSetupListBearerSUReq := rab_setup_items }
+					}
+				}
+			}
+		}
+	}
+}
+template (present) S1AP_PDU
+tr_S1AP_RABSetupReq(template (present) MME_UE_S1AP_ID mme_id := ?,
+		    template (present) ENB_UE_S1AP_ID enb_id := ?,
+		    template (present) E_RABToBeSetupListBearerSUReq rab_setup_items := ?) := {
+	initiatingMessage := {
+		procedureCode := S1AP_Constants.id_E_RABSetup,
+		criticality := reject,
+		value_ := {
+			E_RABSetupRequest := {
+				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_RABToBeSetupListBearerSUReq,
+						criticality := reject,
+						value_ := { E_RABToBeSetupListBearerSUReq := rab_setup_items }
+					}, *
+				}
+			}
+		}
+	}
+}
+
+/* 9.1.3.2 E-RAB SETUP RESPONSE */
+template (value) E_RABSetupItemBearerSURes
+ts_S1AP_RABSetupItemBearerSURes(template (value) E_RAB_ID rab_id,
+				template (value) TransportLayerAddress tla,
+				template (value) GTP_TEID gtp_teid) := {
+	e_RAB_ID := rab_id,
+	transportLayerAddress := tla,
+	gTP_TEID := gtp_teid,
+	iE_Extensions := omit
+}
+template (value) E_RABSetupListBearerSURes
+ts_S1AP_RABSetupListBearerSURes(template (value) E_RABSetupItemBearerSURes it) := {
+	{
+		id := S1AP_Constants.id_E_RABSetupItemBearerSURes,
+		criticality := reject,
+		value_ := { E_RABSetupItemBearerSURes := it }
+	}
+}
+
+template (value) S1AP_PDU
+ts_S1AP_RABSetupRsp(template (value) MME_UE_S1AP_ID mme_id,
+		    template (value) ENB_UE_S1AP_ID enb_id,
+		    template (value) E_RABSetupListBearerSURes rab_setup_items) := {
+	successfulOutcome := {
+		procedureCode := S1AP_Constants.id_E_RABSetup,
+		criticality := reject,
+		value_ := {
+			e_RABSetupResponse := {
+				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 := reject,
+						value_ := { e_RABSetupListBearerSURes := rab_setup_items }
+					}
+				}
+			}
+		}
+	}
+}
+template (present) S1AP_PDU
+tr_S1AP_RABSetupRsp(template (present) MME_UE_S1AP_ID mme_id := ?,
+		    template (present) ENB_UE_S1AP_ID enb_id := ?,
+		    template (present) E_RABSetupListBearerSURes rab_setup_items := ?) := {
+	successfulOutcome := {
+		procedureCode := S1AP_Constants.id_E_RABSetup,
+		criticality := reject,
+		value_ := {
+			e_RABSetupResponse := {
+				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 := reject,
+						value_ := { e_RABSetupListBearerSURes := rab_setup_items }
+					}, *
+				}
+			}
+		}
+	}
+}
+
 }