/*
 * 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_HigherBitratesThan16MbpsFlag_H_
#define	_RANAP_HigherBitratesThan16MbpsFlag_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RANAP_HigherBitratesThan16MbpsFlag {
	RANAP_HigherBitratesThan16MbpsFlag_allowed	= 0,
	RANAP_HigherBitratesThan16MbpsFlag_not_allowed	= 1
	/*
	 * Enumeration is extensible
	 */
} e_RANAP_HigherBitratesThan16MbpsFlag;

/* RANAP_HigherBitratesThan16MbpsFlag */
typedef long	 RANAP_HigherBitratesThan16MbpsFlag_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_HigherBitratesThan16MbpsFlag;
asn_struct_free_f RANAP_HigherBitratesThan16MbpsFlag_free;
asn_struct_print_f RANAP_HigherBitratesThan16MbpsFlag_print;
asn_constr_check_f RANAP_HigherBitratesThan16MbpsFlag_constraint;
ber_type_decoder_f RANAP_HigherBitratesThan16MbpsFlag_decode_ber;
der_type_encoder_f RANAP_HigherBitratesThan16MbpsFlag_encode_der;
xer_type_decoder_f RANAP_HigherBitratesThan16MbpsFlag_decode_xer;
xer_type_encoder_f RANAP_HigherBitratesThan16MbpsFlag_encode_xer;
per_type_decoder_f RANAP_HigherBitratesThan16MbpsFlag_decode_uper;
per_type_encoder_f RANAP_HigherBitratesThan16MbpsFlag_encode_uper;
per_type_decoder_f RANAP_HigherBitratesThan16MbpsFlag_decode_aper;
per_type_encoder_f RANAP_HigherBitratesThan16MbpsFlag_encode_aper;

#ifdef __cplusplus
}
#endif

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