/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "E2AP-IEs"
 * 	found in "E2AP-IEs-v01.00.asn"
 * 	`asn1c -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
 */

#ifndef	_RICcontrolHeader_H_
#define	_RICcontrolHeader_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* RICcontrolHeader */
typedef OCTET_STRING_t	 RICcontrolHeader_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RICcontrolHeader;
asn_struct_free_f RICcontrolHeader_free;
asn_struct_print_f RICcontrolHeader_print;
asn_constr_check_f RICcontrolHeader_constraint;
ber_type_decoder_f RICcontrolHeader_decode_ber;
der_type_encoder_f RICcontrolHeader_encode_der;
xer_type_decoder_f RICcontrolHeader_decode_xer;
xer_type_encoder_f RICcontrolHeader_encode_xer;
oer_type_decoder_f RICcontrolHeader_decode_oer;
oer_type_encoder_f RICcontrolHeader_encode_oer;
per_type_decoder_f RICcontrolHeader_decode_uper;
per_type_encoder_f RICcontrolHeader_encode_uper;
per_type_decoder_f RICcontrolHeader_decode_aper;
per_type_encoder_f RICcontrolHeader_encode_aper;

#ifdef __cplusplus
}
#endif

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