/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "X2AP-IEs"
 * 	found in "Spec/e2_and_x2-combined-and-minimized.asn1"
 * 	`asn1c -pdu=auto -fincludes-quoted -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example`
 */

#ifndef	_BandwidthReducedSI_H_
#define	_BandwidthReducedSI_H_


#include "asn_application.h"

/* Including external dependencies */
#include "NativeEnumerated.h"

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum BandwidthReducedSI {
	BandwidthReducedSI_scheduled	= 0
	/*
	 * Enumeration is extensible
	 */
} e_BandwidthReducedSI;

/* BandwidthReducedSI */
typedef long	 BandwidthReducedSI_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_BandwidthReducedSI;
asn_struct_free_f BandwidthReducedSI_free;
asn_struct_print_f BandwidthReducedSI_print;
asn_constr_check_f BandwidthReducedSI_constraint;
ber_type_decoder_f BandwidthReducedSI_decode_ber;
der_type_encoder_f BandwidthReducedSI_encode_der;
xer_type_decoder_f BandwidthReducedSI_decode_xer;
xer_type_encoder_f BandwidthReducedSI_encode_xer;
per_type_decoder_f BandwidthReducedSI_decode_uper;
per_type_encoder_f BandwidthReducedSI_encode_uper;
per_type_decoder_f BandwidthReducedSI_decode_aper;
per_type_encoder_f BandwidthReducedSI_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _BandwidthReducedSI_H_ */
#include "asn_internal.h"
