/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "X2AP-IEs"
 * 	found in "X2AP-15-4-0.asn1"
 * 	`asn1c -D ./asn1_n1 -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
 */

#ifndef	_SIPTOBearerDeactivationIndication_H_
#define	_SIPTOBearerDeactivationIndication_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum SIPTOBearerDeactivationIndication {
	SIPTOBearerDeactivationIndication_true	= 0
	/*
	 * Enumeration is extensible
	 */
} e_SIPTOBearerDeactivationIndication;

/* SIPTOBearerDeactivationIndication */
typedef long	 SIPTOBearerDeactivationIndication_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SIPTOBearerDeactivationIndication;
asn_struct_free_f SIPTOBearerDeactivationIndication_free;
asn_struct_print_f SIPTOBearerDeactivationIndication_print;
asn_constr_check_f SIPTOBearerDeactivationIndication_constraint;
ber_type_decoder_f SIPTOBearerDeactivationIndication_decode_ber;
der_type_encoder_f SIPTOBearerDeactivationIndication_encode_der;
xer_type_decoder_f SIPTOBearerDeactivationIndication_decode_xer;
xer_type_encoder_f SIPTOBearerDeactivationIndication_encode_xer;
oer_type_decoder_f SIPTOBearerDeactivationIndication_decode_oer;
oer_type_encoder_f SIPTOBearerDeactivationIndication_encode_oer;
per_type_decoder_f SIPTOBearerDeactivationIndication_decode_uper;
per_type_encoder_f SIPTOBearerDeactivationIndication_encode_uper;
per_type_decoder_f SIPTOBearerDeactivationIndication_decode_aper;
per_type_encoder_f SIPTOBearerDeactivationIndication_encode_aper;

#ifdef __cplusplus
}
#endif

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