/*
 * 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_CauseRadioNetworkExtension_H_
#define	_RANAP_CauseRadioNetworkExtension_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RANAP_CauseRadioNetworkExtension {
	RANAP_CauseRadioNetworkExtension_iP_multicast_address_and_APN_not_valid	= 257,
	RANAP_CauseRadioNetworkExtension_mBMS_de_registration_rejected_due_to_implicit_registration	= 258,
	RANAP_CauseRadioNetworkExtension_mBMS_request_superseded	= 259,
	RANAP_CauseRadioNetworkExtension_mBMS_de_registration_during_session_not_allowed	= 260,
	RANAP_CauseRadioNetworkExtension_mBMS_no_data_bearer_necessary	= 261,
	RANAP_CauseRadioNetworkExtension_periodicLocationInformationNotAvailable	= 262,
	RANAP_CauseRadioNetworkExtension_gTP_Resources_Unavailable	= 263,
	RANAP_CauseRadioNetworkExtension_tMGI_inUse_overlapping_MBMS_service_area	= 264,
	RANAP_CauseRadioNetworkExtension_mBMS_no_cell_in_MBMS_service_area	= 265,
	RANAP_CauseRadioNetworkExtension_no_Iu_CS_UP_relocation	= 266,
	RANAP_CauseRadioNetworkExtension_successful_MBMS_Session_Start_IP_Multicast_Bearer_established	= 267,
	RANAP_CauseRadioNetworkExtension_cS_fallback_triggered	= 268,
	RANAP_CauseRadioNetworkExtension_invalid_CSG_Id	= 269
} e_RANAP_CauseRadioNetworkExtension;

/* RANAP_CauseRadioNetworkExtension */
typedef long	 RANAP_CauseRadioNetworkExtension_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_CauseRadioNetworkExtension;
asn_struct_free_f RANAP_CauseRadioNetworkExtension_free;
asn_struct_print_f RANAP_CauseRadioNetworkExtension_print;
asn_constr_check_f RANAP_CauseRadioNetworkExtension_constraint;
ber_type_decoder_f RANAP_CauseRadioNetworkExtension_decode_ber;
der_type_encoder_f RANAP_CauseRadioNetworkExtension_encode_der;
xer_type_decoder_f RANAP_CauseRadioNetworkExtension_decode_xer;
xer_type_encoder_f RANAP_CauseRadioNetworkExtension_encode_xer;
per_type_decoder_f RANAP_CauseRadioNetworkExtension_decode_uper;
per_type_encoder_f RANAP_CauseRadioNetworkExtension_encode_uper;
per_type_decoder_f RANAP_CauseRadioNetworkExtension_decode_aper;
per_type_encoder_f RANAP_CauseRadioNetworkExtension_encode_aper;

#ifdef __cplusplus
}
#endif

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