/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "RUA-IEs"
 * 	found in "../../asn1/rua/RUA-IEs.asn"
 */

#ifndef	_RUA_RoutingParameter_H_
#define	_RUA_RoutingParameter_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* RUA_RoutingParameter */
typedef BIT_STRING_t	 RUA_RoutingParameter_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RUA_RoutingParameter;
asn_struct_free_f RUA_RoutingParameter_free;
asn_struct_print_f RUA_RoutingParameter_print;
asn_constr_check_f RUA_RoutingParameter_constraint;
ber_type_decoder_f RUA_RoutingParameter_decode_ber;
der_type_encoder_f RUA_RoutingParameter_encode_der;
xer_type_decoder_f RUA_RoutingParameter_decode_xer;
xer_type_encoder_f RUA_RoutingParameter_encode_xer;
per_type_decoder_f RUA_RoutingParameter_decode_uper;
per_type_encoder_f RUA_RoutingParameter_encode_uper;
per_type_decoder_f RUA_RoutingParameter_decode_aper;
per_type_encoder_f RUA_RoutingParameter_encode_aper;

#ifdef __cplusplus
}
#endif

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