LibS1AP_Templates.ttcn 307 KB
Newer Older
garciay's avatar
garciay committed
                id := S1AP_Constants.id_RequestType,
                criticality := reject,
                value_ := {RequestType := p_request_Type}
            } // End of template mw_request_Type_IE
garciay's avatar
garciay committed
             * @desc Receive template for Cause protocol IE
             * @param p_cause  Expected Cause value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.3 Cause
garciay's avatar
garciay committed
            template (present) ProtocolIE mw_cause_IE(
garciay's avatar
garciay committed
                                                      template (present) Cause p_cause := ?,
                                                      template (present) ProtocolIE.criticality p_criticality := reject
garciay's avatar
garciay committed
                id := S1AP_Constants.id_Cause,
garciay's avatar
garciay committed
                criticality := p_criticality,
garciay's avatar
garciay committed
                value_ := {Cause := p_cause}
            } // End of template mw_cause_IE
garciay's avatar
garciay committed
            /**
             * @desc Receive template for Cause protocol IE
             * @param p_cause  Expected Cause value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.3 Cause
             */
            template (present) ProtocolIE mw_criticalityDiagnostics_IE(
                                                                       template (present) CriticalityDiagnostics p_criticalityDiagnostics := ?,
                                                                       template (present) ProtocolIE.criticality p_criticality := ignore
            ) := {
                id := S1AP_Constants.id_CriticalityDiagnostics,
                criticality := p_criticality,
                value_ := {CriticalityDiagnostics := p_criticalityDiagnostics}
            } // End of template mw_criticalityDiagnostics_IE
            
            /**
             * @desc Receive template for CDMA2000-PDU
             * @param p_cdma2000PDU The expected CDMA2000-PDU value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.23 CDMA2000-PDU
             */
            template (present) ProtocolIE mw_cdma2000_Pdu_IE(
                                                             template (present) octetstring p_cdma2000PDU := ?
            ) := {
                id := S1AP_Constants.id_cdma2000PDU,
                criticality := reject,
                value_ := {octetstring := p_cdma2000PDU}
            } // End of template mw_cdma2000_Pdu_IE
            
            /**
             * @desc Receive template for CDMA2000 RAT Type
             * @param p_traceActivation The expected CDMA2000-PDU value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.24 CDMA2000 RAT Type. Default: ?
             */
            template (present) ProtocolIE mw_cdma2000_RAT_Type_IE(
                                                                  template (present) Cdma2000RATType p_cdma2000RATType := ?
            ) := {
                id := S1AP_Constants.id_cdma2000RATType,
                criticality := reject,
                value_ := {Cdma2000RATType := p_cdma2000RATType}
            } // End of template mw_cdma2000_RAT_Type_IE
            
            /**
             * @desc Receive template for CDMA2000-SectorId
             * @param p_traceActivation The expected CDMA2000-SectorId value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.23 CDMA2000-SectorId. Default: ?
             */
            template (present) ProtocolIE mw_cdma2000_SectorId_IE(
                                                                  template (present) octetstring p_cdma2000SectorId := ?
            ) := {
                id := S1AP_Constants.id_cdma2000SectorID,
                criticality := reject,
                value_ := {octetstring := p_cdma2000SectorId}
            } // End of template mw_cdma2000_SectorId_IE
            
            /**
             * @desc Receive template for E Radio Capability
             * @param p_traceActivation The expected E Radio Capability value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.27 UE Radio Capability. Default: ?
             */
            template (present) ProtocolIE mw_ueRadioCapability_IE(
                                                                  template (present) octetstring p_ueRadioCapability := ?
            ) := {
                id := S1AP_Constants.id_UERadioCapability,
                criticality := reject,
                value_ := {octetstring := p_ueRadioCapability}
            } // End of template mw_ueRadioCapability_IE
            
            /**
             * @desc Receive template for CDMA2000 RAT Type
             * @param p_traceActivation The expected CDMA2000-PDU value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.28 CDMA2000 HO Status. Default: ?
             */
            template (present) ProtocolIE mw_cdma2000_HO_Status_IE(
                                                                   template (present) Cdma2000HOStatus p_cdma2000HOStatus := ?
            ) := {
                id := S1AP_Constants.id_cdma2000HOStatus,
                criticality := reject,
                value_ := {Cdma2000HOStatus := p_cdma2000HOStatus}
            } // End of template mw_cdma2000_HO_Status_IE
            
            /**
             * @desc Receive template for CDMA2000 RAT Type
             * @param p_traceActivation The expected CDMA2000-PDU value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.29 CDMA2000 HO Required Indication. Default: ?
             */
            template (present) ProtocolIE mw_cdma2000_Required_Indication_IE(
                                                                             template (present) Cdma2000HORequiredIndication p_cdma2000HORequiredIndication := ?
            ) := {
                id := S1AP_Constants.id_cdma2000HORequiredIndication,
                criticality := reject,
                value_ := {Cdma2000HORequiredIndication := p_cdma2000HORequiredIndication}
            } // End of template mw_cdma2000_Required_Indication_IE
            
garciay's avatar
garciay committed
             * @desc Receive template for Trace Activation
             * @param p_traceActivation The expected Trace Activation value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.4 Trace Activation
garciay's avatar
garciay committed
            template (present) ProtocolIE mw_traceActivation_IE(
                                                                template (present) TraceActivation p_traceActivation := ?
garciay's avatar
garciay committed
                id := S1AP_Constants.id_TraceActivation,
                criticality := reject,
                value_ := {TraceActivation := p_traceActivation}
            } // End of template mw_traceActivation_IE
garciay's avatar
garciay committed
             * @desc Receive template for Deactivate Trace
             * @param p_traceActivation The expected Trace Deactivate Trace. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.1.11.3 DEACTIVATE TRACE
garciay's avatar
garciay committed
            template (present) ProtocolIE mw_deactivateTrace_IE(
                                                                template (present) DeactivateTrace p_deactivateTrace := ?
garciay's avatar
garciay committed
                id := S1AP_Constants.id_DeactivateTrace,
                criticality := reject,
                value_ := {DeactivateTrace := p_deactivateTrace}
            } // End of template mw_deactivateTrace_IE
            /**
             * @desc  Receive template for Transport Layer Address
             * @param p_transportLayerAddress  Transport Layer Address value. Default: ?.
             */
            template (present) ProtocolIE mw_transportLayerAddress_IE(
                                                                      template (present) bitstring p_transportLayerAddress := ?
            ) := {
                id := S1AP_Constants.id_TraceCollectionEntityIPAddress,
                criticality := reject,
                value_ := { bitstring := p_transportLayerAddress }
            } // End of template mw_transportLayerAddress_IE
            
            /**
             * @desc Receive template for LPPa-PDU
garciay's avatar
garciay committed
             * @param p_value The expected Routing ID value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.32 LPPa-PDU
            template (present) ProtocolIE mw_LPPa_PDU_IE(
                                                         template (present) octetstring p_value := ?
            ) := {
                id := S1AP_Constants.id_LPPa_PDU,
                criticality := ignore,
                value_ := { LPPa_PDU := p_value }
            } // End of template mw_LPPa_PDU_IE
garciay's avatar
garciay committed
             * @param p_value The expected Routing ID value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.33 Routing ID
garciay's avatar
garciay committed
            template (present) ProtocolIE mw_routing_ID_IE(
                                                           template (present) UInt8 p_value := ?
            ) := {
                id := S1AP_Constants.id_Routing_ID,
                criticality := ignore,
                value_ := { Routing_ID := p_value }
garciay's avatar
garciay committed
            } // End of template mw_routing_ID_IE
            /**
             * @desc Receive template for S1 Message
             * @param p_value The expected S1 Message value. Default: ?
             */
            template (present) ProtocolIE mw_s1_Message_IE(
                                                           template (present) octetstring p_value := ?
            ) := {
                id := S1AP_Constants.id_S1_Message,
                criticality := ignore,
                value_ := { octetstring := p_value }
            } // End of template mw_s1_Message_IE
            
            /**
             * @desc Receive template for MME Group ID
             * @param p_value The expected MME Group ID value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.44 MME Group ID
             */
            template (present) ProtocolIE mw_mME_Group_ID_IE(
                                                             template (present) MME_Group_ID p_value := ?
            ) := {
                id := S1AP_Constants.id_MME_Group_ID,
                criticality := ignore,
                value_ := { MME_Group_ID := p_value }
            } // End of template mw_mME_Group_ID_IE
            
garciay's avatar
garciay committed
            /**
             * @desc Send template for MessageIdentifier IE
             * @param p_message_Identifier The expected message identifier value. Default: ?
             * @see ETSI TS 136 413 Clause 9.2.1.44 Message Identifier
             */
            template (present) ProtocolIE mw_message_Identifier_IE(
                                                                   template (present) MessageIdentifier p_message_Identifier := ?
garciay's avatar
garciay committed
            ) := {
                id := S1AP_Constants.id_MessageIdentifier,
                criticality := reject,
                value_ := { MessageIdentifier := p_message_Identifier }
            } // End of template mw_Message_Identifier
            
            /**
             * @desc Receive template for SerialNumber IE
             * @param p_serial_Number The expected serial number value. Default: ?
             * @see ETSI TS 136 413 Clause 9.2.1.45 Serial Number
             */
           template (present) ProtocolIE mw_serial_Number_IE(
                                                             template (present) SerialNumber p_serial_Number := ?
garciay's avatar
garciay committed
            ) := {
                id := S1AP_Constants.id_SerialNumber,
                criticality := reject,
                value_ := { SerialNumber := p_serial_Number }
            } // End of template mw_serial_Number_IE
garciay's avatar
garciay committed
            
            /**
             * @desc Receive template for SerialNumber IE
             * @param p_serial_Number The expected warning area value. Default: ?
             * @see ETSI TS 136 413 Clause 9.2.1.46 Warning Area List
             */
            template (present) ProtocolIE mw_warning_Area_List_IE(
                                                                  template (present) WarningAreaList p_warningAreaList := ?
garciay's avatar
garciay committed
            ) := {
                id := S1AP_Constants.id_WarningAreaList,
                criticality := ignore,
                value_ := { WarningAreaList := p_warningAreaList }
            } // End of template mw_warning_Area_List_IE
garciay's avatar
garciay committed
            
            /**
             * @desc Receive template for The Repetition Period IE
             * @param p_repetition_Period The expected repetition period value. Default: ?
             * @see ETSI TS 136 413 Clause 9.2.1.48 Repetition Period
             */
            template (present) ProtocolIE mw_repetition_Period_IE(
                                                                  template (present) RepetitionPeriod p_repetition_Period := ?
garciay's avatar
garciay committed
            ) := {
                id := S1AP_Constants.id_RepetitionPeriod,
                criticality := reject,
                value_ := { RepetitionPeriod := p_repetition_Period }
            } // End of template mw_repetition_Period_IE
garciay's avatar
garciay committed
            
            /**
             * @desc Receive template for SerialNumber IE
             * @param p_number_of_Broadcasts_Requested The expected number of Broadcasts Requested value. Default: ?
             * @see ETSI TS 136 413 Clause 9.2.1.49 Number of Broadcasts Requested
             */
            template (present) ProtocolIE mw_number_of_Broadcasts_Requested_IE(
                                                                               template (present) NumberOfBroadcasts p_number_of_Broadcasts_Requested := ?
garciay's avatar
garciay committed
            ) := {
                id := S1AP_Constants.id_NumberofBroadcastRequest,
                criticality := reject,
                value_ := { NumberOfBroadcasts := p_number_of_Broadcasts_Requested }
            } // End of template mw_number_of_Broadcasts_Requested_IE
garciay's avatar
garciay committed
            
            /**
             * @desc Receive template for E-CGI List for Restart
             * @param p_eCGIListForRestart
             * @see ETSI TS 136 413 Clause 9.2.1.38 E-CGI
             */
            template (present) ProtocolIE mw_eCGIListForRestart(
                                                                template (present) ECGIListForRestart p_eCGIListForRestart := ?
            ) := {
                id := S1AP_Constants.id_ECGIListForRestart,
                criticality := reject,
                value_ := { ECGIListForRestart := p_eCGIListForRestart }
            } // End of template mw_eCGIListForRestart
            
            /**
             * @desc Receive template for E-CGI List for Failure
             * @param p_eCGIListForFailure
             * @see ETSI TS 136 413 Clause 9.2.1.38 E-CGI
             */
            template (present) ProtocolIE mw_pWSfailedECGIList(
                                                                template (present) PWSfailedECGIList p_pWSfailedECGIList := ?
            ) := {
                id := S1AP_Constants.id_PWSfailedECGIList,
                criticality := reject,
                value_ := { PWSfailedECGIList := p_pWSfailedECGIList }
            } // End of template mw_pWSfailedECGIList
            
            /**
             * @desc Receive template for TAI List for Restart
             * @param p_eCGIListForRestart
             * @see ETSI TS 136 413 Clause 9.2.3.16 TAI
             */
            template (present) ProtocolIE mw_tAIListForRestart(
                                                               template (present) TAIListForRestart p_tAIListForRestart := ?
            ) := {
                id := S1AP_Constants.id_TAIListForRestart,
                criticality := reject,
                value_ := { TAIListForRestart := p_tAIListForRestart }
            } // End of template mw_tAIListForRestart
            
            /**
             * @desc 
             * @param p_emergencyAreaIDListForRestart
             */
            template (present) ProtocolIE mw_emergencyAreaIDListForRestart(
                                                                           template (present) EmergencyAreaIDListForRestart p_emergencyAreaIDListForRestart := ?
            ) := {
                id := S1AP_Constants.id_EmergencyAreaIDListForRestart,
                criticality := reject,
                value_ := { EmergencyAreaIDListForRestart := p_emergencyAreaIDListForRestart }
            } // End of template mw_emergencyAreaIDListForRestart
            
            /**
             * @desc 
             * @param p_handoverType
             * @param p_criticality
             */
            template (present) ProtocolIE mw_handoverType_IE(
                template (present) HandoverType p_handoverType := ?,
                template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_HandoverType,
                criticality := p_criticality,
                value_ := { HandoverType := p_handoverType }
            } // End of template mw_handoverType
            
            /**
             * @desc 
             * @param p_value
             * @param p_criticality
             */
            template (present) ProtocolIE mw_source_ToTarget_TransparentContainer_IE(
                template (present) Source_ToTarget_TransparentContainer p_value := ?,
                template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_Source_ToTarget_TransparentContainer,
                criticality := p_criticality,
                value_ := { Source_ToTarget_TransparentContainer := p_value }
            } // End of template mw_source_ToTarget_TransparentContainer_IE
            
            /**
             * @desc 
             * @param p_value
             * @param p_criticality
             */
            template (present) ProtocolIE mw_target_ToSource_TransparentContainer_IE(
                template (present) Target_ToSource_TransparentContainer p_value := ?,
                template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_Target_ToSource_TransparentContainer,
                criticality := p_criticality,
                value_ := { Target_ToSource_TransparentContainer := p_value }
            } // End of template mw_target_ToSource_TransparentContainer_IE
            /**
             * @desc 
             * @param p_value
             * @param p_criticality
             */
            template (present) ProtocolIE mw_voice_support_match_indicator_IE(
                template (present) VoiceSupportMatchIndicator p_value := ?,
                template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_VoiceSupportMatchIndicator,
                criticality := p_criticality,
                value_ := { VoiceSupportMatchIndicator := p_value }
            } // End of template mw_handoverType   
            
            /**
             * @desc receive template for UE security Capabilities IE
             * @param p_value  UESecurityCapabilities value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.40 UESecurityCapabilities
             */
            template (present) ProtocolIE mw_UE_securityCapabilities_IE(
                                                   in template (present) UESecurityCapabilities p_value:=?,
                                                   in template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_UESecurityCapabilities,
                criticality := p_criticality,
                value_ := {UESecurityCapabilities := p_value}
            } // End of template mw_UE_securityCapabilities_IE
            /**
             * @desc receive template for security key IE
             * @param p_value  UESecurityCapabilities value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.41 Security Key
             */
            template (present) ProtocolIE mw_securityKey_IE(
                                                   in template (present) SecurityKey p_value:=?,
                                                   in template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_SecurityKey,
                criticality := p_criticality,
                value_ := {SecurityKey := p_value}
            } // End of template mw_securityKey_IE

            /**
             * @desc receive template for security key IE
             * @param p_value  UESecurityCapabilities value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.41 Security Key
             */
            template (present) ProtocolIE mw_eNBStatusTransferTransparentContainer_IE(
                                                   in template (present) ENB_StatusTransfer_TransparentContainer p_value:=?,
                                                   in template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_eNB_StatusTransfer_TransparentContainer,
                criticality := p_criticality,
                value_ := {ENB_StatusTransfer_TransparentContainer := p_value}
            } // End of template mw_eNBStatusTransferTransparentContainer_IE
garciay's avatar
garciay committed
        } // End of group Receive_IEs
        
        group g_IEParameters {
garciay's avatar
garciay committed
            
garciay's avatar
garciay committed
            group causes {
                
                template(value) Cause m_cause_nas(
                                                  in template (value) CauseNas p_nas
                ) := {
                    nas := p_nas
                } // End of template m_cause_nas
                
                template(value) Cause m_cause_ran(
                                                  in template (value) CauseRadioNetwork p_radioNetwork
                ) := {
                    radioNetwork := p_radioNetwork
                } // End of template m_cause_ran
                                
garciay's avatar
garciay committed
                template(present) Cause mw_cause_ran(
                                                     template (present) CauseRadioNetwork p_radioNetwork := ?
                ) := {
                    radioNetwork := p_radioNetwork
                } // End of template mw_cause_ran
                
                template(present) Cause mw_cause_transport(
                                                           template (present) CauseTransport p_transport := ?
                ) := {
                    transport := p_transport
                } // End of template mw_cause_transport
                
                template(present) Cause mw_cause_nas(
                                                     template (present) CauseNas p_nas := ?
                ) := {
                    nas := p_nas
                } // End of template mw_cause_nas
                
                template(present) Cause mw_cause_protocol(
                                                          template (present) CauseProtocol p_protocol := ?
                ) := {
                    protocol := p_protocol
                } // End of template mw_cause_protocol
                
                template(present) Cause mw_cause_misc(
                                                      template (present) CauseMisc p_misc := ?
                ) := {
                    misc := p_misc
                } // End of template mw_cause_misc
                
            } // End of group causes
            
garciay's avatar
garciay committed
            /**
             * @desc 
             */
            template (omit) E_RABToBeSetupItemBearerSUReq m_E_RABToBeSetupItemBearerSUReq(
                                                                                         in E_RAB_ID p_e_RAB_ID := 0,
                                                                                         in template (value) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := m_e_RABlevelQoSParameters,
                                                                                         in template (value) TransportLayerAddress p_transportLayerAddress := '0'B,
                                                                                         in template (value) GTP_TEID p_gTP_TEID := '00000000'O,
                                                                                         in template (value) NAS_PDU p_nAS_PDU := '0000'O,
                                                                                         in template (omit) E_RABToBeSetupItemBearerSUReq.iE_Extensions p_iE_Extensions := omit
garciay's avatar
garciay committed
            ) := {
                e_RAB_ID := p_e_RAB_ID,
                e_RABlevelQoSParameters := valueof(p_e_RABlevelQoSParameters),
                transportLayerAddress := p_transportLayerAddress,
                gTP_TEID := p_gTP_TEID,
                nAS_PDU := p_nAS_PDU,
                iE_Extensions := p_iE_Extensions
                
//              {{
//
//                  id := S1AP_Constants.id_Correlation_ID,
//                  criticality := ignore,
//                  extensionValue := {Correlation_ID := '01020304'O}
//                            }}
garciay's avatar
garciay committed
            } // End of template m_E_RABToBeSetupItemBearerSUReq
            /**
             * @desc 
             */
            template (present) E_RABToBeSetupItemBearerSUReq mw_E_RABToBeSetupItemBearerSUReq(
                                                                                          template (present) E_RAB_ID p_e_RAB_ID := 0,
                                                                                          template (present) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := mw_e_RABlevelQoSParameters,
                                                                                          template (present) TransportLayerAddress p_transportLayerAddress := '0'B,
                                                                                          template (present) GTP_TEID p_gTP_TEID := '00000000'O,
                                                                                          template (present) NAS_PDU p_nAS_PDU := '0000'O,
                                                                                          template E_RABToBeSetupItemBearerSUReq.iE_Extensions p_iE_Extensions := *
            ) := {
                e_RAB_ID := p_e_RAB_ID,
                e_RABlevelQoSParameters := p_e_RABlevelQoSParameters,
                transportLayerAddress := p_transportLayerAddress,
                gTP_TEID := p_gTP_TEID,
                nAS_PDU := p_nAS_PDU,
                iE_Extensions := p_iE_Extensions
            } // End of template mw_E_RABToBeSetupItemBearerSUReq
            template(omit) E_RABToBeModifiedItemBearerModReq m_E_RABToBeModifiedItemBearerSUReq(
                                                                                                in E_RAB_ID p_e_RAB_ID := 0,
                                                                                                in template (value) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := m_e_RABlevelQoSParameters,
                                                                                                in template (value) NAS_PDU p_nAS_PDU := '0000'O,
                                                                                                in template (omit) E_RABToBeModifiedItemBearerModReq.iE_Extensions p_iE_Extensions := omit
            ) := {
                e_RAB_ID := p_e_RAB_ID,
                e_RABLevelQoSParameters := valueof(p_e_RABlevelQoSParameters),
                nAS_PDU := p_nAS_PDU,
                iE_Extensions := p_iE_Extensions
            } // End of template m_E_RABToBeSetupItemBearerSUReq
            /**
             * @desc 
             */
            template (value) E_RABItem m_E_RABItem(
                                                   in E_RAB_ID p_e_RAB_ID := 0,
                                                   in template (value) Cause p_cause
            ) := {
                e_RAB_ID        := p_e_RAB_ID,
                cause           := p_cause,
                iE_Extensions   := omit
            } // End of template m_E_RABItem
garciay's avatar
garciay committed
            
            /**
             * @desc 
             * @param p_qCI
             */
            template (value) E_RABLevelQoSParameters m_e_RABlevelQoSParameters(
                                                                               in QCI p_qCI := 0
garciay's avatar
garciay committed
                qCI := p_qCI,
                allocationRetentionPriority := {
                    priorityLevel := 0,
                    pre_emptionCapability := shall_not_trigger_pre_emption,
                    pre_emptionVulnerability := pre_emptable,
                    iE_Extensions := omit
                },
                gbrQosInformation := omit,
                iE_Extensions := omit
            } // End of template m_e_RABlevelQoSParameters
            
            /**
             * @desc 
             * @param p_qCI
             */
            template (present) E_RABLevelQoSParameters mw_e_RABlevelQoSParameters(
                                                                               template (present) QCI p_qCI := 0
            ) := {
                qCI := p_qCI,
                allocationRetentionPriority := {
                    priorityLevel :=?,
                    pre_emptionCapability := ?,
                    pre_emptionVulnerability := ?,
                    iE_Extensions := *
                },
                gbrQosInformation := *,
                iE_Extensions := *
            } // End of template mw_e_RABlevelQoSParameters
            
garciay's avatar
garciay committed
            /**
             * @desc 
             * @param p_e_RAB_ID
             * @param p_cause
             */
            template (present) E_RABSetupItemBearerSURes mw_E_RABSetupItemBearerSURes(
                                                                                      template(present) E_RAB_ID p_e_RAB_ID := ?
garciay's avatar
garciay committed
                 e_RAB_ID                        := p_e_RAB_ID,
                 transportLayerAddress           := '?'B,
                 gTP_TEID                        := ?,
                 iE_Extensions                   := *
            } // End of template mw_E_RABSetupItemBearerSURes
            
            /**
             * @desc 
             * @param p_e_RAB_ID
             * @param p_cause
             */
            template (present) E_RABModifyItemBearerModRes mw_E_RABModifyItemBearerModRes(
                                                                                      template(present) E_RAB_ID p_e_RAB_ID := ?
            ) :=  {
                 e_RAB_ID                        := p_e_RAB_ID,
                 iE_Extensions                   := *
            } // End of template mw_E_RABSetupItemBearerSURes
            template (omit) E_RABToBeSetupItemCtxtSUReq m_E_RABToBeSetupItemCtxtSUReq(
                                                                                          in E_RAB_ID p_e_RAB_ID := 0,
                                                                                          in template (value) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := m_e_RABlevelQoSParameters,
                                                                                          in template (value) TransportLayerAddress p_transportLayerAddress := '0'B,
                                                                                          in template (value) GTP_TEID p_gTP_TEID := '00000000'O,
                                                                                          in template (omit) NAS_PDU p_nAS_PDU := '0000'O,
                                                                                          in template (omit) E_RABToBeSetupItemCtxtSUReq.iE_Extensions p_iE_Extensions := omit
            ) := {
                e_RAB_ID := p_e_RAB_ID,
                e_RABlevelQoSParameters := valueof(p_e_RABlevelQoSParameters),
                transportLayerAddress := p_transportLayerAddress,
                gTP_TEID := p_gTP_TEID,
                nAS_PDU := p_nAS_PDU,
                iE_Extensions := p_iE_Extensions
            } // End of template m_E_RABToBeSetupItemCtxtSUReq

            /**
             * @desc 
             */
            template (present) E_RABToBeSetupItemCtxtSUReq mw_E_RABToBeSetupItemCtxtSUReq(
                                                                                          template (present) E_RAB_ID p_e_RAB_ID := 0,
                                                                                          template (present) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := mw_e_RABlevelQoSParameters,
                                                                                          template (present) TransportLayerAddress p_transportLayerAddress := '0'B,
                                                                                          template (present) GTP_TEID p_gTP_TEID := '00000000'O,
                                                                                          template NAS_PDU p_nAS_PDU := ?,
                                                                                          template E_RABToBeSetupItemCtxtSUReq.iE_Extensions p_iE_Extensions := *
            ) := {
                e_RAB_ID := p_e_RAB_ID,
                e_RABlevelQoSParameters := p_e_RABlevelQoSParameters,
                transportLayerAddress := p_transportLayerAddress,
                gTP_TEID := p_gTP_TEID,
                nAS_PDU := p_nAS_PDU,
                iE_Extensions := p_iE_Extensions
            } // End of template mw_E_RABToBeSetupItemCtxtSUReq
            
            /**
             * @desc 
             */
            template (omit) E_RABToBeSetupItemHOReq m_E_RABToBeSetupItemHOReq(
                                                                                          in E_RAB_ID p_e_RAB_ID := 0,
                                                                                          in template (value) TransportLayerAddress p_transportLayerAddress := '0'B,
                                                                                          in template (value) GTP_TEID p_gTP_TEID := '00000000'O,
                                                                                          in template (value) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := m_e_RABlevelQoSParameters,
                                                                                          in template (omit) E_RABToBeSetupItemHOReq.iE_Extensions p_iE_Extensions := omit
            ) := {
                e_RAB_ID := p_e_RAB_ID,
                transportLayerAddress := p_transportLayerAddress,
                gTP_TEID := p_gTP_TEID,
                e_RABlevelQosParameters := valueof(p_e_RABlevelQoSParameters),
                iE_Extensions := p_iE_Extensions
            } // End of template m_E_RABToBeSetupItemHOReq
            
            /**
             * @desc 
             * @param p_e_RAB_ID
             */
            template (present) E_RABAdmittedItem mw_E_RABAdmittedItem(
                                                                                      template(present) E_RAB_ID p_e_RAB_ID := ?
            ) :=  {
                 e_RAB_ID                        := p_e_RAB_ID,
                 transportLayerAddress           := '?'B,
                 gTP_TEID                        := ?,
                 dL_transportLayerAddress        := *,
                 dL_gTP_TEID                     := *,
                 uL_TransportLayerAddress        := *,
                 uL_GTP_TEID                     := *,
                 iE_Extensions                   := *
            } // End of template mw_E_RABAdmittedItem
            
            /**
             * @desc 
             * @param p_e_RAB_ID
             */
            template (present) E_RABToBeSwitchedDLItem mw_E_RABToBeSwitchedDLItem(
                                                                                      template(present) E_RAB_ID p_e_RAB_ID := ?
            ) :=  {
                 e_RAB_ID                        := p_e_RAB_ID,
                 transportLayerAddress           := '?'B,
                 gTP_TEID                        := ?,
                 iE_Extensions                   := *
            } // End of template mw_E_RABAdmittedItem
            
garciay's avatar
garciay committed
            /**
             * @desc 
             */
            template (present) E_RABItem mw_E_RABItem(
                                                      template (present) E_RAB_ID p_e_RAB_ID := ?,
                                                      template (present) Cause p_cause := ?
            ) := {
                e_RAB_ID := p_e_RAB_ID,cause := p_cause,iE_Extensions := *
            } // End of template mw_E_RABItem
            /**
             * @desc 
             */
            template (value) UEAggregateMaximumBitrate m_UEAggregateMaximumBitrate (BitRate p_dl, BitRate p_ul):= {
              uEaggregateMaximumBitRateDL := p_dl,
              uEaggregateMaximumBitRateUL := p_ul,
              iE_Extensions := omit
            }
            /**
             * @desc 
             */
            template (present) UEAggregateMaximumBitrate mw_UEAggregateMaximumBitrate (template (present) BitRate p_dl, template (present) BitRate p_ul):= {
              uEaggregateMaximumBitRateDL := p_dl,
              uEaggregateMaximumBitRateUL := p_ul,
              iE_Extensions := *
            }

            /**
             * @desc 
             */
            template (present) ENB_StatusTransfer_TransparentContainer mw_eNBStatusTransferTransparentContainer (
                template (present) Bearers_SubjectToStatusTransferList p_bearers_SubjectToStatusTransferList := ?):= {
              bearers_SubjectToStatusTransferList := p_bearers_SubjectToStatusTransferList,
              iE_Extensions := *
            }

            /**
             * @desc
             */
            template(value) UESecurityCapabilities m_UESecurityCapabilities
            (in template (value) EncryptionAlgorithms p_encryptionAlgorithms,
             in template (value) IntegrityProtectionAlgorithms p_integrityProtectionAlgorithms) := {
                encryptionAlgorithms := p_encryptionAlgorithms,
                integrityProtectionAlgorithms := p_integrityProtectionAlgorithms,
                iE_Extensions := omit
            }
            template (value) SecurityKey m_securityKey := oct2bit('012345678901234567890123456789AB012345678901234567890123456789AB'O); // 32 octets = 256 bits

            /**
             * @desc
             */
            template (value) SecurityContext m_securityContext (
                in template (value) integer p_nextHop := 1,
                in template (value) SecurityKey p_securityKey := m_securityKey
            ) := { 
                nextHopChainingCount := p_nextHop,
                nextHopParameter := p_securityKey,
                iE_Extensions := omit
            
            }//end template m_securityContext
garciay's avatar
garciay committed
            
            group Management_group {
                
                template (value) ResetType m_resetType_all := {
                    s1_Interface := reset_all
                } // End of template m_resetType_all
                
                template (value) ResetType m_resetType_partOfS1_Interface(
                                                                          in template (value) UE_associatedLogicalS1_ConnectionListRes p_partOfS1_Interface
                ) := {
                    partOfS1_Interface := p_partOfS1_Interface
                } // End of template m_resetType_partOfS1_Interface
                 
                template (present) ResetType mw_resetType_partOfS1_Interface(
garciay's avatar
garciay committed
                                                                             in template (present) UE_associatedLogicalS1_ConnectionListRes p_partOfS1_Interface := ?
                ) := {
                    partOfS1_Interface := p_partOfS1_Interface
                } // End of template mw_resetType_partOfS1_Interface
garciay's avatar
garciay committed
                
                template (value) ServedGUMMEIsItem m_servedGUMMEIsItem(
                                                                      in template (value) ServedPLMNs p_servedPLMNs,
                                                                      in template (value) ServedGroupIDs p_servedGroupIDs,
                                                                      in template (value) ServedMMECs p_servedMMECs
                ) := {
                    servedPLMNs    := valueof(p_servedPLMNs),
                    servedGroupIDs := valueof(p_servedGroupIDs),
                    servedMMECs    := valueof(p_servedMMECs),
                    iE_Extensions  := omit
                } // End of template m_servedGUMMEIsItem
                
                template (present) ServedGUMMEIsItem mw_servedGUMMEIsItem(
                                                                          template (present) ServedPLMNs p_servedPLMNs := ?,
                                                                          template (present) ServedGroupIDs p_servedGroupIDs := ?,
                                                                          template (present) ServedMMECs p_servedMMECs := ?
                ) := {
                    servedPLMNs    := p_servedPLMNs,
                    servedGroupIDs := p_servedGroupIDs,
                    servedMMECs    := p_servedMMECs,
                    iE_Extensions  := *
                } // End of template mw_servedGUMMEIsItem
                
            } // End of group Management_group
garciay's avatar
garciay committed
            
            /**
             * @desc Radio Network Layer Related IEs group
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1 Radio Network Layer Related IEs
garciay's avatar
garciay committed
             */
            group radioNetworkLayerRelated_IEs { 
                
                /**
                 * @desc Receive template for E-RABs Subject to Forwarding List
                 */
                template (present) E_RABDataForwardingItem mw_eRABDataForwardingItem(
                                                                                     template (present) E_RAB_ID p_e_RAB_ID := ?,
                                                                                     template (present) TransportLayerAddress p_dL_transportLayerAddress := ?,
                                                                                     template (present) GTP_TEID p_dL_gTP_TEID := ?,
                                                                                     template (present) TransportLayerAddress p_uL_TransportLayerAddress := ?,
                                                                                     template (present) GTP_TEID p_uL_GTP_TEID := ?
                ) := {
                    e_RAB_ID                    := p_e_RAB_ID,
                    dL_transportLayerAddress    := p_dL_transportLayerAddress,
                    dL_gTP_TEID                 := p_dL_gTP_TEID,
                    uL_TransportLayerAddress    := p_uL_TransportLayerAddress,
                    uL_GTP_TEID                 := p_uL_GTP_TEID,
                    iE_Extensions               := omit
                } // End of template mw_eRABDataForwardingItem
                
                /**
                 * @desc Receive template for RequestType
                 * @param p_eventType    Event Type value
                 * @param p_reportArea   Report Area value
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.34 RequestType
                 */
                template (value) RequestType m_request_Type(
                                                            in template (value) EventType p_eventType,
                                                            in template (value) ReportArea p_reportArea := ecgi
                ) := {
                    eventType       := p_eventType,
                    reportArea      := p_reportArea,
                    iE_Extensions   := omit
                } // End of template m_request_Type
                
                /**
                 * @desc Defines parameters related to a trace activation
                 * @param p_eUTRAN_Trace_ID                 The E-UTRAN Trace ID value. 
                 * @param p_interfacesToTrace               The Interfaces To Trace value. 
                 * @param p_traceDepth                      The Trace depth value. 
                 * @param p_traceCollectionEntityIPAddress  The Transport Layer Address value. 
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.4 Trace Activation
                 */
                template (value) TraceActivation m_traceActivation(
                                                                   in E_UTRAN_Trace_ID p_eUTRAN_Trace_ID,
                                                                   in InterfacesToTrace p_interfacesToTrace,
                                                                   in TraceDepth p_traceDepth,
                                                                   in TransportLayerAddress p_traceCollectionEntityIPAddress
                ) := {
                    e_UTRAN_Trace_ID                := p_eUTRAN_Trace_ID,
                    interfacesToTrace               := p_interfacesToTrace,
                    traceDepth                      := p_traceDepth,
                    traceCollectionEntityIPAddress  := p_traceCollectionEntityIPAddress,
                    iE_Extensions                   := omit
                } // End of template m_traceActivation
                
garciay's avatar
garciay committed
                /**
                 * @desc Send template for Global eNB ID protocol IE
                 * @param p_pLMNidentity  Expected PLMNidentity.
                 * @param p_eNB_ID        Expected eNodeB identifier.
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.37 Global eNB ID
                 */
                template (value) Global_ENB_ID m_Global_eNB_ID(
                                                               in template (value) PLMNidentity p_pLMNidentity,
                                                               in template (value) ENB_ID p_eNB_ID
                ) := {
                    pLMNidentity    := p_pLMNidentity,
                    eNB_ID          := p_eNB_ID,
                    iE_Extensions   := omit
                } // End of template m_Global_eNB_ID
                
                /**
                 * @desc Receive template for Global eNB ID protocol IE
                 * @param p_pLMNidentity  Expected PLMNidentity. Default: ?
                 * @param p_eNB_ID        Expected eNodeB identifier. Default: ?
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.37 Global eNB ID
                 */
garciay's avatar
garciay committed
                template (present) Global_ENB_ID mw_Global_eNB_ID(
                                                                  template (present) PLMNidentity p_pLMNidentity := ?,
                                                                  template (present) ENB_ID p_eNB_ID := ?
                ) := {
                    pLMNidentity    := p_pLMNidentity,
                    eNB_ID          := p_eNB_ID,
garciay's avatar
garciay committed
                    iE_Extensions   := *
                } // End of template mw_Global_eNB_ID
                
                /**
                 * @desc Receive template for E-UTRAN CGI
                 * @param p_pLMNidentity    Expected PLMNidentity. Default: ?
                 * @param p_cell_ID         Expected cell identifier. Default: ?
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.38 E-UTRAN CGI
                 */
                template (present) EUTRAN_CGI mw_eUTRAN_CGI(
                                                            template (present) PLMNidentity p_pLMNidentity := ?,
                                                            template (present) CellIdentity p_cell_ID := ?
                ) := {
                    pLMNidentity    := p_pLMNidentity,
                    cell_ID         := p_cell_ID,
                    iE_Extensions   := omit
                } // End of template mw_eUTRAN_CGI
                
                /**
                 * @desc Receive template for RequestType
                 * @param p_eventType    Expected PLMNidentity. Default: ?
                 * @param p_reportArea   Expected cell identifier. Default: ?
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.34 RequestType
                 */
                template (present) RequestType mw_request_Type(
                                                               template (present) EventType p_eventType := ?,
                                                               template (present) ReportArea p_reportArea := ?
                ) := {
                    eventType       := p_eventType,
                    reportArea      := p_reportArea,
                    iE_Extensions   := omit
                } // End of template mw_request_Type
                
                /**
                 * @desc Defines parameters related to a trace activation
                 * @param p_eUTRAN_Trace_ID                 The expected E-UTRAN Trace ID value. Default: ?
                 * @param p_interfacesToTrace               The expected Interfaces To Trace value. Default: ?
                 * @param p_traceDepth                      The expected Trace depth value. Default: ?
                 * @param p_traceCollectionEntityIPAddress  The expected Transport Layer Address value. Default: ?
                 * 
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.4 Trace Activation
                 */
                template (present) TraceActivation mw_traceActivation(
                                                                      template (present) E_UTRAN_Trace_ID p_eUTRAN_Trace_ID := ?,
                                                                      template (present) InterfacesToTrace p_interfacesToTrace := ?,
                                                                      template (present) TraceDepth p_traceDepth := ?,
                                                                      template (present) TransportLayerAddress p_traceCollectionEntityIPAddress := ?
                ) := {
                    e_UTRAN_Trace_ID                := p_eUTRAN_Trace_ID,
                    interfacesToTrace               := p_interfacesToTrace,
                    traceDepth                      := p_traceDepth,
                    traceCollectionEntityIPAddress  := p_traceCollectionEntityIPAddress,
                    iE_Extensions                   := omit
                } // End of template mw_traceActivation
                
            } // End of group radioNetworkLayerRelated_IEs
garciay's avatar
garciay committed
            
            /**
             * @desc Transport Network Layer Related IEs group
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.2 Transport Network Layer Related IEs
garciay's avatar
garciay committed
             */
            group transportNetworkLayerRelated_IEs { 
                
            } // End of group transportNetworkLayerRelated_IEs
garciay's avatar
garciay committed
            
            /**
             * @desc NAS Related IEs group
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3 NAS Related IEs
garciay's avatar
garciay committed
             */
garciay's avatar
garciay committed
                template (value) SupportedTAs_Item m_supportedTAs_Item(
                                                                       in template (value) TAC p_tAC,
                                                                       in template (value) BPLMNs p_broadcastPLMNs
                ) := {
                    tAC             := p_tAC,
                    broadcastPLMNs  := p_broadcastPLMNs,
                    iE_Extensions   := omit
                } // End of template m_supportedTAs_Item
                
                template (present) SupportedTAs_Item mw_supportedTAs_Item(
                                                                          template (present) TAC p_tAC := ?,
                                                                          template (present) BPLMNs p_broadcastPLMNs := ?
                ) := {
                    tAC             := p_tAC,
                    broadcastPLMNs  := p_broadcastPLMNs,
                    iE_Extensions   := *
                } // End of template mw_supportedTAs_Item
                
                /**
                 * @desc Receive template for UE_associatedLogicalS1_ConnectionItem protocol IE
                 * @param p_MME_value   MME UE S1AP ID value. Default: ?
garciay's avatar
garciay committed
                 * @param p_eNB_value   eNB UE S1AP ID value. Default: ?
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.1.8.2 RESET ACKNOWLEDGE
                 */
                template (present) UE_associatedLogicalS1_ConnectionItem mw_uE_associatedLogicalS1_ConnectionItem(
                                                                                                                  template (present) MME_UE_S1AP_ID p_MME_value := ?,
garciay's avatar
garciay committed
                                                                                                                  template (present) ENB_UE_S1AP_ID p_eNB_value := ?
                ) := {
                    mME_UE_S1AP_ID  := p_MME_value,
garciay's avatar
garciay committed
                    eNB_UE_S1AP_ID  := p_eNB_value,
                    iE_Extensions   := *
                } // End of template mw_uE_associatedLogicalS1_ConnectionItem
                
                /**
                 * @desc Receive template for UEPagingID protocol IE
                 * @param p_s_tMSI   The Temporary Mobile Subscriber Identity. Default: ?
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.6 S-TMSI
                 */
                template (present) UEPagingID mw_uEPagingID_s_tMSI(
                                                                   template (present) S_TMSI p_s_tMSI := ?
                ) := {
                    s_TMSI := p_s_tMSI
                } // End of template mw_uEPagingID_s_tMSI
                
                /**
                 * @desc Receive template for UEPagingID protocol IE
                 * @param p_s_tMSI   The International Mobile Subscriber Identity. Default: ?
                 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.11 IMSI
                 */
                template (present) UEPagingID mw_uEPagingID_iMSI(
                                                                 template (present) IMSI p_iMSI := ?