/*
 * 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_RAB_Parameters_H_
#define	_RANAP_RAB_Parameters_H_


#include <asn_application.h>

/* Including external dependencies */
#include "RANAP_TrafficClass.h"
#include "RANAP_RAB-AsymmetryIndicator.h"
#include "RANAP_RAB-Parameter-MaxBitrateList.h"
#include "RANAP_RAB-Parameter-GuaranteedBitrateList.h"
#include "RANAP_DeliveryOrder.h"
#include "RANAP_MaxSDU-Size.h"
#include "RANAP_SDU-Parameters.h"
#include "RANAP_TransferDelay.h"
#include "RANAP_TrafficHandlingPriority.h"
#include "RANAP_AllocationOrRetentionPriority.h"
#include "RANAP_SourceStatisticsDescriptor.h"
#include "RANAP_RelocationRequirement.h"
#include "RANAP_IE-Extensions.h"
#include <constr_SEQUENCE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* RANAP_RAB-Parameters */
typedef struct RANAP_RAB_Parameters {
	RANAP_TrafficClass_t	 trafficClass;
	RANAP_RAB_AsymmetryIndicator_t	 rAB_AsymmetryIndicator;
	RANAP_RAB_Parameter_MaxBitrateList_t	 maxBitrate;
	RANAP_RAB_Parameter_GuaranteedBitrateList_t	*guaranteedBitRate	/* OPTIONAL */;
	RANAP_DeliveryOrder_t	 deliveryOrder;
	RANAP_MaxSDU_Size_t	 maxSDU_Size;
	RANAP_SDU_Parameters_t	 sDU_Parameters;
	RANAP_TransferDelay_t	*transferDelay	/* OPTIONAL */;
	RANAP_TrafficHandlingPriority_t	*trafficHandlingPriority	/* OPTIONAL */;
	RANAP_AllocationOrRetentionPriority_t	*allocationOrRetentionPriority	/* OPTIONAL */;
	RANAP_SourceStatisticsDescriptor_t	*sourceStatisticsDescriptor	/* OPTIONAL */;
	RANAP_RelocationRequirement_t	*relocationRequirement	/* OPTIONAL */;
	RANAP_IE_Extensions_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_Parameters_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_RAB_Parameters;

#ifdef __cplusplus
}
#endif

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