/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "RANAP-CommonDataTypes"
 * 	found in "../../asn1/ranap/RANAP-CommonDataTypes.asn"
 */

#ifndef	_RANAP_ProtocolIE_ID_H_
#define	_RANAP_ProtocolIE_ID_H_


#include <asn_application.h>

/* Including external dependencies */
#include <NativeInteger.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RANAP_ProtocolIE_ID {
	RANAP_ProtocolIE_ID_id_AreaIdentity	= 0,
	RANAP_ProtocolIE_ID_id_CN_DomainIndicator	= 3,
	RANAP_ProtocolIE_ID_id_Cause	= 4,
	RANAP_ProtocolIE_ID_id_ChosenEncryptionAlgorithm	= 5,
	RANAP_ProtocolIE_ID_id_ChosenIntegrityProtectionAlgorithm	= 6,
	RANAP_ProtocolIE_ID_id_ClassmarkInformation2	= 7,
	RANAP_ProtocolIE_ID_id_ClassmarkInformation3	= 8,
	RANAP_ProtocolIE_ID_id_CriticalityDiagnostics	= 9,
	RANAP_ProtocolIE_ID_id_DL_GTP_PDU_SequenceNumber	= 10,
	RANAP_ProtocolIE_ID_id_EncryptionInformation	= 11,
	RANAP_ProtocolIE_ID_id_IntegrityProtectionInformation	= 12,
	RANAP_ProtocolIE_ID_id_IuTransportAssociation	= 13,
	RANAP_ProtocolIE_ID_id_L3_Information	= 14,
	RANAP_ProtocolIE_ID_id_LAI	= 15,
	RANAP_ProtocolIE_ID_id_NAS_PDU	= 16,
	RANAP_ProtocolIE_ID_id_NonSearchingIndication	= 17,
	RANAP_ProtocolIE_ID_id_NumberOfSteps	= 18,
	RANAP_ProtocolIE_ID_id_OMC_ID	= 19,
	RANAP_ProtocolIE_ID_id_OldBSS_ToNewBSS_Information	= 20,
	RANAP_ProtocolIE_ID_id_PagingAreaID	= 21,
	RANAP_ProtocolIE_ID_id_PagingCause	= 22,
	RANAP_ProtocolIE_ID_id_PermanentNAS_UE_ID	= 23,
	RANAP_ProtocolIE_ID_id_RAB_ContextItem	= 24,
	RANAP_ProtocolIE_ID_id_RAB_ContextList	= 25,
	RANAP_ProtocolIE_ID_id_RAB_DataForwardingItem	= 26,
	RANAP_ProtocolIE_ID_id_RAB_DataForwardingItem_SRNS_CtxReq	= 27,
	RANAP_ProtocolIE_ID_id_RAB_DataForwardingList	= 28,
	RANAP_ProtocolIE_ID_id_RAB_DataForwardingList_SRNS_CtxReq	= 29,
	RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportItem	= 30,
	RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportList	= 31,
	RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportRequestItem	= 32,
	RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportRequestList	= 33,
	RANAP_ProtocolIE_ID_id_RAB_FailedItem	= 34,
	RANAP_ProtocolIE_ID_id_RAB_FailedList	= 35,
	RANAP_ProtocolIE_ID_id_RAB_ID	= 36,
	RANAP_ProtocolIE_ID_id_RAB_QueuedItem	= 37,
	RANAP_ProtocolIE_ID_id_RAB_QueuedList	= 38,
	RANAP_ProtocolIE_ID_id_RAB_ReleaseFailedList	= 39,
	RANAP_ProtocolIE_ID_id_RAB_ReleaseItem	= 40,
	RANAP_ProtocolIE_ID_id_RAB_ReleaseList	= 41,
	RANAP_ProtocolIE_ID_id_RAB_ReleasedItem	= 42,
	RANAP_ProtocolIE_ID_id_RAB_ReleasedList	= 43,
	RANAP_ProtocolIE_ID_id_RAB_ReleasedList_IuRelComp	= 44,
	RANAP_ProtocolIE_ID_id_RAB_RelocationReleaseItem	= 45,
	RANAP_ProtocolIE_ID_id_RAB_RelocationReleaseList	= 46,
	RANAP_ProtocolIE_ID_id_RAB_SetupItem_RelocReq	= 47,
	RANAP_ProtocolIE_ID_id_RAB_SetupItem_RelocReqAck	= 48,
	RANAP_ProtocolIE_ID_id_RAB_SetupList_RelocReq	= 49,
	RANAP_ProtocolIE_ID_id_RAB_SetupList_RelocReqAck	= 50,
	RANAP_ProtocolIE_ID_id_RAB_SetupOrModifiedItem	= 51,
	RANAP_ProtocolIE_ID_id_RAB_SetupOrModifiedList	= 52,
	RANAP_ProtocolIE_ID_id_RAB_SetupOrModifyItem	= 53,
	RANAP_ProtocolIE_ID_id_RAB_SetupOrModifyList	= 54,
	RANAP_ProtocolIE_ID_id_RAC	= 55,
	RANAP_ProtocolIE_ID_id_RelocationType	= 56,
	RANAP_ProtocolIE_ID_id_RequestType	= 57,
	RANAP_ProtocolIE_ID_id_SAI	= 58,
	RANAP_ProtocolIE_ID_id_SAPI	= 59,
	RANAP_ProtocolIE_ID_id_SourceID	= 60,
	RANAP_ProtocolIE_ID_id_Source_ToTarget_TransparentContainer	= 61,
	RANAP_ProtocolIE_ID_id_TargetID	= 62,
	RANAP_ProtocolIE_ID_id_Target_ToSource_TransparentContainer	= 63,
	RANAP_ProtocolIE_ID_id_TemporaryUE_ID	= 64,
	RANAP_ProtocolIE_ID_id_TraceReference	= 65,
	RANAP_ProtocolIE_ID_id_TraceType	= 66,
	RANAP_ProtocolIE_ID_id_TransportLayerAddress	= 67,
	RANAP_ProtocolIE_ID_id_TriggerID	= 68,
	RANAP_ProtocolIE_ID_id_UE_ID	= 69,
	RANAP_ProtocolIE_ID_id_UL_GTP_PDU_SequenceNumber	= 70,
	RANAP_ProtocolIE_ID_id_RAB_FailedtoReportItem	= 71,
	RANAP_ProtocolIE_ID_id_RAB_FailedtoReportList	= 72,
	RANAP_ProtocolIE_ID_id_KeyStatus	= 75,
	RANAP_ProtocolIE_ID_id_DRX_CycleLengthCoefficient	= 76,
	RANAP_ProtocolIE_ID_id_IuSigConIdList	= 77,
	RANAP_ProtocolIE_ID_id_IuSigConIdItem	= 78,
	RANAP_ProtocolIE_ID_id_IuSigConId	= 79,
	RANAP_ProtocolIE_ID_id_DirectTransferInformationItem_RANAP_RelocInf	= 80,
	RANAP_ProtocolIE_ID_id_DirectTransferInformationList_RANAP_RelocInf	= 81,
	RANAP_ProtocolIE_ID_id_RAB_ContextItem_RANAP_RelocInf	= 82,
	RANAP_ProtocolIE_ID_id_RAB_ContextList_RANAP_RelocInf	= 83,
	RANAP_ProtocolIE_ID_id_RAB_ContextFailedtoTransferItem	= 84,
	RANAP_ProtocolIE_ID_id_RAB_ContextFailedtoTransferList	= 85,
	RANAP_ProtocolIE_ID_id_GlobalRNC_ID	= 86,
	RANAP_ProtocolIE_ID_id_RAB_ReleasedItem_IuRelComp	= 87,
	RANAP_ProtocolIE_ID_id_MessageStructure	= 88,
	RANAP_ProtocolIE_ID_id_Alt_RAB_Parameters	= 89,
	RANAP_ProtocolIE_ID_id_Ass_RAB_Parameters	= 90,
	RANAP_ProtocolIE_ID_id_RAB_ModifyList	= 91,
	RANAP_ProtocolIE_ID_id_RAB_ModifyItem	= 92,
	RANAP_ProtocolIE_ID_id_TypeOfError	= 93,
	RANAP_ProtocolIE_ID_id_BroadcastAssistanceDataDecipheringKeys	= 94,
	RANAP_ProtocolIE_ID_id_LocationRelatedDataRequestType	= 95,
	RANAP_ProtocolIE_ID_id_GlobalCN_ID	= 96,
	RANAP_ProtocolIE_ID_id_LastKnownServiceArea	= 97,
	RANAP_ProtocolIE_ID_id_SRB_TrCH_Mapping	= 98,
	RANAP_ProtocolIE_ID_id_InterSystemInformation_TransparentContainer	= 99,
	RANAP_ProtocolIE_ID_id_NewBSS_To_OldBSS_Information	= 100,
	RANAP_ProtocolIE_ID_id_SourceRNC_PDCP_context_info	= 103,
	RANAP_ProtocolIE_ID_id_InformationTransferID	= 104,
	RANAP_ProtocolIE_ID_id_SNA_Access_Information	= 105,
	RANAP_ProtocolIE_ID_id_ProvidedData	= 106,
	RANAP_ProtocolIE_ID_id_GERAN_BSC_Container	= 107,
	RANAP_ProtocolIE_ID_id_GERAN_Classmark	= 108,
	RANAP_ProtocolIE_ID_id_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item	= 109,
	RANAP_ProtocolIE_ID_id_GERAN_Iumode_RAB_FailedList_RABAssgntResponse	= 110,
	RANAP_ProtocolIE_ID_id_VerticalAccuracyCode	= 111,
	RANAP_ProtocolIE_ID_id_ResponseTime	= 112,
	RANAP_ProtocolIE_ID_id_PositioningPriority	= 113,
	RANAP_ProtocolIE_ID_id_ClientType	= 114,
	RANAP_ProtocolIE_ID_id_LocationRelatedDataRequestTypeSpecificToGERANIuMode	= 115,
	RANAP_ProtocolIE_ID_id_SignallingIndication	= 116,
	RANAP_ProtocolIE_ID_id_hS_DSCH_MAC_d_Flow_ID	= 117,
	RANAP_ProtocolIE_ID_id_UESBI_Iu	= 118,
	RANAP_ProtocolIE_ID_id_PositionData	= 119,
	RANAP_ProtocolIE_ID_id_PositionDataSpecificToGERANIuMode	= 120,
	RANAP_ProtocolIE_ID_id_CellLoadInformationGroup	= 121,
	RANAP_ProtocolIE_ID_id_AccuracyFulfilmentIndicator	= 122,
	RANAP_ProtocolIE_ID_id_InformationTransferType	= 123,
	RANAP_ProtocolIE_ID_id_TraceRecordingSessionInformation	= 124,
	RANAP_ProtocolIE_ID_id_TracePropagationParameters	= 125,
	RANAP_ProtocolIE_ID_id_InterSystemInformationTransferType	= 126,
	RANAP_ProtocolIE_ID_id_SelectedPLMN_ID	= 127,
	RANAP_ProtocolIE_ID_id_RedirectionCompleted	= 128,
	RANAP_ProtocolIE_ID_id_RedirectionIndication	= 129,
	RANAP_ProtocolIE_ID_id_NAS_SequenceNumber	= 130,
	RANAP_ProtocolIE_ID_id_RejectCauseValue	= 131,
	RANAP_ProtocolIE_ID_id_APN	= 132,
	RANAP_ProtocolIE_ID_id_CNMBMSLinkingInformation	= 133,
	RANAP_ProtocolIE_ID_id_DeltaRAListofIdleModeUEs	= 134,
	RANAP_ProtocolIE_ID_id_FrequenceLayerConvergenceFlag	= 135,
	RANAP_ProtocolIE_ID_id_InformationExchangeID	= 136,
	RANAP_ProtocolIE_ID_id_InformationExchangeType	= 137,
	RANAP_ProtocolIE_ID_id_InformationRequested	= 138,
	RANAP_ProtocolIE_ID_id_InformationRequestType	= 139,
	RANAP_ProtocolIE_ID_id_IPMulticastAddress	= 140,
	RANAP_ProtocolIE_ID_id_JoinedMBMSBearerServicesList	= 141,
	RANAP_ProtocolIE_ID_id_LeftMBMSBearerServicesList	= 142,
	RANAP_ProtocolIE_ID_id_MBMSBearerServiceType	= 143,
	RANAP_ProtocolIE_ID_id_MBMSCNDe_Registration	= 144,
	RANAP_ProtocolIE_ID_id_MBMSServiceArea	= 145,
	RANAP_ProtocolIE_ID_id_MBMSSessionDuration	= 146,
	RANAP_ProtocolIE_ID_id_MBMSSessionIdentity	= 147,
	RANAP_ProtocolIE_ID_id_PDP_TypeInformation	= 148,
	RANAP_ProtocolIE_ID_id_RAB_Parameters	= 149,
	RANAP_ProtocolIE_ID_id_RAListofIdleModeUEs	= 150,
	RANAP_ProtocolIE_ID_id_MBMSRegistrationRequestType	= 151,
	RANAP_ProtocolIE_ID_id_SessionUpdateID	= 152,
	RANAP_ProtocolIE_ID_id_TMGI	= 153,
	RANAP_ProtocolIE_ID_id_TransportLayerInformation	= 154,
	RANAP_ProtocolIE_ID_id_UnsuccessfulLinkingList	= 155,
	RANAP_ProtocolIE_ID_id_MBMSLinkingInformation	= 156,
	RANAP_ProtocolIE_ID_id_MBMSSessionRepetitionNumber	= 157,
	RANAP_ProtocolIE_ID_id_AlternativeRABConfiguration	= 158,
	RANAP_ProtocolIE_ID_id_AlternativeRABConfigurationRequest	= 159,
	RANAP_ProtocolIE_ID_id_E_DCH_MAC_d_Flow_ID	= 160,
	RANAP_ProtocolIE_ID_id_SourceBSS_ToTargetBSS_TransparentContainer	= 161,
	RANAP_ProtocolIE_ID_id_TargetBSS_ToSourceBSS_TransparentContainer	= 162,
	RANAP_ProtocolIE_ID_id_TimeToMBMSDataTransfer	= 163,
	RANAP_ProtocolIE_ID_id_IncludeVelocity	= 164,
	RANAP_ProtocolIE_ID_id_VelocityEstimate	= 165,
	RANAP_ProtocolIE_ID_id_RedirectAttemptFlag	= 166,
	RANAP_ProtocolIE_ID_id_RAT_Type	= 167,
	RANAP_ProtocolIE_ID_id_PeriodicLocationInfo	= 168,
	RANAP_ProtocolIE_ID_id_MBMSCountingInformation	= 169,
	RANAP_ProtocolIE_ID_id_170_not_to_be_used_for_IE_ids	= 170,
	RANAP_ProtocolIE_ID_id_ExtendedRNC_ID	= 171,
	RANAP_ProtocolIE_ID_id_Alt_RAB_Parameter_ExtendedGuaranteedBitrateInf	= 172,
	RANAP_ProtocolIE_ID_id_Alt_RAB_Parameter_ExtendedMaxBitrateInf	= 173,
	RANAP_ProtocolIE_ID_id_Ass_RAB_Parameter_ExtendedGuaranteedBitrateList	= 174,
	RANAP_ProtocolIE_ID_id_Ass_RAB_Parameter_ExtendedMaxBitrateList	= 175,
	RANAP_ProtocolIE_ID_id_RAB_Parameter_ExtendedGuaranteedBitrateList	= 176,
	RANAP_ProtocolIE_ID_id_RAB_Parameter_ExtendedMaxBitrateList	= 177,
	RANAP_ProtocolIE_ID_id_Requested_RAB_Parameter_ExtendedMaxBitrateList	= 178,
	RANAP_ProtocolIE_ID_id_Requested_RAB_Parameter_ExtendedGuaranteedBitrateList	= 179,
	RANAP_ProtocolIE_ID_id_LAofIdleModeUEs	= 180,
	RANAP_ProtocolIE_ID_id_newLAListofIdleModeUEs	= 181,
	RANAP_ProtocolIE_ID_id_LAListwithNoIdleModeUEsAnyMore	= 182,
	RANAP_ProtocolIE_ID_id_183_not_to_be_used_for_IE_ids	= 183,
	RANAP_ProtocolIE_ID_id_GANSS_PositioningDataSet	= 184,
	RANAP_ProtocolIE_ID_id_RequestedGANSSAssistanceData	= 185,
	RANAP_ProtocolIE_ID_id_BroadcastGANSSAssistanceDataDecipheringKeys	= 186,
	RANAP_ProtocolIE_ID_id_d_RNTI_for_NoIuCSUP	= 187,
	RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhancedRelocCompleteReq	= 188,
	RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhancedRelocCompleteReq	= 189,
	RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhancedRelocCompleteRes	= 190,
	RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhancedRelocCompleteRes	= 191,
	RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhRelocInfoReq	= 192,
	RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhRelocInfoReq	= 193,
	RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhRelocInfoRes	= 194,
	RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhRelocInfoRes	= 195,
	RANAP_ProtocolIE_ID_id_OldIuSigConId	= 196,
	RANAP_ProtocolIE_ID_id_RAB_FailedList_EnhRelocInfoRes	= 197,
	RANAP_ProtocolIE_ID_id_RAB_FailedItem_EnhRelocInfoRes	= 198,
	RANAP_ProtocolIE_ID_id_Global_ENB_ID	= 199,
	RANAP_ProtocolIE_ID_id_UE_History_Information	= 200,
	RANAP_ProtocolIE_ID_id_MBMSSynchronisationInformation	= 201,
	RANAP_ProtocolIE_ID_id_SubscriberProfileIDforRFP	= 202,
	RANAP_ProtocolIE_ID_id_CSG_Id	= 203,
	RANAP_ProtocolIE_ID_id_OldIuSigConIdCS	= 204,
	RANAP_ProtocolIE_ID_id_OldIuSigConIdPS	= 205,
	RANAP_ProtocolIE_ID_id_GlobalCN_IDCS	= 206,
	RANAP_ProtocolIE_ID_id_GlobalCN_IDPS	= 207,
	RANAP_ProtocolIE_ID_id_SourceExtendedRNC_ID	= 208,
	RANAP_ProtocolIE_ID_id_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes	= 209,
	RANAP_ProtocolIE_ID_id_RAB_ToBeReleasedList_EnhancedRelocCompleteRes	= 210,
	RANAP_ProtocolIE_ID_id_SourceRNC_ID	= 211,
	RANAP_ProtocolIE_ID_id_Relocation_TargetRNC_ID	= 212,
	RANAP_ProtocolIE_ID_id_Relocation_TargetExtendedRNC_ID	= 213,
	RANAP_ProtocolIE_ID_id_Alt_RAB_Parameter_SupportedGuaranteedBitrateInf	= 214,
	RANAP_ProtocolIE_ID_id_Alt_RAB_Parameter_SupportedMaxBitrateInf	= 215,
	RANAP_ProtocolIE_ID_id_Ass_RAB_Parameter_SupportedGuaranteedBitrateList	= 216,
	RANAP_ProtocolIE_ID_id_Ass_RAB_Parameter_SupportedMaxBitrateList	= 217,
	RANAP_ProtocolIE_ID_id_RAB_Parameter_SupportedGuaranteedBitrateList	= 218,
	RANAP_ProtocolIE_ID_id_RAB_Parameter_SupportedMaxBitrateList	= 219,
	RANAP_ProtocolIE_ID_id_Requested_RAB_Parameter_SupportedMaxBitrateList	= 220,
	RANAP_ProtocolIE_ID_id_Requested_RAB_Parameter_SupportedGuaranteedBitrateList	= 221,
	RANAP_ProtocolIE_ID_id_Relocation_SourceRNC_ID	= 222,
	RANAP_ProtocolIE_ID_id_Relocation_SourceExtendedRNC_ID	= 223,
	RANAP_ProtocolIE_ID_id_EncryptionKey	= 224,
	RANAP_ProtocolIE_ID_id_IntegrityProtectionKey	= 225,
	RANAP_ProtocolIE_ID_id_SRVCC_HO_Indication	= 226,
	RANAP_ProtocolIE_ID_id_SRVCC_Information	= 227,
	RANAP_ProtocolIE_ID_id_SRVCC_Operation_Possible	= 228,
	RANAP_ProtocolIE_ID_id_CSG_Id_List	= 229,
	RANAP_ProtocolIE_ID_id_PSRABtobeReplaced	= 230,
	RANAP_ProtocolIE_ID_id_E_UTRAN_Service_Handover	= 231,
	RANAP_ProtocolIE_ID_id_UE_AggregateMaximumBitRate	= 233,
	RANAP_ProtocolIE_ID_id_CSG_Membership_Status	= 234,
	RANAP_ProtocolIE_ID_id_Cell_Access_Mode	= 235,
	RANAP_ProtocolIE_ID_id_IP_Source_Address	= 236,
	RANAP_ProtocolIE_ID_id_CSFB_Information	= 237,
	RANAP_ProtocolIE_ID_id_PDP_TypeInformation_extension	= 238,
	RANAP_ProtocolIE_ID_id_MSISDN	= 239,
	RANAP_ProtocolIE_ID_id_Offload_RAB_Parameters	= 240,
	RANAP_ProtocolIE_ID_id_LGW_TransportLayerAddress	= 241,
	RANAP_ProtocolIE_ID_id_Correlation_ID	= 242,
	RANAP_ProtocolIE_ID_id_IRAT_Measurement_Configuration	= 243,
	RANAP_ProtocolIE_ID_id_MDT_Configuration	= 244,
	RANAP_ProtocolIE_ID_id_Priority_Class_Indicator	= 245,
	RANAP_ProtocolIE_ID_id_RNSAPRelocationParameters	= 247,
	RANAP_ProtocolIE_ID_id_RABParametersList	= 248,
	RANAP_ProtocolIE_ID_id_Management_Based_MDT_Allowed	= 249,
	RANAP_ProtocolIE_ID_id_HigherBitratesThan16MbpsFlag	= 250,
	RANAP_ProtocolIE_ID_id_Trace_Collection_Entity_IP_Addess	= 251,
	RANAP_ProtocolIE_ID_id_End_Of_CSFB	= 252,
	RANAP_ProtocolIE_ID_id_Time_UE_StayedInCell_EnhancedGranularity	= 253,
	RANAP_ProtocolIE_ID_id_Out_Of_UTRAN	= 254,
	RANAP_ProtocolIE_ID_id_TraceRecordingSessionReference	= 255,
	RANAP_ProtocolIE_ID_id_IMSI	= 256,
	RANAP_ProtocolIE_ID_id_HO_Cause	= 257,
	RANAP_ProtocolIE_ID_id_VoiceSupportMatchIndicator	= 258,
	RANAP_ProtocolIE_ID_id_RSRVCC_HO_Indication	= 259,
	RANAP_ProtocolIE_ID_id_RSRVCC_Information	= 260,
	RANAP_ProtocolIE_ID_id_AnchorPLMN_ID	= 261,
	RANAP_ProtocolIE_ID_id_Tunnel_Information_for_BBF	= 262,
	RANAP_ProtocolIE_ID_id_Management_Based_MDT_PLMN_List	= 263,
	RANAP_ProtocolIE_ID_id_SignallingBasedMDTPLMNList	= 264,
	RANAP_ProtocolIE_ID_id_M4Report	= 265,
	RANAP_ProtocolIE_ID_id_M5Report	= 266,
	RANAP_ProtocolIE_ID_id_M6Report	= 267,
	RANAP_ProtocolIE_ID_id_M7Report	= 268,
	RANAP_ProtocolIE_ID_id_TimingDifferenceULDL	= 269,
	RANAP_ProtocolIE_ID_id_Serving_Cell_Identifier	= 270,
	RANAP_ProtocolIE_ID_id_EARFCN_Extended	= 271,
	RANAP_ProtocolIE_ID_id_RSRVCC_Operation_Possible	= 272,
	RANAP_ProtocolIE_ID_id_SIPTO_LGW_TransportLayerAddress	= 273,
	RANAP_ProtocolIE_ID_id_SIPTO_Correlation_ID	= 274,
	RANAP_ProtocolIE_ID_id_LHN_ID	= 275,
	RANAP_ProtocolIE_ID_id_Session_Re_establishment_Indicator	= 276,
	RANAP_ProtocolIE_ID_id_LastE_UTRANPLMNIdentity	= 277,
	RANAP_ProtocolIE_ID_id_RSRQ_Type	= 278,
	RANAP_ProtocolIE_ID_id_RSRQ_Extension	= 279
} e_RANAP_ProtocolIE_ID;

/* RANAP_ProtocolIE-ID */
typedef long	 RANAP_ProtocolIE_ID_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_ProtocolIE_ID;
asn_struct_free_f RANAP_ProtocolIE_ID_free;
asn_struct_print_f RANAP_ProtocolIE_ID_print;
asn_constr_check_f RANAP_ProtocolIE_ID_constraint;
ber_type_decoder_f RANAP_ProtocolIE_ID_decode_ber;
der_type_encoder_f RANAP_ProtocolIE_ID_encode_der;
xer_type_decoder_f RANAP_ProtocolIE_ID_decode_xer;
xer_type_encoder_f RANAP_ProtocolIE_ID_encode_xer;
per_type_decoder_f RANAP_ProtocolIE_ID_decode_uper;
per_type_encoder_f RANAP_ProtocolIE_ID_encode_uper;
per_type_decoder_f RANAP_ProtocolIE_ID_decode_aper;
per_type_encoder_f RANAP_ProtocolIE_ID_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _RANAP_ProtocolIE_ID_H_ */
#include <asn_internal.h>
