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

#ifndef	_RANAP_M4Report_H_
#define	_RANAP_M4Report_H_


#include <asn_application.h>

/* Including external dependencies */
#include <NULL.h>
#include <osmocom/ranap/RANAP_M4-Collection-Parameters.h>
#include <constr_CHOICE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RANAP_M4Report_PR {
	RANAP_M4Report_PR_NOTHING,	/* No components present */
	RANAP_M4Report_PR_all,
	RANAP_M4Report_PR_m4_collection_parameters,
	/* Extensions may appear below */
	
} RANAP_M4Report_PR;

/* RANAP_M4Report */
typedef struct RANAP_M4Report {
	RANAP_M4Report_PR present;
	union RANAP_M4Report_u {
		NULL_t	 all;
		RANAP_M4_Collection_Parameters_t	 m4_collection_parameters;
		/*
		 * This type is extensible,
		 * possible extensions are below.
		 */
	} choice;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RANAP_M4Report_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_M4Report;

#ifdef __cplusplus
}
#endif

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