/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "NR-RRC-Definitions"
 * 	found in "asn/nr-rrc-15.6.0.asn1"
 * 	`asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc`
 */

#ifndef	_ASN_RRC_PDCP_Config_H_
#define	_ASN_RRC_PDCP_Config_H_


#include <asn_application.h>

/* Including external dependencies */
#include <NativeEnumerated.h>
#include <NULL.h>
#include <NativeInteger.h>
#include <BOOLEAN.h>
#include <constr_SEQUENCE.h>
#include <constr_CHOICE.h>
#include "ASN_RRC_UL-DataSplitThreshold.h"
#include "ASN_RRC_CellGroupId.h"
#include "ASN_RRC_LogicalChannelIdentity.h"

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum ASN_RRC_PDCP_Config__drb__discardTimer {
	ASN_RRC_PDCP_Config__drb__discardTimer_ms10	= 0,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms20	= 1,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms30	= 2,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms40	= 3,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms50	= 4,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms60	= 5,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms75	= 6,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms100	= 7,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms150	= 8,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms200	= 9,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms250	= 10,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms300	= 11,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms500	= 12,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms750	= 13,
	ASN_RRC_PDCP_Config__drb__discardTimer_ms1500	= 14,
	ASN_RRC_PDCP_Config__drb__discardTimer_infinity	= 15
} e_ASN_RRC_PDCP_Config__drb__discardTimer;
typedef enum ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeUL {
	ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeUL_len12bits	= 0,
	ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeUL_len18bits	= 1
} e_ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeUL;
typedef enum ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeDL {
	ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeDL_len12bits	= 0,
	ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeDL_len18bits	= 1
} e_ASN_RRC_PDCP_Config__drb__pdcp_SN_SizeDL;
typedef enum ASN_RRC_PDCP_Config__drb__headerCompression_PR {
	ASN_RRC_PDCP_Config__drb__headerCompression_PR_NOTHING,	/* No components present */
	ASN_RRC_PDCP_Config__drb__headerCompression_PR_notUsed,
	ASN_RRC_PDCP_Config__drb__headerCompression_PR_rohc,
	ASN_RRC_PDCP_Config__drb__headerCompression_PR_uplinkOnlyROHC
	/* Extensions may appear below */
	
} ASN_RRC_PDCP_Config__drb__headerCompression_PR;
typedef enum ASN_RRC_PDCP_Config__drb__headerCompression__rohc__drb_ContinueROHC {
	ASN_RRC_PDCP_Config__drb__headerCompression__rohc__drb_ContinueROHC_true	= 0
} e_ASN_RRC_PDCP_Config__drb__headerCompression__rohc__drb_ContinueROHC;
typedef enum ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__drb_ContinueROHC {
	ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__drb_ContinueROHC_true	= 0
} e_ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__drb_ContinueROHC;
typedef enum ASN_RRC_PDCP_Config__drb__integrityProtection {
	ASN_RRC_PDCP_Config__drb__integrityProtection_enabled	= 0
} e_ASN_RRC_PDCP_Config__drb__integrityProtection;
typedef enum ASN_RRC_PDCP_Config__drb__statusReportRequired {
	ASN_RRC_PDCP_Config__drb__statusReportRequired_true	= 0
} e_ASN_RRC_PDCP_Config__drb__statusReportRequired;
typedef enum ASN_RRC_PDCP_Config__drb__outOfOrderDelivery {
	ASN_RRC_PDCP_Config__drb__outOfOrderDelivery_true	= 0
} e_ASN_RRC_PDCP_Config__drb__outOfOrderDelivery;
typedef enum ASN_RRC_PDCP_Config__t_Reordering {
	ASN_RRC_PDCP_Config__t_Reordering_ms0	= 0,
	ASN_RRC_PDCP_Config__t_Reordering_ms1	= 1,
	ASN_RRC_PDCP_Config__t_Reordering_ms2	= 2,
	ASN_RRC_PDCP_Config__t_Reordering_ms4	= 3,
	ASN_RRC_PDCP_Config__t_Reordering_ms5	= 4,
	ASN_RRC_PDCP_Config__t_Reordering_ms8	= 5,
	ASN_RRC_PDCP_Config__t_Reordering_ms10	= 6,
	ASN_RRC_PDCP_Config__t_Reordering_ms15	= 7,
	ASN_RRC_PDCP_Config__t_Reordering_ms20	= 8,
	ASN_RRC_PDCP_Config__t_Reordering_ms30	= 9,
	ASN_RRC_PDCP_Config__t_Reordering_ms40	= 10,
	ASN_RRC_PDCP_Config__t_Reordering_ms50	= 11,
	ASN_RRC_PDCP_Config__t_Reordering_ms60	= 12,
	ASN_RRC_PDCP_Config__t_Reordering_ms80	= 13,
	ASN_RRC_PDCP_Config__t_Reordering_ms100	= 14,
	ASN_RRC_PDCP_Config__t_Reordering_ms120	= 15,
	ASN_RRC_PDCP_Config__t_Reordering_ms140	= 16,
	ASN_RRC_PDCP_Config__t_Reordering_ms160	= 17,
	ASN_RRC_PDCP_Config__t_Reordering_ms180	= 18,
	ASN_RRC_PDCP_Config__t_Reordering_ms200	= 19,
	ASN_RRC_PDCP_Config__t_Reordering_ms220	= 20,
	ASN_RRC_PDCP_Config__t_Reordering_ms240	= 21,
	ASN_RRC_PDCP_Config__t_Reordering_ms260	= 22,
	ASN_RRC_PDCP_Config__t_Reordering_ms280	= 23,
	ASN_RRC_PDCP_Config__t_Reordering_ms300	= 24,
	ASN_RRC_PDCP_Config__t_Reordering_ms500	= 25,
	ASN_RRC_PDCP_Config__t_Reordering_ms750	= 26,
	ASN_RRC_PDCP_Config__t_Reordering_ms1000	= 27,
	ASN_RRC_PDCP_Config__t_Reordering_ms1250	= 28,
	ASN_RRC_PDCP_Config__t_Reordering_ms1500	= 29,
	ASN_RRC_PDCP_Config__t_Reordering_ms1750	= 30,
	ASN_RRC_PDCP_Config__t_Reordering_ms2000	= 31,
	ASN_RRC_PDCP_Config__t_Reordering_ms2250	= 32,
	ASN_RRC_PDCP_Config__t_Reordering_ms2500	= 33,
	ASN_RRC_PDCP_Config__t_Reordering_ms2750	= 34,
	ASN_RRC_PDCP_Config__t_Reordering_ms3000	= 35,
	ASN_RRC_PDCP_Config__t_Reordering_spare28	= 36,
	ASN_RRC_PDCP_Config__t_Reordering_spare27	= 37,
	ASN_RRC_PDCP_Config__t_Reordering_spare26	= 38,
	ASN_RRC_PDCP_Config__t_Reordering_spare25	= 39,
	ASN_RRC_PDCP_Config__t_Reordering_spare24	= 40,
	ASN_RRC_PDCP_Config__t_Reordering_spare23	= 41,
	ASN_RRC_PDCP_Config__t_Reordering_spare22	= 42,
	ASN_RRC_PDCP_Config__t_Reordering_spare21	= 43,
	ASN_RRC_PDCP_Config__t_Reordering_spare20	= 44,
	ASN_RRC_PDCP_Config__t_Reordering_spare19	= 45,
	ASN_RRC_PDCP_Config__t_Reordering_spare18	= 46,
	ASN_RRC_PDCP_Config__t_Reordering_spare17	= 47,
	ASN_RRC_PDCP_Config__t_Reordering_spare16	= 48,
	ASN_RRC_PDCP_Config__t_Reordering_spare15	= 49,
	ASN_RRC_PDCP_Config__t_Reordering_spare14	= 50,
	ASN_RRC_PDCP_Config__t_Reordering_spare13	= 51,
	ASN_RRC_PDCP_Config__t_Reordering_spare12	= 52,
	ASN_RRC_PDCP_Config__t_Reordering_spare11	= 53,
	ASN_RRC_PDCP_Config__t_Reordering_spare10	= 54,
	ASN_RRC_PDCP_Config__t_Reordering_spare09	= 55,
	ASN_RRC_PDCP_Config__t_Reordering_spare08	= 56,
	ASN_RRC_PDCP_Config__t_Reordering_spare07	= 57,
	ASN_RRC_PDCP_Config__t_Reordering_spare06	= 58,
	ASN_RRC_PDCP_Config__t_Reordering_spare05	= 59,
	ASN_RRC_PDCP_Config__t_Reordering_spare04	= 60,
	ASN_RRC_PDCP_Config__t_Reordering_spare03	= 61,
	ASN_RRC_PDCP_Config__t_Reordering_spare02	= 62,
	ASN_RRC_PDCP_Config__t_Reordering_spare01	= 63
} e_ASN_RRC_PDCP_Config__t_Reordering;
typedef enum ASN_RRC_PDCP_Config__ext1__cipheringDisabled {
	ASN_RRC_PDCP_Config__ext1__cipheringDisabled_true	= 0
} e_ASN_RRC_PDCP_Config__ext1__cipheringDisabled;

/* ASN_RRC_PDCP-Config */
typedef struct ASN_RRC_PDCP_Config {
	struct ASN_RRC_PDCP_Config__drb {
		long	*discardTimer;	/* OPTIONAL */
		long	*pdcp_SN_SizeUL;	/* OPTIONAL */
		long	*pdcp_SN_SizeDL;	/* OPTIONAL */
		struct ASN_RRC_PDCP_Config__drb__headerCompression {
			ASN_RRC_PDCP_Config__drb__headerCompression_PR present;
			union ASN_RRC_PDCP_Config__ASN_RRC_drb__ASN_RRC_headerCompression_u {
				NULL_t	 notUsed;
				struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc {
					long	*maxCID;	/* DEFAULT 15 */
					struct ASN_RRC_PDCP_Config__drb__headerCompression__rohc__profiles {
						BOOLEAN_t	 profile0x0001;
						BOOLEAN_t	 profile0x0002;
						BOOLEAN_t	 profile0x0003;
						BOOLEAN_t	 profile0x0004;
						BOOLEAN_t	 profile0x0006;
						BOOLEAN_t	 profile0x0101;
						BOOLEAN_t	 profile0x0102;
						BOOLEAN_t	 profile0x0103;
						BOOLEAN_t	 profile0x0104;
						
						/* Context for parsing across buffer boundaries */
						asn_struct_ctx_t _asn_ctx;
					} profiles;
					long	*drb_ContinueROHC;	/* OPTIONAL */
					
					/* Context for parsing across buffer boundaries */
					asn_struct_ctx_t _asn_ctx;
				} *rohc;
				struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC {
					long	*maxCID;	/* DEFAULT 15 */
					struct ASN_RRC_PDCP_Config__drb__headerCompression__uplinkOnlyROHC__profiles {
						BOOLEAN_t	 profile0x0006;
						
						/* Context for parsing across buffer boundaries */
						asn_struct_ctx_t _asn_ctx;
					} profiles;
					long	*drb_ContinueROHC;	/* OPTIONAL */
					
					/* Context for parsing across buffer boundaries */
					asn_struct_ctx_t _asn_ctx;
				} *uplinkOnlyROHC;
				/*
				 * This type is extensible,
				 * possible extensions are below.
				 */
			} choice;
			
			/* Context for parsing across buffer boundaries */
			asn_struct_ctx_t _asn_ctx;
		} headerCompression;
		long	*integrityProtection;	/* OPTIONAL */
		long	*statusReportRequired;	/* OPTIONAL */
		long	*outOfOrderDelivery;	/* OPTIONAL */
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *drb;
	struct ASN_RRC_PDCP_Config__moreThanOneRLC {
		struct ASN_RRC_PDCP_Config__moreThanOneRLC__primaryPath {
			ASN_RRC_CellGroupId_t	*cellGroup;	/* OPTIONAL */
			ASN_RRC_LogicalChannelIdentity_t	*logicalChannel;	/* OPTIONAL */
			
			/* Context for parsing across buffer boundaries */
			asn_struct_ctx_t _asn_ctx;
		} primaryPath;
		ASN_RRC_UL_DataSplitThreshold_t	*ul_DataSplitThreshold;	/* OPTIONAL */
		BOOLEAN_t	*pdcp_Duplication;	/* OPTIONAL */
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *moreThanOneRLC;
	long	*t_Reordering;	/* OPTIONAL */
	/*
	 * This type is extensible,
	 * possible extensions are below.
	 */
	struct ASN_RRC_PDCP_Config__ext1 {
		long	*cipheringDisabled;	/* OPTIONAL */
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *ext1;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} ASN_RRC_PDCP_Config_t;

/* Implementation */
/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_discardTimer_3;	// (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcp_SN_SizeUL_20;	// (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdcp_SN_SizeDL_23;	// (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_drb_ContinueROHC_40;	// (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_drb_ContinueROHC_46;	// (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_integrityProtection_49;	// (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_statusReportRequired_51;	// (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_outOfOrderDelivery_53;	// (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_t_Reordering_61;	// (Use -fall-defs-global to expose) */
/* extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cipheringDisabled_128;	// (Use -fall-defs-global to expose) */
extern asn_TYPE_descriptor_t asn_DEF_ASN_RRC_PDCP_Config;
extern asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_PDCP_Config_specs_1;
extern asn_TYPE_member_t asn_MBR_ASN_RRC_PDCP_Config_1[4];

#ifdef __cplusplus
}
#endif

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