LibS1AP_Templates.ttcn 412 KB
Newer Older
             */
            template (value) ProtocolIE m_SRVCCHOIndication_IE(
                template (value) SRVCCHOIndication p_SRVCCHOIndication,
                template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_SRVCCHOIndication,
                criticality := p_criticality,
                value_ := {SRVCCHOIndication := valueof(p_SRVCCHOIndication)}
            } // End of template mw_SRVCCHOIndication_IE
            
            template (value) ProtocolIE m_CSG_Id_IE(
                                       in template (value) CSG_Id p_value,
                                       in template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_CSG_Id,
                criticality := p_criticality,
                value_ := {CSG_Id := valueof(p_value)}
            } // End of template m_CSG_Id_IE

            //template (value) CellAccessMode m_CellAccessMode_hybrid := hybrid;
            
            template (value) ProtocolIE m_CellAccessMode_IE(
                           in template (value) CellAccessMode p_value,
                           in template (value) ProtocolIE.criticality p_criticality := reject
			) := {
			    id := S1AP_Constants.id_CellAccessMode,
			    criticality := p_criticality,
			    value_ := {CellAccessMode := valueof(p_value)}
			} // End of template m_CellAccessMode_IE
            template (value) ProtocolIE m_eUTRAN_CGI_IE(
                in template (value) EUTRAN_CGI p_eUTRAN_CGI,
                in template (value) ProtocolIE.criticality p_criticality := ignore
            ) := {
                id := S1AP_Constants.id_EUTRAN_CGI,
                criticality := p_criticality,
                value_ := {EUTRAN_CGI := valueof(p_eUTRAN_CGI)}
            } // End of template m_eUTRAN_CGI_IE
          
            /**
             * @desc Send template for UE aggregate maxmum bitrate IE
             * @param p_value  UEAggregateMaximumBitrate value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.20 UEAggregateMaximumBitrate
             */
            template (value) ProtocolIE m_UE_aggregate_maximum_bitrate_IE(
                                                   in template (value) UEAggregateMaximumBitrate p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_uEaggregateMaximumBitrate,
                criticality := p_criticality,
                value_ := {UEAggregateMaximumBitrate := valueof(p_value)}
            } // End of template m_UE_aggregate_maximum_bitrate_IE
            /**
             * @desc Send template for UE security Capabilities IE
             * @param p_value  UESecurityCapabilities value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.40 UESecurityCapabilities
             */
            template (value) ProtocolIE m_UE_securityCapabilities_IE(
                                                   in template (value) UESecurityCapabilities p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_UESecurityCapabilities,
                criticality := p_criticality,
                value_ := {UESecurityCapabilities := valueof(p_value)}
            } // End of template m_UE_securityCapabilities_IE
            /**
             * @desc Send template for security key IE
             * @param p_value  SecurityKey value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.41 Security Key
             */
            template (value) ProtocolIE m_securityKey_IE(
                                                   in template (value) SecurityKey p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_SecurityKey,
                criticality := p_criticality,
                value_ := {SecurityKey := valueof(p_value)}
            } // End of template m_securityKey_IE
            /**
             * @desc Send template for security context IE
             * @param p_value  SecurityContext value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.26 Security Context
             */
            template (value) ProtocolIE m_securityContext_IE(
                                                   in template (value) SecurityContext p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_SecurityContext,
                criticality := p_criticality,
                value_ := {SecurityContext := valueof(p_value)}
            } // End of template m_securityContext_IE

            /**
             * @desc Send template for nas Security Parameters To Eutran IE
             * @param p_value  SecurityContext value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.31 NAS Security Parameters to E_UTRAN
             */
            template (value) ProtocolIE m_nasSecurityParametersToEutran_IE(
                                                   in template (value) NASSecurityParameterstoE_UTRAN p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_NASSecurityParameterstoE_UTRAN,
                criticality := p_criticality,
                value_ := {NASSecurityParameterstoE_UTRAN := valueof(p_value)}
            } // End of template m_nasSecurityParametersToEutran_IE
            
            /**
             * @desc receive template for eNBStatusTransferTransparentContainer IE
             * @param p_value  eNBStatusTransferTransparentContainer value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.31 eNBStatusTransferTransparentContainer
             */
            template (value) ProtocolIE m_eNBStatusTransferTransparentContainer_IE(
                                                   in template (value) ENB_StatusTransfer_TransparentContainer p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_eNB_StatusTransfer_TransparentContainer,
                criticality := p_criticality,
                value_ := {ENB_StatusTransfer_TransparentContainer := valueof(p_value)}
            } // End of template m_eNBStatusTransferTransparentContainer_IE
            /**
             * @desc 
             */
            template (value) ENB_StatusTransfer_TransparentContainer m_eNBStatusTransferTransparentContainer (
                in template (value) Bearers_SubjectToStatusTransferList p_bearers_SubjectToStatusTransferList):= {
              bearers_SubjectToStatusTransferList := p_bearers_SubjectToStatusTransferList,
              iE_Extensions := omit
            }
//            /**
//             * @desc 
//             */
//            template (value) Bearers_SubjectToStatusTransfer_ItemIEs m_Bearers_SubjectToStatusTransfer_ItemIEs (
//                in template (value) Bearers_SubjectToStatusTransfer_Item p_bearers_SubjectToStatusTransfer,
//                in template (value) ProtocolIE.criticality p_criticality := ignore
//            
//            ):= {
//                id := S1AP_Constants.id_Bearers_SubjectToStatusTransfer_Item,
//                criticality := p_criticality,
//                value_ := {Bearers_SubjectToStatusTransfer_Item := valueof(p_bearers_SubjectToStatusTransfer)}
//            }
            
            template (value) Bearers_SubjectToStatusTransfer_Item m_Bearers_SubjectToStatusTransfer_Item(
                in template (value) E_RAB_ID p_e_RAB_ID,
                in template (value) COUNTvalue p_uL_COUNTvalue,
                in template (value) COUNTvalue p_dL_COUNTvalue
            ):= {
                e_RAB_ID:= p_e_RAB_ID,
                uL_COUNTvalue:=p_uL_COUNTvalue,
                dL_COUNTvalue:=p_dL_COUNTvalue,
                //ReceiveStatusofULPDCPSDUs
                receiveStatusofULPDCPSDUs := omit,
                iE_Extensions := omit
            }
             
            template (value) COUNTvalue m_COUNTvalue(
                in template (value) PDCP_SN p_PDCP_SN_value,
                in template (value) HFN p_HFN_value
            ):={
                pDCP_SN := valueof(p_PDCP_SN_value),
                hFN := valueof(p_HFN_value),
                iE_Extensions := omit
            }
            
            /**
             * @desc Send template for correlation ID IE
             * @param p_value  UESecurityCapabilities value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.80 correlation ID
             */
            template (value) ProtocolIE m_correlationID_IE(
                                                   in template (value) Correlation_ID p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := ignore
            ) := {
                id := S1AP_Constants.id_Correlation_ID,
                criticality := p_criticality,
                value_ := {Correlation_ID := valueof(p_value)}
            } // End of template m_correlationID_IE
            /**
             * @desc Send template for correlation ID IE
             * @param p_value  UESecurityCapabilities value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.80 SIPTO correlation ID
             */
            template (value) ProtocolIE m_SIPTO_correlationID_IE(
                                                   in template (value) Correlation_ID p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := ignore
            ) := {
                id := S1AP_Constants.id_SIPTO_Correlation_ID,
                criticality := p_criticality,
                value_ := {Correlation_ID := valueof(p_value)}
            } // End of template m_SIPTO_correlationID_IE
            
            /**
             * @desc Send template for CS Fallback indicator IE
             * @param p_value  CSFallbackIndicator value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.21 CS Fallback indicator
             */
            template (value) ProtocolIE m_CS_Fallback_indicator_IE(
                                                   in template (value) CSFallbackIndicator p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := ignore
            ) := {
                id := S1AP_Constants.id_CSFallbackIndicator,
                criticality := p_criticality,
                value_ := {CSFallbackIndicator := valueof(p_value)}
            } // End of template m_CS_Fallback_indicator_IE
garciay's avatar
garciay committed
            /**
             * @desc Send template for UE E-RAB Failed To Resume Item IEs
             * @param p_value  E_RABFailedToResumeItemResumeReq value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.1.4.17 UE CONTEXT RESUME REQUEST
             */
            template (value) ProtocolIE m_E_RABFailedToResumeListResumeReq_IE(
                                                                              in template (value) E_RABFailedToResumeItemResumeReq p_value,
                                                                              in template (value) ProtocolIE.criticality p_criticality := ignore
            ) := {
                id := S1AP_Constants.id_E_RABFailedToResumeListResumeReq,
                criticality := p_criticality,
                value_ := {E_RABFailedToResumeItemResumeReq := valueof(p_value)}
            }
            /**
             * @desc Send template for UE Radio capability IE
             * @param p_value  UESecurityCapabilities value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.27 UE Radio capability
             */
            template (value) ProtocolIE m_UE_Radio_capability_IE(
                                                   in template (value) octetstring p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := ignore
            ) := {
                id := S1AP_Constants.id_UERadioCapability,
                criticality := p_criticality,
                value_ := {octetstring := valueof(p_value)}
            } // End of template m_UE_Radio_capability_IE
garciay's avatar
garciay committed
            
garciay's avatar
garciay committed
            /**
             * @desc Send template for an unknown IE
             * @param p_value  Unknown value
             */
            template (value) ProtocolIE m_Unknown_ID_IE(
                                                        in template (value) octetstring p_value := '00000000'O,
                                                        in template (value) ProtocolIE.criticality p_criticality := ignore
            ) := {
                id := 65535,
                criticality := p_criticality,
                value_ := {octetstring := valueof(p_value)}
            } // End of template m_Unknown_ID_IE
            
            /**
             * @desc Send template for CSG Membership Status IE
             * @param p_value  CSG Membership Status value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.73 CSG Membership Status
             */
            template (value) ProtocolIE m_cSGMembershipStatus_IE(
                                                   in template (value) CSGMembershipStatus p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := ignore
            ) := {
                id := S1AP_Constants.id_CSGMembershipStatus,
                criticality := p_criticality,
                value_ := {CSGMembershipStatus := valueof(p_value)}
            } // End of template m_cSGMembershipStatus_IE
            
garciay's avatar
garciay committed
            template (value) ProtocolIE m_cSGMembershipInfo_IE(
                                                   in template (value) CSGMembershipInfo p_value,
                                                   in template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_CSGMembershipInfo,
                criticality := p_criticality,
                value_ := {CSGMembershipInfo := valueof(p_value)}
            } // End of template m_cSGMembershipInfoIE
            
garciay's avatar
garciay committed
            group E_RAB_IEsend {
                template (value) ProtocolIE m_E_RABReleaseList(
                                                                        template (present) RecordOf_E_RABItem p_value := { ? }
                ) := {
                    id := S1AP_Constants.id_E_RABToBeReleasedList,
                    criticality := ignore,
                    value_ := { RecordOf_E_RABItem := p_value }
                } // End of template m_E_RABReleaseList
                
garciay's avatar
garciay committed
                 * @desc Send template for MME UE S1AP ID protocol IE
                 * @param p_value  MME/UE S1AP identifier. Default: 1
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.3 MME UE S1AP ID
garciay's avatar
garciay committed
                template (value) ProtocolIE m_MME_UE_S1AP_ID(
                                                             in template (value) MME_UE_S1AP_ID p_value := 1,
                                                             in template (value) ProtocolIE.criticality p_criticality := reject
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_MME_UE_S1AP_ID,
                    criticality := p_criticality,
                    value_ := { MME_UE_S1AP_ID := valueof(p_value) }
                } // End of template m_MME_UE_S1AP_ID
garciay's avatar
garciay committed
                 * @desc Send template for ENB ID protocol IE
                 * @param p_value  ENB identifier. Default: 1
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.4 eNB UE S1AP ID
garciay's avatar
garciay committed
                template (value) ProtocolIE m_eNB_UE_S1AP_ID(
garciay's avatar
garciay committed
                                                             in template (value) ENB_UE_S1AP_ID p_value := 1,
                                                             in template (value) ProtocolIE.criticality p_criticality := reject
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_eNB_UE_S1AP_ID,
                    criticality := p_criticality,
                    value_ := { ENB_UE_S1AP_ID := p_value }
garciay's avatar
garciay committed
                } // End of template m_eNB_UE_S1AP_ID
                /**
                 * @desc Send template for source MME UE S1AP ID protocol IE
                 * @param p_value  MME/UE S1AP identifier. Default: 1
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.3 MME UE S1AP ID
                 */
	            template (present) ProtocolIE m_sourceMmeUeS1apId(
	                                                         in template (value) MME_UE_S1AP_ID p_value,
	                                                         in template (value) ProtocolIE.criticality p_criticality := reject
	            ) := {
	                id := S1AP_Constants.id_SourceMME_UE_S1AP_ID,
	                criticality := p_criticality,
	                value_ := {MME_UE_S1AP_ID := valueof(p_value)}
	            } // End of template m_sourceMmeUeS1apId
                
garciay's avatar
garciay committed
                 * @desc Send template for E-RABToBeSetupListBearerSUReq protocol IE
                 * @param p_value  Protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq
garciay's avatar
garciay committed
                template (value) ProtocolIE m_E_RABToBeSetupList(
                                                                 in template (value) RecordOf_E_RABToBeSetupItemBearerSUReq p_value := { m_E_RABToBeSetupItemBearerSUReq }
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_E_RABToBeSetupListBearerSUReq,
                    criticality := reject,
                    value_ := { RecordOf_E_RABToBeSetupItemBearerSUReq := valueof(p_value) }
                } // End of template m_E_RABToBeSetupList
                /**
                 * @desc Send template for E-RABToBeSetupListCtxtSUReq protocol IE
                 * @param p_value  Protocol IE value. Default: m_E_RABToBeSetupListCtxtSUReq
                 */
                template (value) ProtocolIE m_E_RABToBeSetupListCtxt(
                                                                 in template (value) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { m_E_RABToBeSetupItemCtxtSUReq }
                ) := {
                    id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
                    criticality := reject,
                    value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := valueof(p_value) }
                } // End of template m_E_RABToBeSetupListCtxt
                
                /**
                 * @desc Send template for E-RABToBeSetupListBearerSUReq protocol IE
                 * @param p_value  Protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq
                 */
                template (value) ProtocolIE m_E_RABToBeSetupListHOReq(
                                                                 in template (value) RecordOf_E_RABToBeSetupItemHOReq p_value := { m_E_RABToBeSetupItemHOReq }
                ) := {
                    id := S1AP_Constants.id_E_RABToBeSetupListHOReq,
                    criticality := reject,
                    value_ := { RecordOf_E_RABToBeSetupItemHOReq := valueof(p_value) }
                } // End of template m_E_RABToBeSetupListHOReq
garciay's avatar
garciay committed
                
                /**
                 * @desc Send template for E-RABToBeSwitchedDLList protocol IE
                 * @param p_value  Protocol IE value. Default: mw_E_RABToBeSwitchedDLItem
                 */
                template (value) ProtocolIE m_E_RABToBeSwitchedDLList(
                                                                 in template (value) RecordOf_E_RABToBeSwitchedDLItem p_value := { m_E_RABToBeSwitchedDLItem(0,-,-,-) }
                ) := {
                    id := S1AP_Constants.id_E_RABToBeSwitchedDLList,
                    criticality := reject,
                    value_ := { RecordOf_E_RABToBeSwitchedDLItem := valueof(p_value) }
                } // End of template m_E_RABToBeSwitchedDLList
            
                /**
                 * @desc 
                 * @param p_e_RAB_ID
                 */
                template (value) E_RABToBeSwitchedDLItem m_E_RABToBeSwitchedDLItem(
                                                                  in template (value) E_RAB_ID p_e_RAB_ID,
                                                                  in template (value) TransportLayerAddress p_transportLayerAddress := '0'B,
                                                                  in template (value) GTP_TEID p_gTP_TEID := '00000000'O,
                                                                  in template (omit) E_RABToBeSwitchedDLItem.iE_Extensions p_iE_Extensions := omit
                ) :=  {
                     e_RAB_ID                        := valueof(p_e_RAB_ID),
                     transportLayerAddress           := p_transportLayerAddress,
                     gTP_TEID                        := p_gTP_TEID,
                     iE_Extensions                   := p_iE_Extensions
                } // End of template m_E_RABToBeSwitchedDLItem
                
                /**
                 * @desc Send template for E-RABSetupListBearerSURes protocol IE
                 * @param p_value  Protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq
                 */
                template (value) ProtocolIE m_E_RABSetupList(
                                                                 in template (value) RecordOf_E_RABSetupItemBearerSURes p_value := { m_E_RABSetupItemBearerSURes }
                ) := {
                    id := S1AP_Constants.id_E_RABSetupListBearerSURes,
                    criticality := reject,
                    value_ := { RecordOf_E_RABSetupItemBearerSURes := valueof(p_value) }
                } // End of template m_E_RABSetupList
                /**
                 * @desc Send template for E-RABToBeModifiedItemBearerModReq protocol IE
                 * @param p_value  Protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq
                 */
                template (value) ProtocolIE m_E_RABToBeModifiedList(
garciay's avatar
garciay committed
                                                                    in template (value) RecordOf_E_RABToBeModifiedItemBearerModReq p_value := { m_E_RABToBeModifiedItemBearerSUReq }
                ) := {
                    id := S1AP_Constants.id_E_RABToBeModifiedItemBearerModReq,
                    criticality := reject,
                    value_ := { RecordOf_E_RABToBeModifiedItemBearerModReq := valueof(p_value) }
                } // End of template m_E_RABToBeSetupList
                
garciay's avatar
garciay committed
                /**
                 * @desc Send template for E-RABToBeModifiedItemBearerModInd protocol IE
                 * @param p_value  Protocol IE value
                 */
                template (value) ProtocolIE m_E_RABToBeModifiedItemBearerModIndList(
                                                                                    in template (value) RecordOf_E_RABToBeModifiedItemBearerModInd p_value
                ) := {
                    id := S1AP_Constants.id_E_RABToBeModifiedItemBearerModInd,
                    criticality := reject,
                    value_ := { RecordOf_E_RABToBeModifiedItemBearerModInd := valueof(p_value) }
                } // End of template m_E_RABToBeModifiedItemBearerModIndList
garciay's avatar
garciay committed
                /**
                 * @desc Send template for E-RABFailedToResumeItemResumeReq protocol IE
                 * @param p_value  Protocol IE value
                 */
                template (value) ProtocolIE m_E_RABFailedToResumeItemResumeReqList(
                                                                                   in template (value) RecordOf_E_RABFailedToResumeItemResumeReq p_value
                ) := {
                    id := S1AP_Constants.id_E_RABFailedToResumeItemResumeReq,
                    criticality := reject,
                    value_ := { RecordOf_E_RABFailedToResumeItemResumeReq := valueof(p_value) }
                } // End of template m_E_RABFailedToResumeItemResumeReqList
                /**
                 * @desc Send template for InitiatingMessage message with E-RABSetup response payload
                 * @param p_value           The procedure code value
                 */
                template (value) InitiatingMessage m_E_RABSetupResponse(
                                                                       in template (value) RecordOf_ProtocolIE p_value) := {
                    procedureCode := id_E_RABSetup,
                    criticality := reject,
                    value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                } // End of template m_E_RABSetupResponse

                        
               /**
                 * @desc Send template for InitiatingMessage message with E-RABModifyInd payload
                 * @param p_value           The procedure code value
                 */
                template (value) InitiatingMessage m_E_RABModifiedInd(
                                                                      in template (value) RecordOf_ProtocolIE p_value) := {
                    procedureCode := id_E_RABModificationIndication,
                    criticality := reject,
                    value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                } // End of template m_E_RABModifiedInd
                        

                /**
                 * @desc Send template for InitiatingMessage message with E-RABModify payload
                 * @param p_value           The protocol information elements.
                 */
                template (value) InitiatingMessage m_E_RABModifiedRequest(
                                                                       in template (value) RecordOf_ProtocolIE p_value) := {
                    procedureCode := id_E_RABModify,
                    criticality := reject,
                    value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                } // End of template m_E_RABModifiedRequest        
                        
               /**
                 * @desc Send template for InitiatingMessage message with E-RABRelease payload
                 * @param p_value           The protocol information elements.
                 */
                template (value) InitiatingMessage m_E_RABReleaseRequest(
                                                                       in template (value) RecordOf_ProtocolIE p_value) := {
                    procedureCode := id_E_RABRelease,
                    criticality := reject,
                    value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                } // End of template m_E_RABRleaseRequest        

                /**
                 * @desc Send template for InitiatingMessage message with E-RABSetup payload
                 * @param p_value           The protocol information elements.
                 */
                template (value) InitiatingMessage m_E_RABSetupRequest(
                                                                       in template (value) RecordOf_ProtocolIE p_value) := {
                    procedureCode := id_E_RABSetup,
                    criticality := reject,
                    value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                } // End of template m_E_RABSetupRequest
                        

                
garciay's avatar
garciay committed
            } // End of group E_RAB_IEsend
            /**
             * @desc Handover signalling group
             * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.4 Handover signalling group
             */
            group Handover_group {
            
                /**
                 * @desc 
                 * @param p_handoverType
                 * @param p_criticality
                 */
                template (value) ProtocolIE m_handoverType_IE(
                    in template (value) HandoverType p_handoverType,
                    in template (value) ProtocolIE.criticality p_criticality := reject
                ) := {
                    id := S1AP_Constants.id_HandoverType,
                    criticality := p_criticality,
                    value_ := { HandoverType := valueof(p_handoverType) }
                } // End of template m_handoverType
            
                /**
                 * @desc 
                 * @param p_value
                 * @param p_criticality
                 */
                template (value) ProtocolIE m_source_ToTarget_TransparentContainer_IE(
                    in template (value) Source_ToTarget_TransparentContainer p_value,
                    in template (value) ProtocolIE.criticality p_criticality := reject
                ) := {
                    id := S1AP_Constants.id_Source_ToTarget_TransparentContainer,
                    criticality := p_criticality,
                    value_ := { Source_ToTarget_TransparentContainer := p_value }
                } // End of template m_source_ToTarget_TransparentContainer_IE
            
                /**
                 * @desc 
                 * @param p_value
                 * @param p_criticality
                 */
                template (value) ProtocolIE m_source_ToTarget_TransparentContainer_2nd_IE(
                    in template (value) Source_ToTarget_TransparentContainer p_value,
                    in template (value) ProtocolIE.criticality p_criticality := reject
                ) := {
                    id := S1AP_Constants.id_Source_ToTarget_TransparentContainer_Secondary,
                    criticality := p_criticality,
                    value_ := { Source_ToTarget_TransparentContainer := p_value }
                } // End of template m_source_ToTarget_TransparentContainer_2nd_IE
                
            
                /**
                 * @desc 
                 * @param p_value
                 * @param p_criticality
                 */
                template (value) ProtocolIE m_target_ToSource_TransparentContainer_IE(
                    in template (value) Target_ToSource_TransparentContainer p_value,
                    in template (value) ProtocolIE.criticality p_criticality := reject
                ) := {
                    id := S1AP_Constants.id_Target_ToSource_TransparentContainer,
                    criticality := p_criticality,
                    value_ := { Target_ToSource_TransparentContainer := p_value }
                } // End of template m_target_ToSource_TransparentContainer_IE
            
                /**
                 * @desc 
                 * @param p_value
                 * @param p_criticality
                 */
                template (value) ProtocolIE m_MSClassmark2_IE(
                    in template (value) MSClassmark2 p_value,
                    in template (value) ProtocolIE.criticality p_criticality := reject
                ) := {
                    id := S1AP_Constants.id_MSClassmark2,
                    criticality := p_criticality,
                    value_ := { MSClassmark2 := p_value }
                } // End of template m_MSClassMark2_IE
 
                /**
                 * @desc 
                 * @param p_value
                 * @param p_criticality
                 */
                template (value) ProtocolIE m_MSClassmark3_IE(
                    in template (value) MSClassmark3 p_value,
                    in template (value) ProtocolIE.criticality p_criticality := ignore
                ) := {
                    id := S1AP_Constants.id_MSClassmark3,
                    criticality := p_criticality,
                    value_ := { MSClassmark3 := p_value }
                } // End of template m_MSClassMark3_IE
                
garciay's avatar
garciay committed
            } // End of group Handover_group
            /**
             * @desc Management group
             * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.7 Management group
             */
            group Management_group {
                
                /**
                 * @desc Send template for ResetType protocol IE 
                 * @param p_value The ResetType value.
                 */
                template (value) ProtocolIE m_resetType_IE(
                                                           in template (value) ResetType p_resetType
                ) := {
                    id := S1AP_Constants.id_ResetType,
                    criticality := reject,
                    value_ := {ResetType := valueof(p_resetType)}
                } // End of template m_resetType_IE
                
                /**
                 * @desc Send template for UE_associatedLogicalS1_ConnectionItem protocol IE 
                 * @param p_value The UE_associatedLogicalS1_ConnectionItem value.
                 */
                template (value) ProtocolIE m_uE_associatedLogicalS1_ConnectionItemResAck_IE(
                                                                                             in template (value) UE_associatedLogicalS1_ConnectionItem p_value
                ) := {
                    id := S1AP_Constants.id_UE_associatedLogicalS1_ConnectionItem,
                    criticality := reject,
                    value_ := { UE_associatedLogicalS1_ConnectionItem := valueof(p_value) }
                } // End of template m_uE_associatedLogicalS1_ConnectionItemResAck_IE
                
                /**
                 * @desc Send template for UE_associatedLogicalS1_ConnectionItem protocol IE
                 * @param p_MME_value   MME UE S1AP ID value
garciay's avatar
garciay committed
                 * @param p_eNB_value   eNB UE S1AP ID value
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.1.8.1 RESET
                 */
                template (value) UE_associatedLogicalS1_ConnectionItem m_uE_associatedLogicalS1_ConnectionItem(
                                                                                                               in template (value) MME_UE_S1AP_ID p_MME_value,
garciay's avatar
garciay committed
                                                                                                               in template (value) ENB_UE_S1AP_ID p_eNB_value
                ) := {
                    mME_UE_S1AP_ID  := p_MME_value,
garciay's avatar
garciay committed
                    eNB_UE_S1AP_ID  := p_eNB_value,
                    iE_Extensions   := omit
                } // End of template m_uE_associatedLogicalS1_ConnectionItem
                
garciay's avatar
garciay committed
                /**
                 * @desc Send template for Global eNB ID protocol IE
                 * @param p_global_ENB_ID The Global eNB ID value
                 */
                template (value) ProtocolIE m_global_eNB_ID_IE(
                                                               in template (value) Global_ENB_ID p_global_ENB_ID
                ) := {
                    id := S1AP_Constants.id_Global_ENB_ID,
                    criticality := ignore,
                    value_ := { Global_ENB_ID := valueof(p_global_ENB_ID) }
                } // End of template m_global_eNB_ID_IE
                
                /**
                 * @desc Send template for SupportedTAs protocol IE 
                 * @param p_value The SupportedTAs value.
                 */
                template (value) ProtocolIE m_supportedTAs_IE(
                                                              in template (value) SupportedTAs p_value
                ) := {
                    id := S1AP_Constants.id_SupportedTAs,
                    criticality := reject,
                    value_ := {SupportedTAs := valueof(p_value)}
                } // End of template m_supportedTAs_IE
                
                /**
                 * @desc Send template for PagingDRX protocol IE 
                 * @param p_value The PagingDRX value.
                 */
                template (value) ProtocolIE m_pagingDRX_IE(
                                                           in template (value) PagingDRX p_value
                ) := {
                    id := S1AP_Constants.id_pagingDRX,
                    criticality := reject,
                    value_ := {PagingDRX := valueof(p_value)}
                } // End of template m_pagingDRX_IE
                
                /**
                 * @desc Send template for the list of globally unique MME identity.
                 * @param p_value   The list of the unique MME identities
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.9 GUMMEI
                 */
                template (value) ProtocolIE m_servedGUMMEIs_IE(
                                                               in template (value) ServedGUMMEIs p_value
                ) := {
                    id := S1AP_Constants.id_ServedGUMMEIs,
                    criticality := reject,
                    value_ := { ServedGUMMEIs := valueof(p_value) }
                } // End of template m_servedGUMMEIs_IE
                
                /**
                 * @desc Send template for the list of the relative processing capacity of an MME.
                 * @param p_value   The list of the relative processing capacity of an MME
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.17 Relative MME Capacity
                 */
                template (value) ProtocolIE m_relativeMMECapacity_IE(
                                                                     in template (value) RelativeMMECapacity p_value
                ) := {
                    id := S1AP_Constants.id_RelativeMMECapacity,
                    criticality := ignore,
                    value_ := { RelativeMMECapacity := valueof(p_value) }
                } // End of template m_relativeMMECapacity_IE
                
            /**
             * @desc Send template for Cause protocol IE
             * @param p_criticalityDiagnostics  Information about which IEs were not comprehended or were missing.
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.3 Cause
             */
            template (value) ProtocolIE m_criticalityDiagnostics_IE(
                                                                    in template (value) CriticalityDiagnostics p_criticalityDiagnostics,
                                                                    in template (value) ProtocolIE.criticality p_criticality := ignore
            ) := {
                id := S1AP_Constants.id_CriticalityDiagnostics,
                criticality := p_criticality,
                value_ := {CriticalityDiagnostics := valueof(p_criticalityDiagnostics)}
            } // End of template m_criticalityDiagnostics_IE
            
            } // End of group Management_group
            
garciay's avatar
garciay committed
             * @desc Warning message transmission group
             * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.10  Trace group
garciay's avatar
garciay committed
            group Trace_group {
garciay's avatar
garciay committed
                 * @desc Send template for Trace Activation
                 * @param p_traceActivation Trace Activation value
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.4 Trace Activation
garciay's avatar
garciay committed
                template (value) ProtocolIE m_traceActivation_IE(
                                                                 in template (value) TraceActivation p_traceActivation
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_TraceActivation,
                    criticality := reject,
                    value_ := {TraceActivation := valueof(p_traceActivation)}
                } // End of template m_traceActivation_IE
garciay's avatar
garciay committed
                 * @desc Send template for E-UTRAN Trace ID
                 * @param p_eUTRAN_Trace_ID E-UTRAN Trace ID value
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.4 Trace Activation
garciay's avatar
garciay committed
                template (value) ProtocolIE m_eUTRAN_Trace_ID_IE(
                                                                 in template (value) E_UTRAN_Trace_ID p_eUTRAN_Trace_ID
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_E_UTRAN_Trace_ID,
                    criticality := reject,
                    value_ := {E_UTRAN_Trace_ID := valueof(p_eUTRAN_Trace_ID)}
                } // End of template m_eUTRAN_Trace_ID_IE
garciay's avatar
garciay committed
            } // End of group Trace_group
garciay's avatar
garciay committed
             * @desc Warning message transmission group
             * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.11  Location reporting group
garciay's avatar
garciay committed
            group Location_reporting_group {
garciay's avatar
garciay committed
                 * @desc Send template for RequestType
                 * @param p_request_Type Request Type value
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.34 RequestType
garciay's avatar
garciay committed
                template (value) ProtocolIE m_request_Type_IE(
                                                              in template (value) RequestType p_request_Type
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_RequestType,
                    criticality := reject,
                    value_ := { RequestType := valueof(p_request_Type) }
                } // End of template m_request_Type_IE
garciay's avatar
garciay committed
            } // End of group Location_reporting_group
            
            group Warning_Message_Transmission {
garciay's avatar
garciay committed
                 * @desc Send template for MessageIdentifier IE
                 * @param p_message_Identifier The message identifier value
                 * @see ETSI TS 136 413 Clause 9.2.1.44 Message Identifier
garciay's avatar
garciay committed
                template (value) ProtocolIE m_message_Identifier(
                                                                 in MessageIdentifier p_message_Identifier
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_MessageIdentifier,
                    criticality := reject,
                    value_ := { MessageIdentifier := p_message_Identifier }
                } // End of template m_message_Identifier
garciay's avatar
garciay committed
                 * @desc Send template for SerialNumber IE
                 * @param p_serial_Number The serial number value
                 * @see ETSI TS 136 413 Clause 9.2.1.45 Serial Number
garciay's avatar
garciay committed
                template (value) ProtocolIE m_serial_Number(
                                                            in SerialNumber p_serial_Number
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_SerialNumber,
                    criticality := reject,
                    value_ := { SerialNumber := p_serial_Number }
                } // End of template m_serial_Number
garciay's avatar
garciay committed
                
                /**
garciay's avatar
garciay committed
                 * @desc Send template for SerialNumber IE
                 * @param p_serial_Number The serial number value
                 * @see ETSI TS 136 413 Clause 9.2.1.46 Warning Area List
garciay's avatar
garciay committed
                 */
garciay's avatar
garciay committed
                template (value) ProtocolIE m_warning_Area_List(
                                                                in template (value) WarningAreaList p_warningAreaList
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_WarningAreaList,
                    criticality := ignore,
                    value_ := { WarningAreaList := p_warningAreaList }
                } // End of template m_warning_Area_List
garciay's avatar
garciay committed
                
                /**
garciay's avatar
garciay committed
                 * @desc Send template for The Repetition Period IE
                 * @param p_repetition_Period The repetition period value
                 * @see ETSI TS 136 413 Clause 9.2.1.48 Repetition Period
garciay's avatar
garciay committed
                 */
garciay's avatar
garciay committed
                template (value) ProtocolIE m_repetition_Period(
                                                                in RepetitionPeriod p_repetition_Period
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_RepetitionPeriod,
                    criticality := reject,
                    value_ := { RepetitionPeriod := p_repetition_Period }
                } // End of template m_repetition_Period
garciay's avatar
garciay committed
                
                /**
garciay's avatar
garciay committed
                 * @desc Send template for SerialNumber IE
                 * @param p_number_of_Broadcasts_Requested The number of Broadcasts Requested
                 * @see ETSI TS 136 413 Clause 9.2.1.49 Number of Broadcasts Requested
garciay's avatar
garciay committed
                 */
garciay's avatar
garciay committed
                template (value) ProtocolIE m_number_of_Broadcasts_Requested(
                                                                             in NumberOfBroadcasts p_number_of_Broadcasts_Requested
garciay's avatar
garciay committed
                    id := S1AP_Constants.id_NumberofBroadcastRequest,
garciay's avatar
garciay committed
                    criticality := reject,
garciay's avatar
garciay committed
                    value_ := { NumberOfBroadcasts := p_number_of_Broadcasts_Requested }
                } // End of template m_number_of_Broadcasts_Requested
garciay's avatar
garciay committed
                
garciay's avatar
garciay committed
            } // End of group Warning_Message_Transmission
garciay's avatar
garciay committed
            
garciay's avatar
garciay committed
            group Unknown_unforseen_errorneous_group {
                
                /**
                 * @desc Send template for CriticalityDiagnostics IE
                 * @param p_number_of_Broadcasts_Requested The number of Broadcasts Requested
                 * @see ETSI TS 136 413 Clause 9.2.1.21 Criticality Diagnostics
                 */
                template (value) CriticalityDiagnostics m_criticalityDiagnostics(
                                                                                 in template (value) ProcedureCode p_procedureCode,
                                                                                 in template (value) TriggeringMessage p_triggeringMessage,
                                                                                 in template (value) Criticality p_procedureCriticality
                ) := {
                    procedureCode               := p_procedureCode,
                    triggeringMessage           := p_triggeringMessage,
                    procedureCriticality        := p_procedureCriticality,
                    iEsCriticalityDiagnostics   := omit,
                    iE_Extensions               := omit
                } // End of template m_criticalityDiagnostics
                
            } // End of group Unknown_unforseen_errorneous_group
            
garciay's avatar
garciay committed
        } // End of group Send_IEs
        
        group Receive_IEs{
            
            /**
garciay's avatar
garciay committed
             * @desc Receive template for MME UE S1AP ID protocol IE
             * @param p_value  Expected MME/UE S1AP identifier. Default: ?
garciay's avatar
garciay committed
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.3 MME UE S1AP ID
garciay's avatar
garciay committed
             */
pintar's avatar
pintar committed
            template (present) ProtocolIE mw_MME_UE_S1AP_ID(
                                                            template (present) MME_UE_S1AP_ID p_parm := ?,
                                                            template (present) ProtocolIE.criticality p_criticality := reject
garciay's avatar
garciay committed
            ) := {
                id := S1AP_Constants.id_MME_UE_S1AP_ID,
pintar's avatar
pintar committed
                criticality := p_criticality,
garciay's avatar
garciay committed
                value_ := {MME_UE_S1AP_ID := p_parm}
pintar's avatar
pintar committed
            } // End of template mw_MME_UE_S1AP_ID
garciay's avatar
garciay committed
            
            /**
garciay's avatar
garciay committed
             * @desc Receive template for ENB ID protocol IE
             * @param p_value  Expected ENB identifier. Default: ?
garciay's avatar
garciay committed
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.4 eNB UE S1AP ID
garciay's avatar
garciay committed
             */
garciay's avatar
garciay committed
            template (present) ProtocolIE mw_eNB_UE_S1AP_ID(
                                                            template (present) ENB_UE_S1AP_ID p_parm := ?,
                                                            template (present) ProtocolIE.criticality p_criticality := reject
garciay's avatar
garciay committed
            ) := {
                id := S1AP_Constants.id_eNB_UE_S1AP_ID,
pintar's avatar
pintar committed
                criticality := p_criticality,
garciay's avatar
garciay committed
                value_ := {ENB_UE_S1AP_ID := p_parm}
garciay's avatar
garciay committed
            } // End of template mw_eNB_UE_S1AP_ID
garciay's avatar
garciay committed
            
            /**
             * @desc Receive template for MME UE S1AP ID protocol IE
             * @param p_value  Expected MME/UE S1AP identifier. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.3 MME UE S1AP ID
             */
            template (present) ProtocolIE mw_sourceMmeUeS1apId(
                                                            template (present) MME_UE_S1AP_ID p_parm := ?,
                                                            template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_SourceMME_UE_S1AP_ID,
                criticality := p_criticality,
                value_ := {MME_UE_S1AP_ID := p_parm}
            } // End of template mw_sourceMmeUeS1apId
            
            template (present) ProtocolIE mw_E_RABReleaseList(
                                                                    template (present) RecordOf_E_RABItem p_value := { ? }
            ) := {
                id := S1AP_Constants.id_E_RABToBeReleasedList,
                criticality := ignore,
                value_ := { RecordOf_E_RABItem := p_value }
            } // End of template mw_E_RABReleaseList
            
            template (present) ProtocolIE mw_E_RABModifyList(
                                                                    template (present) RecordOf_E_RABItem p_value := { ? }
            ) := {
                id := S1AP_Constants.id_E_RABToBeReleasedList,
                criticality := ignore,
                value_ := { RecordOf_E_RABItem := p_value }
            } // End of template mw_E_RABModifyList            
            
garciay's avatar
garciay committed
            /**
pintar's avatar
pintar committed
             * @desc Receive template for E-RABSetupListBearerSUReq protocol IE
             * @param p_value  Expected protocol IE value. Default: mw_E_RABToBeSetupItemBearerSUReq
garciay's avatar
garciay committed
             */
pintar's avatar
pintar committed
            template (present) ProtocolIE mw_E_RABSetupList(
                                                            template (present) RecordOf_E_RABSetupItemBearerSURes p_value := { mw_E_RABSetupItemBearerSURes }
            ) := {
garciay's avatar
garciay committed
                id := S1AP_Constants.id_E_RABSetupListBearerSURes,
                criticality := ignore,
                value_ := { RecordOf_E_RABSetupItemBearerSURes := p_value }
            } // End of template 
            /**
             * @desc Receive template for E-RABSetupListCtxtSUReq protocol IE
             * @param p_value  Expected protocol IE value. Default: mw_E_RABToBeSetupItemCtxtSU
             */
            template (present) ProtocolIE mw_E_RABSetupListCtxt(
                                                            template (present) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { mw_E_RABToBeSetupItemCtxtSUReq }
            ) := {
                id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
                criticality := ignore,
                value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := p_value }
            } // End of template 
            /**
             * @desc Receive template for E-RABToBeSetupListBearerSUReq protocol IE
             * @param p_value  Protocol IE value. Default: mw_E_RABToBeSetupItemBearerSUReq
             */
            template (present) ProtocolIE mw_E_RABToBeSetupList(
                                                             template (present) RecordOf_E_RABToBeSetupItemBearerSUReq p_value := { mw_E_RABToBeSetupItemBearerSUReq }
            ) := {
                id := S1AP_Constants.id_E_RABToBeSetupListBearerSUReq,
                criticality := reject,
                value_ := { RecordOf_E_RABToBeSetupItemBearerSUReq := p_value }
            } // End of template mw_E_RABToBeSetupList
            /**
             * @desc Receive template for E-RABToBeSetupListCtxtSUReq protocol IE
             * @param p_value  Protocol IE value. Default: mw_E_RABToBeSetupItemCtxtSUReq
             */
            template (present) ProtocolIE mw_E_RABToBeSetupCtxtList(
                                                             template (present) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { mw_E_RABToBeSetupItemCtxtSUReq }
            ) := {
                id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
                criticality := reject,
                value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := p_value }
            } // End of template mw_E_RABToBeSetupCtxtList
                
            /**
             * @desc Send template for E-RABToBeSetupListHOReq protocol IE
             * @param p_value  Protocol IE value. Default: mw_E_RABToBeSetupItemHOReq
             */
            template (present) ProtocolIE mw_E_RABToBeSetupListHOReq(
                                                             template (present) RecordOf_E_RABToBeSetupItemHOReq p_value := { mw_E_RABToBeSetupItemHOReq }
            ) := {
                id := S1AP_Constants.id_E_RABToBeSetupListHOReq,
                criticality := reject,
                value_ := { RecordOf_E_RABToBeSetupItemHOReq := p_value }
            } // End of template mw_E_RABToBeSetupListHOReq
            /**
             * @desc Receive template for E-RABModifiedListBearerModReq protocol IE
             * @param p_value  Expected protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq
             */
            template (present) ProtocolIE mw_E_RABModifiedList(
                                                            template (present) RecordOf_E_RABModifyItemBearerModRes p_value := { mw_E_RABModifyItemBearerModRes }
            ) := {
                id := S1AP_Constants.id_E_RABModifyListBearerModRes,
                criticality := ignore,
                value_ := { RecordOf_E_RABModifyItemBearerModRes := p_value }
            } // End of template 
rennoch's avatar
rennoch committed

            /**
             * @desc Receive template for E-RABModifiedListBearerModReq protocol IE
             * @param p_value  Expected protocol IE value. Default: m_E_RABToBeModifyItemBearerSUReq
             */
            template (present) ProtocolIE mw_E_RABToBeModifiedList(
                                                            template (present) RecordOf_E_RABToBeModifiedItemBearerModReq p_value := { ? }