/*
 * 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_FrequenceLayerConvergenceFlag_H_
#define	_RANAP_FrequenceLayerConvergenceFlag_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RANAP_FrequenceLayerConvergenceFlag {
	RANAP_FrequenceLayerConvergenceFlag_no_FLC_flag	= 0
	/*
	 * Enumeration is extensible
	 */
} e_RANAP_FrequenceLayerConvergenceFlag;

/* RANAP_FrequenceLayerConvergenceFlag */
typedef long	 RANAP_FrequenceLayerConvergenceFlag_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_FrequenceLayerConvergenceFlag;
asn_struct_free_f RANAP_FrequenceLayerConvergenceFlag_free;
asn_struct_print_f RANAP_FrequenceLayerConvergenceFlag_print;
asn_constr_check_f RANAP_FrequenceLayerConvergenceFlag_constraint;
ber_type_decoder_f RANAP_FrequenceLayerConvergenceFlag_decode_ber;
der_type_encoder_f RANAP_FrequenceLayerConvergenceFlag_encode_der;
xer_type_decoder_f RANAP_FrequenceLayerConvergenceFlag_decode_xer;
xer_type_encoder_f RANAP_FrequenceLayerConvergenceFlag_encode_xer;
per_type_decoder_f RANAP_FrequenceLayerConvergenceFlag_decode_uper;
per_type_encoder_f RANAP_FrequenceLayerConvergenceFlag_encode_uper;
per_type_decoder_f RANAP_FrequenceLayerConvergenceFlag_decode_aper;
per_type_encoder_f RANAP_FrequenceLayerConvergenceFlag_encode_aper;

#ifdef __cplusplus
}
#endif

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