/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "HNBAP-IEs"
 * 	found in "../../asn1/hnbap/HNBAP-IEs.asn"
 * 	`asn1c -gen-PER`
 */

#ifndef	_RABListItem_H_
#define	_RABListItem_H_


#include <asn_application.h>

/* Including external dependencies */
#include <osmocom/hnbap/RAB-ID.h>
#include <osmocom/hnbap/TransportInfo.h>
#include <osmocom/hnbap/CN-DomainIndicator.h>
#include <constr_SEQUENCE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Forward declarations */
struct IE_Extensions;

/* RABListItem */
typedef struct RABListItem {
	RAB_ID_t	 rAB_ID;
	TransportInfo_t	 old_transport_Info;
	TransportInfo_t	 new_transport_Info;
	CN_DomainIndicator_t	 cn_domain_indicator;
	struct IE_Extensions	*iE_Extensions	/* OPTIONAL */;
	/*
	 * This type is extensible,
	 * possible extensions are below.
	 */
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RABListItem_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RABListItem;

#ifdef __cplusplus
}
#endif

/* Referred external types */
#include <osmocom/hnbap/IE-Extensions.h>

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