LibS1AP_Templates.ttcn 266 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_initiatingMessage
            
        } // 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 {
garciay's avatar
garciay committed
                group HandoverPreparation {
                    
                    
                } // End of group HandoverPreparation
                
                group HandoverResourceAllocation {
                    
                }// End of group HandoverResourceAllocation
                
                
				
				
				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
    
						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
    
					}// End of group ERABSetup
					group ERABModify {
					   /**
						 * @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        

					   /**
						 * @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) := {
							procedureCode := id_E_RABSetup,
							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
            
					}

					group ERABRelease {

						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
					}
				}
                /**
                 * @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(
                                                                           in template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_InitialContextSetup,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                    } // End of template m_InitialContextSetupRequest
                    
                    template (value) RecordOf_ProtocolIE m_InitialContextSetupReqIEs(
                                                                            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,
                                                                            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_RABToBeSetupList(p_RecordOf_E_RABToBeSetupItem_value),
                        m_UE_securityCapabilities_IE(p_uESecurityCapabilities),
                        m_securityKey_IE(p_SecurityKey)
                    } // End of template m_InitialContextSetupReqIEs
                    /**
                     * @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
                    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
                    /**
                     * @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
                    
                    /**
                     * @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
                //TODO: Other....
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 (value) 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),
                              mw_handoverType_IE(p_HandoverType_value),
ulrichst's avatar
ulrichst committed
                            mw_cause_IE(p_Cause_value),
                            mw_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value)
                }// End of group HandoverPreparation
garciay's avatar
garciay committed
                group HandoverPreparation{
                    
                }// End of group HandoverPreparation
                    
                group HandoverResourceAllocation{
                    
                }// End of group HandoverResourceAllocation
                
                group HandoverCancelation{
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with Handover Cancel payload
                     * @param p_value           The procedure code value
                     */
                    template (present) InitiatingMessage mw_HandoverCancel(
                                                                           template (present) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverCancel,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_HandoverCancel
                    
                    template (value) RecordOf_ProtocolIE mw_HandoverCancelIEs(
                        template (present) MME_UE_S1AP_ID p_MME_value := ?,
                        template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                        template (present) Cause p_Cause_value := ?
                       ) := {
                            mw_MME_UE_S1AP_ID(p_MME_value),
                            mw_eNB_UE_S1AP_ID(p_eNB_value),
                            mw_cause_IE(p_Cause_value)
                       } // End of template mw_HandoverCancelIEs
                       
                }// End of group HandoverCancelation
                
				
				group ERAB_management_group {
	                group ERABModify{
	
						/**
						 * @desc Receive template for SuccessfulOutcome/R-RAB_Setup message
						 * @param p_procedureCode   Expected procedure code. Default: ?
						 * @param p_value           Expected procedure code. Default: ?
						 */
						template (present) SuccessfulOutcome mw_E_RABReleaseResponse(
																				   template (present) RecordOf_ProtocolIE p_value := ?
						) := {
							procedureCode := id_E_RABRelease,
							criticality := reject,
							value_ := {RecordOf_ProtocolIE := p_value}
						} // End of template mw_E_RABResponse
						
						
	                    /**
	                     * @desc Receive template for SuccessfulOutcome/R-RAB_Setup message
	                     * @param p_procedureCode   Expected procedure code. Default: ?
	                     * @param p_value           Expected procedure code. Default: ?
	                     */
	                    template (present) SuccessfulOutcome mw_E_RABModifiedResponse(
	                                                                               template (present) RecordOf_ProtocolIE p_value := ?
	                    ) := {
	                        procedureCode := id_E_RABModify,
	                        criticality := reject,
	                        value_ := {RecordOf_ProtocolIE := p_value}
	                    } // End of template mw_E_RABResponse
	                    
	                    template (present) RecordOf_ProtocolIE mw_E_RABModifiedResIEs(
	                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
	                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
	                                                                               template (present) RecordOf_E_RABModifyItemBearerModRes p_RecordOf_E_RABModifyItem_value := ?
	                    ) := { 
	                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
	                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
	                        mw_E_RABModifiedList(p_RecordOf_E_RABModifyItem_value)
	                    } // End of template mw_E_RABSetupResIEs
	                                   
	                    template (present) RecordOf_ProtocolIE mw_E_RABModifiedResIEs_FailedToModifyList(
	                         template (present) MME_UE_S1AP_ID p_MME_value := ?,
	                         template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
	                         template RecordOf_E_RABModifyItemBearerModRes p_RecordOf_E_RABModifyItem_value := omit,
	                         template (present) RecordOf_E_RABItem p_E_RABItem_value := ?
	                    ) := {
	                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
	                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
	                        mw_E_RABModifiedList(p_RecordOf_E_RABModifyItem_value) ifpresent,
	                        mw_E_RABFailedToSetupList(p_E_RABItem_value)
	                    } // End of template mw_E_RABSetupResIEs
	                    
	                                                        
	                }
	                
	                group ERABSetup{
	                    
	                    /**
	                     * @desc Receive template for InitiatingMessage message with E-RABSetup payload
	                     * @param p_value           The procedure code value
	                     */
	                    template (present) InitiatingMessage mw_E_RABSetupRequest(
	                                                                           template (present) RecordOf_ProtocolIE p_value) := {
	                        procedureCode := id_E_RABSetup,
	                        criticality := reject,
	                        value_ := {RecordOf_ProtocolIE := p_value}
	                    } // End of template mw_E_RABSetupRequest
	                    
	                    template (present) RecordOf_ProtocolIE mw_E_RABSetupReqIEs(
	                                                                            template (present) MME_UE_S1AP_ID p_MME_value,
	                                                                            template (present) ENB_UE_S1AP_ID p_eNB_value,
	                                                                            template (present) RecordOf_E_RABToBeSetupItemBearerSUReq p_RecordOf_E_RABToBeSetupItem_value
	                    ) := {
	                        mw_MME_UE_S1AP_ID(p_MME_value),
	                        mw_eNB_UE_S1AP_ID(p_eNB_value),
	                        mw_E_RABToBeSetupList(p_RecordOf_E_RABToBeSetupItem_value)
	                    } // End of template mw_E_RABSetupReqIEs
	                    
	                    
	                    /**
	                     * @desc Receive template for SuccessfulOutcome/R-RAB_Setup message
	                     * @param p_procedureCode   Expected procedure code. Default: ?
	                     * @param p_value           Expected procedure code. Default: ?
	                     */
	                    template (present) SuccessfulOutcome mw_E_RABSetupResponse(
	                                                                               template (present) RecordOf_ProtocolIE p_value := ?
	                    ) := {
	                        procedureCode := id_E_RABSetup,
	                        criticality := reject,
	                        value_ := {RecordOf_ProtocolIE := p_value}
	                    } // End of template mw_E_RABSetupResponse
	                    
	                    template (present) RecordOf_ProtocolIE mw_E_RABSetupResIEs(
	                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
	                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
	                                                                               template (present) RecordOf_E_RABSetupItemBearerSURes p_RecordOf_E_RABSetupItem_value := ?
	                    ) := { 
	                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
	                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
	                        mw_E_RABSetupList(p_RecordOf_E_RABSetupItem_value)
	                    } // End of template mw_E_RABSetupResIEs
	
		  
	                    template (present) RecordOf_ProtocolIE mw_E_RABSetupResIEs_FailedToSetupList(
	                                                                                                 template (present) MME_UE_S1AP_ID p_MME_value := ?,
	                                                                                                 template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
	                                                                                                 template RecordOf_E_RABSetupItemBearerSURes p_RecordOf_E_RABSetupItem_value := omit,
	                                                                                                 template (present) RecordOf_E_RABItem p_E_RABItem_value := ?
	                    ) := {
	                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
	                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
	                        mw_E_RABSetupList(p_RecordOf_E_RABSetupItem_value) ifpresent,
	                        mw_E_RABFailedToSetupList(p_E_RABItem_value)
	                    } // End of template mw_E_RABSetupResIEs
	                    
	                } // End of group ERABSetup
		
					group ERABRelease{
						template (present) RecordOf_ProtocolIE mw_E_RABReleaseResIEs(
																						 template (present) MME_UE_S1AP_ID p_MME_value := ?,
																						 template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
																						 template (present) RecordOf_E_RABItem p_RecordOf_E_RABItem_value := ?
							  ) := { 
								  mw_MME_UE_S1AP_ID(p_MME_value, ignore),
								  mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
								  mw_E_RABReleaseList(p_RecordOf_E_RABItem_value)
							  } // End of template mw_E_RABReleaseResIEs
					
					}
				
				}
				
                group Context_management_group{
                    /**
                     * @desc Receive template for InitialContextSetup message
                     * @param p_procedureCode   Expected procedure code. Default: ?
                     * @param p_value           Expected procedure code. Default: ?
                     */
                    template (present) SuccessfulOutcome mw_InitialContextSetupResponse(
                                                                               template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_E_RABSetup,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_InitialContextSetupResponse
                    
                    template (present) RecordOf_ProtocolIE mw_InitialContextSetupResIEs(
                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
ulrichst's avatar
ulrichst committed
                                                                               template RecordOf_E_RABSetupItemBearerSURes p_RecordOf_E_RABSetupItem_value := omit,
                                                                               template (present) RecordOf_E_RABItem p_E_RABItem_value := ?
                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
                        mw_E_RABSetupList(p_RecordOf_E_RABSetupItem_value) ifpresent,
                        mw_E_RABFailedToSetupList(p_E_RABItem_value)
                    } // End of template mw_InitialContextSetupResIEs
                    template (present) RecordOf_ProtocolIE mw_InitialContextSetupFailureIEs(
                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                               template (present) Cause p_cause := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
                        mw_cause_IE(p_cause)
                    } // End of template mw_InitialContextSetupResIEs                    
                    /**
                     * @desc Receive template for InitialContextSetup message
                     * @param p_procedureCode   Expected procedure code. Default: ?
                     * @param p_value           Expected procedure code. Default: ?
                     */
                    template (present) SuccessfulOutcome mw_InitialContextSetupRequest(
                                                                               template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_E_RABSetup,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_InitialContextSetupRequest
                    template (present) RecordOf_ProtocolIE mw_InitialContextSetupRequestIEs(
                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                               template (present) UEAggregateMaximumBitrate p_UEAggregateMaximumBitrate := ?,
                                                                               template (present) RecordOf_E_RABToBeSetupItemBearerSUReq p_RecordOf_E_RABSetupItem_value,
                                                                               template (present) UESecurityCapabilities p_UESecurityCapabilities:=?,
                                                                               template (present) SecurityKey p_SecurityKey:=?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
                        mw_UE_aggregate_maximum_bitrate_IE(p_UEAggregateMaximumBitrate),
                        mw_E_RABToBeSetupList(p_RecordOf_E_RABSetupItem_value),
                        mw_UE_securityCapabilities_IE(p_UESecurityCapabilities),                       
                        mw_securityKey_IE(p_SecurityKey)
                    } // End of template mw_InitialContextSetupRequestIEs
                    /**
                     * @desc Receive template for UeContextReleaseRequest message
                     * @param p_procedureCode   Expected procedure code. Default: ?
                     * @param p_value           Expected procedure code. Default: ?
                     */
                    template (present) SuccessfulOutcome mw_UeContextReleaseRequest(
                                                                               template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_UEContextReleaseRequest,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_UeContextReleaseRequest
                    template (present) RecordOf_ProtocolIE mw_UeContextReleaseRequestIEs(
                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                               template (present) Cause p_cause := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
                        mw_cause_IE(p_cause)
                    } // End of template mw_UeContextReleaseRequestIEs
                    /**
                     * @desc Receive template for UeContextReleaseCommand message
                     * @param p_procedureCode   Expected procedure code. Default: ?
                     * @param p_value           Expected procedure code. Default: ?
                     */
                    template (present) SuccessfulOutcome mw_UeContextReleaseCommand(
                                                                               template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_UEContextRelease,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_UeContextReleaseCommand
                    template (present) RecordOf_ProtocolIE mw_UeContextReleaseCommandIEs_MME(
                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                               template (present) Cause p_cause := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
                        mw_cause_IE(p_cause)
                    } // End of template mw_UeContextReleaseCommandIEs
                    template (present) RecordOf_ProtocolIE mw_UeContextReleaseCommandIEs_ENB(
                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                               template (present) Cause p_cause := ?
                    ) := {
                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
                        mw_cause_IE(p_cause)
                    } // End of template mw_UeContextReleaseCommandIEs
                    /**
                     * @desc Receive template for UeContextReleaseComplete message
                     * @param p_procedureCode   Expected procedure code. Default: ?
                     * @param p_value           Expected procedure code. Default: ?
                     */
                    template (present) SuccessfulOutcome mw_UeContextReleaseComplete(
                                                                               template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_UEContextRelease,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_UeContextReleaseComplete
                    template (present) RecordOf_ProtocolIE mw_UeContextReleaseCompleteIEs(
                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                               template (present) Cause p_cause := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
                        mw_cause_IE(p_cause)
                    } // End of template mw_UeContextReleaseCompleteIEs
                    
                    /**
                     * @desc Receive template for mw_UeContextModificationResponse message
                     * @param p_procedureCode   Expected procedure code. Default: ?
                     * @param p_value           Expected procedure code. Default: ?
                     */
                    template (present) SuccessfulOutcome mw_UeContextModificationResponse(
                                                                               template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_UEContextModification,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_UeContextReleaseComplete
                    
                    template (present) RecordOf_ProtocolIE mw_UeContextModificationResponseIEs(
                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore)
                    } // End of template mw_UeContextReleaseCompleteIEs
                    
                    /**
                     * @desc Receive template for mw_UeContextModificationFailure message
                     * @param p_procedureCode   Expected procedure code. Default: ?
                     * @param p_value           Expected procedure code. Default: ?
                     */
                    template (present) SuccessfulOutcome mw_UeContextModificationFailure(
                                                                               template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_UEContextModification,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_UeContextModificationFailure
                    
                    template (present) RecordOf_ProtocolIE mw_UeContextModificationFailureIEs(
                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                               template (present) Cause p_cause := ?