fixeria submitted this change.
Add templates for S1AP Handover procedure
These templates include handover preperation and resource allocation for
S1 handover procedure. It supports mandatory information elements only
at this time.
Related: SYS#7309
Change-Id: Ib8b8aee0665a4f6644287b802f5e941bd82128f6
---
M library/s1ap/S1AP_Templates.ttcn
1 file changed, 492 insertions(+), 0 deletions(-)
diff --git a/library/s1ap/S1AP_Templates.ttcn b/library/s1ap/S1AP_Templates.ttcn
index 2ba2b36..7910465 100644
--- a/library/s1ap/S1AP_Templates.ttcn
+++ b/library/s1ap/S1AP_Templates.ttcn
@@ -2281,4 +2281,496 @@
iE_Extensions := *
}
+/* 9.1.5.1 HANDOVER REQUIRED */
+template (value) S1AP_PDU
+ts_S1AP_HandoverRqd(template (value) MME_UE_S1AP_ID mme_id,
+ template (value) ENB_UE_S1AP_ID enb_id,
+ template (value) HandoverType ho_type,
+ template (value) Cause cause,
+ template (value) TargetID target_id,
+ template (value) octetstring container) := {
+ initiatingMessage := {
+ procedureCode := S1AP_Constants.id_HandoverPreparation,
+ criticality := reject,
+ value_ := {
+ HandoverRequired := {
+ 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_HandoverType,
+ criticality := reject,
+ value_ := { HandoverType := ho_type }
+ }, {
+ id := S1AP_Constants.id_Cause,
+ criticality := ignore,
+ value_ := { Cause := cause }
+ }, {
+ id := S1AP_Constants.id_TargetID,
+ criticality := reject,
+ value_ := { TargetID := target_id }
+ }, {
+ id := S1AP_Constants.id_Source_ToTarget_TransparentContainer,
+ criticality := reject,
+ value_ := { Source_ToTarget_TransparentContainer := container }
+ }
+ }
+ }
+ }
+ }
+}
+
+template (present) S1AP_PDU
+tr_S1AP_HandoverRqd(template (present) MME_UE_S1AP_ID mme_id := ?,
+ template (present) ENB_UE_S1AP_ID enb_id := ?,
+ template (present) HandoverType ho_type := ?,
+ template (present) Cause cause := ?,
+ template (present) TargetID target_id := ?,
+ template (present) octetstring container := ?) := {
+ initiatingMessage := {
+ procedureCode := S1AP_Constants.id_HandoverPreparation,
+ criticality := reject,
+ value_ := {
+ HandoverRequired := {
+ 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_HandoverType,
+ criticality := reject,
+ value_ := { HandoverType := ho_type }
+ }, {
+ id := S1AP_Constants.id_Cause,
+ criticality := ignore,
+ value_ := { Cause := cause }
+ }, {
+ id := S1AP_Constants.id_TargetID,
+ criticality := reject,
+ value_ := { TargetID := target_id }
+ }, *, {
+ id := S1AP_Constants.id_Source_ToTarget_TransparentContainer,
+ criticality := reject,
+ value_ := { Source_ToTarget_TransparentContainer := container }
+ }, *
+ }
+ }
+ }
+ }
+}
+
+template (value) E_RABSubjecttoDataForwardingList
+ts_E_RABSubjecttoDataForwardingList(template (value) E_RABDataForwardingItem it) := {
+ {
+ id := S1AP_Constants.id_E_RABDataForwardingItem,
+ criticality := ignore,
+ value_ := { e_RABDataForwardingItem := it }
+ }
+}
+template (present) E_RABSubjecttoDataForwardingList
+tr_E_RABSubjecttoDataForwardingList(template (present) E_RABDataForwardingItem it := ?) := {
+ {
+ id := S1AP_Constants.id_E_RABDataForwardingItem,
+ criticality := ignore,
+ value_ := { e_RABDataForwardingItem := it }
+ }
+}
+template (value) E_RABDataForwardingItem
+ts_E_RABDataForwardingItem(template (value) E_RAB_ID rab_id,
+ template (omit) TransportLayerAddress dl_tla := omit,
+ template (omit) GTP_TEID dl_gtp_teid := omit,
+ template (omit) TransportLayerAddress ul_tla := omit,
+ template (omit) GTP_TEID ul_gtp_teid := omit) := {
+ e_RAB_ID := rab_id,
+ dL_transportLayerAddress := ul_tla,
+ dL_gTP_TEID := dl_gtp_teid,
+ uL_TransportLayerAddress := ul_tla,
+ uL_GTP_TEID := dl_gtp_teid,
+ iE_Extensions := omit
+}
+template (present) E_RABDataForwardingItem
+tr_E_RABDataForwardingItem(template (present) E_RAB_ID rab_id := ?,
+ template TransportLayerAddress dl_tla := *,
+ template GTP_TEID dl_gtp_teid := *,
+ template TransportLayerAddress ul_tla := *,
+ template GTP_TEID ul_gtp_teid := *) := {
+ e_RAB_ID := rab_id,
+ dL_transportLayerAddress := dl_tla,
+ dL_gTP_TEID := dl_gtp_teid,
+ uL_TransportLayerAddress := ul_tla,
+ uL_GTP_TEID := ul_gtp_teid,
+ iE_Extensions := *
+}
+
+/* 9.1.5.2 HANDOVER COMMAND */
+template (value) S1AP_PDU
+ts_S1AP_HandoverCmd(template (value) MME_UE_S1AP_ID mme_id,
+ template (value) ENB_UE_S1AP_ID enb_id,
+ template (value) HandoverType ho_type,
+ template (value) E_RABSubjecttoDataForwardingList rab_forward_items,
+ template (value) octetstring container) := {
+ successfulOutcome := {
+ procedureCode := S1AP_Constants.id_HandoverPreparation,
+ criticality := reject,
+ value_ := {
+ HandoverCommand := {
+ 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_HandoverType,
+ criticality := reject,
+ value_ := { HandoverType := ho_type }
+ }, {
+ id := S1AP_Constants.id_E_RABSubjecttoDataForwardingList,
+ criticality := ignore,
+ value_ := { E_RABSubjecttoDataForwardingList := rab_forward_items }
+ }, {
+ id := S1AP_Constants.id_Target_ToSource_TransparentContainer,
+ criticality := reject,
+ value_ := { Target_ToSource_TransparentContainer := container }
+ }
+ }
+ }
+ }
+ }
+}
+template (present) S1AP_PDU
+tr_S1AP_HandoverCmd(template (present) MME_UE_S1AP_ID mme_id := ?,
+ template (present) ENB_UE_S1AP_ID enb_id := ?,
+ template (present) HandoverType ho_type := ?,
+ template (present) E_RABSubjecttoDataForwardingList rab_forward_items := ?,
+ template (present) octetstring container := ?) := {
+ successfulOutcome := {
+ procedureCode := S1AP_Constants.id_HandoverPreparation,
+ criticality := reject,
+ value_ := {
+ HandoverCommand := {
+ 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_HandoverType,
+ criticality := reject,
+ value_ := { HandoverType := ho_type }
+ }, *, {
+ id := S1AP_Constants.id_E_RABSubjecttoDataForwardingList,
+ criticality := ignore,
+ value_ := { E_RABSubjecttoDataForwardingList := rab_forward_items }
+ }, *, {
+ id := S1AP_Constants.id_Target_ToSource_TransparentContainer,
+ criticality := reject,
+ value_ := { Target_ToSource_TransparentContainer := container }
+ }, *
+ }
+ }
+ }
+ }
+}
+
+template (value) E_RABToBeSetupListHOReq
+ts_E_RABToBeSetupListHOReq(template (value) E_RABToBeSetupItemHOReq it) := {
+ {
+ id := S1AP_Constants.id_E_RABToBeSetupItemHOReq,
+ criticality := reject,
+ value_ := { E_RABToBeSetupItemHOReq := it }
+ }
+}
+template (present) E_RABToBeSetupListHOReq
+tr_E_RABToBeSetupListHOReq(template (present) E_RABToBeSetupItemHOReq it := ?) := {
+ {
+ id := S1AP_Constants.id_E_RABToBeSetupItemHOReq,
+ criticality := reject,
+ value_ := { E_RABToBeSetupItemHOReq := it }
+ }
+}
+
+template (value) E_RABToBeSetupItemHOReq
+ts_E_RABToBeSetupItemHOReq(template (value) E_RAB_ID rab_id,
+ template (value) TransportLayerAddress tla,
+ template (value) GTP_TEID gtp_teid,
+ template (value) E_RABLevelQoSParameters qos_params) := {
+ e_RAB_ID := rab_id,
+ transportLayerAddress := tla,
+ gTP_TEID := gtp_teid,
+ e_RABlevelQosParameters := qos_params,
+ iE_Extensions := omit
+}
+template (present) E_RABToBeSetupItemHOReq
+tr_E_RABToBeSetupItemHOReq(template (present) E_RAB_ID rab_id := ?,
+ template (present) TransportLayerAddress tla := ?,
+ template (present) GTP_TEID gtp_teid := ?,
+ template (present) E_RABLevelQoSParameters qos_params := ?) := {
+ e_RAB_ID := rab_id,
+ transportLayerAddress := tla,
+ gTP_TEID := gtp_teid,
+ e_RABlevelQosParameters := qos_params,
+ iE_Extensions := *
+}
+
+template (value) SecurityContext
+ts_SecurityContext(template (value) integer nextHopChainingCount,
+ template (value) SecurityKey nextHopParameter) := {
+ nextHopChainingCount := nextHopChainingCount,
+ nextHopParameter := nextHopParameter,
+ iE_Extensions := omit
+}
+template (present) SecurityContext
+tr_SecurityContext(template (present) integer nextHopChainingCount := ?,
+ template (present) SecurityKey nextHopParameter := ?) := {
+ nextHopChainingCount := nextHopChainingCount,
+ nextHopParameter := nextHopParameter,
+ iE_Extensions := *
+}
+
+/* 9.1.5.4 HANDOVER REQUEST */
+template (value) S1AP_PDU
+ts_S1AP_HandoverReq(template (value) MME_UE_S1AP_ID mme_id,
+ template (value) HandoverType ho_type,
+ template (value) Cause cause,
+ template (value) UEAggregateMaximumBitrate max_br,
+ template (value) E_RABToBeSetupListHOReq rab_setup_items,
+ template (value) octetstring container,
+ template (value) UESecurityCapabilities ue_sec_par,
+ template (value) SecurityContext sec_ctx) := {
+ initiatingMessage := {
+ procedureCode := S1AP_Constants.id_HandoverResourceAllocation,
+ criticality := reject,
+ value_ := {
+ HandoverRequest := {
+ protocolIEs := {
+ {
+ id := S1AP_Constants.id_MME_UE_S1AP_ID,
+ criticality := reject,
+ value_ := { MME_UE_S1AP_ID := mme_id }
+ }, {
+ id := S1AP_Constants.id_HandoverType,
+ criticality := reject,
+ value_ := { HandoverType := ho_type }
+ }, {
+ id := S1AP_Constants.id_Cause,
+ criticality := ignore,
+ value_ := { Cause := cause }
+ }, {
+ id := S1AP_Constants.id_uEaggregateMaximumBitrate,
+ criticality := reject,
+ value_ := {UEAggregateMaximumBitrate := max_br}
+ }, {
+ id := S1AP_Constants.id_E_RABToBeSetupListHOReq,
+ criticality := reject,
+ value_ := { E_RABToBeSetupListHOReq := rab_setup_items }
+ }, {
+ id := S1AP_Constants.id_Source_ToTarget_TransparentContainer,
+ criticality := reject,
+ value_ := { Source_ToTarget_TransparentContainer := container }
+ }, {
+ id := S1AP_Constants.id_UESecurityCapabilities,
+ criticality := reject,
+ value_ := {UESecurityCapabilities := ue_sec_par}
+ }, {
+ id := S1AP_Constants.id_SecurityContext,
+ criticality := reject,
+ value_ := {SecurityContext := sec_ctx}
+ }
+ }
+ }
+ }
+ }
+}
+template (present) S1AP_PDU
+tr_S1AP_HandoverReq(template (present) MME_UE_S1AP_ID mme_id := ?,
+ template (present) HandoverType ho_type := ?,
+ template (present) Cause cause := ?,
+ template (present) UEAggregateMaximumBitrate max_br := ?,
+ template (present) E_RABToBeSetupListHOReq rab_setup_items := ?,
+ template (present) octetstring container := ?,
+ template (present) UESecurityCapabilities ue_sec_par := ?,
+ template (present) SecurityContext sec_ctx := ?) := {
+ initiatingMessage := {
+ procedureCode := S1AP_Constants.id_HandoverResourceAllocation,
+ criticality := reject,
+ value_ := {
+ HandoverRequest := {
+ protocolIEs := {
+ {
+ id := S1AP_Constants.id_MME_UE_S1AP_ID,
+ criticality := reject,
+ value_ := { MME_UE_S1AP_ID := mme_id }
+ }, {
+ id := S1AP_Constants.id_HandoverType,
+ criticality := reject,
+ value_ := { HandoverType := ho_type }
+ }, {
+ id := S1AP_Constants.id_Cause,
+ criticality := ignore,
+ value_ := { Cause := cause }
+ }, {
+ id := S1AP_Constants.id_uEaggregateMaximumBitrate,
+ criticality := reject,
+ value_ := {UEAggregateMaximumBitrate := max_br}
+ }, {
+ id := S1AP_Constants.id_E_RABToBeSetupListHOReq,
+ criticality := reject,
+ value_ := { E_RABToBeSetupListHOReq := rab_setup_items }
+ }, {
+ id := S1AP_Constants.id_Source_ToTarget_TransparentContainer,
+ criticality := reject,
+ value_ := { Source_ToTarget_TransparentContainer := container }
+ }, {
+ id := S1AP_Constants.id_UESecurityCapabilities,
+ criticality := reject,
+ value_ := {UESecurityCapabilities := ue_sec_par}
+ }, *, {
+ id := S1AP_Constants.id_SecurityContext,
+ criticality := reject,
+ value_ := {SecurityContext := sec_ctx}
+ }, *
+ }
+ }
+ }
+ }
+}
+
+template (value) E_RABAdmittedList
+ts_E_RABAdmittedList(template (value) E_RABAdmittedItem it) := {
+ {
+ id := S1AP_Constants.id_E_RABAdmittedItem,
+ criticality := ignore,
+ value_ := { E_RABAdmittedItem := it }
+ }
+}
+template (present) E_RABAdmittedList
+tr_E_RABAdmittedList(template (present) E_RABAdmittedItem it := ?) := {
+ {
+ id := S1AP_Constants.id_E_RABAdmittedItem,
+ criticality := ignore,
+ value_ := { E_RABAdmittedItem := it }
+ }
+}
+template (value) E_RABAdmittedItem
+ts_E_RABAdmittedItem(template (value) E_RAB_ID rab_id,
+ template (value) TransportLayerAddress tla,
+ template (value) GTP_TEID gtp_teid,
+ template (omit) TransportLayerAddress dl_tla := omit,
+ template (omit) GTP_TEID dl_gtp_teid := omit,
+ template (omit) TransportLayerAddress ul_tla := omit,
+ template (omit) GTP_TEID ul_gtp_teid := omit) := {
+ e_RAB_ID := rab_id,
+ transportLayerAddress := tla,
+ gTP_TEID := gtp_teid,
+ dL_transportLayerAddress := ul_tla,
+ dL_gTP_TEID := dl_gtp_teid,
+ uL_TransportLayerAddress := ul_tla,
+ uL_GTP_TEID := dl_gtp_teid,
+ iE_Extensions := omit
+}
+template (present) E_RABAdmittedItem
+tr_E_RABAdmittedItem(template (present) E_RAB_ID rab_id := ?,
+ template (present) TransportLayerAddress tla := ?,
+ template (present) GTP_TEID gtp_teid := ?,
+ template TransportLayerAddress dl_tla := *,
+ template GTP_TEID dl_gtp_teid := *,
+ template TransportLayerAddress ul_tla := *,
+ template GTP_TEID ul_gtp_teid := *) := {
+ e_RAB_ID := rab_id,
+ transportLayerAddress := tla,
+ gTP_TEID := gtp_teid,
+ dL_transportLayerAddress := dl_tla,
+ dL_gTP_TEID := dl_gtp_teid,
+ uL_TransportLayerAddress := ul_tla,
+ uL_GTP_TEID := ul_gtp_teid,
+ iE_Extensions := *
+}
+
+/* 9.1.5.5 HANDOVER REQUEST ACKNOWLEDGE */
+template (value) S1AP_PDU
+ts_S1AP_HandoverAck(template (value) MME_UE_S1AP_ID mme_id,
+ template (value) ENB_UE_S1AP_ID enb_id,
+ template (value) E_RABAdmittedList rab_admit_items,
+ template (value) octetstring container) := {
+ successfulOutcome := {
+ procedureCode := S1AP_Constants.id_HandoverResourceAllocation,
+ criticality := reject,
+ value_ := {
+ HandoverRequestAcknowledge := {
+ 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_E_RABAdmittedList,
+ criticality := ignore,
+ value_ := { E_RABAdmittedList := rab_admit_items }
+ }, {
+ id := S1AP_Constants.id_Target_ToSource_TransparentContainer,
+ criticality := reject,
+ value_ := { Target_ToSource_TransparentContainer := container }
+ }
+ }
+ }
+ }
+ }
+}
+template (present) S1AP_PDU
+tr_S1AP_HandoverAck(template (present) MME_UE_S1AP_ID mme_id := ?,
+ template (present) ENB_UE_S1AP_ID enb_id := ?,
+ template (present) E_RABAdmittedList rab_admit_items := ?,
+ template (present) octetstring container := ?) := {
+ successfulOutcome := {
+ procedureCode := S1AP_Constants.id_HandoverResourceAllocation,
+ criticality := reject,
+ value_ := {
+ HandoverRequestAcknowledge := {
+ 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_E_RABAdmittedList,
+ criticality := ignore,
+ value_ := { E_RABAdmittedList := rab_admit_items }
+ }, *, {
+ id := S1AP_Constants.id_Target_ToSource_TransparentContainer,
+ criticality := reject,
+ value_ := { Target_ToSource_TransparentContainer := container }
+ }, *
+ }
+ }
+ }
+ }
+}
+
}
To view, visit change 41008. To unsubscribe, or for help writing mail filters, visit settings.