/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "S1AP-IEs"
 * 	found in "./asn1c/S1AP-IEs.asn"
 * 	`asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU`
 */

#ifndef	_RRC_Establishment_Cause_H_
#define	_RRC_Establishment_Cause_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RRC_Establishment_Cause {
	RRC_Establishment_Cause_emergency	= 0,
	RRC_Establishment_Cause_highPriorityAccess	= 1,
	RRC_Establishment_Cause_mt_Access	= 2,
	RRC_Establishment_Cause_mo_Signalling	= 3,
	RRC_Establishment_Cause_mo_Data	= 4,
	/*
	 * Enumeration is extensible
	 */
	RRC_Establishment_Cause_delay_TolerantAccess	= 5,
	RRC_Establishment_Cause_mo_VoiceCall	= 6,
	RRC_Establishment_Cause_mo_ExceptionData	= 7
} e_RRC_Establishment_Cause;

/* RRC-Establishment-Cause */
typedef long	 RRC_Establishment_Cause_t;

/* Implementation */
extern asn_per_constraints_t asn_PER_type_RRC_Establishment_Cause_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_RRC_Establishment_Cause;
extern const asn_INTEGER_specifics_t asn_SPC_RRC_Establishment_Cause_specs_1;
asn_struct_free_f RRC_Establishment_Cause_free;
asn_struct_print_f RRC_Establishment_Cause_print;
asn_constr_check_f RRC_Establishment_Cause_constraint;
ber_type_decoder_f RRC_Establishment_Cause_decode_ber;
der_type_encoder_f RRC_Establishment_Cause_encode_der;
xer_type_decoder_f RRC_Establishment_Cause_decode_xer;
xer_type_encoder_f RRC_Establishment_Cause_encode_xer;
oer_type_decoder_f RRC_Establishment_Cause_decode_oer;
oer_type_encoder_f RRC_Establishment_Cause_encode_oer;
per_type_decoder_f RRC_Establishment_Cause_decode_uper;
per_type_encoder_f RRC_Establishment_Cause_encode_uper;
per_type_decoder_f RRC_Establishment_Cause_decode_aper;
per_type_encoder_f RRC_Establishment_Cause_encode_aper;

#ifdef __cplusplus
}
#endif

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