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

#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;
oer_type_decoder_f BandwidthReducedSI_decode_oer;
oer_type_encoder_f BandwidthReducedSI_encode_oer;
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>
