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

#ifndef	_RANAP_TemporaryUE_ID_H_
#define	_RANAP_TemporaryUE_ID_H_


#include <asn_application.h>

/* Including external dependencies */
#include "RANAP_TMSI.h"
#include "RANAP_P-TMSI.h"
#include <constr_CHOICE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RANAP_TemporaryUE_ID_PR {
	RANAP_TemporaryUE_ID_PR_NOTHING,	/* No components present */
	RANAP_TemporaryUE_ID_PR_tMSI,
	RANAP_TemporaryUE_ID_PR_p_TMSI,
	/* Extensions may appear below */
	
} RANAP_TemporaryUE_ID_PR;

/* RANAP_TemporaryUE-ID */
typedef struct RANAP_TemporaryUE_ID {
	RANAP_TemporaryUE_ID_PR present;
	union RANAP_TemporaryUE_ID_u {
		RANAP_TMSI_t	 tMSI;
		RANAP_P_TMSI_t	 p_TMSI;
		/*
		 * This type is extensible,
		 * possible extensions are below.
		 */
	} choice;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RANAP_TemporaryUE_ID_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_TemporaryUE_ID;

#ifdef __cplusplus
}
#endif

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