/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "RANAP-PDU"
 * 	found in "../../asn1/ranap/RANAP-PDU.asn"
 */

#ifndef	_RANAP_ProtocolExtensionField_H_
#define	_RANAP_ProtocolExtensionField_H_


#include <asn_application.h>

/* Including external dependencies */
#include "RANAP_ProtocolIE-ID.h"
#include "RANAP_Criticality.h"
#include <ANY.h>
#include <constr_SEQUENCE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* RANAP_ProtocolExtensionField */
typedef struct RANAP_ProtocolExtensionField {
	RANAP_ProtocolIE_ID_t	 id;
	RANAP_Criticality_t	 criticality;
	ANY_t	 value;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RANAP_ProtocolExtensionField_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_ProtocolExtensionField;

#ifdef __cplusplus
}
#endif

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