fixeria has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/39144?usp=email )


Change subject: library/s1ap: add E-RAB MODIFY IND/CNF templates
......................................................................

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(-)



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

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 https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/39144?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I2dd3d420ebfaf37fefa1d33a40176ec57fee5619
Gerrit-Change-Number: 39144
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <[email protected]>

Reply via email to