/*
 * 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_IMEISVGroup_H_
#define	_RANAP_IMEISVGroup_H_


#include <asn_application.h>

/* Including external dependencies */
#include <osmocom/ranap/RANAP_IMEISV.h>
#include <BIT_STRING.h>
#include <osmocom/ranap/RANAP_IE-Extensions.h>
#include <constr_SEQUENCE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* RANAP_IMEISVGroup */
typedef struct RANAP_IMEISVGroup {
	RANAP_IMEISV_t	 iMEISV;
	BIT_STRING_t	 iMEISVMask;
	RANAP_IE_Extensions_t	*iE_Extensions	/* OPTIONAL */;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RANAP_IMEISVGroup_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_IMEISVGroup;

#ifdef __cplusplus
}
#endif

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