/*
 * 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_RAB_SetupOrModifyItemFirst_H_
#define	_RANAP_RAB_SetupOrModifyItemFirst_H_


#include <asn_application.h>

/* Including external dependencies */
#include "RANAP_RAB-ID.h"
#include "RANAP_NAS-SynchronisationIndicator.h"
#include "RANAP_RAB-Parameters.h"
#include "RANAP_UserPlaneInformation.h"
#include "RANAP_TransportLayerInformation.h"
#include "RANAP_Service-Handover.h"
#include "RANAP_ProtocolExtensionContainer.h"
#include <constr_SEQUENCE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* RANAP_RAB-SetupOrModifyItemFirst */
typedef struct RANAP_RAB_SetupOrModifyItemFirst {
	RANAP_RAB_ID_t	 rAB_ID;
	RANAP_NAS_SynchronisationIndicator_t	*nAS_SynchronisationIndicator	/* OPTIONAL */;
	RANAP_RAB_Parameters_t	*rAB_Parameters	/* OPTIONAL */;
	RANAP_UserPlaneInformation_t	*userPlaneInformation	/* OPTIONAL */;
	RANAP_TransportLayerInformation_t	*transportLayerInformation	/* OPTIONAL */;
	RANAP_Service_Handover_t	*service_Handover	/* OPTIONAL */;
	RANAP_ProtocolExtensionContainer_t	*iE_Extensions	/* OPTIONAL */;
	/*
	 * This type is extensible,
	 * possible extensions are below.
	 */
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} RANAP_RAB_SetupOrModifyItemFirst_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_SetupOrModifyItemFirst;

#ifdef __cplusplus
}
#endif

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