/*
 * 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_PrivateIE_ID_H_
#define	_RANAP_PrivateIE_ID_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RANAP_PrivateIE_ID_PR {
	RANAP_PrivateIE_ID_PR_NOTHING,	/* No components present */
	RANAP_PrivateIE_ID_PR_local,
	RANAP_PrivateIE_ID_PR_global
} RANAP_PrivateIE_ID_PR;

/* RANAP_PrivateIE-ID */
typedef struct RANAP_PrivateIE_ID {
	RANAP_PrivateIE_ID_PR present;
	union RANAP_PrivateIE_ID_u {
		long	 local;
		OBJECT_IDENTIFIER_t	 global;
	} choice;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RANAP_PrivateIE_ID_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_PrivateIE_ID;

#ifdef __cplusplus
}
#endif

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