LibS1AP_Templates.ttcn 351 KB
Newer Older
garciay's avatar
garciay committed
 *    @author   ETSI / STF519
 *    @version  $URL:$
 *              $Id:$
 *    @desc     This module provides Lib S1AP Templates used by the test component for S1AP tests.
 *    @copyright   ETSI Copyright Notification
 *                 No part may be reproduced except as authorized by written permission.
 *                 The copyright and the foregoing restriction extend to reproduction in all media.
 *                 All rights reserved.
 *    @see      ETSI TS 136 413 / 3GPP TS 36.413 version 13.4.0 Release 13
garciay's avatar
garciay committed
module LibS1AP_Templates {
    // LibCommon
    import from LibCommon_BasicTypesAndValues all;
    import from LibCommon_DataStrings all;
    
garciay's avatar
garciay committed
    // LibS1AP
    import from S1AP_Constants language "ASN.1:1997" all;
    import from S1AP_CommonDataTypes language "ASN.1:1997" all;
    import from S1AP_IEs language "ASN.1:1997" all;
    import from S1AP_PDU_Contents language "ASN.1:1997" all;
    import from S1AP_PDU_Descriptions language "ASN.1:1997" all;
garciay's avatar
garciay committed
    import from LibS1AP_TypesAndValues all;
    
    group g_S1AP {
        
        group  g_S1AP_PDU {
            
            /**
garciay's avatar
garciay committed
             * @desc Send template for S1AP PDU with InitiatingMessage payload
             * @param p_procedureCode   Procedure code
             * @param p_value           Message value according to the Procedure code
garciay's avatar
garciay committed
             * @see ETSI TS 136 413 V13.4.0 Clause 9.1 Message Functional Definition and Content
garciay's avatar
garciay committed
             */
            template (value) S1AP_PDU m_initiatingMessage(
                                                          in ProcedureCode p_procedureCode, 
                                                          in anytype p_value
garciay's avatar
garciay committed
                initiatingMessage := {
                    procedureCode := p_procedureCode,
                    criticality := reject,
                    value_ := p_value
                }
            } // End of template m_HandoverPreparation
garciay's avatar
garciay committed
            
        } // End of group g_S1AP_PDU
        
garciay's avatar
garciay committed
        /**
         * @desc List of S1AP Elementary procedures
         * @see ETSI TS 136 413 Table 1: Class 1 procedures
         */
garciay's avatar
garciay committed
        group class1 {
garciay's avatar
garciay committed
            
garciay's avatar
garciay committed
            group sendClass1 {
                group HandoverPreparation { 
garciay's avatar
garciay committed
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with Handover Required payload
                     * @param p_value           The procedure code value
                     */
                    template (value) InitiatingMessage m_HandoverRequired(
                                                                           template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverPreparation,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_HandoverRequired
                    
                    template (value) RecordOf_ProtocolIE m_HandoverRequiredIEs(
                        in template (value) MME_UE_S1AP_ID p_MME_value,
                        in template (value) ENB_UE_S1AP_ID p_eNB_value,
                        in template (value) HandoverType p_handoverType,
                        in template (value) Cause p_cause,
                        in template (value) TargetID p_targetId_value,
                        in template (value) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value
                       ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_eNB_UE_S1AP_ID(p_eNB_value),
                            m_handoverType_IE(p_handoverType),
                            m_cause_IE(p_cause),
                            m_targetID_IE(p_targetId_value),
                            m_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value)
                       } // End of template mw_HandoverCommandIEs
                       
                    /**
                     * @desc Receive template for SuccessfulOutcome message with Handover Command payload
                     * @param p_value           The procedure code value
                     */
                    template (value) SuccessfulOutcome m_HandoverCommand(
                                                                           template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverPreparation,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_HandoverCommand
                    
                    template (value) RecordOf_ProtocolIE m_HandoverCommandIEs(
                        in template (value) MME_UE_S1AP_ID p_MME_value,
                        in template (value) ENB_UE_S1AP_ID p_eNB_value,
                        in template (value) HandoverType p_handoverType,
                        in template (value) Target_ToSource_TransparentContainer p_Target_ToSource_TransparentContainer_value
                       ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_eNB_UE_S1AP_ID(p_eNB_value),
                            m_handoverType_IE(p_handoverType),
                            m_target_ToSource_TransparentContainer_IE(p_Target_ToSource_TransparentContainer_value)
                       } // End of template mw_HandoverCommandIEs
garciay's avatar
garciay committed
                    
                } // End of group HandoverPreparation
                
                group HandoverResourceAllocation {
                    
                    /**
                     * @desc Send template for InitiatingMessage message with Handover Request payload
                     * @param p_value           The procedure code value
                     */
                    template (value) InitiatingMessage m_HandoverRequest(
                                                                           in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverResourceAllocation,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_HandoverRequest
    
                    template (value) RecordOf_ProtocolIE m_HandoverReqIEs(
                            in template (value) MME_UE_S1AP_ID p_MME_value,
                            in template (value) HandoverType p_handoverType,
                            in template (value) Cause p_cause,
                            in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate,
                            in template (value) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItemHOR,
                            in template (value) Source_ToTarget_TransparentContainer p_source_ToTarget_TransparentContainer,
                            in template (value) UESecurityCapabilities p_uESecurityCapabilities,
                            in template (value) SecurityContext p_securityContext
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_handoverType_IE(p_handoverType),
                        m_cause_IE(p_cause),
                        m_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate),
                        m_E_RABToBeSetupListHOReq(p_RecordOf_E_RABToBeSetupItemHOR),
                        m_source_ToTarget_TransparentContainer_IE(p_source_ToTarget_TransparentContainer),
                        m_UE_securityCapabilities_IE(p_uESecurityCapabilities),
                        m_securityContext_IE(p_securityContext)
                    } // End of template m_HandoverReqIEs
    
                    template (value) RecordOf_ProtocolIE m_HandoverReqIEs_nASSecParToEUTRAN (
                            in template (value) MME_UE_S1AP_ID p_MME_value,
                            in template (value) HandoverType p_handoverType,
                            in template (value) Cause p_cause,
                            in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate,
                            in template (value) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItemHOR,
                            in template (value) Source_ToTarget_TransparentContainer p_source_ToTarget_TransparentContainer,
                            in template (value) UESecurityCapabilities p_uESecurityCapabilities,
                            in template (value) SecurityContext p_securityContext,
                            in template (value) NASSecurityParameterstoE_UTRAN p_nasSecurityParametersToEutran_value
                        m_nasSecurityParametersToEutran_IE(p_nasSecurityParametersToEutran_value)
                    } // End of template m_HandoverReqIEs_nASSecParToEUTRAN
    
                    template (value) RecordOf_ProtocolIE m_HandoverReqIEs_cSGMembershipStatus(
                            in template (value) MME_UE_S1AP_ID p_MME_value,
                            in template (value) HandoverType p_handoverType,
                            in template (value) Cause p_cause,
                            in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate,
                            in template (value) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItemHOR,
                            in template (value) Source_ToTarget_TransparentContainer p_source_ToTarget_TransparentContainer,
                            in template (value) UESecurityCapabilities p_uESecurityCapabilities,
                            in template (value) SecurityContext p_securityContext,
                            in template (value) CSGMembershipStatus p_cSGMembershipStatu_value
                        m_cSGMembershipStatus_IE(p_cSGMembershipStatu_value)
                    } // End of template m_HandoverReqIEs_cSGMembershipStatus
garciay's avatar
garciay committed
                }// End of group HandoverResourceAllocation
                
                group HandoverCancelation{
                    
                    /**
                     * @desc Receive template for SuccessfulOutcome message with Handover Cancel Acknowledge payload
                     * @param p_value           The procedure code value
                     */
                    template (value) SuccessfulOutcome m_HandoverCancelAck(
                                                                           template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverCancel,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_HandoverCancelAck
                    
                    template (value) RecordOf_ProtocolIE m_HandoverCancelAckIEs(
                        template (value) MME_UE_S1AP_ID p_MME_value,
                        template (value) ENB_UE_S1AP_ID p_eNB_value
                       ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_eNB_UE_S1AP_ID(p_eNB_value)
                       } // End of template m_HandoverCancelAckIEs
                       
                }// End of group HandoverCancelation
                group PathSwitchRequest_send {
                    
                    /**
                     * @desc Send template for SuccessfulOutcome message with Path Switch Request Ack payload
                     * @param p_value           The procedure code value
                     */
                    template (value) SuccessfulOutcome m_PathSwitchRequestAck(
                                                                           in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_PathSwitchRequest,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_PathSwitchRequestAck
    
                    template (value) RecordOf_ProtocolIE m_PathSwitchRequestAckIEs(
                            in template (value) MME_UE_S1AP_ID p_MME_value,
                            in template (value) ENB_UE_S1AP_ID p_eNB_value,
                            in template (value) SecurityContext p_securityContext
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value),
                        m_securityContext_IE(p_securityContext)
                    } // End of template m_PathSwitchRequestAckIEs
                    
                }// End of group PathSwitchRequest_send
                
                
                group ERAB_management_group {
                
                    group ERABSetup{
                    
                        /**
                         * @desc Send template for InitiatingMessage message with E-RABSetup payload
                         * @param p_value           The procedure code value
                         */
                        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
                        template (value) RecordOf_ProtocolIE m_E_RABSetupReqIEs(
                                                                                in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                in template (value) RecordOf_E_RABToBeSetupItemBearerSUReq p_RecordOf_E_RABToBeSetupItem_value
                        ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_eNB_UE_S1AP_ID(p_eNB_value),
                            m_E_RABToBeSetupList(p_RecordOf_E_RABToBeSetupItem_value)
                        } // End of template m_E_RABSetupReqIEs
garciay's avatar
garciay committed
                        template (value) RecordOf_ProtocolIE m_E_RABSetupReqIEs_noENB(
                                                                                      in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                      in template (value) RecordOf_E_RABToBeSetupItemBearerSUReq p_RecordOf_E_RABToBeSetupItem_value
                        ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_E_RABToBeSetupList(p_RecordOf_E_RABToBeSetupItem_value)
                        } // End of template m_E_RABSetupReqIEs_noENB
    
                        template (value) RecordOf_ProtocolIE m_E_RABSetupReqIEs_duplicate_ENB(
                                                                                              in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                              in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                              in template (value) RecordOf_E_RABToBeSetupItemBearerSUReq p_RecordOf_E_RABToBeSetupItem_value
                        ) := {
                            m_eNB_UE_S1AP_ID(p_eNB_value)
                        } // End of template m_E_RABSetupReqIEs_duplicate_ENB
    
                        template (value) RecordOf_ProtocolIE m_E_RABSetupReqIEs_UeAggregateMaxBitRate(
                                                                                in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate,
                                                                                in template (value) RecordOf_E_RABToBeSetupItemBearerSUReq p_RecordOf_E_RABToBeSetupItem_value
                        ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_eNB_UE_S1AP_ID(p_eNB_value),
                            m_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate),
                            m_E_RABToBeSetupList(p_RecordOf_E_RABToBeSetupItem_value)
                        } // End of template m_E_RABSetupReqIEs
garciay's avatar
garciay committed
                    } // End of group ERABSetup
garciay's avatar
garciay committed
                    group ERABModifyRequest { 
                        
                       /**
                         * @desc Send template for InitiatingMessage message with E-RABModify payload
                         * @param p_value           The procedure code value
                         */
                        template (value) InitiatingMessage m_E_RABModifiedRequest(
                                                                               in template (value) RecordOf_ProtocolIE p_value) := {
garciay's avatar
garciay committed
                            procedureCode := id_E_RABModify,
                            criticality := reject,
                            value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                        } // End of template m_E_RABModifiedRequest        
                        template (value) RecordOf_ProtocolIE m_E_RABModifiedReqIEs(
                                    in template (value) MME_UE_S1AP_ID p_MME_value,
                                    in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                    in template (value) RecordOf_E_RABToBeModifiedItemBearerModReq p_RecordOf_E_RABToBeModifiedItem_value
                        ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_eNB_UE_S1AP_ID(p_eNB_value),
                            m_E_RABToBeModifiedList(p_RecordOf_E_RABToBeModifiedItem_value)
                        } // End of template m_E_RABSetupReqIEs
garciay's avatar
garciay committed
                        
                    } // End of group ERABModifyRequest
                    
                    group ERABModifyInd {
                        
                       /**
                         * @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
                        
                        template (value) RecordOf_ProtocolIE m_E_RABModifiedIndIEs(
                                                                                   in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                   in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                   in template (value) RecordOf_E_RABToBeModifiedItemBearerModInd p_RecordOf_E_RABToBeModifiedItemBearerModInd_value
                        ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_eNB_UE_S1AP_ID(p_eNB_value),
                            m_E_RABToBeModifiedItemBearerModIndList(p_RecordOf_E_RABToBeModifiedItemBearerModInd_value)
                        } // End of template m_E_RABModifiedIndIEs
                        
garciay's avatar
garciay committed
                        template (value) RecordOf_ProtocolIE m_E_RABModifiedIndIEs_Unknown_ID(
                                                                                              in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                              in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                              in template (value) RecordOf_E_RABToBeModifiedItemBearerModInd p_RecordOf_E_RABToBeModifiedItemBearerModInd_value
                        ) modifies m_E_RABModifiedIndIEs := {
                            m_Unknown_ID_IE
                        } // End of template m_E_RABModifiedIndIEs_Unknown_ID
                        
                        template (value) RecordOf_ProtocolIE m_E_RABModifiedIndIEs_duplicate_eNB(
                                                                                              in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                              in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                              in template (value) RecordOf_E_RABToBeModifiedItemBearerModInd p_RecordOf_E_RABToBeModifiedItemBearerModInd_value
                        ) modifies m_E_RABModifiedIndIEs := {
                            m_eNB_UE_S1AP_ID(p_eNB_value)
                        } // End of template m_E_RABModifiedIndIEs_duplicate_eNB
                        
                        template (value) RecordOf_ProtocolIE m_E_RABModifiedIndIEs_no_eNB(
                                                                                          in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                          in template (value) RecordOf_E_RABToBeModifiedItemBearerModInd p_RecordOf_E_RABToBeModifiedItemBearerModInd_value
                        ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_E_RABToBeModifiedItemBearerModIndList(p_RecordOf_E_RABToBeModifiedItemBearerModInd_value)
                        } // End of template m_E_RABModifiedIndIEs_no_eNB
                        
garciay's avatar
garciay committed
                    } // End of group ERABModifyInd
                    
                    group ERABRelease {
garciay's avatar
garciay committed
                       /**
                         * @desc Send template for InitiatingMessage message with E-RABRelease payload
                         * @param p_value           The procedure code value
                         */
                        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        

                        template (value) RecordOf_ProtocolIE m_E_RABReleaseReqIEs(
                                    in template (value) MME_UE_S1AP_ID p_MME_value,
                                    in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                    in template (value) RecordOf_E_RABItem p_RecordOf_E_RABItem_value
                        ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_eNB_UE_S1AP_ID(p_eNB_value),
                            m_E_RABReleaseList(p_RecordOf_E_RABItem_value)
                        } // End of template m_E_RABReleaseReqIEs
                    }
                }
garciay's avatar
garciay committed
                
                /**
                 * @desc Send messages for Context Management procedures
                 */
                group Context_management_group {
                    /**
                     * @desc Send template for InitiatingMessage message with InitialContextSetup payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_InitialContextSetupRequest(
garciay's avatar
garciay committed
                                                                                    in template (value) RecordOf_ProtocolIE p_value,
                                                                                    in template (value) Criticality p_criticality := reject
                    ) := {
                        procedureCode := id_InitialContextSetup,
garciay's avatar
garciay committed
                        criticality := p_criticality,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_InitialContextSetupRequest
                    
                    template (value) RecordOf_ProtocolIE m_InitialContextSetupReqIEs(
garciay's avatar
garciay committed
                                                                                     in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                     in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                     in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate,
                                                                                     in template (value) RecordOf_E_RABToBeSetupItemCtxtSUReq p_RecordOf_E_RABToBeSetupItemCtxt_value,
                                                                                     in template (value) UESecurityCapabilities p_uESecurityCapabilities,
                                                                                     in template (value) SecurityKey p_SecurityKey
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value),
                        m_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate),
                        m_E_RABToBeSetupListCtxt(p_RecordOf_E_RABToBeSetupItemCtxt_value),
                        m_UE_securityCapabilities_IE(p_uESecurityCapabilities),
                        m_securityKey_IE(p_SecurityKey)
garciay's avatar
garciay committed
                    } // End of templaunknown_IDunknown_IDte m_InitialContextSetupReqIEs
                    
                    template (value) RecordOf_ProtocolIE m_InitialContextSetupReqIEs_noENB(
                                                                                           in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                           in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate,
                                                                                           in template (value) RecordOf_E_RABToBeSetupItemCtxtSUReq p_RecordOf_E_RABToBeSetupItemCtxt_value,
                                                                                           in template (value) UESecurityCapabilities p_uESecurityCapabilities,
                                                                                           in template (value) SecurityKey p_SecurityKey
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate),
                        m_E_RABToBeSetupListCtxt(p_RecordOf_E_RABToBeSetupItemCtxt_value),
                        m_UE_securityCapabilities_IE(p_uESecurityCapabilities),
                        m_securityKey_IE(p_SecurityKey)
                    } // End of templaunknown_IDunknown_IDte m_InitialContextSetupReqIEs_noENB
                    
                    template (value) RecordOf_ProtocolIE m_InitialContextSetupReqIEs_duplicate_ENB(
                                                                                                   in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                                   in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                                   in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate,
                                                                                                   in template (value) RecordOf_E_RABToBeSetupItemCtxtSUReq p_RecordOf_E_RABToBeSetupItemCtxt_value,
                                                                                                   in template (value) UESecurityCapabilities p_uESecurityCapabilities,
                                                                                                   in template (value) SecurityKey p_SecurityKey
                    ) modifies m_InitialContextSetupReqIEs := {
                        m_eNB_UE_S1AP_ID(p_eNB_value)
                    } // End of templaunknown_IDunknown_IDte m_InitialContextSetupReqIEs_duplicate_ENB
                    
                    template (value) RecordOf_ProtocolIE m_InitialContextSetupReqIEs_unknown_ID(
                                                                                                in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                                in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                                in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate,
                                                                                                in template (value) RecordOf_E_RABToBeSetupItemCtxtSUReq p_RecordOf_E_RABToBeSetupItemCtxt_value,
                                                                                                in template (value) UESecurityCapabilities p_uESecurityCapabilities,
                                                                                                in template (value) SecurityKey p_SecurityKey
                    ) modifies m_InitialContextSetupReqIEs := {
                        m_Unknown_ID_IE
                    } // End of template m_InitialContextSetupReqIEs
garciay's avatar
garciay committed
                    
                    /**
                     * @desc Send template for InitiatingMessage message with UeContextReleaseRequest payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_UeContextReleaseRequest(
                                                                           in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_UEContextReleaseRequest,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_UeContextReleaseRequest
garciay's avatar
garciay committed
                    
                    template (value) RecordOf_ProtocolIE m_UeContextReleaseRequestIEs(
                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                            in template (value) Cause p_cause
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value),
                        m_cause_IE(p_cause)
                    } // End of template m_UeContextReleaseRequestIEs_MME
                     * @desc Send template for InitiatingMessage message with UEContextRelease payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_UeContextReleaseCommand(
                                                                           in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_UEContextRelease,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_UeContextReleaseCommand
                    template (value) RecordOf_ProtocolIE m_UeContextReleaseCommandIEs_MME(
                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) Cause p_cause
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_cause_IE(p_cause)
                    } // End of template m_UeContextReleaseCommandIEs_MME
                    template (value) RecordOf_ProtocolIE m_UeContextReleaseCommandIEs_ENB(
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                            in template (value) Cause p_cause
                    ) := {
                        m_eNB_UE_S1AP_ID(p_eNB_value),
                        m_cause_IE(p_cause)
                    } // End of template m_UeContextReleaseCommandIEs_ENB
                    
                    /**
                     * @desc Send template for InitiatingMessage message with UEContextReleaseComplete payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_UeContextReleaseComplete(
                                                                           in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_UEContextRelease,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_UeContextReleaseComplete                    
                    template (value) RecordOf_ProtocolIE m_UeContextReleaseCompleteIEs(
                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value)
                    } // End of template m_UeContextReleaseCompleteIEs
rennoch's avatar
rennoch committed
                    
                    /**
                     * @desc Send template for InitiatingMessage message with UEContextSuspendRequest payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_UeContextSuspendRequest(
                                                                           in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_UEContextSuspend,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_UeContextSuspendRequest                    

                    template (value) RecordOf_ProtocolIE m_UeContextSuspendRequestIEs(
                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value)
                    } // End of template m_UeContextSuspendRequestIEs

rennoch's avatar
rennoch committed
                    /**
                     * @desc Send template for InitiatingMessage message with UEContextResumeRequest payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_UeContextResumeRequest(
garciay's avatar
garciay committed
                                                                                in template (value) RecordOf_ProtocolIE p_value,
                                                                                in template (value) Criticality p_criticality := reject
                    ) := {
rennoch's avatar
rennoch committed
                        procedureCode := id_UEContextResume,
garciay's avatar
garciay committed
                        criticality := p_criticality,
rennoch's avatar
rennoch committed
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
garciay's avatar
garciay committed
                    } // End of template m_UeContextResumeRequest
rennoch's avatar
rennoch committed

                    template (value) RecordOf_ProtocolIE m_UeContextResumeRequestIEs(
garciay's avatar
garciay committed
                                                                                     in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                     in template (value) ENB_UE_S1AP_ID p_eNB_value
rennoch's avatar
rennoch committed
                    ) := {
garciay's avatar
garciay committed
                        m_MME_UE_S1AP_ID(p_MME_value, ignore),
                        m_eNB_UE_S1AP_ID(p_eNB_value, ignore)
garciay's avatar
garciay committed
                    } // End of template m_UeContextResumeRequestIEs 
                    
                    template (value) RecordOf_ProtocolIE m_UeContextResumeRequestIEs_RABFailedToResumeItem(
                                                                                                           in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                                           in template (value) ENB_UE_S1AP_ID p_eNB_value,
garciay's avatar
garciay committed
                                                                                                           in template (value) RecordOf_E_RABFailedToResumeItemResumeReq p_RecordOf_E_RABFailedToResumeItemResumeReq_value
garciay's avatar
garciay committed
                    ) modifies m_UeContextResumeRequestIEs := {
garciay's avatar
garciay committed
                        m_E_RABFailedToResumeItemResumeReqList(p_RecordOf_E_RABFailedToResumeItemResumeReq_value)
garciay's avatar
garciay committed
                    } // End of template m_UeContextResumeRequestIEs_RABFailedToResumeItem 
rennoch's avatar
rennoch committed
                    
garciay's avatar
garciay committed
                    template (value) RecordOf_ProtocolIE m_UeContextResumeRequestIEs_Unknown_ID(
                                                                                                in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                                in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                                in template (value) RecordOf_E_RABFailedToResumeItemResumeReq p_RecordOf_E_RABFailedToResumeItemResumeReq_value
                    ) modifies m_UeContextResumeRequestIEs_RABFailedToResumeItem := {
                        m_Unknown_ID_IE(-, reject)
                    } // End of template m_UeContextResumeRequestIEs_Unknown_ID 
                    
garciay's avatar
garciay committed
                    template (value) RecordOf_ProtocolIE m_UeContextResumeRequestIEs_duplicate_ENB(
                                                                                                in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                                in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                                in template (value) RecordOf_E_RABFailedToResumeItemResumeReq p_RecordOf_E_RABFailedToResumeItemResumeReq_value
                    ) modifies m_UeContextResumeRequestIEs_RABFailedToResumeItem := {
                        m_eNB_UE_S1AP_ID(p_eNB_value, ignore)
                    } // End of template m_UeContextResumeRequestIEs_duplicate_ENB 
                    
garciay's avatar
garciay committed
                    template (value) RecordOf_ProtocolIE m_UeContextResumeRequestIEs_no_eNB(
                                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                            in template (value) RecordOf_E_RABFailedToResumeItemResumeReq p_RecordOf_E_RABFailedToResumeItemResumeReq_value
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value, ignore),
                        m_E_RABFailedToResumeItemResumeReqList(p_RecordOf_E_RABFailedToResumeItemResumeReq_value)
                    } // End of template m_UeContextResumeRequestIEs_no_eNB 
                    
                    /**
                     * @desc Send template for InitiatingMessage message with m_UeContextModificationRequest payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_UeContextModificationRequest(
                                                                           in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_UEContextModification,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_UeContextModificationRequest
                    template (value) RecordOf_ProtocolIE m_ContextModificationReqIEsUEAgg(
                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                            in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value),
                        m_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate)
                    } // End of template m_ContextModificationReqIEs
                    
                    template (value) RecordOf_ProtocolIE m_ContextModificationReqIEsSecKey(
                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                            in template (value) CSFallbackIndicator p_CSFallbackIndicator,
                                                                            in template (value) SecurityKey p_SecurityKey
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value),
                        m_CS_Fallback_indicator_IE(p_CSFallbackIndicator),
                        m_securityKey_IE(p_SecurityKey)
                    } // End of template m_ContextModificationReqIEsSecKey
                    template (value) RecordOf_ProtocolIE m_ContextModificationReqIEsSecCap(
                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                            in template (value) CSFallbackIndicator p_CSFallbackIndicator,
                                                                            in template (value) UESecurityCapabilities p_UeSecurityCapabilities
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value),
                        m_CS_Fallback_indicator_IE(p_CSFallbackIndicator),
                        m_UE_securityCapabilities_IE(p_UeSecurityCapabilities)
                    } // End of template m_ContextModificationReqIEsSecCap
rennoch's avatar
rennoch committed

garciay's avatar
garciay committed
                    /**
                     * @desc Send template for InitiatingMessage message with m_UeContextModificationIndication payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_UeContextModificationIndication(
                                                                           in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_UEContextModification,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_UeContextModificationIndication
rennoch's avatar
rennoch committed

garciay's avatar
garciay committed
                    template (value) RecordOf_ProtocolIE m_UeContextModificationIndicationIEs(
                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value)
                    } // End of template m_UeContextModificationIndicationIEs
                    
                    template (value) RecordOf_ProtocolIE m_UeContextModificationIndicationIEsCSG(
                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                            in template (value) CSGMembershipInfo p_cSGMembershipInfo_value                                                                         
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value),
                        m_cSGMembershipInfo_IE(p_cSGMembershipInfo_value)
                    } // End of template m_UeContextModificationIndicationIEsCSG
                    
                    /**
                     * @desc Send template for InitiatingMessage message with m_UeRadioCapabilityMatchRequest payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_UeRadioCapabilityMatchRequest(
                                                                           in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_UERadioCapabilityMatch,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_UeRadioCapabilityMatchRequest
                    template (value) RecordOf_ProtocolIE m_UeRadioCapabilityMatchReqIEs(
                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                            in template (value) octetstring p_UeRadioCapabilities
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value),
                        m_UE_Radio_capability_IE(p_UeRadioCapabilities)
                    } // End of template m_ContextModificationReqIEsSecCap
                }// End of group Context_management_group
garciay's avatar
garciay committed
                
garciay's avatar
garciay committed
                /**
                 * @desc Send messages for Management procedures
                 */
                group Management_group {
                    
                    /**
                     * @desc Send template for InitiatingMessage message with S1_SETUP_REQUEST payload
                     * @param p_value           The protocol information elements.
garciay's avatar
garciay committed
                     */
                    template (value) InitiatingMessage m_s1_Setup_Request(
                                                                           in template (value) RecordOf_ProtocolIE p_value
                    ) := {
                        procedureCode := id_S1Setup,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_s1_Setup_Request
                    
                    /**
                     * @desc Send template for S1_SETUP_REQUEST message
                     * @param p_global_ENB_ID   The Global eNB ID value
                     * @param p_supportedTAs    The list of SupportedTAs-Item protocol IE
                     * @param p_pagingDRXs      The Paging DRX as defined in TS 36.304
garciay's avatar
garciay committed
                     */
                    template (value) RecordOf_ProtocolIE m_s1_Setup_RequestIEs(
                                                                               in template (value) Global_ENB_ID p_global_ENB_ID,
                                                                               in template (value) SupportedTAs p_supportedTAs,
                                                                               in template (value) PagingDRX p_pagingDRXs
                    ) := {
                        m_global_eNB_ID_IE(p_global_ENB_ID),
                        m_supportedTAs_IE(p_supportedTAs),
                        m_pagingDRX_IE(p_pagingDRXs)
                    } // End of template m_s1_Setup_RequestIEs
                    
                    /**
                     * @desc Send template for InitiatingMessage message with S1_SETUP_RESPONSE payload
                     * @param p_value           The protocol information elements.
garciay's avatar
garciay committed
                     */
                    template (value) SuccessfulOutcome m_s1_Setup_Response(
                                                                           in template (value) RecordOf_ProtocolIE p_value
                    ) := {
                        procedureCode := id_S1Setup,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_s1_Setup_Response
                    
                    /**
                     * @desc Send template for S1_SETUP_RESPONSE message
                     * @param p_global_ENB_ID       The Global eNB ID value.
                     * @param p_relativeMMECapacity The relative MME capacity value.
garciay's avatar
garciay committed
                     */
                    template (value) RecordOf_ProtocolIE m_s1_Setup_ResponseIEs(
                                                                                in template (value) ServedGUMMEIs p_servedGUMMEIs,
                                                                                in template (value) RelativeMMECapacity p_relativeMMECapacity
                    ) := {
                        m_servedGUMMEIs_IE(p_servedGUMMEIs),
                        m_relativeMMECapacity_IE(p_relativeMMECapacity)
                    } // End of template m_s1_Setup_ResponseIEs
                    
                    /**
                     * @desc Send template for InitiatingMessage message with ENB CONFIGURATION UPDATE payload
                     * @param p_value           Expected protocol information elements.
                     */
                    template (value) InitiatingMessage m_eNB_Configuration_Update(
                                                                                  in template (value) RecordOf_ProtocolIE p_value
                    ) := {
                        procedureCode := id_ENBConfigurationUpdate,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_eNB_Configuration_Update
                    
                    /**
                     * @desc Send template for ENB CONFIGURATION UPDATE message
                     * @param p_global_ENB_ID   The Global eNB ID value. Default: ?
                     * @param p_supportedTAs    The list of SupportedTAs-Item protocol IE. Default: ?
                     */
                    template (value) RecordOf_ProtocolIE m_eNB_Configuration_UpdateIEs(
                                                                                       in template (value) Global_ENB_ID p_global_ENB_ID,
                                                                                       in template (value) SupportedTAs p_supportedTAs
                    ) := {
                        m_global_eNB_ID_IE(p_global_ENB_ID),
                        m_supportedTAs_IE(p_supportedTAs)
                    } // End of template m_eNB_Configuration_UpdateIEs
                    
                    /**
                     * @desc Send template for InitiatingMessage message with ENB CONFIGURATION UPDATE ACKNOWLEDGE payload
                     * @param p_value           Expected protocol information elements.
                     */
                    template (value) SuccessfulOutcome m_eNB_Configuration_Update_Acknowledge(
                                                                                              in template (value) RecordOf_ProtocolIE p_value
                    ) := {
                        procedureCode := id_ENBConfigurationUpdate,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_eNB_Configuration_Update_Acknowledge
                    
                    /**
                     * @desc Send template for ENB CONFIGURATION UPDATE ACKNOWLEDGE message
                     * 
                     */
                    template (value) RecordOf_ProtocolIE m_eNB_Configuration_Update_AcknowledgeIEs := {
                    } // End of template m_eNB_Configuration_Update_AcknowledgeIEs
                    
                    /**
                     * @desc Send template for InitiatingMessage message with MME CONFIGURATION UPDATE payload
                     * @param p_value           Expected protocol information elements.
                     */
                    template (value) InitiatingMessage m_mME_Configuration_Update(
                                                                                  in template (value) RecordOf_ProtocolIE p_value
                    ) := {
                        procedureCode := id_MMEConfigurationUpdate,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_mME_Configuration_Update
                    
                    /**
                     * @desc Send template for MME CONFIGURATION UPDATE message
                     * @param p_global_MME_ID   The Global mME ID value. Default: ?
                     * @param p_supportedTAs    The list of SupportedTAs-Item protocol IE. Default: ?
                     */
                    template (value) RecordOf_ProtocolIE m_mME_Configuration_UpdateIEs(
                                                                                       in template (value) ServedGUMMEIs p_servedGUMMEIs
                    ) := {
                        m_servedGUMMEIs_IE(p_servedGUMMEIs)
                    } // End of template m_mME_Configuration_UpdateIEs
                    
                    /**
                     * @desc Send template for InitiatingMessage message with MME CONFIGURATION UPDATE ACKNOWLEDGE payload
                     * @param p_value           Expected protocol information elements.
                     */
                    template (value) SuccessfulOutcome m_mME_Configuration_Update_Acknowledge(
                                                                                              in template (value) RecordOf_ProtocolIE p_value
                    ) := {
                        procedureCode := id_MMEConfigurationUpdate,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_mME_Configuration_Update_Acknowledge
                    
                    /**
                     * @desc Send template for MME CONFIGURATION UPDATE ACKNOWLEDGE message
                     * 
                     */
                    template (value) RecordOf_ProtocolIE m_mME_Configuration_Update_AcknowledgeIEs := {
                    } // End of template m_mME_Configuration_Update_AcknowledgeIEs
                    
garciay's avatar
garciay committed
                } // End of group Management_group
                
                /**
                 * @desc Send messages for Reset Procedures
                 */
                group Reset {
                    
                    /**
                     * @desc Send template for InitiatingMessage message with RESET payload
                     * @param p_value           The protocol information elements
                     */
                    template (value) InitiatingMessage m_reset(
                                                               in template (value) RecordOf_ProtocolIE p_value
                    ) := {
                        procedureCode := id_Reset,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_reset
                    
                    /**
                     * @desc Send template for RESET message
                     * @param p_cause       The Cause value
                     * @param p_resetType   The RESET type value
                     */
                    template (value) RecordOf_ProtocolIE m_resetIEs(
                                                                    in template (value) Cause p_cause,
                                                                    in template (value) ResetType p_resetType
                    ) := {
                        m_cause_IE(p_cause),
                        m_resetType_IE(p_resetType)
                    } // End of template m_resetIEs
                    
                } // End of group Reset
garciay's avatar
garciay committed
                /**
                 * @desc Send messages for Warning Message Transmission Procedures
                 */
                group Warning_Message_Transmission_send {
                    
                    /**
                     * @desc Send template for InitiatingMessage message with WRITE-REPLACE WARNING REQUEST payload
                     * @param p_value           The procedure code value
garciay's avatar
garciay committed
                     */
                    template (value) InitiatingMessage m_write_Replace_Warning_Request(
                                                                                       in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_WriteReplaceWarning,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_write_Replace_Warning_Request
                    
                    /**
                     * @desc Send template for WRITE-REPLACE WARNING REQUEST message
                     * @param p_message_Identifier              The Message Identifier value
                     * @param p_serial_Number                   The Serial Number value
                     * @param p_repetition_Period               The Repetition Period value
garciay's avatar
garciay committed
                     * @param p_number_of_Broadcasts_Requested  The Number of Broadcasts Requested value
                     */
                    template (value) RecordOf_ProtocolIE m_write_Replace_Warning_RequestIEs(
                                                                                            in MessageIdentifier p_message_Identifier,
                                                                                            in SerialNumber p_serial_Number,
                                                                                            in RepetitionPeriod p_repetition_Period,
                                                                                            in NumberOfBroadcasts p_number_of_Broadcasts_Requested
                    ) := {
                        m_message_Identifier(p_message_Identifier),
                        m_serial_Number(p_serial_Number),
                        m_repetition_Period(p_repetition_Period),
                        m_number_of_Broadcasts_Requested(p_number_of_Broadcasts_Requested)
                    } // End of template m_write_Replace_Warning_RequestIEs
                    
                    /**
                     * @desc Send template for InitiatingMessage message with WRITE-REPLACE WARNING RESPONSE payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_write_Replace_Warning_Response(
                                                                                       in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_WriteReplaceWarning,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_write_Replace_Warning_Response
                    
                    /**
                     * @desc Send template for WRITE-REPLACE WARNING RESPONSE message
                     * @param p_message_Identifier  The Message Identifier value
                     * @param p_serial_Number       The Serial Number value
                     */
                    template (value) RecordOf_ProtocolIE m_write_Replace_Warning_ResponseIEs(
                                                                                            in MessageIdentifier p_message_Identifier,
                                                                                            in SerialNumber p_serial_Number
                    ) := {
                        m_message_Identifier(p_message_Identifier),
                        m_serial_Number(p_serial_Number)
                    } // End of template m_write_Replace_Warning_ResponseIEs
                    
                    /**
                     * @desc Send template for InitiatingMessage message with KILL REQUEST payload
                     * @param p_value           The procedure code value
garciay's avatar
garciay committed
                     */
                    template (value) InitiatingMessage m_kill_Request(
                                                                      in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_Kill,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_kill_Request
                    
                    /**
                     * @desc Send template for KILL REQUEST message
                     * @param p_message_Identifier  The Message Identifier value
                     * @param p_serial_Number       The Serial Number value
                     */
                    template (value) RecordOf_ProtocolIE m_kill_RequestIEs(
                                                                           in MessageIdentifier p_message_Identifier,
                                                                           in SerialNumber p_serial_Number
                    ) := {
                        m_message_Identifier(p_message_Identifier),
                        m_serial_Number(p_serial_Number)
                    } // End of template m_kill_RequestIEs
                    
                    /**
                     * @desc Send template for InitiatingMessage message with KILL REQUEST payload
                     * @param p_value           The procedure code value
garciay's avatar
garciay committed
                     */
                    template (value) InitiatingMessage m_kill_Response(
                                                                      in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_Kill,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_kill_Response
                    
                    /**
                     * @desc Send template for KILL REQUEST message
                     * @param p_message_Identifier  The Message Identifier value
                     * @param p_serial_Number       The Serial Number value
                     */
                    template (value) RecordOf_ProtocolIE m_kill_ResponseIEs(
                                                                           in MessageIdentifier p_message_Identifier,
                                                                           in SerialNumber p_serial_Number
                    ) := {
                        m_message_Identifier(p_message_Identifier),
                        m_serial_Number(p_serial_Number)
                    } // End of template m_kill_ResponseIEs
                    
                }// End of group Warning_Message_Transmission_send
                
garciay's avatar
garciay committed
            } // End of group sendClass1 
garciay's avatar
garciay committed
            
garciay's avatar
garciay committed
            group receiveClass1 {
                
                group HandoverRequired{
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with Handover Required payload
                     * @param p_value           The procedure code value
                     */
                    template (present) InitiatingMessage mw_HandoverRequired(
                                                                           template (present) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverPreparation,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_HandoverRequired
                    
                    template (present) RecordOf_ProtocolIE mw_HandoverRequiredIEs(
                        template (present) MME_UE_S1AP_ID p_MME_value := ?,
                        template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                        template (present) HandoverType p_HandoverType_value := ?,
                        template (present) Cause p_Cause_value := ?,
                        template (present) TargetID p_TargetId_value := ?,
                        template (present) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value := ?
                       ) := {
                            mw_MME_UE_S1AP_ID(p_MME_value),
                            mw_eNB_UE_S1AP_ID(p_eNB_value),