/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "E2AP-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`
 */

#include "RICcontrolMessage.h"

/*
 * This type is implemented using OCTET_STRING,
 * so here we adjust the DEF accordingly.
 */
static const ber_tlv_tag_t asn_DEF_RICcontrolMessage_tags_1[] = {
	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))
};
asn_TYPE_descriptor_t asn_DEF_RICcontrolMessage = {
	"RICcontrolMessage",
	"RICcontrolMessage",
	&asn_OP_OCTET_STRING,
	asn_DEF_RICcontrolMessage_tags_1,
	sizeof(asn_DEF_RICcontrolMessage_tags_1)
		/sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */
	asn_DEF_RICcontrolMessage_tags_1,	/* Same as above */
	sizeof(asn_DEF_RICcontrolMessage_tags_1)
		/sizeof(asn_DEF_RICcontrolMessage_tags_1[0]), /* 1 */
	{ 0, 0, OCTET_STRING_constraint },
	0, 0,	/* No members */
	&asn_SPC_OCTET_STRING_specs	/* Additional specs */
};

