Newer
Older
* @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
// 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;
// /**
// * @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
group Send {
template (value) NGAP_PDU m_ngap_initMsg(
in template (value) InitiatingMessage p_msg
) := {
initiatingMessage := p_msg
} // End of template m_ngap_initMsg
template (value) NGAP_PDU m_ngap_succMsg(
in template (value) SuccessfulOutcome p_msg
) := {
successfulOutcome := p_msg
} // End of template m_ngap_succMsg
template (value) NGAP_PDU m_ngap_unsuccMsg(
in template (value) UnsuccessfulOutcome p_msg
) := {
unsuccessfulOutcome := p_msg
} // End of template m_ngap_unsuccMsg
} // End of group Send
group Receive {
template (present) NGAP_PDU mw_ngap_initMsg(
template (present) InitiatingMessage p_msg := ?
) := {
initiatingMessage := p_msg
} // End of template m_ngap_initMsg
template (present) NGAP_PDU mw_ngap_succMsg(
template (present) SuccessfulOutcome p_msg := ?
) := {
successfulOutcome := p_msg
} // End of template m_ngap_succMsg
template (present) NGAP_PDU mw_ngap_unsuccMsg(
template (present) UnsuccessfulOutcome p_msg := ?
) := {
unsuccessfulOutcome := p_msg
} // End of template m_ngap_unsuccMsg
} // 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{
template (value) InitiatingMessage m_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
template (present) InitiatingMessage mw_n2_PDUSessionResourceSetupRequest(
template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?,
template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?,
template (present) 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{
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_PDUSessionResourceSetupListSURes,
criticality := ignore,
value_ := { PDUSessionResourceSetupListSURes := p_pduSessResSetL}
}
} // End of template mw_n2_PDUSessionResourceSetupResponse
} // End of group Send
group Receive {
template (present) SuccessfulOutcome mw_n2_PDUSessionResourceSetupResponse(
template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?,
template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?,
template (present) PDUSessionResourceSetupListSURes p_pduSessResSetL := ?
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
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_PDUSessionResourceSetupListSURes,
criticality := ignore,
value_ := { PDUSessionResourceSetupListSURes := p_pduSessResSetL}
}
}
}
}
} // End of template mw_n2_PDUSessionResourceSetupResponse
}
//9.2.1.3
group PDU_SESSION_RESOURCE_RELEASE_COMMAND{
}
}
//9.2.1.4
group PDU_SESSION_RESOURCE_RELEASE_RESPONSE{
}
}
//9.2.1.5
group PDU_SESSION_RESOURCE_MODIFY_REQUEST{
}
}
//9.2.1.6
group PDU_SESSION_RESOURCE_MODIFY_RESPONSE{
}
}
//9.2.1.7
group PDU_SESSION_RESOURCE_NOTIFY{
}
}
//9.2.1.8
group PDU_SESSION_RESOURCE_MODIFY_INDICATION{
}
}
//9.2.1.9
group PDU_SESSION_RESOURCE_MODIFY_CONFIRM{
} // End of group PDU_Session_Management_Messages
//9.2.2
group UE_Context_Management_Messages{
//9.2.2.1
group INITIAL_CONTEXT_SETUP_REQUEST{
}
}
//9.2.2.2
group INITIAL_CONTEXT_SETUP_RESPONSE{
}
}
//9.2.2.3
group INITIAL_CONTEXT_SETUP_FAILURE{
}
}
//9.2.2.4
group UE_CONTEXT_RELEASE_REQUEST{
}
}
//9.2.2.5
group UE_CONTEXT_RELEASE_COMMAND{
}
}
//9.2.2.6
group UE_CONTEXT_RELEASE_COMPLETE{
}
}
//9.2.2.7
group UE_CONTEXT_MODIFICATION_REQUEST{
}
}
//9.2.2.8
group UE_CONTEXT_MODIFICATION_RESPONSE{
}
}
//9.2.2.9
group UE_CONTEXT_MODIFICATION_FAILURE{
}
}
//9.2.2.10
group RRC_INACTIVE_TRANSITION_REPORT{
}
}
//9.2.2.11
group CONNECTION_ESTABLISHMENT_INDICATION{
}
}
//9.2.2.12
group AMF_CP_RELOCATION_INDICATION{
}
}
//9.2.2.13
group RAN_CP_RELOCATION_INDICATION{
}
}
//9.2.2.14
group RETRIEVE_UE_INFORMATION{
}
}
//9.2.2.15
group UE_INFORMATION_TRANSFER{
}
}
//9.2.2.16
group UE_CONTEXT_SUSPEND_REQUEST{
}
}
//9.2.2.17
group UE_CONTEXT_SUSPEND_RESPONSE{
}
}
//9.2.2.18
group UE_CONTEXT_SUSPEND_FAILURE{
}
}
//9.2.2.19
group UE_CONTEXT_RESUME_REQUEST{
}
}
//9.2.2.20
group UE_CONTEXT_RESUME_RESPONSE{
}
}
//9.2.2.21
group UE_CONTEXT_RESUME_FAILURE{
} // End of group UE_Context_Management_Messages_
//9.2.3
group UE_Mobility_Management_Messages{
//9.2.3.1
group HANDOVER_REQUIRED{
}
}
//9.2.3.2
group HANDOVER_COMMAND{
}
}
//9.2.3.3
group HANDOVER_PREPARATION_FAILURE{
}
}
//9.2.3.4
group HANDOVER_REQUEST{
}
}
//9.2.3.5
group HANDOVER_REQUEST_ACKNOWLEDGE{
}
}
//9.2.3.6
group HANDOVER_FAILURE{
}
}
//9.2.3.7
group HANDOVER_NOTIFY{
}
}
//9.2.3.8
group PATH_SWITCH_REQUEST{
}
}
//9.2.3.9
group PATH_SWITCH_REQUEST_ACKNOWLEDGE{
}
}
//9.2.3.10
group PATH_SWITCH_REQUEST_FAILURE{
}
}
//9.2.3.11
group HANDOVER_CANCEL{
}
}
//9.2.3.12
group HANDOVER_CANCEL_ACKNOWLEDGE{
}
}
//9.2.3.13
group UPLINK_RAN_STATUS_TRANSFER{
}
}
//9.2.3.14
group DOWNLINK_RAN_STATUS_TRANSFER{
}
}
//9.2.3.15
group HANDOVER_SUCCESS{
}
}
//9.2.3.16
group UPLINK_RAN_EARLY_STATUS_TRANSFER{
}
}
//9.2.3.17
group DOWNLINK_RAN_EARLY_STATUS_TRANSFER{
} // End of group UE_Mobility_Management_Messages
//9.2.4
group Paging_Messages{
//9.2.4.1
group PAGING{
} // End of group Paging_Messages
//9.2.5
group NAS_Transport_Messages{
//9.2.5.1
group INITIAL_UE_MESSAGE{
template (value) InitiatingMessage m_n2_initialUeMessage(
in template (value) RAN_UE_NGAP_ID p_RANUeNgapID,
in template (value) NAS_PDU p_nasPdu,
in template (value) UserLocationInformation p_UeLocInf,
in template (value) RRCEstablishmentCause p_rrcEstCause
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
procedureCode := id_InitialUEMessage,
criticality := reject,
value_ := {
InitialUEMessage := {
protocolIEs := {
{
id := id_RAN_UE_NGAP_ID,
criticality := reject,
value_ := {RAN_UE_NGAP_ID:=p_RANUeNgapID}
//presence := NGAP_CommonDataTypes.mandatory
},
{
id := id_NAS_PDU,
criticality := reject,
value_ := {NAS_PDU:=p_nasPdu}
//presence := NGAP_CommonDataTypes.mandatory
},
{
id := id_UserLocationInformation,
criticality := reject,
value_ := {UserLocationInformation:=p_UeLocInf}
//presence := NGAP_CommonDataTypes.mandatory
},
{
id := id_RRCEstablishmentCause,
criticality := ignore,
value_ := {RRCEstablishmentCause:=p_rrcEstCause}
//presence := NGAP_CommonDataTypes.mandatory
}//,
/*{
id := NGAP_Constants.id_FiveG_S_TMSI,
criticality := NGAP_CommonDataTypes.reject,
Value := "NGAP_IEs.FiveG_S_TMSI",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_AMFSetID,
criticality := NGAP_CommonDataTypes.ignore,
Value := "NGAP_IEs.AMFSetID",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_UEContextRequest,
criticality := NGAP_CommonDataTypes.ignore,
Value := "NGAP_IEs.UEContextRequest",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_AllowedNSSAI,
criticality := NGAP_CommonDataTypes.reject,
Value := "NGAP_IEs.AllowedNSSAI",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_SourceToTarget_AMFInformationReroute,
criticality := NGAP_CommonDataTypes.ignore,
Value := "NGAP_IEs.SourceToTarget_AMFInformationReroute",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_SelectedPLMNIdentity,
criticality := NGAP_CommonDataTypes.ignore,
Value := "NGAP_IEs.PLMNIdentity",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_IABNodeIndication,
criticality := NGAP_CommonDataTypes.reject,
Value := "NGAP_IEs.IABNodeIndication",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_CEmodeBSupport_Indicator,
criticality := NGAP_CommonDataTypes.reject,
Value := "NGAP_IEs.CEmodeBSupport_Indicator",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_LTEM_Indication,
criticality := NGAP_CommonDataTypes.ignore,
Value := "NGAP_IEs.LTEM_Indication",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_EDT_Session,
criticality := NGAP_CommonDataTypes.ignore,
Value := "NGAP_IEs.EDT_Session",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_AuthenticatedIndication,
criticality := NGAP_CommonDataTypes.ignore,
Value := "NGAP_IEs.AuthenticatedIndication",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_NPN_AccessInformation,
criticality := NGAP_CommonDataTypes.reject,
Value := "NGAP_IEs.NPN_AccessInformation",
presence := NGAP_CommonDataTypes.optional_
},
{
id := NGAP_Constants.id_RedCapIndication,
criticality := NGAP_CommonDataTypes.ignore,
Value := "NGAP_IEs.RedCapIndication",
presence := NGAP_CommonDataTypes.optional_
}*/
}
}
}
} // End of template m_n2_initialUeMessage
}
//9.2.5.2
group DOWNLINK_NAS_TRANSPORT{
}
}
//9.2.5.3
group UPLINK_NAS_TRANSPORT{
}
}
//9.2.5.4
group NAS_NON_DELIVERY_INDICATION{
}
}
//9.2.5.5
group REROUTE_NAS_REQUEST{
} // End of group NAS_Transport_Messages
//9.2.6
group Interface_Management_Messages{
//9.2.6.1
group NG_SETUP_REQUEST{
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
}
}
}
//9.2.6.2
group NG_SETUP_RESPONSE{
template (present) SuccessfulOutcome mw_n2_NGSetupResponse(
in template (present) AMFName p_amfName := ?,
in template (present) ServedGUAMIList p_servedGUAMIList := ?,
in template (present) RelativeAMFCapacity p_relativeAmfCap:= ?,
in template (present) PLMNSupportList p_plmnSuppList := ?
) := {
procedureCode := id_NGSetup,
criticality := ?,
value_ := {
NGSetupResponse := {
protocolIEs := {
{
id := id_AMFName,
criticality := reject,
value_ := { AMFName := p_amfName }
},
{
id := id_ServedGUAMIList,
criticality := reject,
value_ := { ServedGUAMIList := p_servedGUAMIList }
},
{
id := id_RelativeAMFCapacity,
criticality := ignore,
value_ := { RelativeAMFCapacity := p_relativeAmfCap }
},
{
id := id_PLMNSupportList,
criticality := ignore,
value_ := { PLMNSupportList := p_plmnSuppList }
}
}
}
}
}//end of template mw_n2_NGSetupResponse
}
}
//9.2.6.3
group NG_SETUP_FAILURE{
template (present) UnsuccessfulOutcome mw_n2_NGSetupFailure(
in template (present) Cause p_cause := ?
) := {
procedureCode := id_NGSetup,
value_ := {
NGSetupFailure := {
protocolIEs := {
{
id := id_Cause,
value_ := { Cause := p_cause }
}
}
}
}
}//end of template mw_n2_NGSetupFailure
}
}
//9.2.6.4
group RAN_CONFIGURATION_UPDATE{
}
}
//9.2.6.5
group RAN_CONFIGURATION_UPDATE_ACKNOWLEDGE{
}
}
//9.2.6.6
group RAN_CONFIGURATION_UPDATE_FAILURE{
}
}
//9.2.6.7
group AMF_CONFIGURATION_UPDATE{
}
}
//9.2.6.8
group AMF_CONFIGURATION_UPDATE_ACKNOWLEDGE{
}
}
//9.2.6.9
group AMF_CONFIGURATION_UPDATE_FAILURE{
}
}
//9.2.6.10
group AMF_STATUS_INDICATION{
}
}
//9.2.6.11
group NG_RESET{
}
}
//9.2.6.12
group NG_RESET_ACKNOWLEDGE{
}
}
//9.2.6.13
group ERROR_INDICATION{
}
}
//9.2.6.14
group OVERLOAD_START{
}
}
//9.2.6.15
group OVERLOAD_STOP{
} // End of group Interface_Management_Messages
//9.2.7
group Configuration_Transfer_Messages{
//9.2.7.1
group UPLINK_RAN_CONFIGURATION_TRANSFER{
}
}
//9.2.7.2
group DOWNLINK_RAN_CONFIGURATION_TRANSFER{
} // End of group Configuration_Transfer_Messages
//9.2.8
group Warning_Message_Transmission_Messages{
//9.2.8.1
group WRITE_REPLACE_WARNING_REQUEST{