fixeria submitted this change.
library/s1ap: add E-RAB MODIFY IND/CNF templates
Change-Id: I2dd3d420ebfaf37fefa1d33a40176ec57fee5619
---
M library/s1ap/S1AP_Templates.ttcn
1 file changed, 358 insertions(+), 0 deletions(-)
diff --git a/library/s1ap/S1AP_Templates.ttcn b/library/s1ap/S1AP_Templates.ttcn
index b40f948..cb74cb4 100644
--- a/library/s1ap/S1AP_Templates.ttcn
+++ b/library/s1ap/S1AP_Templates.ttcn
@@ -1923,4 +1923,362 @@
iE_Extensions := *
}
+/* 9.1.3.8 E-RAB MODIFICATION INDICATION */
+template (value) S1AP_PDU
+ts_S1AP_RABModifyInd(template (value) MME_UE_S1AP_ID mme_id,
+ template (value) ENB_UE_S1AP_ID enb_id,
+ template (value) E_RABToBeModifiedListBearerModInd rab_do_modify_items,
+ template (omit) E_RABNotToBeModifiedListBearerModInd rab_no_modify_items := omit) := {
+ initiatingMessage := {
+ procedureCode := S1AP_Constants.id_E_RABModificationIndication,
+ criticality := reject,
+ value_ := {
+ e_RABModificationIndication := f_ts_S1AP_RABModifyInd(mme_id, enb_id,
+ rab_do_modify_items,
+ rab_no_modify_items)
+ }
+ }
+}
+template (present) S1AP_PDU
+tr_S1AP_RABModifyInd(template (present) MME_UE_S1AP_ID mme_id := ?,
+ template (present) ENB_UE_S1AP_ID enb_id := ?,
+ template (present) E_RABToBeModifiedListBearerModInd rab_do_modify_items := ?,
+ template E_RABNotToBeModifiedListBearerModInd rab_no_modify_items := *) := {
+ initiatingMessage := {
+ procedureCode := S1AP_Constants.id_E_RABModificationIndication,
+ criticality := reject,
+ value_ := {
+ e_RABModificationIndication := f_tr_S1AP_RABModifyInd(mme_id, enb_id,
+ rab_do_modify_items,
+ rab_no_modify_items)
+ }
+ }
+}
+
+private function
+f_ts_S1AP_RABModifyInd(template (value) MME_UE_S1AP_ID mme_id,
+ template (value) ENB_UE_S1AP_ID enb_id,
+ template (value) E_RABToBeModifiedListBearerModInd rab_do_modify_items,
+ template (omit) E_RABNotToBeModifiedListBearerModInd rab_no_modify_items)
+return template (value) E_RABModificationIndication
+{
+ var template (value) E_RABModificationIndication ind := {
+ 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_RABToBeModifiedListBearerModInd,
+ criticality := reject,
+ value_ := { e_RABToBeModifiedListBearerModInd := rab_do_modify_items }
+ }
+ }
+ };
+
+ var integer idx := lengthof(ind.protocolIEs);
+ if (isvalue(rab_no_modify_items)) {
+ ind.protocolIEs[idx] := {
+ id := S1AP_Constants.id_E_RABNotToBeModifiedListBearerModInd,
+ criticality := reject,
+ value_ := { e_RABNotToBeModifiedListBearerModInd := rab_no_modify_items }
+ };
+ idx := idx + 1;
+ }
+
+ return ind;
+}
+private function
+f_tr_S1AP_RABModifyInd(template (present) MME_UE_S1AP_ID mme_id,
+ template (present) ENB_UE_S1AP_ID enb_id,
+ template (present) E_RABToBeModifiedListBearerModInd rab_do_modify_items,
+ template E_RABNotToBeModifiedListBearerModInd rab_no_modify_items)
+return template E_RABModificationIndication
+{
+ var template E_RABModificationIndication ind := {
+ 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_RABToBeModifiedListBearerModInd,
+ criticality := reject,
+ value_ := { e_RABToBeModifiedListBearerModInd := rab_do_modify_items }
+ }
+ }
+ };
+
+ var integer idx := lengthof(ind.protocolIEs);
+ if (ispresent(rab_no_modify_items)) {
+ ind.protocolIEs[idx] := {
+ id := S1AP_Constants.id_E_RABNotToBeModifiedListBearerModInd,
+ criticality := reject,
+ value_ := { e_RABNotToBeModifiedListBearerModInd := rab_no_modify_items }
+ };
+ idx := idx + 1;
+ }
+
+ /* ignore the remaining IEs */
+ ind.protocolIEs[idx] := *;
+
+ return ind;
+}
+
+template (value) E_RABToBeModifiedListBearerModInd
+ts_E_RABToBeModifiedListBearerModInd(template (value) E_RABToBeModifiedItemBearerModInd it) := {
+ {
+ id := S1AP_Constants.id_E_RABToBeModifiedItemBearerModInd,
+ criticality := reject,
+ value_ := { e_RABToBeModifiedItemBearerModInd := it }
+ }
+}
+template (present) E_RABToBeModifiedListBearerModInd
+tr_E_RABToBeModifiedListBearerModInd(template (present) E_RABToBeModifiedItemBearerModInd it := ?) := {
+ {
+ id := S1AP_Constants.id_E_RABToBeModifiedItemBearerModInd,
+ criticality := reject,
+ value_ := { e_RABToBeModifiedItemBearerModInd := it }
+ }
+}
+
+template (value) E_RABToBeModifiedItemBearerModInd
+ts_E_RABToBeModifiedItemBearerModInd(template (value) E_RAB_ID rab_id,
+ template (value) TransportLayerAddress tla,
+ template (value) GTP_TEID gtp_teid) := {
+ e_RAB_ID := rab_id,
+ transportLayerAddress := tla,
+ dL_GTP_TEID := gtp_teid,
+ iE_Extensions := omit
+}
+template (present) E_RABToBeModifiedItemBearerModInd
+tr_E_RABToBeModifiedItemBearerModInd(template (present) E_RAB_ID rab_id,
+ template (present) TransportLayerAddress tla,
+ template (present) GTP_TEID gtp_teid) := {
+ e_RAB_ID := rab_id,
+ transportLayerAddress := tla,
+ dL_GTP_TEID := gtp_teid,
+ iE_Extensions := *
+}
+
+template (value) E_RABNotToBeModifiedListBearerModInd
+ts_E_RABNotToBeModifiedListBearerModInd(template (value) E_RABNotToBeModifiedItemBearerModInd it) := {
+ {
+ id := S1AP_Constants.id_E_RABNotToBeModifiedItemBearerModInd,
+ criticality := reject,
+ value_ := { e_RABNotToBeModifiedItemBearerModInd := it }
+ }
+}
+template (present) E_RABNotToBeModifiedListBearerModInd
+tr_E_RABNotToBeModifiedListBearerModInd(template (present) E_RABNotToBeModifiedItemBearerModInd it := ?) := {
+ {
+ id := S1AP_Constants.id_E_RABNotToBeModifiedItemBearerModInd,
+ criticality := reject,
+ value_ := { e_RABNotToBeModifiedItemBearerModInd := it }
+ }
+}
+
+template (value) E_RABNotToBeModifiedItemBearerModInd
+ts_E_RABNotToBeModifiedItemBearerModInd(template (value) E_RAB_ID rab_id,
+ template (value) TransportLayerAddress tla,
+ template (value) GTP_TEID gtp_teid) := {
+ e_RAB_ID := rab_id,
+ transportLayerAddress := tla,
+ dL_GTP_TEID := gtp_teid,
+ iE_Extensions := omit
+}
+template (present) E_RABNotToBeModifiedItemBearerModInd
+tr_E_RABNotToBeModifiedItemBearerModInd(template (present) E_RAB_ID rab_id,
+ template (present) TransportLayerAddress tla,
+ template (present) GTP_TEID gtp_teid) := {
+ e_RAB_ID := rab_id,
+ transportLayerAddress := tla,
+ dL_GTP_TEID := gtp_teid,
+ iE_Extensions := *
+}
+
+/* 9.1.3.9 E-RAB MODIFICATION CONFIRMATION */
+template (value) S1AP_PDU
+ts_S1AP_RABModifyCnf(template (value) MME_UE_S1AP_ID mme_id,
+ template (value) ENB_UE_S1AP_ID enb_id,
+ template (omit) E_RABModifyListBearerModConf rab_modified_items := omit,
+ template (omit) E_RABList rab_failed_items := omit,
+ template (omit) E_RABList rab_release_items := omit) := {
+ successfulOutcome := {
+ procedureCode := S1AP_Constants.id_E_RABModificationIndication,
+ criticality := reject,
+ value_ := {
+ e_RABModificationConfirm := f_ts_S1AP_RABModifyCnf(mme_id, enb_id,
+ rab_modified_items,
+ rab_failed_items,
+ rab_release_items)
+ }
+ }
+}
+template (present) S1AP_PDU
+tr_S1AP_RABModifyCnf(template (present) MME_UE_S1AP_ID mme_id := ?,
+ template (present) ENB_UE_S1AP_ID enb_id := ?,
+ template E_RABModifyListBearerModConf rab_modified_items := *,
+ template E_RABList rab_failed_items := *,
+ template E_RABList rab_release_items := *) := {
+ successfulOutcome := {
+ procedureCode := S1AP_Constants.id_E_RABModificationIndication,
+ criticality := reject,
+ value_ := {
+ e_RABModificationConfirm := f_tr_S1AP_RABModifyCnf(mme_id, enb_id,
+ rab_modified_items,
+ rab_failed_items,
+ rab_release_items)
+ }
+ }
+}
+
+private function
+f_ts_S1AP_RABModifyCnf(template (value) MME_UE_S1AP_ID mme_id,
+ template (value) ENB_UE_S1AP_ID enb_id,
+ template (omit) E_RABModifyListBearerModConf rab_modified_items,
+ template (omit) E_RABList rab_failed_items,
+ template (omit) E_RABList rab_release_items)
+return template (value) E_RABModificationConfirm
+{
+ var template (value) E_RABModificationConfirm cnf := {
+ 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 }
+ }
+ }
+ };
+
+ var integer idx := lengthof(cnf.protocolIEs);
+ if (isvalue(rab_modified_items)) {
+ cnf.protocolIEs[idx] := {
+ id := S1AP_Constants.id_E_RABModifyListBearerModConf,
+ criticality := ignore,
+ value_ := { e_RABModifyListBearerModConf := rab_modified_items }
+ };
+ idx := idx + 1;
+ }
+ if (isvalue(rab_failed_items)) {
+ cnf.protocolIEs[idx] := {
+ id := S1AP_Constants.id_E_RABFailedToModifyListBearerModConf,
+ criticality := ignore,
+ value_ := { e_RABList := rab_failed_items }
+ };
+ idx := idx + 1;
+ }
+ if (isvalue(rab_release_items)) {
+ cnf.protocolIEs[idx] := {
+ id := S1AP_Constants.id_E_RABToBeReleasedListBearerModConf,
+ criticality := ignore,
+ value_ := { e_RABList := rab_release_items }
+ };
+ idx := idx + 1;
+ }
+
+ return cnf;
+}
+private function
+f_tr_S1AP_RABModifyCnf(template (present) MME_UE_S1AP_ID mme_id,
+ template (present) ENB_UE_S1AP_ID enb_id,
+ template E_RABModifyListBearerModConf rab_modified_items,
+ template E_RABList rab_failed_items,
+ template E_RABList rab_release_items)
+return template E_RABModificationConfirm
+{
+ var template E_RABModificationConfirm cnf := {
+ 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 }
+ }
+ }
+ };
+
+ var integer idx := lengthof(cnf.protocolIEs);
+ if (ispresent(rab_modified_items)) {
+ cnf.protocolIEs[idx] := {
+ id := S1AP_Constants.id_E_RABModifyListBearerModConf,
+ criticality := ignore,
+ value_ := { e_RABModifyListBearerModConf := rab_modified_items }
+ };
+ idx := idx + 1;
+ } else if (istemplatekind(rab_modified_items, "*")) {
+ cnf.protocolIEs[idx] := *;
+ idx := idx + 1;
+ }
+
+ if (ispresent(rab_failed_items)) {
+ cnf.protocolIEs[idx] := {
+ id := S1AP_Constants.id_E_RABFailedToModifyListBearerModConf,
+ criticality := ignore,
+ value_ := { e_RABList := rab_failed_items }
+ };
+ idx := idx + 1;
+ } else if (istemplatekind(rab_failed_items, "*")) {
+ cnf.protocolIEs[idx] := *;
+ idx := idx + 1;
+ }
+
+ if (ispresent(rab_release_items)) {
+ cnf.protocolIEs[idx] := {
+ id := S1AP_Constants.id_E_RABToBeReleasedListBearerModConf,
+ criticality := ignore,
+ value_ := { e_RABList := rab_release_items }
+ };
+ idx := idx + 1;
+ }
+
+ /* ignore the remaining IEs */
+ cnf.protocolIEs[idx] := *;
+
+ return cnf;
+}
+
+template (value) E_RABModifyListBearerModConf
+ts_E_RABModifyListBearerModConf(template (value) E_RABModifyItemBearerModConf it) := {
+ {
+ id := S1AP_Constants.id_E_RABModifyItemBearerModConf,
+ criticality := ignore,
+ value_ := { e_RABModifyItemBearerModConf := it }
+ }
+}
+template (present) E_RABModifyListBearerModConf
+tr_E_RABModifyListBearerModConf(template (present) E_RABModifyItemBearerModConf it := ?) := {
+ {
+ id := S1AP_Constants.id_E_RABModifyItemBearerModConf,
+ criticality := ignore,
+ value_ := { e_RABModifyItemBearerModConf := it }
+ }
+}
+
+template (value) E_RABModifyItemBearerModConf
+ts_E_RABModifyItemBearerModConf(template (value) E_RAB_ID rab_id) := {
+ e_RAB_ID := rab_id,
+ iE_Extensions := omit
+}
+template (present) E_RABModifyItemBearerModConf
+tr_E_RABModifyItemBearerModConf(template (present) E_RAB_ID rab_id) := {
+ e_RAB_ID := rab_id,
+ iE_Extensions := *
+}
+
}
To view, visit change 39144. To unsubscribe, or for help writing mail filters, visit settings.