/** * @author ETSI / TTF033 * @version $URL$ * $Id$ * @desc This module provides templates for NGAP protocol. * @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 138 413 / 3GPP TS 38.413 version 16.12 Release 16 */ module LibNGAP_Templates { // LibCommon import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; // LibNGAP import from NGAP_Constants language "ASN.1:2002" all; import from NGAP_CommonDataTypes language "ASN.1:2002" all; import from NGAP_IEs language "ASN.1:2002" all; import from NGAP_PDU_Contents language "ASN.1:2002" all; import from NGAP_PDU_Descriptions language "ASN.1:2002" all; import from NGAP_Containers language "ASN.1:2002" all; import from LibNGAP_TypesAndValues all; import from LibNGAP_Pixits all; group g_NGAP { group g_NGAP_PDU { /** * @desc Send template for NGAP PDU with InitiatingMessage payload * @param p_procedureCode Procedure code * @param p_value Message value according to the Procedure code * @see ETSI TS */ template (value) NGAP_PDU m_initiatingMessage( in ProcedureCode p_procedureCode, in NGAP_CommonDataTypes.Criticality p_criticality:=reject //in anytype p_value ) := { initiatingMessage := { procedureCode := p_procedureCode, criticality := p_criticality, value_ := omit//p_value } } // End of template m_initiatingMessage //TODO: check value_ not allowed anytype // /** // * @desc Send template for NGAP PDU with SuccessfulOutcome payload // * @param p_procedureCode Procedure code // * @param p_value Message value according to the Procedure code // * @see ETSI TS // */ // template (value) NGAP_PDU m_successfulOutcome( // in ProcedureCode p_procedureCode, // in NGAP_CommonDataTypes.Criticality p_criticality:=reject // //in anytype p_value // ) := { // successfulOutcome := { // procedureCode := p_procedureCode, // criticality := p_criticality, // value_ := ?//omit//p_value // } // } // End of template m_successfulOutcome // // /** // * @desc Send template for NGAP PDU with unsuccessfulOutcome payload // * @param p_procedureCode Procedure code // * @param p_value Message value according to the Procedure code // * @see ETSI TS // */ // template (value) NGAP_PDU m_unsuccessfulOutcome( // in ProcedureCode p_procedureCode, // in NGAP_CommonDataTypes.Criticality p_criticality:=reject // //in anytype p_value // ) := { // unsuccessfulOutcome := { // procedureCode := p_procedureCode, // criticality := p_criticality, // value_ := ?//omit//p_value // } // } // End of template m_unsuccessfulOutcome }//end of group g_NGAP_PDU //9.2 group Message_Functional_Definition_and_Content{ //9.2.1 group PDU_Session_Management_Messages{ //9.2.1.1 group PDU_SESSION_RESOURCE_SETUP_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ template (value) InitiatingMessage mw_n2_PDUSessionResourceSetupRequest( in template (value) AMF_UE_NGAP_ID p_amfUeNgapID, in template (value) RAN_UE_NGAP_ID p_ranUeNgapID, in template (value) PDUSessionResourceSetupListSUReq p_pduSessResSetL ) := { procedureCode := id_PDUSessionResourceSetup, criticality := reject, value_ := { PDUSessionResourceSetupRequest := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, criticality := reject, value_ := { aMF_UE_NGAP_ID := p_amfUeNgapID } }, { id := id_RAN_UE_NGAP_ID, criticality := reject, value_ := { rAN_UE_NGAP_ID := p_ranUeNgapID } }, { id := id_PDUSessionResourceSetupListSUReq, criticality := ignore, value_ := { pDUSessionResourceSetupListSUReq := p_pduSessResSetL} } } } } }//end of template mw_n2_PDUSessionResourceSetupRequest } } //9.2.1.2 group PDU_SESSION_RESOURCE_SETUP_RESPONSE{ group Send{/*m_*/ template (value) SuccessfulOutcome m_n2_PDUSessionResourceSetupResponse( in template (value) AMF_UE_NGAP_ID p_amfUeNgapID, in template (value) RAN_UE_NGAP_ID p_ranUeNgapID, in template (value) PDUSessionResourceSetupListSURes p_pduSessResSetL ) := { procedureCode := id_PDUSessionResourceSetup, criticality := reject, value_ := { PDUSessionResourceSetupResponse := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, criticality := reject, value_ := { aMF_UE_NGAP_ID := p_amfUeNgapID } }, { id := id_RAN_UE_NGAP_ID, criticality := reject, value_ := { rAN_UE_NGAP_ID := p_ranUeNgapID } }, { id := id_PDUSessionResourceSetupListSUReq, criticality := ignore, value_ := { pDUSessionResourceSetupListSURes := p_pduSessResSetL} } } } } }//end of template mw_n2_PDUSessionResourceSetupResponse } group Receive{/*mw_*/ } } //9.2.1.3 group PDU_SESSION_RESOURCE_RELEASE_COMMAND{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.1.4 group PDU_SESSION_RESOURCE_RELEASE_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.1.5 group PDU_SESSION_RESOURCE_MODIFY_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.1.6 group PDU_SESSION_RESOURCE_MODIFY_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.1.7 group PDU_SESSION_RESOURCE_NOTIFY{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.1.8 group PDU_SESSION_RESOURCE_MODIFY_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.1.9 group PDU_SESSION_RESOURCE_MODIFY_CONFIRM{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end_of_group_PDU_Session_Management_Messages //9.2.2 group UE_Context_Management_Messages{ //9.2.2.1 group INITIAL_CONTEXT_SETUP_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.2 group INITIAL_CONTEXT_SETUP_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.3 group INITIAL_CONTEXT_SETUP_FAILURE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.4 group UE_CONTEXT_RELEASE_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.5 group UE_CONTEXT_RELEASE_COMMAND{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.6 group UE_CONTEXT_RELEASE_COMPLETE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.7 group UE_CONTEXT_MODIFICATION_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.8 group UE_CONTEXT_MODIFICATION_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.9 group UE_CONTEXT_MODIFICATION_FAILURE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.10 group RRC_INACTIVE_TRANSITION_REPORT{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.11 group CONNECTION_ESTABLISHMENT_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.12 group AMF_CP_RELOCATION_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.13 group RAN_CP_RELOCATION_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.14 group RETRIEVE_UE_INFORMATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.15 group UE_INFORMATION_TRANSFER{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.16 group UE_CONTEXT_SUSPEND_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.17 group UE_CONTEXT_SUSPEND_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.18 group UE_CONTEXT_SUSPEND_FAILURE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.19 group UE_CONTEXT_RESUME_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.20 group UE_CONTEXT_RESUME_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.2.21 group UE_CONTEXT_RESUME_FAILURE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end_of_group_UE_Context_Management_Messages_ //9.2.3 group UE_Mobility_Management_Messages{ //9.2.3.1 group HANDOVER_REQUIRED{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.2 group HANDOVER_COMMAND{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.3 group HANDOVER_PREPARATION_FAILURE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.4 group HANDOVER_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.5 group HANDOVER_REQUEST_ACKNOWLEDGE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.6 group HANDOVER_FAILURE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.7 group HANDOVER_NOTIFY{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.8 group PATH_SWITCH_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.9 group PATH_SWITCH_REQUEST_ACKNOWLEDGE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.10 group PATH_SWITCH_REQUEST_FAILURE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.11 group HANDOVER_CANCEL{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.12 group HANDOVER_CANCEL_ACKNOWLEDGE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.13 group UPLINK_RAN_STATUS_TRANSFER{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.14 group DOWNLINK_RAN_STATUS_TRANSFER{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.15 group HANDOVER_SUCCESS{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.16 group UPLINK_RAN_EARLY_STATUS_TRANSFER{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.3.17 group DOWNLINK_RAN_EARLY_STATUS_TRANSFER{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group UE_Mobility_Management_Messages //9.2.4 group Paging_Messages{ //9.2.4.1 group PAGING{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group Paging_Messages //9.2.5 group NAS_Transport_Messages{ //9.2.5.1 group INITIAL_UE_MESSAGE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.5.2 group DOWNLINK_NAS_TRANSPORT{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.5.3 group UPLINK_NAS_TRANSPORT{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.5.4 group NAS_NON_DELIVERY_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.5.5 group REROUTE_NAS_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group NAS_Transport_Messages //9.2.6 group Interface_Management_Messages{ //9.2.6.1 group NG_SETUP_REQUEST{ group Send{/*m_*/ template (value) InitiatingMessage m_n2_NGSetupRequest( in template (value) GlobalRANNodeID p_globalRANNodeID, in template (value) SupportedTAList p_supportedTAs, in template (value) PagingDRX p_pagingDRX ) := { procedureCode := id_NGSetup, criticality := reject, value_ := { NGSetupRequest := { protocolIEs := { { id := id_GlobalRANNodeID, criticality := reject, value_ := { globalRANNodeID := p_globalRANNodeID } }, { id := id_SupportedTAList, criticality := reject, value_ := { supportedTAList := p_supportedTAs } }, { id := id_DefaultPagingDRX, criticality := ignore, value_ := { pagingDRX := p_pagingDRX } } } } } }//end of template m_n2_NGSetupRequest } group Receive{/*mw_*/ } } //9.2.6.2 group NG_SETUP_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.3 group NG_SETUP_FAILURE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.4 group RAN_CONFIGURATION_UPDATE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.5 group RAN_CONFIGURATION_UPDATE_ACKNOWLEDGE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.6 group RAN_CONFIGURATION_UPDATE_FAILURE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.7 group AMF_CONFIGURATION_UPDATE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.8 group AMF_CONFIGURATION_UPDATE_ACKNOWLEDGE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.9 group AMF_CONFIGURATION_UPDATE_FAILURE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.10 group AMF_STATUS_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.11 group NG_RESET{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.12 group NG_RESET_ACKNOWLEDGE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.13 group ERROR_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.14 group OVERLOAD_START{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.6.15 group OVERLOAD_STOP{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group Interface_Management_Messages //9.2.7 group Configuration_Transfer_Messages{ //9.2.7.1 group UPLINK_RAN_CONFIGURATION_TRANSFER{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.7.2 group DOWNLINK_RAN_CONFIGURATION_TRANSFER{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group Configuration_Transfer_Messages //9.2.8 group Warning_Message_Transmission_Messages{ //9.2.8.1 group WRITE_REPLACE_WARNING_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.8.2 group WRITE_REPLACE_WARNING_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.8.3 group PWS_CANCEL_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.8.4 group PWS_CANCEL_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.8.5 group PWS_RESTART_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.8.6 group PWS_FAILURE_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group Warning_Message_Transmission_Messages //9.2.9 group NRPPa_Transport_Messages{ //9.2.9.1 group DOWNLINK_UE_ASSOCIATED_NRPPA_TRANSPORT{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.9.2 group UPLINK_UE_ASSOCIATED_NRPPA_TRANSPORT{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.9.3 group DOWNLINK_NON_UE_ASSOCIATED_NRPPA_TRANSPORT{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.9.4 group UPLINK_NON_UE_ASSOCIATED_NRPPA_TRANSPORT{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group NRPPa_Transport_Messages //9.2.10 group Trace_Messages{ //9.2.10.1 group TRACE_START{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.10.2 group TRACE_FAILURE_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.10.3 group DEACTIVATE_TRACE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.10.4 group CELL_TRAFFIC_TRACE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group Trace_Messages //9.2.11 group Location_Reporting_Messages{ //9.2.11.1 group LOCATION_REPORTING_CONTROL{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.11.2 group LOCATION_REPORTING_FAILURE_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.11.3 group LOCATION_REPORT{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group Location_Reporting_Messages //9.2.12 group UE_TNLA_Binding_Messages{ //9.2.12.1 group UE_TNLA_BINDING_RELEASE_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group UE_TNLA_Binding_Messages //9.2.13 group UE_Radio_Capability_Management_Messages{ //9.2.13.1 group UE_RADIO_CAPABILITY_INFO_INDICATION{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.13.2 group UE_RADIO_CAPABILITY_CHECK_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.13.3 group UE_RADIO_CAPABILITY_CHECK_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.13.4 group UE_RADIO_CAPABILITY_ID_MAPPING_REQUEST{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.13.5 group UE_RADIO_CAPABILITY_ID_MAPPING_RESPONSE{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group UE_Radio_Capability_Management_Messages //9.2.14 group Data_Usage_Reporting_Messages{ //9.2.14.1 group SECONDARY_RAT_DATA_USAGE_REPORT{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group Data_Usage_Reporting_Messages //9.2.15 group RIM_Information_Transfer_Messages{ //9.2.15.1 group UPLINK_RIM_INFORMATION_TRANSFER{ group Send{/*m_*/ } group Receive{/*mw_*/ } } //9.2.15.2 group DOWNLINK_RIM_INFORMATION_TRANSFER{ group Send{/*m_*/ } group Receive{/*mw_*/ } } }//end of group RIM_Information_Transfer_Messages }//end of group Message_Functional_Definition_and_Content group Information_elements{ group Send{/*m_ie_*/ template GlobalRANNodeID m_ie_gRanNodeID := { globalGNB_ID := { pLMNIdentity := '010001'O, gNB_ID := {gNB_ID:='0000000000000000000000'B}, iE_Extensions := omit } }//end of template m_ie_gRanNodeID template SupportedTAList m_ie_supportedTAList:= { { tAC := '000001'O, broadcastPLMNList := { { pLMNIdentity := '000101'O, tAISliceSupportList := { { s_NSSAI := { sST := '00'O, sD := '000000'O, iE_Extensions := omit }, iE_Extensions :=omit } }, iE_Extensions :=omit } }, iE_Extensions :=omit } }//end of template m_ie_supportedTAList template PagingDRX m_ie_defaultPagingDRX (PagingDRX p_drx:=v256):= p_drx; } group Receive{/*mw_ie_*/ } }//end of group Information_elements }//end of group g_NGAP group Functions_For_Templates{ }//end of group functionsForTemplates }// End of module LibNGAP_Templates