From 88abff68df5fcea46e1f7f0a32d7fe8718fd67c0 Mon Sep 17 00:00:00 2001 From: Pascal Quantin Date: Tue, 9 Jan 2018 23:38:47 +0100 Subject: NR RRC: add initial dissector based on v15.0.0 ASN.1 prose imported from the specification and heavily modified manually to workaround its poor quality. Some of them are marked with -- WS modification comment, some are not. Probably useless as-is, but it is an initial start until an updated version is available. Change-Id: I19ab6cedb6aa23c8ed57bae525ee4a3391494e32 Reviewed-on: https://code.wireshark.org/review/25235 Petri-Dish: Pascal Quantin Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- epan/dissectors/packet-nr-rrc.c | 14909 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 14909 insertions(+) create mode 100644 epan/dissectors/packet-nr-rrc.c (limited to 'epan/dissectors/packet-nr-rrc.c') diff --git a/epan/dissectors/packet-nr-rrc.c b/epan/dissectors/packet-nr-rrc.c new file mode 100644 index 0000000000..4785d3d760 --- /dev/null +++ b/epan/dissectors/packet-nr-rrc.c @@ -0,0 +1,14909 @@ +/* Do not modify this file. Changes will be overwritten. */ +/* Generated automatically by the ASN.1 to Wireshark dissector compiler */ +/* packet-nr-rrc.c */ +/* asn2wrs.py -L -p nr-rrc -c ./nr-rrc.cnf -s ./packet-nr-rrc-template -D . -O ../.. NR-InterNodeDefinitions.asn NR-RRC-Definitions.asn */ + +/* Input file: packet-nr-rrc-template.c */ + +#line 1 "./asn1/nr-rrc/packet-nr-rrc-template.c" +/* packet-nr-rrc-template.c + * NR; + * Radio Resource Control (RRC) protocol specification + * (3GPP TS 38.331 V15.0.0 Release 15) packet dissection + * Copyright 2018, Pascal Quantin + * + * Wireshark - Network traffic analyzer + * By Gerald Combs + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0+ + * + */ + +#include "config.h" + +#include + +#include +#include + +#include + +#include "packet-per.h" +#include "packet-lte-rrc.h" + +#define PNAME "NR Radio Resource Control (RRC) protocol" +#define PSNAME "NR RRC" +#define PFNAME "nr-rrc" + +void proto_register_nr_rrc(void); +void proto_reg_handoff_nr_rrc(void); + +/* Include constants */ + +/*--- Included file: packet-nr-rrc-val.h ---*/ +#line 1 "./asn1/nr-rrc/packet-nr-rrc-val.h" +#define maxCellPrep 1 +#define maxCellSCG 1 +#define maxRS_IndexReport 1 +#define maxBandComb 1 +#define maxBasebandProcComb 1 +#define maxNrofSCells 15 +#define maxNrofCellMeas 1 +#define maxNroSS_BlocksToAverage 2 +#define maxNroCSI_RS_ResourcesToAverage 2 +#define maxNrofSR_CongigPerCellGroup 8 +#define maxLCG_ID 7 +#define macLC_ID 64 +#define maxNrofTAGs 4 +#define maxNrofTAGs_1 3 +#define maxNrofBandwidthParts 4 +#define maxNrofBandwidthParts_1 3 +#define maxSymbolIndex 13 +#define maxNrofPhysicalResourceBlocks 275 +#define maxNrofPhysicalResourceBlocks_1 274 +#define maxNrofPhysicalResourceBlocksTimes4 1100 +#define maxNrofControlResourceSets 2 +#define maxNrofControlResourceSets_1 1 +#define maxCoReSetStartSymbol 0 +#define maxCoReSetDuration 3 +#define maxNrofSearchSpacesPerCoReSet 0 +#define maxNrofRateMatchPatterns 1 +#define maxNrofRateMatchPatterns_1 0 +#define maxNrofCSI_Reports 1 +#define maxNrofCSI_Reports_1 0 +#define maxNrofCSI_ResourceConfigurations 1 +#define maxNrofCSI_ResourceConfigurations_1 0 +#define maxNrofCSI_ResourceSets 1 +#define maxNrofCSI_ResourceSets_1 0 +#define maxNrofNZP_CSI_RS_Resources 1 +#define maxNrofNZP_CSI_RS_Resources_1 0 +#define maxNrofZP_CSI_RS_Resources 1 +#define maxNrofZP_CSI_RS_Resources_1 0 +#define maxNrofCSI_IM_Resources 1 +#define maxNrofCSI_IM_Resources_1 0 +#define maxNrofSSB_Resources 64 +#define maxNrofSSB_Resources_1 63 +#define maxNrofCSI_RS_ResourcesPerSet 8 +#define maxNrofCSI_MeasId 1 +#define maxNrofCSI_MeasId_1 0 +#define maxNrofCSI_RS_ResourcesRRM 1 +#define maxNrofCSI_RS_ResourcesRRM_1 0 +#define maxNrofObjectId 1 +#define maxNrOfRA_PreamblesPerSSB 1 +#define maxNrofReportConfigId 1 +#define maxNrofMeasId 1 +#define maxNroQuantityConfig 2 +#define maxNrofSRS_ResourceSets 1 +#define maxNrofSRS_ResourceSets_1 0 +#define maxNrofSRS_Resources 1 +#define maxNrofSRS_Resources_1 0 +#define maxRA_PreambleIndex 0 +#define maxRAT_CapabilityContainers 3 +#define maxServCell 1 +#define maxSimultaneousBands 1 +#define maxBands 256 +#define maxCellReport 8 +#define maxDRB 29 +#define maxFreq 1 +#define maxLCid 32 +#define maxLCH 8 +#define maxQFI 0 +#define maxNrofAggregatedCellsPerCellGroup 1 +#define maxNrofCSI_ReportConfig_1 0 +#define maxNrofPCIsPerSMTC 1 +#define maxNrofQFIs 1 +#define maxNrofSchedulingRequestResoruces 64 +#define maxNrofSearchSpaces 1 +#define maxNrofSlotFormatCombinations 1 +#define maxNrofSlotFormatCombinations_1 1 +#define maxNrofSR_ConfigPerCellGroup 1 +#define maxNrofSRS_ResourcesPerSet 1 +#define maxNroCSI_RS 1 +#define maxNroIndexesToReport 1 +#define maxNroSSBs 8 +#define maxQuantityConfigId 1 +#define maxRAcsirsResources 1 +#define maxRAssbResources 1 +#define maxReportConfigId 1 +#define maxSCellGroups 1 + +/*--- End of included file: packet-nr-rrc-val.h ---*/ +#line 36 "./asn1/nr-rrc/packet-nr-rrc-template.c" + +/* Initialize the protocol and registered fields */ +static int proto_nr_rrc = -1; + +/*--- Included file: packet-nr-rrc-hf.c ---*/ +#line 1 "./asn1/nr-rrc/packet-nr-rrc-hf.c" +static int hf_nr_rrc_BCCH_BCH_Message_PDU = -1; /* BCCH_BCH_Message */ +static int hf_nr_rrc_DL_DCCH_Message_PDU = -1; /* DL_DCCH_Message */ +static int hf_nr_rrc_UL_DCCH_Message_PDU = -1; /* UL_DCCH_Message */ +static int hf_nr_rrc_message = -1; /* BCCH_BCH_MessageType */ +static int hf_nr_rrc_mib = -1; /* MIB */ +static int hf_nr_rrc_messageClassExtension = -1; /* T_messageClassExtension */ +static int hf_nr_rrc_message_01 = -1; /* DL_DCCH_MessageType */ +static int hf_nr_rrc_c1 = -1; /* T_c1 */ +static int hf_nr_rrc_rrcReconfiguration = -1; /* RRCReconfiguration */ +static int hf_nr_rrc_spare15 = -1; /* NULL */ +static int hf_nr_rrc_spare14 = -1; /* NULL */ +static int hf_nr_rrc_spare13 = -1; /* NULL */ +static int hf_nr_rrc_spare12 = -1; /* NULL */ +static int hf_nr_rrc_spare11 = -1; /* NULL */ +static int hf_nr_rrc_spare10 = -1; /* NULL */ +static int hf_nr_rrc_spare9 = -1; /* NULL */ +static int hf_nr_rrc_spare8 = -1; /* NULL */ +static int hf_nr_rrc_spare7 = -1; /* NULL */ +static int hf_nr_rrc_spare6 = -1; /* NULL */ +static int hf_nr_rrc_spare5 = -1; /* NULL */ +static int hf_nr_rrc_spare4 = -1; /* NULL */ +static int hf_nr_rrc_spare3 = -1; /* NULL */ +static int hf_nr_rrc_spare2 = -1; /* NULL */ +static int hf_nr_rrc_spare1 = -1; /* NULL */ +static int hf_nr_rrc_messageClassExtension_01 = -1; /* T_messageClassExtension_01 */ +static int hf_nr_rrc_message_02 = -1; /* UL_DCCH_MessageType */ +static int hf_nr_rrc_c1_01 = -1; /* T_c1_01 */ +static int hf_nr_rrc_measurementReport = -1; /* MeasurementReport */ +static int hf_nr_rrc_rrcReconfigurationComplete = -1; /* RRCReconfigurationComplete */ +static int hf_nr_rrc_messageClassExtension_02 = -1; /* T_messageClassExtension_02 */ +static int hf_nr_rrc_ssb_IndexExplicit = -1; /* INTEGER_1_7 */ +static int hf_nr_rrc_halfFrameIndex = -1; /* T_halfFrameIndex */ +static int hf_nr_rrc_systemFrameNumber = -1; /* BIT_STRING_SIZE_10 */ +static int hf_nr_rrc_subCarrierSpacingCommon = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_ssb_subcarrierOffset = -1; /* INTEGER_0_11 */ +static int hf_nr_rrc_dmrs_TypeA_Position = -1; /* T_dmrs_TypeA_Position */ +static int hf_nr_rrc_pdcchConfigSIB1 = -1; /* INTEGER_0_255 */ +static int hf_nr_rrc_cellBarred = -1; /* T_cellBarred */ +static int hf_nr_rrc_intraFreqReselection = -1; /* T_intraFreqReselection */ +static int hf_nr_rrc_spare = -1; /* BIT_STRING_SIZE_0 */ +static int hf_nr_rrc_criticalExtensions = -1; /* T_criticalExtensions */ +static int hf_nr_rrc_measurementReport_01 = -1; /* MeasurementReport_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture = -1; /* T_criticalExtensionsFuture */ +static int hf_nr_rrc_measResults = -1; /* MeasResults */ +static int hf_nr_rrc_rrc_TransactionIdentifier = -1; /* RRC_TransactionIdentifier */ +static int hf_nr_rrc_criticalExtensions_01 = -1; /* T_criticalExtensions_01 */ +static int hf_nr_rrc_rrcReconfiguration_01 = -1; /* RRCReconfiguration_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_01 = -1; /* T_criticalExtensionsFuture_01 */ +static int hf_nr_rrc_radioBearerConfig = -1; /* RadioBearerConfig */ +static int hf_nr_rrc_masterCellGroupConfig = -1; /* CellGroupConfig */ +static int hf_nr_rrc_secondaryCellGroupToAddModList = -1; /* SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupConfig */ +static int hf_nr_rrc_secondaryCellGroupToAddModList_item = -1; /* CellGroupConfig */ +static int hf_nr_rrc_secondaryCellGroupToReleaseList = -1; /* SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupId */ +static int hf_nr_rrc_secondaryCellGroupToReleaseList_item = -1; /* CellGroupId */ +static int hf_nr_rrc_measConfig = -1; /* MeasConfig */ +static int hf_nr_rrc_lateNonCriticalExtension = -1; /* OCTET_STRING */ +static int hf_nr_rrc_nonCriticalExtension = -1; /* T_nonCriticalExtension */ +static int hf_nr_rrc_criticalExtensions_02 = -1; /* T_criticalExtensions_02 */ +static int hf_nr_rrc_rrcReconfigurationComplete_01 = -1; /* RRCReconfigurationComplete_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_02 = -1; /* T_criticalExtensionsFuture_02 */ +static int hf_nr_rrc_bandwidthPartId = -1; /* BandwidthPartId */ +static int hf_nr_rrc_location = -1; /* INTEGER_0_maxNrofPhysicalResourceBlocksTimes4 */ +static int hf_nr_rrc_bandwidth = -1; /* INTEGER_1_maxNrofPhysicalResourceBlocks */ +static int hf_nr_rrc_subcarrierSpacing = -1; /* T_subcarrierSpacing */ +static int hf_nr_rrc_cyclicPrefix = -1; /* T_cyclicPrefix */ +static int hf_nr_rrc_directCurrentLocation = -1; /* INTEGER_0_3299 */ +static int hf_nr_rrc_cellGroupId = -1; /* CellGroupId */ +static int hf_nr_rrc_rlc_BearerToAddModList = -1; /* SEQUENCE_SIZE_1_maxLCH_OF_LCH_Config */ +static int hf_nr_rrc_rlc_BearerToAddModList_item = -1; /* LCH_Config */ +static int hf_nr_rrc_rlc_BearerToReleaseList = -1; /* SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity */ +static int hf_nr_rrc_rlc_BearerToReleaseList_item = -1; /* LogicalChannelIdentity */ +static int hf_nr_rrc_mac_CellGroupConfig = -1; /* MAC_CellGroupConfig */ +static int hf_nr_rrc_rlf_TimersAndConstants = -1; /* RLF_TimersAndConstants */ +static int hf_nr_rrc_physical_CellGroupConfig = -1; /* PhysicalCellGroupConfig */ +static int hf_nr_rrc_spCellConfig = -1; /* SpCellConfig */ +static int hf_nr_rrc_sCellToAddModList = -1; /* SCellToAddModList */ +static int hf_nr_rrc_sCellToReleaseList = -1; /* SCellToReleaseList */ +static int hf_nr_rrc_logicalChannelIdentity = -1; /* LogicalChannelIdentity */ +static int hf_nr_rrc_servedRadioBearer = -1; /* INTEGER_1_32 */ +static int hf_nr_rrc_reestablishRLC = -1; /* T_reestablishRLC */ +static int hf_nr_rrc_rlc_Config = -1; /* RLC_Config */ +static int hf_nr_rrc_mac_LogicalChannelConfig = -1; /* LogicalChannelConfig */ +static int hf_nr_rrc_harq_ACK_Spatial_Bundling = -1; /* T_harq_ACK_Spatial_Bundling */ +static int hf_nr_rrc_reconfigurationWithSync = -1; /* T_reconfigurationWithSync */ +static int hf_nr_rrc_spCellConfigCommon = -1; /* ServingCellConfigCommon */ +static int hf_nr_rrc_newUE_Identity = -1; /* C_RNTI */ +static int hf_nr_rrc_t304 = -1; /* T_t304 */ +static int hf_nr_rrc_rach_ConfigDedicated = -1; /* RACH_ConfigDedicated */ +static int hf_nr_rrc_spCellConfigDedicated = -1; /* ServingCellConfigDedicated */ +static int hf_nr_rrc_SCellToReleaseList_item = -1; /* SCellIndex */ +static int hf_nr_rrc_SCellToAddModList_item = -1; /* SCellConfig */ +static int hf_nr_rrc_sCellIndex = -1; /* SCellIndex */ +static int hf_nr_rrc_sCellConfigCommon = -1; /* ServingCellConfigCommon */ +static int hf_nr_rrc_sCellConfigDedicated = -1; /* ServingCellConfigDedicated */ +static int hf_nr_rrc_CellIndexList_item = -1; /* CellIndex */ +static int hf_nr_rrc_schedulingCellInfo = -1; /* T_schedulingCellInfo */ +static int hf_nr_rrc_own = -1; /* T_own */ +static int hf_nr_rrc_cif_Presence = -1; /* BOOLEAN */ +static int hf_nr_rrc_other = -1; /* T_other */ +static int hf_nr_rrc_schedulingCellId = -1; /* ServCellIndex */ +static int hf_nr_rrc_pdsch_Start = -1; /* INTEGER_1_4 */ +static int hf_nr_rrc_cif_InSchedulingCell = -1; /* INTEGER_1_7 */ +static int hf_nr_rrc_csi_ResourceConfigs = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig */ +static int hf_nr_rrc_csi_ResourceConfigs_item = -1; /* CSI_ResourceConfig */ +static int hf_nr_rrc_csi_ReportConfigs = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_Reports_OF_CSI_ReportConfig */ +static int hf_nr_rrc_csi_ReportConfigs_item = -1; /* CSI_ReportConfig */ +static int hf_nr_rrc_csi_MeasIdToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_MeasId_OF_CSI_MeasIdToAddMod */ +static int hf_nr_rrc_csi_MeasIdToAddModList_item = -1; /* CSI_MeasIdToAddMod */ +static int hf_nr_rrc_reportTrigger = -1; /* T_reportTrigger */ +static int hf_nr_rrc_reportTriggerSize = -1; /* INTEGER_0_6 */ +static int hf_nr_rrc_csi_ResourceConfigId = -1; /* CSI_ResourceConfigId */ +static int hf_nr_rrc_csi_ResourceSets = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_ResourceSets_OF_CSI_ResourceSet */ +static int hf_nr_rrc_csi_ResourceSets_item = -1; /* CSI_ResourceSet */ +static int hf_nr_rrc_ssb_Resources = -1; /* SEQUENCE_SIZE_1_maxNrofSSB_Resources_1_OF_CSI_SSB_Resource */ +static int hf_nr_rrc_ssb_Resources_item = -1; /* CSI_SSB_Resource */ +static int hf_nr_rrc_resourceType = -1; /* T_resourceType */ +static int hf_nr_rrc_aperiodic = -1; /* NULL */ +static int hf_nr_rrc_semiPersistent = -1; /* NULL */ +static int hf_nr_rrc_periodic = -1; /* NULL */ +static int hf_nr_rrc_csi_ResourceSetId = -1; /* CSI_ResourceSetId */ +static int hf_nr_rrc_csi_rs_Resources = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_Resource */ +static int hf_nr_rrc_csi_rs_Resources_item = -1; /* NZP_CSI_RS_Resource */ +static int hf_nr_rrc_repetition = -1; /* BOOLEAN */ +static int hf_nr_rrc_nzp_csi_rs_ResourceId = -1; /* NZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_nrofPorts = -1; /* T_nrofPorts */ +static int hf_nr_rrc_resourceMapping = -1; /* NULL */ +static int hf_nr_rrc_cdm_Value = -1; /* T_cdm_Value */ +static int hf_nr_rrc_cdm_Pattern = -1; /* T_cdm_Pattern */ +static int hf_nr_rrc_csi_RS_Density = -1; /* T_csi_RS_Density */ +static int hf_nr_rrc_csi_RS_FreqBand = -1; /* NULL */ +static int hf_nr_rrc_powerControlOffset = -1; /* NULL */ +static int hf_nr_rrc_powerControlOffsetSS = -1; /* NULL */ +static int hf_nr_rrc_scramblingID = -1; /* INTEGER_0 */ +static int hf_nr_rrc_csi_RS_timeConfig = -1; /* T_csi_RS_timeConfig */ +static int hf_nr_rrc_sl5 = -1; /* INTEGER_0_4 */ +static int hf_nr_rrc_sl10 = -1; /* INTEGER_0_9 */ +static int hf_nr_rrc_sl20 = -1; /* INTEGER_0_19 */ +static int hf_nr_rrc_sl40 = -1; /* INTEGER_0_39 */ +static int hf_nr_rrc_sl80 = -1; /* INTEGER_0_79 */ +static int hf_nr_rrc_sl160 = -1; /* INTEGER_0_159 */ +static int hf_nr_rrc_sl320 = -1; /* INTEGER_0_319 */ +static int hf_nr_rrc_sl640 = -1; /* INTEGER_0_639 */ +static int hf_nr_rrc_reportConfigId = -1; /* CSI_ReportConfigId */ +static int hf_nr_rrc_reportConfigType = -1; /* T_reportConfigType */ +static int hf_nr_rrc_periodic_01 = -1; /* T_periodic */ +static int hf_nr_rrc_reportSlotConfig = -1; /* T_reportSlotConfig */ +static int hf_nr_rrc_pucch_CSI_ResourceIndex = -1; /* NULL */ +static int hf_nr_rrc_semiPersistent_01 = -1; /* T_semiPersistent */ +static int hf_nr_rrc_reportSlotConfig_01 = -1; /* T_reportSlotConfig_01 */ +static int hf_nr_rrc_aperiodic_01 = -1; /* T_aperiodic */ +static int hf_nr_rrc_aperiodicReportSlotOffset = -1; /* NULL */ +static int hf_nr_rrc_reportQuantity = -1; /* T_reportQuantity */ +static int hf_nr_rrc_cRI_RI_PMI_CQI = -1; /* NULL */ +static int hf_nr_rrc_cRI_RI_i1 = -1; /* NULL */ +static int hf_nr_rrc_cRI_RI_i1_CQI = -1; /* T_cRI_RI_i1_CQI */ +static int hf_nr_rrc_pdsch_BundleSizeForCSI = -1; /* T_pdsch_BundleSizeForCSI */ +static int hf_nr_rrc_cRI_RI_CQI = -1; /* NULL */ +static int hf_nr_rrc_cRI = -1; /* NULL */ +static int hf_nr_rrc_cRI_RSRP = -1; /* NULL */ +static int hf_nr_rrc_spare0 = -1; /* NULL */ +static int hf_nr_rrc_reportFreqConfiguration = -1; /* T_reportFreqConfiguration */ +static int hf_nr_rrc_cqi_FormatIndicator = -1; /* T_cqi_FormatIndicator */ +static int hf_nr_rrc_pmi_FormatIndicator = -1; /* T_pmi_FormatIndicator */ +static int hf_nr_rrc_csi_ReportingBand = -1; /* T_csi_ReportingBand */ +static int hf_nr_rrc_measRestrictionTimeForChannel = -1; /* NULL */ +static int hf_nr_rrc_measRestrictionTimeForInterference = -1; /* NULL */ +static int hf_nr_rrc_codebookConfig = -1; /* CodebookConfig */ +static int hf_nr_rrc_nrofCQIsPerReport = -1; /* T_nrofCQIsPerReport */ +static int hf_nr_rrc_groupBasedBeamReporting = -1; /* T_groupBasedBeamReporting */ +static int hf_nr_rrc_enabled = -1; /* T_enabled */ +static int hf_nr_rrc_nrofBeamsToReport = -1; /* INTEGER_2_4 */ +static int hf_nr_rrc_disabled = -1; /* T_disabled */ +static int hf_nr_rrc_nrofReportedRS = -1; /* T_nrofReportedRS */ +static int hf_nr_rrc_cqi_Table = -1; /* T_cqi_Table */ +static int hf_nr_rrc_subbandSize = -1; /* T_subbandSize */ +static int hf_nr_rrc_bler_Target = -1; /* T_bler_Target */ +static int hf_nr_rrc_codebookConfig_N1 = -1; /* T_codebookConfig_N1 */ +static int hf_nr_rrc_codebookConfig_N2 = -1; /* T_codebookConfig_N2 */ +static int hf_nr_rrc_codebookType = -1; /* T_codebookType */ +static int hf_nr_rrc_type1 = -1; /* T_type1 */ +static int hf_nr_rrc_subType = -1; /* T_subType */ +static int hf_nr_rrc_codebookMode = -1; /* T_codebookMode */ +static int hf_nr_rrc_numberOfPanels = -1; /* T_numberOfPanels */ +static int hf_nr_rrc_codebookSubsetRestrictionType1 = -1; /* T_codebookSubsetRestrictionType1 */ +static int hf_nr_rrc_singlePanel = -1; /* T_singlePanel */ +static int hf_nr_rrc_singlePanel2TX = -1; /* BIT_STRING_SIZE_6 */ +static int hf_nr_rrc_multiPanel = -1; /* T_multiPanel */ +static int hf_nr_rrc_singlePanelCodebookSubsetRestriction_i2 = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_ri_Restriction = -1; /* T_ri_Restriction */ +static int hf_nr_rrc_typeI_SinglePanelRI_Restriction = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_typeI_MultiPanelRI_Restriction = -1; /* BIT_STRING_SIZE_4 */ +static int hf_nr_rrc_type2 = -1; /* T_type2 */ +static int hf_nr_rrc_subType_01 = -1; /* T_subType_01 */ +static int hf_nr_rrc_phaseAlphabetSize = -1; /* T_phaseAlphabetSize */ +static int hf_nr_rrc_subbandAmplitude = -1; /* BOOLEAN */ +static int hf_nr_rrc_numberOfBeams = -1; /* T_numberOfBeams */ +static int hf_nr_rrc_portSelectionSamplingSize = -1; /* T_portSelectionSamplingSize */ +static int hf_nr_rrc_codebookSubsetRestrictionType2 = -1; /* T_codebookSubsetRestrictionType2 */ +static int hf_nr_rrc_ri_Restriction_01 = -1; /* T_ri_Restriction_01 */ +static int hf_nr_rrc_typeII_RI_Restriction = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_typeII_PortSelectionRI_Restriction = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_csi_measId = -1; /* CSI_MeasId */ +static int hf_nr_rrc_csi_RS_resourceConfigId = -1; /* CSI_RS_ConfigurationId */ +static int hf_nr_rrc_csi_reportConfigId = -1; /* CSI_ReportConfigId */ +static int hf_nr_rrc_measQuantity = -1; /* T_measQuantity */ +static int hf_nr_rrc_carrierFreqUL = -1; /* ARFCN_ValueNR */ +static int hf_nr_rrc_carrierBandwidthUL = -1; /* CarrierBandwidthNR */ +static int hf_nr_rrc_additionalSpectrumEmission = -1; /* AdditionalSpectrumEmission */ +static int hf_nr_rrc_p_Max = -1; /* P_Max */ +static int hf_nr_rrc_frequencyShift7p5khz = -1; /* T_frequencyShift7p5khz */ +static int hf_nr_rrc_initialUplinkBandwidthPart = -1; /* BandwidthPart */ +static int hf_nr_rrc_ul_SpecificParameters = -1; /* T_ul_SpecificParameters */ +static int hf_nr_rrc_priority = -1; /* INTEGER_1_16 */ +static int hf_nr_rrc_prioritisedBitRate = -1; /* T_prioritisedBitRate */ +static int hf_nr_rrc_bucketSizeDuration = -1; /* T_bucketSizeDuration */ +static int hf_nr_rrc_allowedSubCarrierSpacing = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_allowedTiming = -1; /* NULL */ +static int hf_nr_rrc_logicalChannelGroup = -1; /* INTEGER_0_maxLCid */ +static int hf_nr_rrc_logicalChannelSR_Mask = -1; /* BOOLEAN */ +static int hf_nr_rrc_logicalChannelSR_DelayTimerApplied = -1; /* BOOLEAN */ +static int hf_nr_rrc_drx_Config = -1; /* DRX_Config */ +static int hf_nr_rrc_schedulingRequestConfig = -1; /* SchedulingRequestConfig */ +static int hf_nr_rrc_bsr_Config = -1; /* BSR_Configuration */ +static int hf_nr_rrc_tag_Config = -1; /* TAG_Configuration */ +static int hf_nr_rrc_phr_Config = -1; /* PHR_Config */ +static int hf_nr_rrc_sCellDeactivationTimer = -1; /* T_sCellDeactivationTimer */ +static int hf_nr_rrc_skipUplinkTxDynamic = -1; /* BOOLEAN */ +static int hf_nr_rrc_release = -1; /* NULL */ +static int hf_nr_rrc_setup = -1; /* T_setup */ +static int hf_nr_rrc_drx_onDurationTimer = -1; /* T_drx_onDurationTimer */ +static int hf_nr_rrc_drx_InactivityTimer = -1; /* T_drx_InactivityTimer */ +static int hf_nr_rrc_drx_HARQ_RTT_TimerDL = -1; /* INTEGER_0_56 */ +static int hf_nr_rrc_drx_HARQ_RTT_TimerUL = -1; /* INTEGER_0_56 */ +static int hf_nr_rrc_drx_RetransmissionTimerDL = -1; /* T_drx_RetransmissionTimerDL */ +static int hf_nr_rrc_drx_RetransmissionTimerUL = -1; /* T_drx_RetransmissionTimerUL */ +static int hf_nr_rrc_drx_LongCycleStartOffset = -1; /* T_drx_LongCycleStartOffset */ +static int hf_nr_rrc_ms10 = -1; /* INTEGER_0_9 */ +static int hf_nr_rrc_ms20 = -1; /* INTEGER_0_19 */ +static int hf_nr_rrc_ms32 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_ms40 = -1; /* INTEGER_0_39 */ +static int hf_nr_rrc_ms60 = -1; /* INTEGER_0_59 */ +static int hf_nr_rrc_ms64 = -1; /* INTEGER_0_63 */ +static int hf_nr_rrc_ms70 = -1; /* INTEGER_0_69 */ +static int hf_nr_rrc_ms80 = -1; /* INTEGER_0_79 */ +static int hf_nr_rrc_ms128 = -1; /* INTEGER_0_127 */ +static int hf_nr_rrc_ms160 = -1; /* INTEGER_0_159 */ +static int hf_nr_rrc_ms256 = -1; /* INTEGER_0_255 */ +static int hf_nr_rrc_ms320 = -1; /* INTEGER_0_319 */ +static int hf_nr_rrc_ms512 = -1; /* INTEGER_0_511 */ +static int hf_nr_rrc_ms640 = -1; /* INTEGER_0_639 */ +static int hf_nr_rrc_ms1024 = -1; /* INTEGER_0_1023 */ +static int hf_nr_rrc_ms1280 = -1; /* INTEGER_0_1279 */ +static int hf_nr_rrc_ms2048 = -1; /* INTEGER_0_2047 */ +static int hf_nr_rrc_ms2560 = -1; /* INTEGER_0_2559 */ +static int hf_nr_rrc_ms5120 = -1; /* INTEGER_0_5119 */ +static int hf_nr_rrc_ms10240 = -1; /* INTEGER_0_10239 */ +static int hf_nr_rrc_shortDRX = -1; /* T_shortDRX */ +static int hf_nr_rrc_drx_ShortCycle = -1; /* T_drx_ShortCycle */ +static int hf_nr_rrc_drx_ShortCycleTimer = -1; /* INTEGER_1_16 */ +static int hf_nr_rrc_drx_SlotOffset = -1; /* T_drx_SlotOffset */ +static int hf_nr_rrc_setup_01 = -1; /* T_setup_01 */ +static int hf_nr_rrc_phr_PeriodicTimer = -1; /* T_phr_PeriodicTimer */ +static int hf_nr_rrc_phr_ProhibitTimer = -1; /* T_phr_ProhibitTimer */ +static int hf_nr_rrc_phr_Tx_PowerFactorChange = -1; /* T_phr_Tx_PowerFactorChange */ +static int hf_nr_rrc_multiplePHR = -1; /* BOOLEAN */ +static int hf_nr_rrc_phr_Type2PCell = -1; /* BOOLEAN */ +static int hf_nr_rrc_phr_Type2OtherCell = -1; /* BOOLEAN */ +static int hf_nr_rrc_phr_ModeOtherCG = -1; /* T_phr_ModeOtherCG */ +static int hf_nr_rrc_tag_ToReleaseList = -1; /* TAG_ToReleaseList */ +static int hf_nr_rrc_tag_ToAddModList = -1; /* TAG_ToAddModList */ +static int hf_nr_rrc_TAG_ToReleaseList_item = -1; /* TAG_Id */ +static int hf_nr_rrc_TAG_ToAddModList_item = -1; /* TAG_ToAddMod */ +static int hf_nr_rrc_tag_Id = -1; /* TAG_Id */ +static int hf_nr_rrc_timeAlignmentTimer = -1; /* TimeAlignmentTimer */ +static int hf_nr_rrc_periodicBSR_Timer = -1; /* T_periodicBSR_Timer */ +static int hf_nr_rrc_retxBSR_Timer = -1; /* T_retxBSR_Timer */ +static int hf_nr_rrc_logicaChannelSR_DelayTimer = -1; /* T_logicaChannelSR_DelayTimer */ +static int hf_nr_rrc_measObjectToRemoveList = -1; /* MeasObjectToRemoveList */ +static int hf_nr_rrc_measObjectToAddModList = -1; /* MeasObjectToAddModList */ +static int hf_nr_rrc_reportConfigToRemoveList = -1; /* ReportConfigToRemoveList */ +static int hf_nr_rrc_reportConfigToAddModList = -1; /* ReportConfigToAddModList */ +static int hf_nr_rrc_measIdToRemoveList = -1; /* MeasIdToRemoveList */ +static int hf_nr_rrc_measIdToAddModList = -1; /* MeasIdToAddModList */ +static int hf_nr_rrc_s_MeasureConfig = -1; /* T_s_MeasureConfig */ +static int hf_nr_rrc_ssb_rsrp = -1; /* RSRP_Range */ +static int hf_nr_rrc_csi_rsrp = -1; /* RSRP_Range */ +static int hf_nr_rrc_quantityConfig = -1; /* QuantityConfig */ +static int hf_nr_rrc_measGapConfig = -1; /* MeasGapConfig */ +static int hf_nr_rrc_MeasObjectToRemoveList_item = -1; /* MeasObjectId */ +static int hf_nr_rrc_MeasIdToRemoveList_item = -1; /* MeasId */ +static int hf_nr_rrc_ReportConfigToRemoveList_item = -1; /* ReportConfigId */ +static int hf_nr_rrc_MeasIdToAddModList_item = -1; /* MeasIdToAddMod */ +static int hf_nr_rrc_measId = -1; /* MeasId */ +static int hf_nr_rrc_measObjectId = -1; /* MeasObjectId */ +static int hf_nr_rrc_reportConfigId_01 = -1; /* ReportConfigId */ +static int hf_nr_rrc_carrierFreq = -1; /* ARFCN_ValueNR */ +static int hf_nr_rrc_referenceSignalConfig = -1; /* ReferenceSignalConfig */ +static int hf_nr_rrc_absThreshSS_BlocksConsolidation = -1; /* ThresholdNR */ +static int hf_nr_rrc_absThreshCSI_RS_Consolidation = -1; /* ThresholdNR */ +static int hf_nr_rrc_nroSS_BlocksToAverage = -1; /* INTEGER_2_maxNroSS_BlocksToAverage */ +static int hf_nr_rrc_nroCSI_RS_ResourcesToAverage = -1; /* INTEGER_2_maxNroCSI_RS_ResourcesToAverage */ +static int hf_nr_rrc_quantityConfigIndex = -1; /* INTEGER_1_maxQuantityConfigId */ +static int hf_nr_rrc_offsetFreq = -1; /* Q_OffsetRangeList */ +static int hf_nr_rrc_cellsToRemoveList = -1; /* CellIndexList */ +static int hf_nr_rrc_cellsToAddModList = -1; /* CellsToAddModList */ +static int hf_nr_rrc_blackCellsToRemoveList = -1; /* CellIndexList */ +static int hf_nr_rrc_blackCellsToAddModList = -1; /* BlackCellsToAddModList */ +static int hf_nr_rrc_whiteCellsToRemoveList = -1; /* CellIndexList */ +static int hf_nr_rrc_whiteCellsToAddModList = -1; /* WhiteCellsToAddModList */ +static int hf_nr_rrc_ssb_MeasurementTimingConfiguration = -1; /* SSB_MeasurementTimingConfiguration */ +static int hf_nr_rrc_ssbPresence = -1; /* T_ssbPresence */ +static int hf_nr_rrc_present = -1; /* T_present */ +static int hf_nr_rrc_frequencyOffset = -1; /* NULL */ +static int hf_nr_rrc_subcarrierSpacing_01 = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_notPresent = -1; /* T_notPresent */ +static int hf_nr_rrc_csi_rs_ResourceConfig_Mobility = -1; /* CSI_RS_ResourceConfig_Mobility */ +static int hf_nr_rrc_useServingCellTimingForSync = -1; /* BOOLEAN */ +static int hf_nr_rrc_smtc1 = -1; /* T_smtc1 */ +static int hf_nr_rrc_periodicityAndOffset = -1; /* T_periodicityAndOffset */ +static int hf_nr_rrc_sf5 = -1; /* INTEGER_0_4 */ +static int hf_nr_rrc_sf10 = -1; /* INTEGER_0_9 */ +static int hf_nr_rrc_sf20 = -1; /* INTEGER_0_19 */ +static int hf_nr_rrc_sf40 = -1; /* INTEGER_0_39 */ +static int hf_nr_rrc_sf80 = -1; /* INTEGER_0_79 */ +static int hf_nr_rrc_sf160 = -1; /* INTEGER_0_159 */ +static int hf_nr_rrc_duration = -1; /* T_duration */ +static int hf_nr_rrc_ssb_ToMeasure = -1; /* T_ssb_ToMeasure */ +static int hf_nr_rrc_setup_02 = -1; /* T_setup_02 */ +static int hf_nr_rrc_shortBitmap = -1; /* BIT_STRING_SIZE_4 */ +static int hf_nr_rrc_mediumBitmap = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_longBitmap = -1; /* BIT_STRING_SIZE_64 */ +static int hf_nr_rrc_smtc2 = -1; /* T_smtc2 */ +static int hf_nr_rrc_pci_List = -1; /* SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysicalCellId */ +static int hf_nr_rrc_pci_List_item = -1; /* PhysicalCellId */ +static int hf_nr_rrc_periodicty = -1; /* NULL */ +static int hf_nr_rrc_csi_rs_MeasurementBW = -1; /* T_csi_rs_MeasurementBW */ +static int hf_nr_rrc_csi_rs_measurementBW_size = -1; /* T_csi_rs_measurementBW_size */ +static int hf_nr_rrc_csi_rs_measurement_BW_start = -1; /* T_csi_rs_measurement_BW_start */ +static int hf_nr_rrc_associated_SSB = -1; /* T_associated_SSB */ +static int hf_nr_rrc_qcled_SSB = -1; /* BOOLEAN */ +static int hf_nr_rrc_isServingCellMO = -1; /* BOOLEAN */ +static int hf_nr_rrc_csi_rs_ResourceList_Mobility = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility */ +static int hf_nr_rrc_csi_rs_ResourceList_Mobility_item = -1; /* CSI_RS_Resource_Mobility */ +static int hf_nr_rrc_csi_rs_ResourceId_RRM = -1; /* CSI_RS_ResourceId_RRM */ +static int hf_nr_rrc_cellId = -1; /* PhysicalCellId */ +static int hf_nr_rrc_slotConfig = -1; /* T_slotConfig */ +static int hf_nr_rrc_ms5 = -1; /* INTEGER_0_4 */ +static int hf_nr_rrc_resourceElementMappingPattern = -1; /* NULL */ +static int hf_nr_rrc_sequenceGenerationConfig = -1; /* NULL */ +static int hf_nr_rrc_rsrpOffsetSSB = -1; /* Q_OffsetRange */ +static int hf_nr_rrc_rsrqOffsetSSB = -1; /* Q_OffsetRange */ +static int hf_nr_rrc_sinrOffsetSSB = -1; /* Q_OffsetRange */ +static int hf_nr_rrc_rsrpOffsetCSI_RS = -1; /* Q_OffsetRange */ +static int hf_nr_rrc_rsrqOffsetCSI_RS = -1; /* Q_OffsetRange */ +static int hf_nr_rrc_sinrOffsetCSI_RS = -1; /* Q_OffsetRange */ +static int hf_nr_rrc_threshold_RSRP = -1; /* RSRP_Range */ +static int hf_nr_rrc_threshold_RSRQ = -1; /* RSRQ_Range */ +static int hf_nr_rrc_threshold_SINR = -1; /* SINR_Range */ +static int hf_nr_rrc_CellsToAddModList_item = -1; /* CellsToAddMod */ +static int hf_nr_rrc_cellIndex = -1; /* INTEGER_1_maxNrofCellMeas */ +static int hf_nr_rrc_physCellId = -1; /* PhysCellId */ +static int hf_nr_rrc_cellIndividualOffset = -1; /* Q_OffsetRangeList */ +static int hf_nr_rrc_BlackCellsToAddModList_item = -1; /* BlackCellsToAddMod */ +static int hf_nr_rrc_physCellIdRange = -1; /* PhysCellIdRange */ +static int hf_nr_rrc_WhiteCellsToAddModList_item = -1; /* WhiteCellsToAddMod */ +static int hf_nr_rrc_MeasObjectToAddModList_item = -1; /* MeasObjectToAddMod */ +static int hf_nr_rrc_measObject = -1; /* T_measObject */ +static int hf_nr_rrc_measObjectNR = -1; /* MeasObjectNR */ +static int hf_nr_rrc_measObjectEUTRA = -1; /* MeasObjectEUTRA */ +static int hf_nr_rrc_measResultServingFreqList = -1; /* MeasResultServFreqList */ +static int hf_nr_rrc_measResultNeighCells = -1; /* T_measResultNeighCells */ +static int hf_nr_rrc_measResultListNR = -1; /* MeasResultListNR */ +static int hf_nr_rrc_measResultListEUTRA = -1; /* MeasResultListEUTRA */ +static int hf_nr_rrc_MeasResultServFreqList_item = -1; /* MeasResultServFreq */ +static int hf_nr_rrc_servFreqId = -1; /* ServCellIndex */ +static int hf_nr_rrc_measResultServingCell = -1; /* MeasResultNR */ +static int hf_nr_rrc_measResultBestNeighCell = -1; /* MeasResultNR */ +static int hf_nr_rrc_MeasResultListNR_item = -1; /* MeasResultNR */ +static int hf_nr_rrc_cgi_Info = -1; /* NULL */ +static int hf_nr_rrc_measResult = -1; /* T_measResult */ +static int hf_nr_rrc_cellResults = -1; /* T_cellResults */ +static int hf_nr_rrc_resultsSSBCell = -1; /* ResultsSSBCell */ +static int hf_nr_rrc_resultsCSI_RSCell = -1; /* ResultsCSI_RSCell */ +static int hf_nr_rrc_rsIndexResults = -1; /* T_rsIndexResults */ +static int hf_nr_rrc_resultsSSBIndexes = -1; /* ResultsPerSSBIndexList */ +static int hf_nr_rrc_resultsCSI_RSIndexes = -1; /* ResultsPerCSI_RSIndexList */ +static int hf_nr_rrc_ssb_Cellrsrp = -1; /* RSRP_Range */ +static int hf_nr_rrc_ssb_Cellrsrq = -1; /* RSRQ_Range */ +static int hf_nr_rrc_ssb_Cellsinr = -1; /* SINR_Range */ +static int hf_nr_rrc_csi_rs_Cellrsrp = -1; /* RSRP_Range */ +static int hf_nr_rrc_csi_rs_Cellrsrq = -1; /* RSRQ_Range */ +static int hf_nr_rrc_csi_rs_Cellsinr = -1; /* SINR_Range */ +static int hf_nr_rrc_ResultsPerSSBIndexList_item = -1; /* ResultsPerSSBIndex */ +static int hf_nr_rrc_ssb_Index = -1; /* SSB_Index */ +static int hf_nr_rrc_ss_rsrp = -1; /* RSRP_Range */ +static int hf_nr_rrc_ss_rsrq = -1; /* RSRQ_Range */ +static int hf_nr_rrc_ss_sinr = -1; /* SINR_Range */ +static int hf_nr_rrc_ResultsPerCSI_RSIndexList_item = -1; /* ResultsPerCSI_RSIndex */ +static int hf_nr_rrc_csi_rsIndex = -1; /* CSI_RSIndex */ +static int hf_nr_rrc_csi_rsrq = -1; /* RSRQ_Range */ +static int hf_nr_rrc_csi_sinr = -1; /* SINR_Range */ +static int hf_nr_rrc_controlResourceSetToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet */ +static int hf_nr_rrc_controlResourceSetToAddModList_item = -1; /* ControlResourceSet */ +static int hf_nr_rrc_controlResourceSetToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId */ +static int hf_nr_rrc_controlResourceSetToReleaseList_item = -1; /* ControlResourceId */ +static int hf_nr_rrc_searchSpacesToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpace */ +static int hf_nr_rrc_searchSpacesToAddModList_item = -1; /* SearchSpace */ +static int hf_nr_rrc_searchSpacesToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId */ +static int hf_nr_rrc_searchSpacesToReleaseList_item = -1; /* SearchSpaceId */ +static int hf_nr_rrc_timing = -1; /* T_timing */ +static int hf_nr_rrc_dl_assignment_to_DL_data = -1; /* NULL */ +static int hf_nr_rrc_ul_assignment_to_UL_data = -1; /* NULL */ +static int hf_nr_rrc_dl_data_to_UL_ACK = -1; /* NULL */ +static int hf_nr_rrc_controlResourceSetId = -1; /* ControlResourceSetId */ +static int hf_nr_rrc_frequencyDomainResources = -1; /* NULL */ +static int hf_nr_rrc_startSymbol = -1; /* INTEGER_0_maxCoReSetStartSymbol */ +static int hf_nr_rrc_duration_01 = -1; /* INTEGER_1_maxCoReSetDuration */ +static int hf_nr_rrc_reg_BundleSize = -1; /* T_reg_BundleSize */ +static int hf_nr_rrc_cce_reg_MappingType = -1; /* T_cce_reg_MappingType */ +static int hf_nr_rrc_precoderGranularity = -1; /* NULL */ +static int hf_nr_rrc_interleaverRows = -1; /* T_interleaverRows */ +static int hf_nr_rrc_shiftIndex = -1; /* NULL */ +static int hf_nr_rrc_tci_StateRefId = -1; /* NULL */ +static int hf_nr_rrc_pdcch_DMRS_ScramblingID = -1; /* NULL */ +static int hf_nr_rrc_searchSpaceId = -1; /* SearchSpaceId */ +static int hf_nr_rrc_monitoringSlotPeriodicityAndOffset = -1; /* T_monitoringSlotPeriodicityAndOffset */ +static int hf_nr_rrc_sl1 = -1; /* NULL */ +static int hf_nr_rrc_sl2 = -1; /* INTEGER_0_1 */ +static int hf_nr_rrc_monitoringSymbolsWithinSlot = -1; /* BIT_STRING_SIZE_14 */ +static int hf_nr_rrc_nrofCandidates = -1; /* T_nrofCandidates */ +static int hf_nr_rrc_aggregationLevel1 = -1; /* T_aggregationLevel1 */ +static int hf_nr_rrc_aggregationLevel2 = -1; /* T_aggregationLevel2 */ +static int hf_nr_rrc_aggregationLevel4 = -1; /* T_aggregationLevel4 */ +static int hf_nr_rrc_aggregationLevel8 = -1; /* T_aggregationLevel8 */ +static int hf_nr_rrc_searchSpaceType = -1; /* T_searchSpaceType */ +static int hf_nr_rrc_common = -1; /* T_common */ +static int hf_nr_rrc_sfi_PDCCH = -1; /* SFI_PDCCH */ +static int hf_nr_rrc_preemp_DL = -1; /* BOOLEAN */ +static int hf_nr_rrc_int_RNTI = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_int_TF = -1; /* T_int_TF */ +static int hf_nr_rrc_monitoringPeriodicity = -1; /* NULL */ +static int hf_nr_rrc_ue_Specific = -1; /* T_ue_Specific */ +static int hf_nr_rrc_monitoringPeriodicity_01 = -1; /* T_monitoringPeriodicity */ +static int hf_nr_rrc_sfi_CellToSFI = -1; /* SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CellToSFI */ +static int hf_nr_rrc_sfi_CellToSFI_item = -1; /* CellToSFI */ +static int hf_nr_rrc_nrofPDCCH_Candidates = -1; /* T_nrofPDCCH_Candidates */ +static int hf_nr_rrc_aggregationLevel = -1; /* T_aggregationLevel */ +static int hf_nr_rrc_sfi_RNTI = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_dci_PayloadLength = -1; /* NULL */ +static int hf_nr_rrc_searchSpace = -1; /* NULL */ +static int hf_nr_rrc_sfi_PositionInDCI = -1; /* INTEGER_1_1 */ +static int hf_nr_rrc_slotFormatCombinations = -1; /* SEQUENCE_SIZE_1_maxNrofSlotFormatCombinations_OF_SlotFormatCombination */ +static int hf_nr_rrc_slotFormatCombinations_item = -1; /* SlotFormatCombination */ +static int hf_nr_rrc_slotFormatCombinationId = -1; /* SlotFormatCombinationId */ +static int hf_nr_rrc_drb = -1; /* T_drb */ +static int hf_nr_rrc_discardTimer = -1; /* T_discardTimer */ +static int hf_nr_rrc_pdcp_SN_Size_UL = -1; /* T_pdcp_SN_Size_UL */ +static int hf_nr_rrc_pdcp_SN_Size_DL = -1; /* T_pdcp_SN_Size_DL */ +static int hf_nr_rrc_headerCompression = -1; /* T_headerCompression */ +static int hf_nr_rrc_notUsed = -1; /* NULL */ +static int hf_nr_rrc_rohc = -1; /* T_rohc */ +static int hf_nr_rrc_maxCID = -1; /* INTEGER_1_16383 */ +static int hf_nr_rrc_profiles = -1; /* T_profiles */ +static int hf_nr_rrc_profile0x0001 = -1; /* BOOLEAN */ +static int hf_nr_rrc_profile0x0002 = -1; /* BOOLEAN */ +static int hf_nr_rrc_profile0x0003 = -1; /* BOOLEAN */ +static int hf_nr_rrc_profile0x0004 = -1; /* BOOLEAN */ +static int hf_nr_rrc_profile0x0006 = -1; /* BOOLEAN */ +static int hf_nr_rrc_profile0x0101 = -1; /* BOOLEAN */ +static int hf_nr_rrc_profile0x0102 = -1; /* BOOLEAN */ +static int hf_nr_rrc_profile0x0103 = -1; /* BOOLEAN */ +static int hf_nr_rrc_profile0x0104 = -1; /* BOOLEAN */ +static int hf_nr_rrc_uplinkOnlyROHC = -1; /* T_uplinkOnlyROHC */ +static int hf_nr_rrc_profiles_01 = -1; /* T_profiles_01 */ +static int hf_nr_rrc_integrityProtection = -1; /* BOOLEAN */ +static int hf_nr_rrc_statusReportRequired = -1; /* BOOLEAN */ +static int hf_nr_rrc_moreThanOneRLC = -1; /* T_moreThanOneRLC */ +static int hf_nr_rrc_primaryPath = -1; /* T_primaryPath */ +static int hf_nr_rrc_cellGroup = -1; /* CellGroupId */ +static int hf_nr_rrc_logicalChannel = -1; /* LogicalChannelIdentity */ +static int hf_nr_rrc_ul_DataSplitThreshold = -1; /* T_ul_DataSplitThreshold */ +static int hf_nr_rrc_setup_03 = -1; /* T_setup_03 */ +static int hf_nr_rrc_ul_Duplication = -1; /* BOOLEAN */ +static int hf_nr_rrc_t_Reordering = -1; /* T_t_Reordering */ +static int hf_nr_rrc_outOfOrderDelivery = -1; /* BOOLEAN */ +static int hf_nr_rrc_codeBlockGroupTransmission = -1; /* BOOLEAN */ +static int hf_nr_rrc_maxCodeBlockGroupsPerTransportBlock = -1; /* T_maxCodeBlockGroupsPerTransportBlock */ +static int hf_nr_rrc_codeBlockGroupFlushIndicator = -1; /* BOOLEAN */ +static int hf_nr_rrc_dmrs_Type = -1; /* T_dmrs_Type */ +static int hf_nr_rrc_dmrs_AdditionalPosition = -1; /* T_dmrs_AdditionalPosition */ +static int hf_nr_rrc_dmrs_group1 = -1; /* NULL */ +static int hf_nr_rrc_dmrs_group2 = -1; /* NULL */ +static int hf_nr_rrc_phaseTracking_RS = -1; /* T_phaseTracking_RS */ +static int hf_nr_rrc_setup_04 = -1; /* Downlink_PTRS_Config */ +static int hf_nr_rrc_tci_States = -1; /* NULL */ +static int hf_nr_rrc_tci_rs_SetConfig = -1; /* NULL */ +static int hf_nr_rrc_tci_PresentInDCI = -1; /* T_tci_PresentInDCI */ +static int hf_nr_rrc_xOverhead = -1; /* T_xOverhead */ +static int hf_nr_rrc_pdsch_symbolAllocation = -1; /* NULL */ +static int hf_nr_rrc_rateMatchResourcesPDSCH = -1; /* T_rateMatchResourcesPDSCH */ +static int hf_nr_rrc_rateMatchPatterns = -1; /* T_rateMatchPatterns */ +static int hf_nr_rrc_setup_05 = -1; /* SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern */ +static int hf_nr_rrc_setup_item = -1; /* RateMatchPattern */ +static int hf_nr_rrc_lte_CRS_ToMatchAround = -1; /* T_lte_CRS_ToMatchAround */ +static int hf_nr_rrc_setup_06 = -1; /* T_setup_04 */ +static int hf_nr_rrc_nrofCRS_Ports = -1; /* T_nrofCRS_Ports */ +static int hf_nr_rrc_v_Shift = -1; /* T_v_Shift */ +static int hf_nr_rrc_rbg_Size = -1; /* T_rbg_Size */ +static int hf_nr_rrc_mcs_Table = -1; /* T_mcs_Table */ +static int hf_nr_rrc_maxNrofCodeWordsScheduledByDCI = -1; /* T_maxNrofCodeWordsScheduledByDCI */ +static int hf_nr_rrc_nrofHARQ_processesForPDSCH = -1; /* NULL */ +static int hf_nr_rrc_harq_ACK_Codebook = -1; /* T_harq_ACK_Codebook */ +static int hf_nr_rrc_pdsch_BundleSize = -1; /* NULL */ +static int hf_nr_rrc_prbBundlingEnabled = -1; /* BOOLEAN */ +static int hf_nr_rrc_frequencyDensity = -1; /* NULL */ +static int hf_nr_rrc_timeDensity = -1; /* NULL */ +static int hf_nr_rrc_nrofPorts_01 = -1; /* T_nrofPorts_01 */ +static int hf_nr_rrc_epre_Ratio = -1; /* NULL */ +static int hf_nr_rrc_resourceElementOffset = -1; /* NULL */ +static int hf_nr_rrc_resourceBlocks = -1; /* BIT_STRING_SIZE_275 */ +static int hf_nr_rrc_symbolsInResourceBlock = -1; /* BIT_STRING_SIZE_14 */ +static int hf_nr_rrc_periodicityAndOffset_01 = -1; /* T_periodicityAndOffset_01 */ +static int hf_nr_rrc_n5 = -1; /* INTEGER_0_4 */ +static int hf_nr_rrc_n10 = -1; /* INTEGER_0_9 */ +static int hf_nr_rrc_n20 = -1; /* INTEGER_0_19 */ +static int hf_nr_rrc_n40 = -1; /* INTEGER_0_39 */ +static int hf_nr_rrc_resourceSets = -1; /* SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet */ +static int hf_nr_rrc_resourceSets_item = -1; /* PUCCH_ResourceSet */ +static int hf_nr_rrc_format1 = -1; /* T_format1 */ +static int hf_nr_rrc_setup_07 = -1; /* T_setup_05 */ +static int hf_nr_rrc_interslotFrequencyHopping = -1; /* T_interslotFrequencyHopping */ +static int hf_nr_rrc_nrofSlots = -1; /* T_nrofSlots */ +static int hf_nr_rrc_format2 = -1; /* T_format2 */ +static int hf_nr_rrc_setup_08 = -1; /* T_setup_06 */ +static int hf_nr_rrc_maxCodeRate = -1; /* INTEGER_0_7 */ +static int hf_nr_rrc_nrofPRBs = -1; /* INTEGER_1_16 */ +static int hf_nr_rrc_simultaneousHARQ_ACK_CSI = -1; /* T_simultaneousHARQ_ACK_CSI */ +static int hf_nr_rrc_format3 = -1; /* T_format3 */ +static int hf_nr_rrc_setup_09 = -1; /* T_setup_07 */ +static int hf_nr_rrc_interslotFrequencyHopping_01 = -1; /* T_interslotFrequencyHopping_01 */ +static int hf_nr_rrc_additionalDMRS = -1; /* T_additionalDMRS */ +static int hf_nr_rrc_nrofSlots_01 = -1; /* T_nrofSlots_01 */ +static int hf_nr_rrc_pi2PBSK = -1; /* T_pi2PBSK */ +static int hf_nr_rrc_format4 = -1; /* T_format4 */ +static int hf_nr_rrc_setup_10 = -1; /* T_setup_08 */ +static int hf_nr_rrc_interslotFrequencyHopping_02 = -1; /* T_interslotFrequencyHopping_02 */ +static int hf_nr_rrc_additionalDMRS_01 = -1; /* T_additionalDMRS_01 */ +static int hf_nr_rrc_nrofSlots_02 = -1; /* T_nrofSlots_02 */ +static int hf_nr_rrc_pi2PBSK_01 = -1; /* T_pi2PBSK_01 */ +static int hf_nr_rrc_schedulingRequestResources = -1; /* T_schedulingRequestResources */ +static int hf_nr_rrc_setup_11 = -1; /* SEQUENCE_SIZE_1_maxNrofSchedulingRequestResoruces_OF_SchedulingRequestResource_Config */ +static int hf_nr_rrc_setup_item_01 = -1; /* SchedulingRequestResource_Config */ +static int hf_nr_rrc_tpc_PUCCH_RNTI = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_codeBlockGroupTransmission_01 = -1; /* T_codeBlockGroupTransmission */ +static int hf_nr_rrc_maxCodeBlockGroupsPerTransportBlock_01 = -1; /* T_maxCodeBlockGroupsPerTransportBlock_01 */ +static int hf_nr_rrc_dmrs_Type_01 = -1; /* T_dmrs_Type_01 */ +static int hf_nr_rrc_dmrs_AdditionalPosition_01 = -1; /* T_dmrs_AdditionalPosition_01 */ +static int hf_nr_rrc_phaseTracking_RS_01 = -1; /* T_phaseTracking_RS_01 */ +static int hf_nr_rrc_setup_12 = -1; /* Uplink_PTRS_Config */ +static int hf_nr_rrc_tpcAccumulation = -1; /* T_tpcAccumulation */ +static int hf_nr_rrc_tcp_PUSCH_RNTI = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_frequencyHopping = -1; /* T_frequencyHopping */ +static int hf_nr_rrc_rateMatching = -1; /* T_rateMatching */ +static int hf_nr_rrc_rateMatchResources = -1; /* NULL */ +static int hf_nr_rrc_symbolAllocationIndexs = -1; /* NULL */ +static int hf_nr_rrc_mcs_Table_01 = -1; /* T_mcs_Table_01 */ +static int hf_nr_rrc_mcs_TableTransformPrecoder = -1; /* T_mcs_TableTransformPrecoder */ +static int hf_nr_rrc_transformPrecoder = -1; /* T_transformPrecoder */ +static int hf_nr_rrc_rbg_Size_01 = -1; /* T_rbg_Size_01 */ +static int hf_nr_rrc_uci_on_PUSCH = -1; /* T_uci_on_PUSCH */ +static int hf_nr_rrc_setup_13 = -1; /* T_setup_09 */ +static int hf_nr_rrc_dynamic = -1; /* SEQUENCE_SIZE_1_4_OF_BetaOffsets */ +static int hf_nr_rrc_dynamic_item = -1; /* BetaOffsets */ +static int hf_nr_rrc_semiStatic = -1; /* BetaOffsets */ +static int hf_nr_rrc_xOverhead_01 = -1; /* T_xOverhead_01 */ +static int hf_nr_rrc_cp_OFDM = -1; /* T_cp_OFDM */ +static int hf_nr_rrc_setup_14 = -1; /* T_setup_10 */ +static int hf_nr_rrc_nrofPorts_02 = -1; /* T_nrofPorts_02 */ +static int hf_nr_rrc_dft_S_OFDM = -1; /* T_dft_S_OFDM */ +static int hf_nr_rrc_setup_15 = -1; /* T_setup_11 */ +static int hf_nr_rrc_sampleDensity = -1; /* NULL */ +static int hf_nr_rrc_timeDensity_01 = -1; /* T_timeDensity */ +static int hf_nr_rrc_sequence = -1; /* NULL */ +static int hf_nr_rrc_betaOffsetACK_Index1 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_betaOffsetACK_Index2 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_betaOffsetACK_Index3 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_betaOffsetCSI_part1_Index1 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_betaOffsetCSI_part1_Index2 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_betaOffsetCSI_part2_Index1 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_betaOffsetCSI_part2_Index2 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_quantityConfigRSindex = -1; /* QuantityConfigRS */ +static int hf_nr_rrc_ssbFilterCoefficientRSRP = -1; /* FilterCoefficient */ +static int hf_nr_rrc_ssbFilterCoefficientRSRQ = -1; /* FilterCoefficient */ +static int hf_nr_rrc_ssbFilterCoefficientRS_SINR = -1; /* FilterCoefficient */ +static int hf_nr_rrc_csi_rsFilterCoefficientRSRP = -1; /* FilterCoefficient */ +static int hf_nr_rrc_csi_rsFilterCoefficientRSRQ = -1; /* FilterCoefficient */ +static int hf_nr_rrc_csi_rsFilterCoefficientRS_SINR = -1; /* FilterCoefficient */ +static int hf_nr_rrc_groupBconfigured = -1; /* T_groupBconfigured */ +static int hf_nr_rrc_ra_Msg3SizeGroupA = -1; /* T_ra_Msg3SizeGroupA */ +static int hf_nr_rrc_messagePowerOffsetGroupB = -1; /* T_messagePowerOffsetGroupB */ +static int hf_nr_rrc_cbra_SSB_ResourceList = -1; /* CBRA_SSB_ResourceList */ +static int hf_nr_rrc_ra_ContentionResolutionTimer = -1; /* T_ra_ContentionResolutionTimer */ +static int hf_nr_rrc_ssb_Threshold = -1; /* NULL */ +static int hf_nr_rrc_sul_RSRP_Threshold = -1; /* NULL */ +static int hf_nr_rrc_prach_ConfigurationIndex = -1; /* INTEGER_0_255 */ +static int hf_nr_rrc_prach_RootSequenceIndex = -1; /* T_prach_RootSequenceIndex */ +static int hf_nr_rrc_l839 = -1; /* INTEGER_0_837 */ +static int hf_nr_rrc_l139 = -1; /* INTEGER_0_137 */ +static int hf_nr_rrc_zeroCorrelationZoneConfig = -1; /* INTEGER_0_15 */ +static int hf_nr_rrc_restrictedSetConfig = -1; /* T_restrictedSetConfig */ +static int hf_nr_rrc_preambleReceivedTargetPower = -1; /* T_preambleReceivedTargetPower */ +static int hf_nr_rrc_powerRampingStep = -1; /* T_powerRampingStep */ +static int hf_nr_rrc_preambleTransMax = -1; /* T_preambleTransMax */ +static int hf_nr_rrc_ra_ResponseWindow = -1; /* NULL */ +static int hf_nr_rrc_msg2_SubcarrierSpacing = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_rach_ControlResourceSet = -1; /* NULL */ +static int hf_nr_rrc_msg3_SubcarrierSpacing = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_msg3_transformPrecoding = -1; /* T_msg3_transformPrecoding */ +static int hf_nr_rrc_CBRA_SSB_ResourceList_item = -1; /* CBRA_SSB_Resource */ +static int hf_nr_rrc_ssb = -1; /* SSB_ID */ +static int hf_nr_rrc_startIndexRA_PreambleGroupA = -1; /* PreambleStartIndex */ +static int hf_nr_rrc_numberofRA_PreamblesGroupA = -1; /* NumberOfRA_Preambles */ +static int hf_nr_rrc_numberOfRA_Preambles = -1; /* NumberOfRA_Preambles */ +static int hf_nr_rrc_ra_Resources = -1; /* RA_Resources */ +static int hf_nr_rrc_cfra_Resources = -1; /* CFRA_Resources */ +static int hf_nr_rrc_rar_SubcarrierSpacing = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_cfra_ssb_ResourceList = -1; /* SEQUENCE_SIZE_1_maxRAssbResources_OF_CFRA_SSB_Resource */ +static int hf_nr_rrc_cfra_ssb_ResourceList_item = -1; /* CFRA_SSB_Resource */ +static int hf_nr_rrc_cfra_csirs_ResourceList = -1; /* SEQUENCE_SIZE_1_maxRAcsirsResources_OF_CFRA_CSIRS_Resource */ +static int hf_nr_rrc_cfra_csirs_ResourceList_item = -1; /* CFRA_CSIRS_Resource */ +static int hf_nr_rrc_ra_PreambleIndex = -1; /* INTEGER_0_0 */ +static int hf_nr_rrc_csirs = -1; /* CSIRS_ID */ +static int hf_nr_rrc_srb_ToAddModList = -1; /* SRB_ToAddModList */ +static int hf_nr_rrc_srb_ToReleaseList = -1; /* INTEGER_3 */ +static int hf_nr_rrc_drb_ToAddModList = -1; /* DRB_ToAddModList */ +static int hf_nr_rrc_drb_ToReleaseList = -1; /* DRB_ToReleaseList */ +static int hf_nr_rrc_securityConfig = -1; /* SecurityConfig */ +static int hf_nr_rrc_SRB_ToAddModList_item = -1; /* SRB_ToAddMod */ +static int hf_nr_rrc_srb_Identity = -1; /* SRB_Identity */ +static int hf_nr_rrc_reestablishPDCP = -1; /* T_reestablishPDCP */ +static int hf_nr_rrc_pdcp_Config = -1; /* PDCP_Config */ +static int hf_nr_rrc_DRB_ToAddModList_item = -1; /* DRB_ToAddMod */ +static int hf_nr_rrc_cnAssociation = -1; /* T_cnAssociation */ +static int hf_nr_rrc_eps_BearerIdentity = -1; /* INTEGER_0_15 */ +static int hf_nr_rrc_sdap_Config = -1; /* SDAP_Config */ +static int hf_nr_rrc_drb_Identity = -1; /* DRB_Identity */ +static int hf_nr_rrc_reestablishPDCP_01 = -1; /* T_reestablishPDCP_01 */ +static int hf_nr_rrc_recoverPDCP = -1; /* T_recoverPDCP */ +static int hf_nr_rrc_DRB_ToReleaseList_item = -1; /* DRB_Identity */ +static int hf_nr_rrc_securityAlgorithmConfig = -1; /* SecurityAlgorithmConfig */ +static int hf_nr_rrc_keyToUse = -1; /* T_keyToUse */ +static int hf_nr_rrc_reportType = -1; /* T_reportType */ +static int hf_nr_rrc_periodical = -1; /* PeriodicalReportConfig */ +static int hf_nr_rrc_eventTriggered = -1; /* EventTriggerConfig */ +static int hf_nr_rrc_reportCGI = -1; /* NULL */ +static int hf_nr_rrc_eventId = -1; /* T_eventId */ +static int hf_nr_rrc_eventA1 = -1; /* T_eventA1 */ +static int hf_nr_rrc_a1_Threshold = -1; /* MeasTriggerQuantity */ +static int hf_nr_rrc_reportOnLeave = -1; /* BOOLEAN */ +static int hf_nr_rrc_hysteresis = -1; /* Hysteresis */ +static int hf_nr_rrc_timeToTrigger = -1; /* TimeToTrigger */ +static int hf_nr_rrc_eventA2 = -1; /* T_eventA2 */ +static int hf_nr_rrc_a2_Threshold = -1; /* MeasTriggerQuantity */ +static int hf_nr_rrc_eventA3 = -1; /* T_eventA3 */ +static int hf_nr_rrc_a3_Offset = -1; /* MeasTriggerQuantityOffset */ +static int hf_nr_rrc_useWhiteCellList = -1; /* BOOLEAN */ +static int hf_nr_rrc_eventA4 = -1; /* T_eventA4 */ +static int hf_nr_rrc_a4_Threshold = -1; /* MeasTriggerQuantity */ +static int hf_nr_rrc_eventA5 = -1; /* T_eventA5 */ +static int hf_nr_rrc_a5_Threshold1 = -1; /* MeasTriggerQuantity */ +static int hf_nr_rrc_a5_Threshold2 = -1; /* MeasTriggerQuantity */ +static int hf_nr_rrc_eventA6 = -1; /* T_eventA6 */ +static int hf_nr_rrc_a6_Offset = -1; /* MeasTriggerQuantityOffset */ +static int hf_nr_rrc_rsType = -1; /* T_rsType */ +static int hf_nr_rrc_reportInterval = -1; /* ReportInterval */ +static int hf_nr_rrc_reportAmount = -1; /* T_reportAmount */ +static int hf_nr_rrc_reportQuantityCell = -1; /* MeasReportQuantity */ +static int hf_nr_rrc_maxReportCells = -1; /* INTEGER_1_maxCellReport */ +static int hf_nr_rrc_reportQuantityRsIndexes = -1; /* MeasReportQuantity */ +static int hf_nr_rrc_maxNroIndexesToReport = -1; /* INTEGER_1_maxNroIndexesToReport */ +static int hf_nr_rrc_onlyReportBeamIds = -1; /* BOOLEAN */ +static int hf_nr_rrc_reportAddNeighMeas = -1; /* NULL */ +static int hf_nr_rrc_rsType_01 = -1; /* T_rsType_01 */ +static int hf_nr_rrc_reportAmount_01 = -1; /* T_reportAmount_01 */ +static int hf_nr_rrc_maxNroRsIndexesToReport = -1; /* INTEGER_1_maxNroIndexesToReport */ +static int hf_nr_rrc_rsrp = -1; /* RSRPRange */ +static int hf_nr_rrc_rsrq = -1; /* RSRQRange */ +static int hf_nr_rrc_sinr = -1; /* SINRRange */ +static int hf_nr_rrc_rsrp_01 = -1; /* INTEGER_0 */ +static int hf_nr_rrc_rsrq_01 = -1; /* INTEGER_0 */ +static int hf_nr_rrc_sinr_01 = -1; /* INTEGER_0 */ +static int hf_nr_rrc_rsrp_02 = -1; /* BOOLEAN */ +static int hf_nr_rrc_rsrq_02 = -1; /* BOOLEAN */ +static int hf_nr_rrc_sinr_02 = -1; /* BOOLEAN */ +static int hf_nr_rrc_ReportConfigToAddModList_item = -1; /* ReportConfigToAddMod */ +static int hf_nr_rrc_reportConfig = -1; /* T_reportConfig */ +static int hf_nr_rrc_reportConfigNR = -1; /* ReportConfigNR */ +static int hf_nr_rrc_reportConfigEUTRA = -1; /* ReportConfigEUTRA */ +static int hf_nr_rrc_am = -1; /* T_am */ +static int hf_nr_rrc_ul_AM_RLC = -1; /* UL_AM_RLC */ +static int hf_nr_rrc_dl_AM_RLC = -1; /* DL_AM_RLC */ +static int hf_nr_rrc_um_Bi_Directional = -1; /* T_um_Bi_Directional */ +static int hf_nr_rrc_ul_UM_RLC = -1; /* UL_UM_RLC */ +static int hf_nr_rrc_dl_UM_RLC = -1; /* DL_UM_RLC */ +static int hf_nr_rrc_um_Uni_Directional_UL = -1; /* T_um_Uni_Directional_UL */ +static int hf_nr_rrc_um_Uni_Directional_DL = -1; /* T_um_Uni_Directional_DL */ +static int hf_nr_rrc_sn_FieldLength = -1; /* SN_FieldLength_AM */ +static int hf_nr_rrc_t_PollRetransmit = -1; /* T_PollRetransmit */ +static int hf_nr_rrc_pollPDU = -1; /* PollPDU */ +static int hf_nr_rrc_pollByte = -1; /* PollByte */ +static int hf_nr_rrc_maxRetxThreshold = -1; /* T_maxRetxThreshold */ +static int hf_nr_rrc_t_Reassembly = -1; /* T_Reassembly */ +static int hf_nr_rrc_t_StatusProhibit = -1; /* T_StatusProhibit */ +static int hf_nr_rrc_sn_FieldLength_01 = -1; /* SN_FieldLength_UM */ +static int hf_nr_rrc_schedulingRequestToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod */ +static int hf_nr_rrc_schedulingRequestToAddModList_item = -1; /* SchedulingRequestToAddMod */ +static int hf_nr_rrc_schedulingRequestToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId */ +static int hf_nr_rrc_schedulingRequestToReleaseList_item = -1; /* SchedulingRequestId */ +static int hf_nr_rrc_schedulingRequestID = -1; /* SchedulingRequestId */ +static int hf_nr_rrc_sr_prohibitTimer = -1; /* T_sr_prohibitTimer */ +static int hf_nr_rrc_sr_TransMax = -1; /* T_sr_TransMax */ +static int hf_nr_rrc_pduSession = -1; /* PDUsessionID */ +static int hf_nr_rrc_sdap_Header_DL = -1; /* T_sdap_Header_DL */ +static int hf_nr_rrc_sdap_Header_UL = -1; /* T_sdap_Header_UL */ +static int hf_nr_rrc_defaultDRB = -1; /* BOOLEAN */ +static int hf_nr_rrc_reflectiveQoS = -1; /* BOOLEAN */ +static int hf_nr_rrc_mappedQoSflows = -1; /* SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI */ +static int hf_nr_rrc_mappedQoSflows_item = -1; /* QFI */ +static int hf_nr_rrc_cipheringAlgorithm = -1; /* CipheringAlgorithm */ +static int hf_nr_rrc_integrityProtAlgorithm = -1; /* IntegrityProtAlgorithm */ +static int hf_nr_rrc_frequencyInfoDL = -1; /* T_frequencyInfoDL */ +static int hf_nr_rrc_carrierFreqDL = -1; /* ARFCN_ValueNR */ +static int hf_nr_rrc_carrierBandwidthDL = -1; /* CarrierBandwidthNR */ +static int hf_nr_rrc_frequencyInfoUL = -1; /* FrequencyInfoUL */ +static int hf_nr_rrc_supplementaryUplink = -1; /* T_supplementaryUplink */ +static int hf_nr_rrc_subcarrierSpacingCommon = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_ssb_subcarrier_offset = -1; /* INTEGER_1_11 */ +static int hf_nr_rrc_ssb_PositionsInBurst = -1; /* T_ssb_PositionsInBurst */ +static int hf_nr_rrc_ssb_periodicityServingCell = -1; /* T_ssb_periodicityServingCell */ +static int hf_nr_rrc_dmrs_TypeA_Position_01 = -1; /* T_dmrs_TypeA_Position_01 */ +static int hf_nr_rrc_subcarrierSpacingSSB = -1; /* SubcarrierSpacingSSB */ +static int hf_nr_rrc_tdd_UL_DL_configurationCommon = -1; /* T_tdd_UL_DL_configurationCommon */ +static int hf_nr_rrc_dl_UL_TransmissionPeriodicity = -1; /* T_dl_UL_TransmissionPeriodicity */ +static int hf_nr_rrc_nrofDownlinkSlots = -1; /* INTEGER_0_160 */ +static int hf_nr_rrc_nrofDownlinkSymbols = -1; /* INTEGER_0_maxSymbolIndex */ +static int hf_nr_rrc_nrofUplinkSlots = -1; /* INTEGER_0_160 */ +static int hf_nr_rrc_nrofUplinkSymbols = -1; /* INTEGER_0_maxSymbolIndex */ +static int hf_nr_rrc_ss_PBCH_BlockPower = -1; /* INTEGER_M60_50 */ +static int hf_nr_rrc_rach_ConfigCommon = -1; /* RACH_ConfigCommon */ +static int hf_nr_rrc_tdd_UL_DL_configurationDedicated = -1; /* T_tdd_UL_DL_configurationDedicated */ +static int hf_nr_rrc_slotSpecificConfigurations = -1; /* T_slotSpecificConfigurations */ +static int hf_nr_rrc_slotSpecificConfigurations_item = -1; /* T_slotSpecificConfigurations_item */ +static int hf_nr_rrc_slotIndex = -1; /* INTEGER_0_160 */ +static int hf_nr_rrc_bandwidthParts = -1; /* BandwidthParts */ +static int hf_nr_rrc_dataScramblingIdentity = -1; /* NULL */ +static int hf_nr_rrc_pdcch_Config = -1; /* PDCCH_Config */ +static int hf_nr_rrc_pdsch_Config = -1; /* PDSCH_Config */ +static int hf_nr_rrc_csi_MeasConfig = -1; /* CSI_MeasConfig */ +static int hf_nr_rrc_pucch_Config = -1; /* PUCCH_Config */ +static int hf_nr_rrc_pusch_Config = -1; /* PUSCH_Config */ +static int hf_nr_rrc_srs_Config = -1; /* SRS_Config */ +static int hf_nr_rrc_sps_Config = -1; /* SPS_Config */ +static int hf_nr_rrc_crossCarrierSchedulingConfig = -1; /* CrossCarrierSchedulingConfig */ +static int hf_nr_rrc_ue_BeamLockFunction = -1; /* T_ue_BeamLockFunction */ +static int hf_nr_rrc_pathlossReferenceLinking = -1; /* T_pathlossReferenceLinking */ +static int hf_nr_rrc_uplink = -1; /* T_uplink */ +static int hf_nr_rrc_periodicity = -1; /* NULL */ +static int hf_nr_rrc_powerControl = -1; /* NULL */ +static int hf_nr_rrc_transformPrecoder_01 = -1; /* T_transformPrecoder_01 */ +static int hf_nr_rrc_nrofHARQ_processes = -1; /* INTEGER_1_1 */ +static int hf_nr_rrc_repK_RV = -1; /* T_repK_RV */ +static int hf_nr_rrc_priodicity = -1; /* T_priodicity */ +static int hf_nr_rrc_rrcConfiguredUplinkGrant = -1; /* T_rrcConfiguredUplinkGrant */ +static int hf_nr_rrc_setup_16 = -1; /* T_setup_12 */ +static int hf_nr_rrc_timeDomainOffset = -1; /* NULL */ +static int hf_nr_rrc_timeDomainAllocation = -1; /* NULL */ +static int hf_nr_rrc_frequencyDomainAllocation = -1; /* NULL */ +static int hf_nr_rrc_dmrs = -1; /* NULL */ +static int hf_nr_rrc_mcsAndTBS = -1; /* NULL */ +static int hf_nr_rrc_repK = -1; /* NULL */ +static int hf_nr_rrc_srs_ResourceSetToReleaseList = -1; /* SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId */ +static int hf_nr_rrc_srs_ResourceSetToReleaseList_item = -1; /* SRS_ResourceSetId */ +static int hf_nr_rrc_srs_ResourceSetToAddModList = -1; /* SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet */ +static int hf_nr_rrc_srs_ResourceSetToAddModList_item = -1; /* SRS_ResourceSet */ +static int hf_nr_rrc_srs_ResourceToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId */ +static int hf_nr_rrc_srs_ResourceToReleaseList_item = -1; /* SRS_ResourceId */ +static int hf_nr_rrc_srs_ResourceToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource */ +static int hf_nr_rrc_srs_ResourceToAddModList_item = -1; /* SRS_Resource */ +static int hf_nr_rrc_tpc_SRS_RNTI = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_srs_ResourceSetId = -1; /* SRS_ResourceSetId */ +static int hf_nr_rrc_srs_ResourcesIds = -1; /* SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId */ +static int hf_nr_rrc_srs_ResourcesIds_item = -1; /* SRS_ResourceId */ +static int hf_nr_rrc_aperiodicSRS_ResourceTrigger = -1; /* NULL */ +static int hf_nr_rrc_srs_ResourceId = -1; /* SRS_ResourceId */ +static int hf_nr_rrc_nrofSRS_Ports = -1; /* T_nrofSRS_Ports */ +static int hf_nr_rrc_transmissionComb = -1; /* T_transmissionComb */ +static int hf_nr_rrc_freqDomainPosition = -1; /* NULL */ +static int hf_nr_rrc_freqHopping = -1; /* INTEGER_0_63 */ +static int hf_nr_rrc_groupOrSequenceHopping = -1; /* INTEGER_0_2 */ +static int hf_nr_rrc_resourceType_01 = -1; /* T_resourceType_01 */ +static int hf_nr_rrc_aperiodic_02 = -1; /* T_aperiodic_01 */ +static int hf_nr_rrc_semi_persistent = -1; /* T_semi_persistent */ +static int hf_nr_rrc_periodic_02 = -1; /* T_periodic_01 */ +static int hf_nr_rrc_periodicityAndOffset_02 = -1; /* T_periodicityAndOffset_02 */ +static int hf_nr_rrc_sequenceId = -1; /* NULL */ +static int hf_nr_rrc_antennaSwitching = -1; /* NULL */ +static int hf_nr_rrc_carrierSwitching = -1; /* NULL */ +static int hf_nr_rrc_cyclicShift = -1; /* INTEGER_0_12 */ +static int hf_nr_rrc_spatialRelationInfo = -1; /* T_spatialRelationInfo */ +static int hf_nr_rrc_start = -1; /* PhysCellId */ +static int hf_nr_rrc_range = -1; /* T_range */ + +/*--- End of included file: packet-nr-rrc-hf.c ---*/ +#line 40 "./asn1/nr-rrc/packet-nr-rrc-template.c" + +/* Initialize the subtree pointers */ +static gint ett_nr_rrc = -1; + +/*--- Included file: packet-nr-rrc-ett.c ---*/ +#line 1 "./asn1/nr-rrc/packet-nr-rrc-ett.c" +static gint ett_nr_rrc_BCCH_BCH_Message = -1; +static gint ett_nr_rrc_BCCH_BCH_MessageType = -1; +static gint ett_nr_rrc_T_messageClassExtension = -1; +static gint ett_nr_rrc_DL_DCCH_Message = -1; +static gint ett_nr_rrc_DL_DCCH_MessageType = -1; +static gint ett_nr_rrc_T_c1 = -1; +static gint ett_nr_rrc_T_messageClassExtension_01 = -1; +static gint ett_nr_rrc_UL_DCCH_Message = -1; +static gint ett_nr_rrc_UL_DCCH_MessageType = -1; +static gint ett_nr_rrc_T_c1_01 = -1; +static gint ett_nr_rrc_T_messageClassExtension_02 = -1; +static gint ett_nr_rrc_MIB = -1; +static gint ett_nr_rrc_MeasurementReport = -1; +static gint ett_nr_rrc_T_criticalExtensions = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture = -1; +static gint ett_nr_rrc_MeasurementReport_IEs = -1; +static gint ett_nr_rrc_RRCReconfiguration = -1; +static gint ett_nr_rrc_T_criticalExtensions_01 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_01 = -1; +static gint ett_nr_rrc_RRCReconfiguration_IEs = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupId = -1; +static gint ett_nr_rrc_T_nonCriticalExtension = -1; +static gint ett_nr_rrc_RRCReconfigurationComplete = -1; +static gint ett_nr_rrc_T_criticalExtensions_02 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_02 = -1; +static gint ett_nr_rrc_RRCReconfigurationComplete_IEs = -1; +static gint ett_nr_rrc_BandwidthPart = -1; +static gint ett_nr_rrc_CellGroupConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLCH_OF_LCH_Config = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity = -1; +static gint ett_nr_rrc_LCH_Config = -1; +static gint ett_nr_rrc_PhysicalCellGroupConfig = -1; +static gint ett_nr_rrc_SpCellConfig = -1; +static gint ett_nr_rrc_T_reconfigurationWithSync = -1; +static gint ett_nr_rrc_SCellToReleaseList = -1; +static gint ett_nr_rrc_SCellToAddModList = -1; +static gint ett_nr_rrc_SCellConfig = -1; +static gint ett_nr_rrc_CellIndexList = -1; +static gint ett_nr_rrc_CrossCarrierSchedulingConfig = -1; +static gint ett_nr_rrc_T_schedulingCellInfo = -1; +static gint ett_nr_rrc_T_own = -1; +static gint ett_nr_rrc_T_other = -1; +static gint ett_nr_rrc_CSI_MeasConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_Reports_OF_CSI_ReportConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_MeasId_OF_CSI_MeasIdToAddMod = -1; +static gint ett_nr_rrc_T_reportTrigger = -1; +static gint ett_nr_rrc_CSI_ResourceConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceSets_OF_CSI_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSSB_Resources_1_OF_CSI_SSB_Resource = -1; +static gint ett_nr_rrc_T_resourceType = -1; +static gint ett_nr_rrc_CSI_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_Resource = -1; +static gint ett_nr_rrc_NZP_CSI_RS_Resource = -1; +static gint ett_nr_rrc_T_csi_RS_timeConfig = -1; +static gint ett_nr_rrc_CSI_SSB_Resource = -1; +static gint ett_nr_rrc_CSI_ReportConfig = -1; +static gint ett_nr_rrc_T_reportConfigType = -1; +static gint ett_nr_rrc_T_periodic = -1; +static gint ett_nr_rrc_T_reportSlotConfig = -1; +static gint ett_nr_rrc_T_semiPersistent = -1; +static gint ett_nr_rrc_T_reportSlotConfig_01 = -1; +static gint ett_nr_rrc_T_aperiodic = -1; +static gint ett_nr_rrc_T_reportQuantity = -1; +static gint ett_nr_rrc_T_cRI_RI_i1_CQI = -1; +static gint ett_nr_rrc_T_reportFreqConfiguration = -1; +static gint ett_nr_rrc_T_groupBasedBeamReporting = -1; +static gint ett_nr_rrc_T_enabled = -1; +static gint ett_nr_rrc_T_disabled = -1; +static gint ett_nr_rrc_CodebookConfig = -1; +static gint ett_nr_rrc_T_codebookType = -1; +static gint ett_nr_rrc_T_type1 = -1; +static gint ett_nr_rrc_T_codebookSubsetRestrictionType1 = -1; +static gint ett_nr_rrc_T_ri_Restriction = -1; +static gint ett_nr_rrc_T_type2 = -1; +static gint ett_nr_rrc_T_ri_Restriction_01 = -1; +static gint ett_nr_rrc_CSI_MeasIdToAddMod = -1; +static gint ett_nr_rrc_FrequencyInfoUL = -1; +static gint ett_nr_rrc_LogicalChannelConfig = -1; +static gint ett_nr_rrc_T_ul_SpecificParameters = -1; +static gint ett_nr_rrc_MAC_CellGroupConfig = -1; +static gint ett_nr_rrc_DRX_Config = -1; +static gint ett_nr_rrc_T_setup = -1; +static gint ett_nr_rrc_T_drx_LongCycleStartOffset = -1; +static gint ett_nr_rrc_T_shortDRX = -1; +static gint ett_nr_rrc_PHR_Config = -1; +static gint ett_nr_rrc_T_setup_01 = -1; +static gint ett_nr_rrc_TAG_Config = -1; +static gint ett_nr_rrc_TAG_ToReleaseList = -1; +static gint ett_nr_rrc_TAG_ToAddModList = -1; +static gint ett_nr_rrc_TAG_ToAddMod = -1; +static gint ett_nr_rrc_BSR_Config = -1; +static gint ett_nr_rrc_MeasConfig = -1; +static gint ett_nr_rrc_T_s_MeasureConfig = -1; +static gint ett_nr_rrc_MeasObjectToRemoveList = -1; +static gint ett_nr_rrc_MeasIdToRemoveList = -1; +static gint ett_nr_rrc_ReportConfigToRemoveList = -1; +static gint ett_nr_rrc_MeasIdToAddModList = -1; +static gint ett_nr_rrc_MeasIdToAddMod = -1; +static gint ett_nr_rrc_MeasObjectNR = -1; +static gint ett_nr_rrc_ReferenceSignalConfig = -1; +static gint ett_nr_rrc_T_ssbPresence = -1; +static gint ett_nr_rrc_T_present = -1; +static gint ett_nr_rrc_T_notPresent = -1; +static gint ett_nr_rrc_SSB_MeasurementTimingConfiguration = -1; +static gint ett_nr_rrc_T_smtc1 = -1; +static gint ett_nr_rrc_T_periodicityAndOffset = -1; +static gint ett_nr_rrc_T_ssb_ToMeasure = -1; +static gint ett_nr_rrc_T_setup_02 = -1; +static gint ett_nr_rrc_T_smtc2 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysicalCellId = -1; +static gint ett_nr_rrc_CSI_RS_ResourceConfig_Mobility = -1; +static gint ett_nr_rrc_T_csi_rs_MeasurementBW = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility = -1; +static gint ett_nr_rrc_CSI_RS_Resource_Mobility = -1; +static gint ett_nr_rrc_T_slotConfig = -1; +static gint ett_nr_rrc_Q_OffsetRangeList = -1; +static gint ett_nr_rrc_ThresholdNR = -1; +static gint ett_nr_rrc_CellsToAddModList = -1; +static gint ett_nr_rrc_CellsToAddMod = -1; +static gint ett_nr_rrc_BlackCellsToAddModList = -1; +static gint ett_nr_rrc_BlackCellsToAddMod = -1; +static gint ett_nr_rrc_WhiteCellsToAddModList = -1; +static gint ett_nr_rrc_WhiteCellsToAddMod = -1; +static gint ett_nr_rrc_MeasObjectToAddModList = -1; +static gint ett_nr_rrc_MeasObjectToAddMod = -1; +static gint ett_nr_rrc_T_measObject = -1; +static gint ett_nr_rrc_MeasResults = -1; +static gint ett_nr_rrc_T_measResultNeighCells = -1; +static gint ett_nr_rrc_MeasResultServFreqList = -1; +static gint ett_nr_rrc_MeasResultServFreq = -1; +static gint ett_nr_rrc_MeasResultListNR = -1; +static gint ett_nr_rrc_MeasResultNR = -1; +static gint ett_nr_rrc_T_measResult = -1; +static gint ett_nr_rrc_T_cellResults = -1; +static gint ett_nr_rrc_T_rsIndexResults = -1; +static gint ett_nr_rrc_ResultsSSBCell = -1; +static gint ett_nr_rrc_ResultsCSI_RSCell = -1; +static gint ett_nr_rrc_ResultsPerSSBIndexList = -1; +static gint ett_nr_rrc_ResultsPerSSBIndex = -1; +static gint ett_nr_rrc_ResultsPerCSI_RSIndexList = -1; +static gint ett_nr_rrc_ResultsPerCSI_RSIndex = -1; +static gint ett_nr_rrc_PDCCH_Config = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpace = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId = -1; +static gint ett_nr_rrc_T_timing = -1; +static gint ett_nr_rrc_ControlResourceSet = -1; +static gint ett_nr_rrc_SearchSpace = -1; +static gint ett_nr_rrc_T_monitoringSlotPeriodicityAndOffset = -1; +static gint ett_nr_rrc_T_nrofCandidates = -1; +static gint ett_nr_rrc_T_searchSpaceType = -1; +static gint ett_nr_rrc_T_common = -1; +static gint ett_nr_rrc_T_ue_Specific = -1; +static gint ett_nr_rrc_SFI_PDCCH = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CellToSFI = -1; +static gint ett_nr_rrc_CellToSFI = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinations_OF_SlotFormatCombination = -1; +static gint ett_nr_rrc_SlotFormatCombination = -1; +static gint ett_nr_rrc_PDCP_Config = -1; +static gint ett_nr_rrc_T_drb = -1; +static gint ett_nr_rrc_T_headerCompression = -1; +static gint ett_nr_rrc_T_rohc = -1; +static gint ett_nr_rrc_T_profiles = -1; +static gint ett_nr_rrc_T_uplinkOnlyROHC = -1; +static gint ett_nr_rrc_T_profiles_01 = -1; +static gint ett_nr_rrc_T_moreThanOneRLC = -1; +static gint ett_nr_rrc_T_primaryPath = -1; +static gint ett_nr_rrc_T_ul_DataSplitThreshold = -1; +static gint ett_nr_rrc_PDSCH_Config = -1; +static gint ett_nr_rrc_T_phaseTracking_RS = -1; +static gint ett_nr_rrc_T_rateMatchResourcesPDSCH = -1; +static gint ett_nr_rrc_T_rateMatchPatterns = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern = -1; +static gint ett_nr_rrc_T_lte_CRS_ToMatchAround = -1; +static gint ett_nr_rrc_T_setup_04 = -1; +static gint ett_nr_rrc_Downlink_PTRS_Config = -1; +static gint ett_nr_rrc_RateMatchPattern = -1; +static gint ett_nr_rrc_T_periodicityAndOffset_01 = -1; +static gint ett_nr_rrc_PUCCH_Config = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet = -1; +static gint ett_nr_rrc_T_format1 = -1; +static gint ett_nr_rrc_T_setup_05 = -1; +static gint ett_nr_rrc_T_format2 = -1; +static gint ett_nr_rrc_T_setup_06 = -1; +static gint ett_nr_rrc_T_format3 = -1; +static gint ett_nr_rrc_T_setup_07 = -1; +static gint ett_nr_rrc_T_format4 = -1; +static gint ett_nr_rrc_T_setup_08 = -1; +static gint ett_nr_rrc_T_schedulingRequestResources = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSchedulingRequestResoruces_OF_SchedulingRequestResource_Config = -1; +static gint ett_nr_rrc_PUCCH_ResourceSet = -1; +static gint ett_nr_rrc_PUSCH_Config = -1; +static gint ett_nr_rrc_T_phaseTracking_RS_01 = -1; +static gint ett_nr_rrc_T_uci_on_PUSCH = -1; +static gint ett_nr_rrc_T_setup_09 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets = -1; +static gint ett_nr_rrc_Uplink_PTRS_Config = -1; +static gint ett_nr_rrc_T_cp_OFDM = -1; +static gint ett_nr_rrc_T_setup_10 = -1; +static gint ett_nr_rrc_T_dft_S_OFDM = -1; +static gint ett_nr_rrc_T_setup_11 = -1; +static gint ett_nr_rrc_BetaOffsets = -1; +static gint ett_nr_rrc_QuantityConfig = -1; +static gint ett_nr_rrc_QuantityConfigRS = -1; +static gint ett_nr_rrc_RACH_ConfigCommon = -1; +static gint ett_nr_rrc_T_groupBconfigured = -1; +static gint ett_nr_rrc_T_prach_RootSequenceIndex = -1; +static gint ett_nr_rrc_CBRA_SSB_ResourceList = -1; +static gint ett_nr_rrc_CBRA_SSB_Resource = -1; +static gint ett_nr_rrc_RACH_ConfigDedicated = -1; +static gint ett_nr_rrc_CFRA_Resources = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxRAssbResources_OF_CFRA_SSB_Resource = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxRAcsirsResources_OF_CFRA_CSIRS_Resource = -1; +static gint ett_nr_rrc_CFRA_SSB_Resource = -1; +static gint ett_nr_rrc_CFRA_CSIRS_Resource = -1; +static gint ett_nr_rrc_RadioBearerConfig = -1; +static gint ett_nr_rrc_SRB_ToAddModList = -1; +static gint ett_nr_rrc_SRB_ToAddMod = -1; +static gint ett_nr_rrc_DRB_ToAddModList = -1; +static gint ett_nr_rrc_DRB_ToAddMod = -1; +static gint ett_nr_rrc_T_cnAssociation = -1; +static gint ett_nr_rrc_DRB_ToReleaseList = -1; +static gint ett_nr_rrc_SecurityConfig = -1; +static gint ett_nr_rrc_ReportConfigNR = -1; +static gint ett_nr_rrc_T_reportType = -1; +static gint ett_nr_rrc_EventTriggerConfig = -1; +static gint ett_nr_rrc_T_eventId = -1; +static gint ett_nr_rrc_T_eventA1 = -1; +static gint ett_nr_rrc_T_eventA2 = -1; +static gint ett_nr_rrc_T_eventA3 = -1; +static gint ett_nr_rrc_T_eventA4 = -1; +static gint ett_nr_rrc_T_eventA5 = -1; +static gint ett_nr_rrc_T_eventA6 = -1; +static gint ett_nr_rrc_PeriodicalReportConfig = -1; +static gint ett_nr_rrc_MeasTriggerQuantity = -1; +static gint ett_nr_rrc_MeasTriggerQuantityOffset = -1; +static gint ett_nr_rrc_MeasReportQuantity = -1; +static gint ett_nr_rrc_ReportConfigToAddModList = -1; +static gint ett_nr_rrc_ReportConfigToAddMod = -1; +static gint ett_nr_rrc_T_reportConfig = -1; +static gint ett_nr_rrc_RLC_Config = -1; +static gint ett_nr_rrc_T_am = -1; +static gint ett_nr_rrc_T_um_Bi_Directional = -1; +static gint ett_nr_rrc_T_um_Uni_Directional_UL = -1; +static gint ett_nr_rrc_T_um_Uni_Directional_DL = -1; +static gint ett_nr_rrc_UL_AM_RLC = -1; +static gint ett_nr_rrc_DL_AM_RLC = -1; +static gint ett_nr_rrc_UL_UM_RLC = -1; +static gint ett_nr_rrc_DL_UM_RLC = -1; +static gint ett_nr_rrc_RLF_TimersAndConstants = -1; +static gint ett_nr_rrc_SchedulingRequestConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId = -1; +static gint ett_nr_rrc_SchedulingRequestToAddMod = -1; +static gint ett_nr_rrc_SDAP_Config = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI = -1; +static gint ett_nr_rrc_SecurityAlgorithmConfig = -1; +static gint ett_nr_rrc_ServingCellConfigCommon = -1; +static gint ett_nr_rrc_T_frequencyInfoDL = -1; +static gint ett_nr_rrc_T_supplementaryUplink = -1; +static gint ett_nr_rrc_T_ssb_PositionsInBurst = -1; +static gint ett_nr_rrc_T_tdd_UL_DL_configurationCommon = -1; +static gint ett_nr_rrc_ServingCellConfigDedicated = -1; +static gint ett_nr_rrc_T_tdd_UL_DL_configurationDedicated = -1; +static gint ett_nr_rrc_T_slotSpecificConfigurations = -1; +static gint ett_nr_rrc_T_slotSpecificConfigurations_item = -1; +static gint ett_nr_rrc_SPS_Config = -1; +static gint ett_nr_rrc_T_uplink = -1; +static gint ett_nr_rrc_T_rrcConfiguredUplinkGrant = -1; +static gint ett_nr_rrc_T_setup_12 = -1; +static gint ett_nr_rrc_SRS_Config = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource = -1; +static gint ett_nr_rrc_SRS_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId = -1; +static gint ett_nr_rrc_SRS_Resource = -1; +static gint ett_nr_rrc_T_resourceType_01 = -1; +static gint ett_nr_rrc_T_aperiodic_01 = -1; +static gint ett_nr_rrc_T_semi_persistent = -1; +static gint ett_nr_rrc_T_periodic_01 = -1; +static gint ett_nr_rrc_T_periodicityAndOffset_02 = -1; +static gint ett_nr_rrc_MeasGapConfig = -1; +static gint ett_nr_rrc_MeasObjectEUTRA = -1; +static gint ett_nr_rrc_MeasResultListEUTRA = -1; +static gint ett_nr_rrc_PhysCellIdRange = -1; +static gint ett_nr_rrc_RA_Resources = -1; +static gint ett_nr_rrc_ReportConfigEUTRA = -1; +static gint ett_nr_rrc_SchedulingRequestResource_Config = -1; + +/*--- End of included file: packet-nr-rrc-ett.c ---*/ +#line 44 "./asn1/nr-rrc/packet-nr-rrc-template.c" +static gint ett_nr_rrc_UECapabilityInformation = -1; + +#if 0 +/* Forward declarations */ +static int dissect_UE_NR_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +static int dissect_UE_MRDC_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); + +typedef struct { + guint8 rat_type; +} nr_rrc_private_data_t; + +/* Helper function to get or create a struct that will be actx->private_data */ +static nr_rrc_private_data_t* nr_rrc_get_private_data(asn1_ctx_t *actx) +{ + if (actx->private_data == NULL) { + actx->private_data = wmem_new0(wmem_packet_scope(), nr_rrc_private_data_t); + } + return (nr_rrc_private_data_t*)actx->private_data; +} + +static guint8 private_data_get_rat_type(asn1_ctx_t *actx) +{ + nr_rrc_private_data_t *private_data = (nr_rrc_private_data_t*)nr_rrc_get_private_data(actx); + return private_data->rat_type; +} + +static void private_data_set_rat_type(asn1_ctx_t *actx, guint8 rat_type) +{ + nr_rrc_private_data_t *private_data = (nr_rrc_private_data_t*)nr_rrc_get_private_data(actx); + private_data->rat_type = rat_type; +} +#endif + + +/*--- Included file: packet-nr-rrc-fn.c ---*/ +#line 1 "./asn1/nr-rrc/packet-nr-rrc-fn.c" + + +static int +dissect_nr_rrc_INTEGER_1_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 7U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_halfFrameIndex_vals[] = { + { 0, "firstHalf" }, + { 1, "secondHalf" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_halfFrameIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 10, 10, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_SubcarrierSpacing_vals[] = { + { 0, "kHz15" }, + { 1, "kHz30" }, + { 2, "kHz60" }, + { 3, "kHz120" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_SubcarrierSpacing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_11(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 11U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_dmrs_TypeA_Position_vals[] = { + { 0, "pos2" }, + { 1, "pos3" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dmrs_TypeA_Position(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 255U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_cellBarred_vals[] = { + { 0, "barred" }, + { 1, "notBarred" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_cellBarred(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_intraFreqReselection_vals[] = { + { 0, "allowed" }, + { 1, "notAllowed" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_intraFreqReselection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 0, 0, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t MIB_sequence[] = { + { &hf_nr_rrc_ssb_IndexExplicit, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_7 }, + { &hf_nr_rrc_halfFrameIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_halfFrameIndex }, + { &hf_nr_rrc_systemFrameNumber, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_10 }, + { &hf_nr_rrc_subCarrierSpacingCommon, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_ssb_subcarrierOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_11 }, + { &hf_nr_rrc_dmrs_TypeA_Position, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dmrs_TypeA_Position }, + { &hf_nr_rrc_pdcchConfigSIB1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_255 }, + { &hf_nr_rrc_cellBarred , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cellBarred }, + { &hf_nr_rrc_intraFreqReselection, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_intraFreqReselection }, + { &hf_nr_rrc_spare , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_0 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MIB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MIB"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MIB, MIB_sequence); + + return offset; +} + + +static const per_sequence_t T_messageClassExtension_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_messageClassExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_messageClassExtension, T_messageClassExtension_sequence); + + return offset; +} + + +static const value_string nr_rrc_BCCH_BCH_MessageType_vals[] = { + { 0, "mib" }, + { 1, "messageClassExtension" }, + { 0, NULL } +}; + +static const per_choice_t BCCH_BCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_mib , ASN1_NO_EXTENSIONS , dissect_nr_rrc_MIB }, + { 1, &hf_nr_rrc_messageClassExtension, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_BCCH_BCH_MessageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BCCH_BCH_MessageType, BCCH_BCH_MessageType_choice, + NULL); + + return offset; +} + + +static const per_sequence_t BCCH_BCH_Message_sequence[] = { + { &hf_nr_rrc_message , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BCCH_BCH_MessageType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BCCH_BCH_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + proto_item *ti; + + col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_clear(actx->pinfo->cinfo, COL_INFO); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + tree = proto_item_add_subtree(ti, ett_nr_rrc); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BCCH_BCH_Message, BCCH_BCH_Message_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_RRC_TransactionIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 3U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_SRB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 3U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_reestablishPDCP_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reestablishPDCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_discardTimer_vals[] = { + { 0, "ms10" }, + { 1, "ms20" }, + { 2, "ms30" }, + { 3, "ms40" }, + { 4, "ms50" }, + { 5, "ms60" }, + { 6, "ms75" }, + { 7, "ms100" }, + { 8, "ms150" }, + { 9, "ms200" }, + { 10, "ms250" }, + { 11, "ms300" }, + { 12, "ms500" }, + { 13, "ms750" }, + { 14, "ms1500" }, + { 15, "infinity" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_discardTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_pdcp_SN_Size_UL_vals[] = { + { 0, "len12bits" }, + { 1, "len18bits" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdcp_SN_Size_UL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_pdcp_SN_Size_DL_vals[] = { + { 0, "len12bits" }, + { 1, "len18bits" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdcp_SN_Size_DL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_null(tvb, offset, actx, tree, hf_index); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 16383U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const per_sequence_t T_profiles_sequence[] = { + { &hf_nr_rrc_profile0x0001, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0002, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0003, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0004, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0006, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0101, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0102, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0103, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0104, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_profiles(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_profiles, T_profiles_sequence); + + return offset; +} + + +static const per_sequence_t T_profiles_01_sequence[] = { + { &hf_nr_rrc_profile0x0006, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_profiles_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_profiles_01, T_profiles_01_sequence); + + return offset; +} + + +static const per_sequence_t T_uplinkOnlyROHC_sequence[] = { + { &hf_nr_rrc_maxCID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_16383 }, + { &hf_nr_rrc_profiles_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_profiles_01 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_uplinkOnlyROHC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_uplinkOnlyROHC, T_uplinkOnlyROHC_sequence); + + return offset; +} + + +static const per_sequence_t T_rohc_sequence[] = { + { &hf_nr_rrc_maxCID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_16383 }, + { &hf_nr_rrc_profiles , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_profiles }, + { &hf_nr_rrc_uplinkOnlyROHC, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_uplinkOnlyROHC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_rohc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_rohc, T_rohc_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_headerCompression_vals[] = { + { 0, "notUsed" }, + { 1, "rohc" }, + { 0, NULL } +}; + +static const per_choice_t T_headerCompression_choice[] = { + { 0, &hf_nr_rrc_notUsed , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_rohc , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_rohc }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_headerCompression(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_headerCompression, T_headerCompression_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_drb_sequence[] = { + { &hf_nr_rrc_discardTimer , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_discardTimer }, + { &hf_nr_rrc_pdcp_SN_Size_UL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_pdcp_SN_Size_UL }, + { &hf_nr_rrc_pdcp_SN_Size_DL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_pdcp_SN_Size_DL }, + { &hf_nr_rrc_headerCompression, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_headerCompression }, + { &hf_nr_rrc_integrityProtection, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_statusReportRequired, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_drb(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_drb, T_drb_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_CellGroupId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxSCellGroups, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_LogicalChannelIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 32U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_primaryPath_sequence[] = { + { &hf_nr_rrc_cellGroup , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellGroupId }, + { &hf_nr_rrc_logicalChannel, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_LogicalChannelIdentity }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_primaryPath(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_primaryPath, T_primaryPath_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_setup_03_vals[] = { + { 0, "b0" }, + { 1, "b100" }, + { 2, "b200" }, + { 3, "b400" }, + { 4, "b800" }, + { 5, "b1600" }, + { 6, "b3200" }, + { 7, "b6400" }, + { 8, "b12800" }, + { 9, "b25600" }, + { 10, "b51200" }, + { 11, "b102400" }, + { 12, "b204800" }, + { 13, "b409600" }, + { 14, "b819200" }, + { 15, "b1228800" }, + { 16, "b1638400" }, + { 17, "b2457600" }, + { 18, "b3276800" }, + { 19, "b4096000" }, + { 20, "b4915200" }, + { 21, "b5734400" }, + { 22, "b6553600" }, + { 23, "infinity" }, + { 24, "spare8" }, + { 25, "spare7" }, + { 26, "spare6" }, + { 27, "spare5" }, + { 28, "spare4" }, + { 29, "spare3" }, + { 30, "spare2" }, + { 31, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_setup_03_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_setup_03_vals); + + +static int +dissect_nr_rrc_T_setup_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 32, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_ul_DataSplitThreshold_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_ul_DataSplitThreshold_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_03 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_03 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ul_DataSplitThreshold(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_ul_DataSplitThreshold, T_ul_DataSplitThreshold_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_moreThanOneRLC_sequence[] = { + { &hf_nr_rrc_primaryPath , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_primaryPath }, + { &hf_nr_rrc_ul_DataSplitThreshold, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ul_DataSplitThreshold }, + { &hf_nr_rrc_ul_Duplication, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_moreThanOneRLC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_moreThanOneRLC, T_moreThanOneRLC_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_t_Reordering_vals[] = { + { 0, "ms0" }, + { 1, "ms5" }, + { 2, "ms10" }, + { 3, "ms15" }, + { 4, "ms20" }, + { 5, "ms30" }, + { 6, "ms40" }, + { 7, "ms60" }, + { 8, "ms50" }, + { 9, "ms80" }, + { 10, "ms100" }, + { 11, "ms120" }, + { 12, "ms140" }, + { 13, "ms160" }, + { 14, "ms180" }, + { 15, "ms200" }, + { 16, "ms220" }, + { 17, "ms240" }, + { 18, "ms260" }, + { 19, "ms280" }, + { 20, "ms300" }, + { 21, "ms500" }, + { 22, "ms750" }, + { 23, "ms1000" }, + { 24, "ms1250" }, + { 25, "ms1500" }, + { 26, "ms1750" }, + { 27, "ms2000" }, + { 28, "ms2250" }, + { 29, "ms2500" }, + { 30, "ms2750" }, + { 31, "ms3000" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_t_Reordering_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_t_Reordering_vals); + + +static int +dissect_nr_rrc_T_t_Reordering(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 32, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PDCP_Config_sequence[] = { + { &hf_nr_rrc_drb , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_drb }, + { &hf_nr_rrc_moreThanOneRLC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_moreThanOneRLC }, + { &hf_nr_rrc_t_Reordering , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_t_Reordering }, + { &hf_nr_rrc_outOfOrderDelivery, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PDCP_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PDCP_Config, PDCP_Config_sequence); + + return offset; +} + + +static const per_sequence_t SRB_ToAddMod_sequence[] = { + { &hf_nr_rrc_srb_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRB_Identity }, + { &hf_nr_rrc_reestablishPDCP, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_reestablishPDCP }, + { &hf_nr_rrc_pdcp_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PDCP_Config }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SRB_ToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SRB_ToAddMod, SRB_ToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t SRB_ToAddModList_sequence_of[1] = { + { &hf_nr_rrc_SRB_ToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRB_ToAddMod }, +}; + +static int +dissect_nr_rrc_SRB_ToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SRB_ToAddModList, SRB_ToAddModList_sequence_of, + 1, 2, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 3U, 3U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 15U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_PDUsessionID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_sdap_Header_DL_vals[] = { + { 0, "present" }, + { 1, "absent" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sdap_Header_DL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_sdap_Header_UL_vals[] = { + { 0, "present" }, + { 1, "absent" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sdap_Header_UL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_QFI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxQFI, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI_sequence_of[1] = { + { &hf_nr_rrc_mappedQoSflows_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_QFI }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI, SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI_sequence_of, + 0, maxNrofQFIs, FALSE); + + return offset; +} + + +static const per_sequence_t SDAP_Config_sequence[] = { + { &hf_nr_rrc_pduSession , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PDUsessionID }, + { &hf_nr_rrc_sdap_Header_DL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sdap_Header_DL }, + { &hf_nr_rrc_sdap_Header_UL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sdap_Header_UL }, + { &hf_nr_rrc_defaultDRB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_reflectiveQoS, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_mappedQoSflows, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SDAP_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SDAP_Config, SDAP_Config_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_cnAssociation_vals[] = { + { 0, "eps-BearerIdentity" }, + { 1, "sdap-Config" }, + { 0, NULL } +}; + +static const per_choice_t T_cnAssociation_choice[] = { + { 0, &hf_nr_rrc_eps_BearerIdentity, ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_15 }, + { 1, &hf_nr_rrc_sdap_Config , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SDAP_Config }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_cnAssociation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_cnAssociation, T_cnAssociation_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_DRB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 4U, 32U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_reestablishPDCP_01_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reestablishPDCP_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_recoverPDCP_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_recoverPDCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t DRB_ToAddMod_sequence[] = { + { &hf_nr_rrc_cnAssociation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cnAssociation }, + { &hf_nr_rrc_drb_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_Identity }, + { &hf_nr_rrc_reestablishPDCP_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_reestablishPDCP_01 }, + { &hf_nr_rrc_recoverPDCP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_recoverPDCP }, + { &hf_nr_rrc_pdcp_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PDCP_Config }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_DRB_ToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DRB_ToAddMod, DRB_ToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t DRB_ToAddModList_sequence_of[1] = { + { &hf_nr_rrc_DRB_ToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_ToAddMod }, +}; + +static int +dissect_nr_rrc_DRB_ToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DRB_ToAddModList, DRB_ToAddModList_sequence_of, + 1, maxDRB, FALSE); + + return offset; +} + + +static const per_sequence_t DRB_ToReleaseList_sequence_of[1] = { + { &hf_nr_rrc_DRB_ToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_Identity }, +}; + +static int +dissect_nr_rrc_DRB_ToReleaseList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DRB_ToReleaseList, DRB_ToReleaseList_sequence_of, + 1, maxDRB, FALSE); + + return offset; +} + + +static const value_string nr_rrc_CipheringAlgorithm_vals[] = { + { 0, "nea0" }, + { 1, "nea1" }, + { 2, "nea2" }, + { 3, "nea3" }, + { 4, "spare4" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_CipheringAlgorithm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_IntegrityProtAlgorithm_vals[] = { + { 0, "nia0" }, + { 1, "nia1" }, + { 2, "nia2" }, + { 3, "nia3" }, + { 4, "spare4" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_IntegrityProtAlgorithm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t SecurityAlgorithmConfig_sequence[] = { + { &hf_nr_rrc_cipheringAlgorithm, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CipheringAlgorithm }, + { &hf_nr_rrc_integrityProtAlgorithm, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_IntegrityProtAlgorithm }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SecurityAlgorithmConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SecurityAlgorithmConfig, SecurityAlgorithmConfig_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_keyToUse_vals[] = { + { 0, "keNB" }, + { 1, "s-KgNB" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_keyToUse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t SecurityConfig_sequence[] = { + { &hf_nr_rrc_securityAlgorithmConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SecurityAlgorithmConfig }, + { &hf_nr_rrc_keyToUse , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_keyToUse }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SecurityConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SecurityConfig, SecurityConfig_sequence); + + return offset; +} + + +static const per_sequence_t RadioBearerConfig_sequence[] = { + { &hf_nr_rrc_srb_ToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SRB_ToAddModList }, + { &hf_nr_rrc_srb_ToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_3 }, + { &hf_nr_rrc_drb_ToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_DRB_ToAddModList }, + { &hf_nr_rrc_drb_ToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_DRB_ToReleaseList }, + { &hf_nr_rrc_securityConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SecurityConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RadioBearerConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RadioBearerConfig, RadioBearerConfig_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 32U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_reestablishRLC_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reestablishRLC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_SN_FieldLength_AM_vals[] = { + { 0, "size12" }, + { 1, "size18" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_SN_FieldLength_AM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_PollRetransmit_vals[] = { + { 0, "ms5" }, + { 1, "ms10" }, + { 2, "ms15" }, + { 3, "ms20" }, + { 4, "ms25" }, + { 5, "ms30" }, + { 6, "ms35" }, + { 7, "ms40" }, + { 8, "ms45" }, + { 9, "ms50" }, + { 10, "ms55" }, + { 11, "ms60" }, + { 12, "ms65" }, + { 13, "ms70" }, + { 14, "ms75" }, + { 15, "ms80" }, + { 16, "ms85" }, + { 17, "ms90" }, + { 18, "ms95" }, + { 19, "ms100" }, + { 20, "ms105" }, + { 21, "ms110" }, + { 22, "ms115" }, + { 23, "ms120" }, + { 24, "ms125" }, + { 25, "ms130" }, + { 26, "ms135" }, + { 27, "ms140" }, + { 28, "ms145" }, + { 29, "ms150" }, + { 30, "ms155" }, + { 31, "ms160" }, + { 32, "ms165" }, + { 33, "ms170" }, + { 34, "ms175" }, + { 35, "ms180" }, + { 36, "ms185" }, + { 37, "ms190" }, + { 38, "ms195" }, + { 39, "ms200" }, + { 40, "ms205" }, + { 41, "ms210" }, + { 42, "ms215" }, + { 43, "ms220" }, + { 44, "ms225" }, + { 45, "ms230" }, + { 46, "ms235" }, + { 47, "ms240" }, + { 48, "ms245" }, + { 49, "ms250" }, + { 50, "ms300" }, + { 51, "ms350" }, + { 52, "ms400" }, + { 53, "ms450" }, + { 54, "ms500" }, + { 55, "ms800" }, + { 56, "ms1000" }, + { 57, "ms2000" }, + { 58, "ms4000" }, + { 59, "spare5" }, + { 60, "spare4" }, + { 61, "spare3" }, + { 62, "spare2" }, + { 63, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_PollRetransmit_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_PollRetransmit_vals); + + +static int +dissect_nr_rrc_T_PollRetransmit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 64, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_PollPDU_vals[] = { + { 0, "p4" }, + { 1, "p8" }, + { 2, "p16" }, + { 3, "p32" }, + { 4, "p64" }, + { 5, "p128" }, + { 6, "p256" }, + { 7, "p512" }, + { 8, "p1024" }, + { 9, "p2048" }, + { 10, "p4096" }, + { 11, "p6144" }, + { 12, "p8192" }, + { 13, "p12288" }, + { 14, "p16384" }, + { 15, "p20480" }, + { 16, "p24576" }, + { 17, "p28672" }, + { 18, "p32768" }, + { 19, "p40960" }, + { 20, "p49152" }, + { 21, "p57344" }, + { 22, "p65536" }, + { 23, "infinity" }, + { 24, "spare8" }, + { 25, "spare7" }, + { 26, "spare6" }, + { 27, "spare5" }, + { 28, "spare4" }, + { 29, "spare3" }, + { 30, "spare2" }, + { 31, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_PollPDU_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_PollPDU_vals); + + +static int +dissect_nr_rrc_PollPDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 32, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_PollByte_vals[] = { + { 0, "kB1" }, + { 1, "kB2" }, + { 2, "kB5" }, + { 3, "kB8" }, + { 4, "kB10" }, + { 5, "kB15" }, + { 6, "kB25" }, + { 7, "kB50" }, + { 8, "kB75" }, + { 9, "kB100" }, + { 10, "kB125" }, + { 11, "kB250" }, + { 12, "kB375" }, + { 13, "kB500" }, + { 14, "kB750" }, + { 15, "kB1000" }, + { 16, "kB1250" }, + { 17, "kB1500" }, + { 18, "kB2000" }, + { 19, "kB3000" }, + { 20, "kB4000" }, + { 21, "kB4500" }, + { 22, "kB5000" }, + { 23, "kB5500" }, + { 24, "kB6000" }, + { 25, "kB6500" }, + { 26, "kB7000" }, + { 27, "kB7500" }, + { 28, "mB8" }, + { 29, "mB9" }, + { 30, "mB10" }, + { 31, "mB11" }, + { 32, "mB12" }, + { 33, "mB13" }, + { 34, "mB14" }, + { 35, "mB15" }, + { 36, "mB16" }, + { 37, "mB17" }, + { 38, "mB18" }, + { 39, "mB20" }, + { 40, "mB25" }, + { 41, "mB30" }, + { 42, "mB40" }, + { 43, "infinity" }, + { 44, "spare20" }, + { 45, "spare19" }, + { 46, "spare18" }, + { 47, "spare17" }, + { 48, "spare16" }, + { 49, "spare15" }, + { 50, "spare14" }, + { 51, "spare13" }, + { 52, "spare12" }, + { 53, "spare11" }, + { 54, "spare10" }, + { 55, "spare9" }, + { 56, "spare8" }, + { 57, "spare7" }, + { 58, "spare6" }, + { 59, "spare5" }, + { 60, "spare4" }, + { 61, "spare3" }, + { 62, "spare2" }, + { 63, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_PollByte_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_PollByte_vals); + + +static int +dissect_nr_rrc_PollByte(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 64, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_maxRetxThreshold_vals[] = { + { 0, "t1" }, + { 1, "t2" }, + { 2, "t3" }, + { 3, "t4" }, + { 4, "t6" }, + { 5, "t8" }, + { 6, "t16" }, + { 7, "t32" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxRetxThreshold(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t UL_AM_RLC_sequence[] = { + { &hf_nr_rrc_sn_FieldLength, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SN_FieldLength_AM }, + { &hf_nr_rrc_t_PollRetransmit, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_PollRetransmit }, + { &hf_nr_rrc_pollPDU , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PollPDU }, + { &hf_nr_rrc_pollByte , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PollByte }, + { &hf_nr_rrc_maxRetxThreshold, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxRetxThreshold }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UL_AM_RLC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UL_AM_RLC, UL_AM_RLC_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_Reassembly_vals[] = { + { 0, "ms0" }, + { 1, "ms5" }, + { 2, "ms10" }, + { 3, "ms15" }, + { 4, "ms20" }, + { 5, "ms25" }, + { 6, "ms30" }, + { 7, "ms35" }, + { 8, "ms40" }, + { 9, "ms45" }, + { 10, "ms50" }, + { 11, "ms55" }, + { 12, "ms60" }, + { 13, "ms65" }, + { 14, "ms70" }, + { 15, "ms75" }, + { 16, "ms80" }, + { 17, "ms85" }, + { 18, "ms90" }, + { 19, "ms95" }, + { 20, "ms100" }, + { 21, "ms110" }, + { 22, "ms120" }, + { 23, "ms130" }, + { 24, "ms140" }, + { 25, "ms150" }, + { 26, "ms160" }, + { 27, "ms170" }, + { 28, "ms180" }, + { 29, "ms190" }, + { 30, "ms200" }, + { 31, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_Reassembly_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_Reassembly_vals); + + +static int +dissect_nr_rrc_T_Reassembly(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 32, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_StatusProhibit_vals[] = { + { 0, "ms0" }, + { 1, "ms5" }, + { 2, "ms10" }, + { 3, "ms15" }, + { 4, "ms20" }, + { 5, "ms25" }, + { 6, "ms30" }, + { 7, "ms35" }, + { 8, "ms40" }, + { 9, "ms45" }, + { 10, "ms50" }, + { 11, "ms55" }, + { 12, "ms60" }, + { 13, "ms65" }, + { 14, "ms70" }, + { 15, "ms75" }, + { 16, "ms80" }, + { 17, "ms85" }, + { 18, "ms90" }, + { 19, "ms95" }, + { 20, "ms100" }, + { 21, "ms105" }, + { 22, "ms110" }, + { 23, "ms115" }, + { 24, "ms120" }, + { 25, "ms125" }, + { 26, "ms130" }, + { 27, "ms135" }, + { 28, "ms140" }, + { 29, "ms145" }, + { 30, "ms150" }, + { 31, "ms155" }, + { 32, "ms160" }, + { 33, "ms165" }, + { 34, "ms170" }, + { 35, "ms175" }, + { 36, "ms180" }, + { 37, "ms185" }, + { 38, "ms190" }, + { 39, "ms195" }, + { 40, "ms200" }, + { 41, "ms205" }, + { 42, "ms210" }, + { 43, "ms215" }, + { 44, "ms220" }, + { 45, "ms225" }, + { 46, "ms230" }, + { 47, "ms235" }, + { 48, "ms240" }, + { 49, "ms245" }, + { 50, "ms250" }, + { 51, "ms300" }, + { 52, "ms350" }, + { 53, "ms400" }, + { 54, "ms450" }, + { 55, "ms500" }, + { 56, "ms800" }, + { 57, "ms1000" }, + { 58, "ms1200" }, + { 59, "ms1600" }, + { 60, "ms2000" }, + { 61, "ms2400" }, + { 62, "spare2" }, + { 63, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_StatusProhibit_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_StatusProhibit_vals); + + +static int +dissect_nr_rrc_T_StatusProhibit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 64, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t DL_AM_RLC_sequence[] = { + { &hf_nr_rrc_sn_FieldLength, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SN_FieldLength_AM }, + { &hf_nr_rrc_t_Reassembly , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_Reassembly }, + { &hf_nr_rrc_t_StatusProhibit, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_StatusProhibit }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_DL_AM_RLC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DL_AM_RLC, DL_AM_RLC_sequence); + + return offset; +} + + +static const per_sequence_t T_am_sequence[] = { + { &hf_nr_rrc_ul_AM_RLC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UL_AM_RLC }, + { &hf_nr_rrc_dl_AM_RLC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DL_AM_RLC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_am(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_am, T_am_sequence); + + return offset; +} + + +static const value_string nr_rrc_SN_FieldLength_UM_vals[] = { + { 0, "size6" }, + { 1, "size12" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_SN_FieldLength_UM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t UL_UM_RLC_sequence[] = { + { &hf_nr_rrc_sn_FieldLength_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SN_FieldLength_UM }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UL_UM_RLC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UL_UM_RLC, UL_UM_RLC_sequence); + + return offset; +} + + +static const per_sequence_t DL_UM_RLC_sequence[] = { + { &hf_nr_rrc_sn_FieldLength_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SN_FieldLength_UM }, + { &hf_nr_rrc_t_Reassembly , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_Reassembly }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_DL_UM_RLC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DL_UM_RLC, DL_UM_RLC_sequence); + + return offset; +} + + +static const per_sequence_t T_um_Bi_Directional_sequence[] = { + { &hf_nr_rrc_ul_UM_RLC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UL_UM_RLC }, + { &hf_nr_rrc_dl_UM_RLC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DL_UM_RLC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_um_Bi_Directional(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_um_Bi_Directional, T_um_Bi_Directional_sequence); + + return offset; +} + + +static const per_sequence_t T_um_Uni_Directional_UL_sequence[] = { + { &hf_nr_rrc_ul_UM_RLC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UL_UM_RLC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_um_Uni_Directional_UL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_um_Uni_Directional_UL, T_um_Uni_Directional_UL_sequence); + + return offset; +} + + +static const per_sequence_t T_um_Uni_Directional_DL_sequence[] = { + { &hf_nr_rrc_dl_UM_RLC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DL_UM_RLC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_um_Uni_Directional_DL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_um_Uni_Directional_DL, T_um_Uni_Directional_DL_sequence); + + return offset; +} + + +static const value_string nr_rrc_RLC_Config_vals[] = { + { 0, "am" }, + { 1, "um-Bi-Directional" }, + { 2, "um-Uni-Directional-UL" }, + { 3, "um-Uni-Directional-DL" }, + { 0, NULL } +}; + +static const per_choice_t RLC_Config_choice[] = { + { 0, &hf_nr_rrc_am , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_am }, + { 1, &hf_nr_rrc_um_Bi_Directional, ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_um_Bi_Directional }, + { 2, &hf_nr_rrc_um_Uni_Directional_UL, ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_um_Uni_Directional_UL }, + { 3, &hf_nr_rrc_um_Uni_Directional_DL, ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_um_Uni_Directional_DL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_RLC_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RLC_Config, RLC_Config_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 16U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_prioritisedBitRate_vals[] = { + { 0, "kBps0" }, + { 1, "kBps8" }, + { 2, "kBps16" }, + { 3, "kBps32" }, + { 4, "kBps64" }, + { 5, "kBps128" }, + { 6, "kBps256" }, + { 7, "kBps512" }, + { 8, "kBps1024" }, + { 9, "kBps2048" }, + { 10, "kBps4096" }, + { 11, "kBps8192" }, + { 12, "kBps16384" }, + { 13, "kBps32768" }, + { 14, "kBps65536" }, + { 15, "infinity" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_prioritisedBitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_bucketSizeDuration_vals[] = { + { 0, "ms50" }, + { 1, "ms100" }, + { 2, "ms150" }, + { 3, "ms300" }, + { 4, "ms500" }, + { 5, "ms1000" }, + { 6, "spare2" }, + { 7, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_bucketSizeDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_maxLCid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxLCid, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_ul_SpecificParameters_sequence[] = { + { &hf_nr_rrc_priority , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_16 }, + { &hf_nr_rrc_prioritisedBitRate, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_prioritisedBitRate }, + { &hf_nr_rrc_bucketSizeDuration, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_bucketSizeDuration }, + { &hf_nr_rrc_allowedSubCarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_allowedTiming, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_logicalChannelGroup, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxLCid }, + { &hf_nr_rrc_logicalChannelSR_Mask, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_logicalChannelSR_DelayTimerApplied, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ul_SpecificParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_ul_SpecificParameters, T_ul_SpecificParameters_sequence); + + return offset; +} + + +static const per_sequence_t LogicalChannelConfig_sequence[] = { + { &hf_nr_rrc_ul_SpecificParameters, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ul_SpecificParameters }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_LogicalChannelConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_LogicalChannelConfig, LogicalChannelConfig_sequence); + + return offset; +} + + +static const per_sequence_t LCH_Config_sequence[] = { + { &hf_nr_rrc_logicalChannelIdentity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_LogicalChannelIdentity }, + { &hf_nr_rrc_servedRadioBearer, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_32 }, + { &hf_nr_rrc_reestablishRLC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_reestablishRLC }, + { &hf_nr_rrc_rlc_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RLC_Config }, + { &hf_nr_rrc_mac_LogicalChannelConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_LogicalChannelConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_LCH_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_LCH_Config, LCH_Config_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxLCH_OF_LCH_Config_sequence_of[1] = { + { &hf_nr_rrc_rlc_BearerToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_LCH_Config }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxLCH_OF_LCH_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxLCH_OF_LCH_Config, SEQUENCE_SIZE_1_maxLCH_OF_LCH_Config_sequence_of, + 1, maxLCH, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity_sequence_of[1] = { + { &hf_nr_rrc_rlc_BearerToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_LogicalChannelIdentity }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity, SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity_sequence_of, + 1, maxLCH, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_drx_onDurationTimer_vals[] = { + { 0, "ms1-32" }, + { 1, "ms2-32" }, + { 2, "ms3-32" }, + { 3, "ms4-32" }, + { 4, "ms5-32" }, + { 5, "ms6-32" }, + { 6, "ms7-32" }, + { 7, "ms8-32" }, + { 8, "ms9-32" }, + { 9, "ms10-32" }, + { 10, "ms11-32" }, + { 11, "ms12-32" }, + { 12, "ms13-32" }, + { 13, "ms14-32" }, + { 14, "ms15-32" }, + { 15, "ms16-32" }, + { 16, "ms17-32" }, + { 17, "ms18-32" }, + { 18, "ms19-32" }, + { 19, "ms-20-32" }, + { 20, "ms21-32" }, + { 21, "ms22-32" }, + { 22, "ms23-32" }, + { 23, "ms24-32" }, + { 24, "ms25-32" }, + { 25, "ms26-32" }, + { 26, "ms27-32" }, + { 27, "ms28-32" }, + { 28, "ms29-32" }, + { 29, "ms30-32" }, + { 30, "ms31-32" }, + { 31, "ms1" }, + { 32, "ms2" }, + { 33, "ms3" }, + { 34, "ms4" }, + { 35, "ms5" }, + { 36, "ms6" }, + { 37, "ms8" }, + { 38, "ms10" }, + { 39, "ms20" }, + { 40, "ms30" }, + { 41, "ms40" }, + { 42, "ms50" }, + { 43, "ms60" }, + { 44, "ms80" }, + { 45, "ms100" }, + { 46, "ms200" }, + { 47, "ms300" }, + { 48, "ms400" }, + { 49, "ms500" }, + { 50, "ms600" }, + { 51, "ms800" }, + { 52, "ms1000" }, + { 53, "ms1200" }, + { 54, "ms1600" }, + { 55, "spare9" }, + { 56, "spare8" }, + { 57, "spare7" }, + { 58, "spare6" }, + { 59, "spare5" }, + { 60, "spare4" }, + { 61, "spare3" }, + { 62, "spare2" }, + { 63, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_drx_onDurationTimer_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_drx_onDurationTimer_vals); + + +static int +dissect_nr_rrc_T_drx_onDurationTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 64, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_drx_InactivityTimer_vals[] = { + { 0, "ms0" }, + { 1, "ms1" }, + { 2, "ms2" }, + { 3, "ms3" }, + { 4, "ms4" }, + { 5, "ms5" }, + { 6, "ms6" }, + { 7, "ms8" }, + { 8, "ms10" }, + { 9, "ms20" }, + { 10, "ms30" }, + { 11, "ms40" }, + { 12, "ms50" }, + { 13, "ms60" }, + { 14, "ms80" }, + { 15, "ms100" }, + { 16, "ms200" }, + { 17, "ms300" }, + { 18, "ms500" }, + { 19, "ms750" }, + { 20, "ms1280" }, + { 21, "ms1920" }, + { 22, "ms2560" }, + { 23, "spare9" }, + { 24, "spare8" }, + { 25, "spare7" }, + { 26, "spare6" }, + { 27, "spare5" }, + { 28, "spare4" }, + { 29, "spare3" }, + { 30, "spare2" }, + { 31, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_drx_InactivityTimer_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_drx_InactivityTimer_vals); + + +static int +dissect_nr_rrc_T_drx_InactivityTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 32, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_56(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 56U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_drx_RetransmissionTimerDL_vals[] = { + { 0, "sl0" }, + { 1, "sl1" }, + { 2, "sl2" }, + { 3, "sl4" }, + { 4, "sl6" }, + { 5, "sl8" }, + { 6, "sl16" }, + { 7, "sl24" }, + { 8, "sl33" }, + { 9, "sl40" }, + { 10, "sl64" }, + { 11, "sl80" }, + { 12, "sl96" }, + { 13, "sl112" }, + { 14, "sl128" }, + { 15, "spare15" }, + { 16, "spare14" }, + { 17, "spare13" }, + { 18, "spare12" }, + { 19, "spare11" }, + { 20, "spare10" }, + { 21, "spare9" }, + { 22, "spare8" }, + { 23, "spare7" }, + { 24, "spare6" }, + { 25, "spare5" }, + { 26, "spare4" }, + { 27, "spare3" }, + { 28, "spare2" }, + { 29, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_drx_RetransmissionTimerDL_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_drx_RetransmissionTimerDL_vals); + + +static int +dissect_nr_rrc_T_drx_RetransmissionTimerDL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 30, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_drx_RetransmissionTimerUL_vals[] = { + { 0, "sl0" }, + { 1, "sl1" }, + { 2, "sl2" }, + { 3, "sl4" }, + { 4, "sl6" }, + { 5, "sl8" }, + { 6, "sl16" }, + { 7, "sl24" }, + { 8, "sl33" }, + { 9, "sl40" }, + { 10, "sl64" }, + { 11, "sl80" }, + { 12, "sl96" }, + { 13, "sl112" }, + { 14, "sl1128" }, + { 15, "u160sl160" }, + { 16, "u320sl320" }, + { 17, "spare15" }, + { 18, "spare14" }, + { 19, "spare13" }, + { 20, "spare12" }, + { 21, "spare11" }, + { 22, "spare10" }, + { 23, "spare9" }, + { 24, "spare8" }, + { 25, "spare7" }, + { 26, "spare6" }, + { 27, "spare5" }, + { 28, "spare4" }, + { 29, "spare3" }, + { 30, "spare2" }, + { 31, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_drx_RetransmissionTimerUL_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_drx_RetransmissionTimerUL_vals); + + +static int +dissect_nr_rrc_T_drx_RetransmissionTimerUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 32, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 9U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_19(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 19U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 31U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_39(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 39U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 59U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_69(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 69U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_79(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 79U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 127U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_159(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 159U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_319(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 319U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_511(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 511U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_639(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 639U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 1023U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_1279(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 1279U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_2047(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 2047U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_2559(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 2559U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_5119(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 5119U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_10239(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 10239U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_drx_LongCycleStartOffset_vals[] = { + { 0, "ms10" }, + { 1, "ms20" }, + { 2, "ms32" }, + { 3, "ms40" }, + { 4, "ms60" }, + { 5, "ms64" }, + { 6, "ms70" }, + { 7, "ms80" }, + { 8, "ms128" }, + { 9, "ms160" }, + { 10, "ms256" }, + { 11, "ms320" }, + { 12, "ms512" }, + { 13, "ms640" }, + { 14, "ms1024" }, + { 15, "ms1280" }, + { 16, "ms2048" }, + { 17, "ms2560" }, + { 18, "ms5120" }, + { 19, "ms10240" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_drx_LongCycleStartOffset_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_drx_LongCycleStartOffset_vals); + +static const per_choice_t T_drx_LongCycleStartOffset_choice[] = { + { 0, &hf_nr_rrc_ms10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 1, &hf_nr_rrc_ms20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 2, &hf_nr_rrc_ms32 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_31 }, + { 3, &hf_nr_rrc_ms40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 4, &hf_nr_rrc_ms60 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_59 }, + { 5, &hf_nr_rrc_ms64 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_63 }, + { 6, &hf_nr_rrc_ms70 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_69 }, + { 7, &hf_nr_rrc_ms80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 8, &hf_nr_rrc_ms128 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_127 }, + { 9, &hf_nr_rrc_ms160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 10, &hf_nr_rrc_ms256 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_255 }, + { 11, &hf_nr_rrc_ms320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 12, &hf_nr_rrc_ms512 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_511 }, + { 13, &hf_nr_rrc_ms640 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_639 }, + { 14, &hf_nr_rrc_ms1024 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_1023 }, + { 15, &hf_nr_rrc_ms1280 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_1279 }, + { 16, &hf_nr_rrc_ms2048 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_2047 }, + { 17, &hf_nr_rrc_ms2560 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_2559 }, + { 18, &hf_nr_rrc_ms5120 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_5119 }, + { 19, &hf_nr_rrc_ms10240 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_10239 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_drx_LongCycleStartOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_drx_LongCycleStartOffset, T_drx_LongCycleStartOffset_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_drx_ShortCycle_vals[] = { + { 0, "ms2" }, + { 1, "ms3" }, + { 2, "ms4" }, + { 3, "ms5" }, + { 4, "ms6" }, + { 5, "ms7" }, + { 6, "ms8" }, + { 7, "ms10" }, + { 8, "ms14" }, + { 9, "ms16" }, + { 10, "ms20" }, + { 11, "ms30" }, + { 12, "ms32" }, + { 13, "ms35" }, + { 14, "ms40" }, + { 15, "ms64" }, + { 16, "ms80" }, + { 17, "ms128" }, + { 18, "ms160" }, + { 19, "ms256" }, + { 20, "ms320" }, + { 21, "ms512" }, + { 22, "ms640" }, + { 23, "spare9" }, + { 24, "spare8" }, + { 25, "spare7" }, + { 26, "spare6" }, + { 27, "spare5" }, + { 28, "spare4" }, + { 29, "spare3" }, + { 30, "spare2" }, + { 31, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_drx_ShortCycle_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_drx_ShortCycle_vals); + + +static int +dissect_nr_rrc_T_drx_ShortCycle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 32, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_shortDRX_sequence[] = { + { &hf_nr_rrc_drx_ShortCycle, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_drx_ShortCycle }, + { &hf_nr_rrc_drx_ShortCycleTimer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_16 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_shortDRX(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_shortDRX, T_shortDRX_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_drx_SlotOffset_vals[] = { + { 0, "ms0" }, + { 1, "ms1-32" }, + { 2, "ms2-32" }, + { 3, "ms3-32" }, + { 4, "ms4-32" }, + { 5, "ms5-32" }, + { 6, "ms6-32" }, + { 7, "ms7-32" }, + { 8, "ms8-32" }, + { 9, "ms9-32" }, + { 10, "ms10-32" }, + { 11, "ms11-32" }, + { 12, "ms12-32" }, + { 13, "ms13-32" }, + { 14, "ms14-32" }, + { 15, "ms15-32" }, + { 16, "ms16-32" }, + { 17, "ms17-32" }, + { 18, "ms18-32" }, + { 19, "ms19-32" }, + { 20, "ms-20-32" }, + { 21, "ms21-32" }, + { 22, "ms22-32" }, + { 23, "ms23-32" }, + { 24, "ms24-32" }, + { 25, "ms25-32" }, + { 26, "ms26-32" }, + { 27, "ms27-32" }, + { 28, "ms28-32" }, + { 29, "ms29-32" }, + { 30, "ms30-32" }, + { 31, "ms31-32" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_drx_SlotOffset_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_drx_SlotOffset_vals); + + +static int +dissect_nr_rrc_T_drx_SlotOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 32, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_setup_sequence[] = { + { &hf_nr_rrc_drx_onDurationTimer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_drx_onDurationTimer }, + { &hf_nr_rrc_drx_InactivityTimer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_drx_InactivityTimer }, + { &hf_nr_rrc_drx_HARQ_RTT_TimerDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_56 }, + { &hf_nr_rrc_drx_HARQ_RTT_TimerUL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_56 }, + { &hf_nr_rrc_drx_RetransmissionTimerDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_drx_RetransmissionTimerDL }, + { &hf_nr_rrc_drx_RetransmissionTimerUL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_drx_RetransmissionTimerUL }, + { &hf_nr_rrc_drx_LongCycleStartOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_drx_LongCycleStartOffset }, + { &hf_nr_rrc_shortDRX , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_shortDRX }, + { &hf_nr_rrc_drx_SlotOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_drx_SlotOffset }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup, T_setup_sequence); + + return offset; +} + + +static const value_string nr_rrc_DRX_Config_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t DRX_Config_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_DRX_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DRX_Config, DRX_Config_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_SchedulingRequestId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_sr_prohibitTimer_vals[] = { + { 0, "ms1" }, + { 1, "ms2" }, + { 2, "ms4" }, + { 3, "ms8" }, + { 4, "ms16" }, + { 5, "ms32" }, + { 6, "ms64" }, + { 7, "ms128" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sr_prohibitTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_sr_TransMax_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 2, "n16" }, + { 3, "n32" }, + { 4, "n64" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sr_TransMax(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t SchedulingRequestToAddMod_sequence[] = { + { &hf_nr_rrc_schedulingRequestID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SchedulingRequestId }, + { &hf_nr_rrc_sr_prohibitTimer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sr_prohibitTimer }, + { &hf_nr_rrc_sr_TransMax , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sr_TransMax }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SchedulingRequestToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SchedulingRequestToAddMod, SchedulingRequestToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod_sequence_of[1] = { + { &hf_nr_rrc_schedulingRequestToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SchedulingRequestToAddMod }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod, SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod_sequence_of, + 1, maxNrofSR_ConfigPerCellGroup, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId_sequence_of[1] = { + { &hf_nr_rrc_schedulingRequestToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SchedulingRequestId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId, SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId_sequence_of, + 1, maxNrofSR_ConfigPerCellGroup, FALSE); + + return offset; +} + + +static const per_sequence_t SchedulingRequestConfig_sequence[] = { + { &hf_nr_rrc_schedulingRequestToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod }, + { &hf_nr_rrc_schedulingRequestToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SchedulingRequestConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SchedulingRequestConfig, SchedulingRequestConfig_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_periodicBSR_Timer_vals[] = { + { 0, "sf1" }, + { 1, "sf5" }, + { 2, "sf10" }, + { 3, "sf16" }, + { 4, "sf20" }, + { 5, "sf32" }, + { 6, "sf40" }, + { 7, "sf64" }, + { 8, "sf80" }, + { 9, "sf128" }, + { 10, "sf160" }, + { 11, "sf320" }, + { 12, "sf640" }, + { 13, "sf1280" }, + { 14, "sf2560" }, + { 15, "infinity" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_periodicBSR_Timer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_retxBSR_Timer_vals[] = { + { 0, "sf10" }, + { 1, "sf20" }, + { 2, "sf40" }, + { 3, "sf80" }, + { 4, "sf160" }, + { 5, "sf320" }, + { 6, "sf640" }, + { 7, "sf1280" }, + { 8, "sf2560" }, + { 9, "sf5120" }, + { 10, "sf10240" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_retxBSR_Timer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 11, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_logicaChannelSR_DelayTimer_vals[] = { + { 0, "sf20" }, + { 1, "sf40" }, + { 2, "sf64" }, + { 3, "sf128" }, + { 4, "sf512" }, + { 5, "sf1024" }, + { 6, "sf2560" }, + { 7, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_logicaChannelSR_DelayTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t BSR_Config_sequence[] = { + { &hf_nr_rrc_periodicBSR_Timer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicBSR_Timer }, + { &hf_nr_rrc_retxBSR_Timer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_retxBSR_Timer }, + { &hf_nr_rrc_logicaChannelSR_DelayTimer, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_logicaChannelSR_DelayTimer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BSR_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BSR_Config, BSR_Config_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_BSR_Configuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nr_rrc_BSR_Config(tvb, offset, actx, tree, hf_index); + + return offset; +} + + + +static int +dissect_nr_rrc_TAG_Id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofTAGs_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t TAG_ToReleaseList_sequence_of[1] = { + { &hf_nr_rrc_TAG_ToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TAG_Id }, +}; + +static int +dissect_nr_rrc_TAG_ToReleaseList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_TAG_ToReleaseList, TAG_ToReleaseList_sequence_of, + 1, maxNrofTAGs, FALSE); + + return offset; +} + + +static const value_string nr_rrc_TimeAlignmentTimer_vals[] = { + { 0, "ms500" }, + { 1, "ms750" }, + { 2, "ms1280" }, + { 3, "ms1920" }, + { 4, "ms2560" }, + { 5, "ms5120" }, + { 6, "ms10240" }, + { 7, "infinity" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_TimeAlignmentTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t TAG_ToAddMod_sequence[] = { + { &hf_nr_rrc_tag_Id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TAG_Id }, + { &hf_nr_rrc_timeAlignmentTimer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeAlignmentTimer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_TAG_ToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_TAG_ToAddMod, TAG_ToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t TAG_ToAddModList_sequence_of[1] = { + { &hf_nr_rrc_TAG_ToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TAG_ToAddMod }, +}; + +static int +dissect_nr_rrc_TAG_ToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_TAG_ToAddModList, TAG_ToAddModList_sequence_of, + 1, maxNrofTAGs, FALSE); + + return offset; +} + + +static const per_sequence_t TAG_Config_sequence[] = { + { &hf_nr_rrc_tag_ToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_TAG_ToReleaseList }, + { &hf_nr_rrc_tag_ToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_TAG_ToAddModList }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_TAG_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_TAG_Config, TAG_Config_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_TAG_Configuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nr_rrc_TAG_Config(tvb, offset, actx, tree, hf_index); + + return offset; +} + + +static const value_string nr_rrc_T_phr_PeriodicTimer_vals[] = { + { 0, "sf10" }, + { 1, "sf20" }, + { 2, "sf50" }, + { 3, "sf100" }, + { 4, "sf200" }, + { 5, "sf500" }, + { 6, "sf1000" }, + { 7, "infinity" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_phr_PeriodicTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_phr_ProhibitTimer_vals[] = { + { 0, "sf0" }, + { 1, "sf10" }, + { 2, "sf20" }, + { 3, "sf50" }, + { 4, "sf100" }, + { 5, "sf200" }, + { 6, "sf500" }, + { 7, "sf1000" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_phr_ProhibitTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_phr_Tx_PowerFactorChange_vals[] = { + { 0, "dB1" }, + { 1, "dB3" }, + { 2, "dB6" }, + { 3, "infinity" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_phr_Tx_PowerFactorChange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_phr_ModeOtherCG_vals[] = { + { 0, "real" }, + { 1, "virtual" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_phr_ModeOtherCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_setup_01_sequence[] = { + { &hf_nr_rrc_phr_PeriodicTimer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_phr_PeriodicTimer }, + { &hf_nr_rrc_phr_ProhibitTimer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_phr_ProhibitTimer }, + { &hf_nr_rrc_phr_Tx_PowerFactorChange, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_phr_Tx_PowerFactorChange }, + { &hf_nr_rrc_multiplePHR , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_phr_Type2PCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_phr_Type2OtherCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_phr_ModeOtherCG, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_phr_ModeOtherCG }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_01, T_setup_01_sequence); + + return offset; +} + + +static const value_string nr_rrc_PHR_Config_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t PHR_Config_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_01 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_PHR_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PHR_Config, PHR_Config_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_sCellDeactivationTimer_vals[] = { + { 0, "ms20" }, + { 1, "ms40" }, + { 2, "ms80" }, + { 3, "ms160" }, + { 4, "ms200" }, + { 5, "ms240" }, + { 6, "ms320" }, + { 7, "ms400" }, + { 8, "ms480" }, + { 9, "ms520" }, + { 10, "ms640" }, + { 11, "ms720" }, + { 12, "ms840" }, + { 13, "ms1280" }, + { 14, "spare2" }, + { 15, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sCellDeactivationTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t MAC_CellGroupConfig_sequence[] = { + { &hf_nr_rrc_drx_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_DRX_Config }, + { &hf_nr_rrc_schedulingRequestConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SchedulingRequestConfig }, + { &hf_nr_rrc_bsr_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BSR_Configuration }, + { &hf_nr_rrc_tag_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_TAG_Configuration }, + { &hf_nr_rrc_phr_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PHR_Config }, + { &hf_nr_rrc_sCellDeactivationTimer, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sCellDeactivationTimer }, + { &hf_nr_rrc_skipUplinkTxDynamic, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MAC_CellGroupConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MAC_CellGroupConfig, MAC_CellGroupConfig_sequence); + + return offset; +} + + +static const per_sequence_t RLF_TimersAndConstants_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RLF_TimersAndConstants(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RLF_TimersAndConstants, RLF_TimersAndConstants_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_harq_ACK_Spatial_Bundling_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_harq_ACK_Spatial_Bundling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PhysicalCellGroupConfig_sequence[] = { + { &hf_nr_rrc_harq_ACK_Spatial_Bundling, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_harq_ACK_Spatial_Bundling }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PhysicalCellGroupConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PhysicalCellGroupConfig, PhysicalCellGroupConfig_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_PhysCellId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 1007U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_ARFCN_ValueNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const value_string nr_rrc_CarrierBandwidthNR_vals[] = { + { 0, "ffs" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_CarrierBandwidthNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_frequencyInfoDL_sequence[] = { + { &hf_nr_rrc_carrierFreqDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_carrierBandwidthDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CarrierBandwidthNR }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_frequencyInfoDL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_frequencyInfoDL, T_frequencyInfoDL_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_AdditionalSpectrumEmission(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 32U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_P_Max(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -30, 33U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_frequencyShift7p5khz_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_frequencyShift7p5khz(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BandwidthPartId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofBandwidthParts_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_maxNrofPhysicalResourceBlocksTimes4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofPhysicalResourceBlocksTimes4, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxNrofPhysicalResourceBlocks(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxNrofPhysicalResourceBlocks, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_subcarrierSpacing_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 4, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_subcarrierSpacing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 5, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_cyclicPrefix_vals[] = { + { 0, "extended" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_cyclicPrefix(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_3299(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 3299U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t BandwidthPart_sequence[] = { + { &hf_nr_rrc_bandwidthPartId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandwidthPartId }, + { &hf_nr_rrc_location , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxNrofPhysicalResourceBlocksTimes4 }, + { &hf_nr_rrc_bandwidth , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNrofPhysicalResourceBlocks }, + { &hf_nr_rrc_subcarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_subcarrierSpacing }, + { &hf_nr_rrc_cyclicPrefix , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_cyclicPrefix }, + { &hf_nr_rrc_directCurrentLocation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_3299 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BandwidthPart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BandwidthPart, BandwidthPart_sequence); + + return offset; +} + + +static const per_sequence_t FrequencyInfoUL_sequence[] = { + { &hf_nr_rrc_carrierFreqUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_carrierBandwidthUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CarrierBandwidthNR }, + { &hf_nr_rrc_additionalSpectrumEmission, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_AdditionalSpectrumEmission }, + { &hf_nr_rrc_p_Max , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { &hf_nr_rrc_frequencyShift7p5khz, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_frequencyShift7p5khz }, + { &hf_nr_rrc_initialUplinkBandwidthPart, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandwidthPart }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_FrequencyInfoUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_FrequencyInfoUL, FrequencyInfoUL_sequence); + + return offset; +} + + +static const per_sequence_t T_supplementaryUplink_sequence[] = { + { &hf_nr_rrc_frequencyInfoUL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FrequencyInfoUL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_supplementaryUplink(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_supplementaryUplink, T_supplementaryUplink_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_11(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 11U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 4, 4, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 64, 64, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_ssb_PositionsInBurst_vals[] = { + { 0, "shortBitmap" }, + { 1, "mediumBitmap" }, + { 2, "longBitmap" }, + { 0, NULL } +}; + +static const per_choice_t T_ssb_PositionsInBurst_choice[] = { + { 0, &hf_nr_rrc_shortBitmap , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_4 }, + { 1, &hf_nr_rrc_mediumBitmap , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { 2, &hf_nr_rrc_longBitmap , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_64 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ssb_PositionsInBurst(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_ssb_PositionsInBurst, T_ssb_PositionsInBurst_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_ssb_periodicityServingCell_vals[] = { + { 0, "ms5" }, + { 1, "ms10" }, + { 2, "ms20" }, + { 3, "ms40" }, + { 4, "ms80" }, + { 5, "ms160" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ssb_periodicityServingCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 6, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_dmrs_TypeA_Position_01_vals[] = { + { 0, "pos2" }, + { 1, "pos3" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dmrs_TypeA_Position_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_SubcarrierSpacingSSB_vals[] = { + { 0, "kHz15" }, + { 1, "kHz30" }, + { 2, "kHz120" }, + { 3, "kHz240" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_SubcarrierSpacingSSB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_dl_UL_TransmissionPeriodicity_vals[] = { + { 0, "ms0dot5" }, + { 1, "ms1" }, + { 2, "ms2" }, + { 3, "ms5" }, + { 4, "ms10" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dl_UL_TransmissionPeriodicity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 5, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_160(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 160U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_maxSymbolIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxSymbolIndex, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_tdd_UL_DL_configurationCommon_sequence[] = { + { &hf_nr_rrc_dl_UL_TransmissionPeriodicity, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dl_UL_TransmissionPeriodicity }, + { &hf_nr_rrc_nrofDownlinkSlots, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_160 }, + { &hf_nr_rrc_nrofDownlinkSymbols, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxSymbolIndex }, + { &hf_nr_rrc_nrofUplinkSlots, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_160 }, + { &hf_nr_rrc_nrofUplinkSymbols, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxSymbolIndex }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_tdd_UL_DL_configurationCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_tdd_UL_DL_configurationCommon, T_tdd_UL_DL_configurationCommon_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_M60_50(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -60, 50U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_ra_Msg3SizeGroupA_vals[] = { + { 0, "b56" }, + { 1, "b144" }, + { 2, "b208" }, + { 3, "b256" }, + { 4, "b282" }, + { 5, "b480" }, + { 6, "b640" }, + { 7, "b800" }, + { 8, "b1000" }, + { 9, "spare7" }, + { 10, "spare6" }, + { 11, "spare5" }, + { 12, "spare4" }, + { 13, "spare3" }, + { 14, "spare2" }, + { 15, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ra_Msg3SizeGroupA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_messagePowerOffsetGroupB_vals[] = { + { 0, "minusinfinity" }, + { 1, "dB0" }, + { 2, "dB5" }, + { 3, "dB8" }, + { 4, "dB10" }, + { 5, "dB12" }, + { 6, "dB15" }, + { 7, "dB18" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_messagePowerOffsetGroupB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_groupBconfigured_sequence[] = { + { &hf_nr_rrc_ra_Msg3SizeGroupA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ra_Msg3SizeGroupA }, + { &hf_nr_rrc_messagePowerOffsetGroupB, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_messagePowerOffsetGroupB }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_groupBconfigured(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_groupBconfigured, T_groupBconfigured_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_SSB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 7U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_PreambleStartIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxRA_PreambleIndex, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_NumberofRA_Preambles(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxNrOfRA_PreamblesPerSSB, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_NumberOfRA_Preambles(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nr_rrc_NumberofRA_Preambles(tvb, offset, actx, tree, hf_index); + + return offset; +} + + +static const per_sequence_t RA_Resources_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RA_Resources(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RA_Resources, RA_Resources_sequence); + + return offset; +} + + +static const per_sequence_t CBRA_SSB_Resource_sequence[] = { + { &hf_nr_rrc_ssb , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_ID }, + { &hf_nr_rrc_startIndexRA_PreambleGroupA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PreambleStartIndex }, + { &hf_nr_rrc_numberofRA_PreamblesGroupA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NumberOfRA_Preambles }, + { &hf_nr_rrc_numberOfRA_Preambles, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NumberOfRA_Preambles }, + { &hf_nr_rrc_ra_Resources , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RA_Resources }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CBRA_SSB_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CBRA_SSB_Resource, CBRA_SSB_Resource_sequence); + + return offset; +} + + +static const per_sequence_t CBRA_SSB_ResourceList_sequence_of[1] = { + { &hf_nr_rrc_CBRA_SSB_ResourceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CBRA_SSB_Resource }, +}; + +static int +dissect_nr_rrc_CBRA_SSB_ResourceList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CBRA_SSB_ResourceList, CBRA_SSB_ResourceList_sequence_of, + 1, maxRAssbResources, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_ra_ContentionResolutionTimer_vals[] = { + { 0, "sf8" }, + { 1, "sf16" }, + { 2, "sf24" }, + { 3, "sf32" }, + { 4, "sf40" }, + { 5, "sf48" }, + { 6, "sf56" }, + { 7, "sf64" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ra_ContentionResolutionTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_837(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 837U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_137(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 137U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_prach_RootSequenceIndex_vals[] = { + { 0, "l839" }, + { 1, "l139" }, + { 0, NULL } +}; + +static const per_choice_t T_prach_RootSequenceIndex_choice[] = { + { 0, &hf_nr_rrc_l839 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_837 }, + { 1, &hf_nr_rrc_l139 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_137 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_prach_RootSequenceIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_prach_RootSequenceIndex, T_prach_RootSequenceIndex_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_restrictedSetConfig_vals[] = { + { 0, "unrestricted" }, + { 1, "restrictedToTypeA" }, + { 2, "restrictedToTypeB" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_restrictedSetConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_preambleReceivedTargetPower_vals[] = { + { 0, "dBm-120" }, + { 1, "dBm-118" }, + { 2, "dBm-116" }, + { 3, "dBm-114" }, + { 4, "dBm-112" }, + { 5, "dBm-110" }, + { 6, "dBm-108" }, + { 7, "dBm-106" }, + { 8, "dBm-104" }, + { 9, "dBm-102" }, + { 10, "dBm-100" }, + { 11, "dBm-98" }, + { 12, "dBm-96" }, + { 13, "dBm-94" }, + { 14, "dBm-92" }, + { 15, "dBm-90" }, + { 16, "dBm-88" }, + { 17, "dBm-86" }, + { 18, "dBm-84" }, + { 19, "dBm-82" }, + { 20, "dBm-80" }, + { 21, "dBm-78" }, + { 22, "dBm-76" }, + { 23, "dBm-74" }, + { 24, "dBm-72" }, + { 25, "dBm-70" }, + { 26, "dBm-68" }, + { 27, "dBm-66" }, + { 28, "dBm-64" }, + { 29, "dBm-62" }, + { 30, "dBm-60" }, + { 31, "dBm-58" }, + { 32, "dBm-56" }, + { 33, "dBm-54" }, + { 34, "dBm-52" }, + { 35, "dBm-50" }, + { 36, "dBm-48" }, + { 37, "dBm-46" }, + { 38, "dBm-44" }, + { 39, "dBm-42" }, + { 40, "dBm-42" }, + { 41, "dBm-40" }, + { 42, "dBm-38" }, + { 43, "dBm-36" }, + { 44, "dBm-34" }, + { 45, "dBm-32" }, + { 46, "dBm-30" }, + { 47, "dBm-28" }, + { 48, "dBm-26" }, + { 49, "dBm-24" }, + { 50, "dBm-22" }, + { 51, "dBm-20" }, + { 52, "dBm-18" }, + { 53, "dBm-16" }, + { 54, "dBm-14" }, + { 55, "dBm-12" }, + { 56, "dBm-10" }, + { 57, "dBm-8" }, + { 58, "dBm-6" }, + { 59, "dBm-4" }, + { 60, "dBm-2" }, + { 61, "dBm-0" }, + { 62, "dBm2" }, + { 63, "dBm4" }, + { 64, "dBm6" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_preambleReceivedTargetPower_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_preambleReceivedTargetPower_vals); + + +static int +dissect_nr_rrc_T_preambleReceivedTargetPower(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 65, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_powerRampingStep_vals[] = { + { 0, "dB0" }, + { 1, "dB2" }, + { 2, "dB4" }, + { 3, "dB6" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_powerRampingStep(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_preambleTransMax_vals[] = { + { 0, "n3" }, + { 1, "n4" }, + { 2, "n5" }, + { 3, "n6" }, + { 4, "n7" }, + { 5, "n8" }, + { 6, "n10" }, + { 7, "n20" }, + { 8, "n50" }, + { 9, "n100" }, + { 10, "n200" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_preambleTransMax(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 11, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_msg3_transformPrecoding_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_msg3_transformPrecoding(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t RACH_ConfigCommon_sequence[] = { + { &hf_nr_rrc_groupBconfigured, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_groupBconfigured }, + { &hf_nr_rrc_cbra_SSB_ResourceList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CBRA_SSB_ResourceList }, + { &hf_nr_rrc_ra_ContentionResolutionTimer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ra_ContentionResolutionTimer }, + { &hf_nr_rrc_ssb_Threshold, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_sul_RSRP_Threshold, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_prach_ConfigurationIndex, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_255 }, + { &hf_nr_rrc_prach_RootSequenceIndex, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_prach_RootSequenceIndex }, + { &hf_nr_rrc_zeroCorrelationZoneConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_15 }, + { &hf_nr_rrc_restrictedSetConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_restrictedSetConfig }, + { &hf_nr_rrc_preambleReceivedTargetPower, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_preambleReceivedTargetPower }, + { &hf_nr_rrc_powerRampingStep, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_powerRampingStep }, + { &hf_nr_rrc_preambleTransMax, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_preambleTransMax }, + { &hf_nr_rrc_ra_ResponseWindow, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_msg2_SubcarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_rach_ControlResourceSet, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_msg3_SubcarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_msg3_transformPrecoding, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_msg3_transformPrecoding }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RACH_ConfigCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RACH_ConfigCommon, RACH_ConfigCommon_sequence); + + return offset; +} + + +static const per_sequence_t ServingCellConfigCommon_sequence[] = { + { &hf_nr_rrc_physCellId , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_frequencyInfoDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_frequencyInfoDL }, + { &hf_nr_rrc_frequencyInfoUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FrequencyInfoUL }, + { &hf_nr_rrc_supplementaryUplink, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_supplementaryUplink }, + { &hf_nr_rrc_subcarrierSpacingCommon, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_ssb_subcarrier_offset, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_11 }, + { &hf_nr_rrc_ssb_PositionsInBurst, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_PositionsInBurst }, + { &hf_nr_rrc_ssb_periodicityServingCell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_periodicityServingCell }, + { &hf_nr_rrc_dmrs_TypeA_Position_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dmrs_TypeA_Position_01 }, + { &hf_nr_rrc_subcarrierSpacingSSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SubcarrierSpacingSSB }, + { &hf_nr_rrc_tdd_UL_DL_configurationCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_tdd_UL_DL_configurationCommon }, + { &hf_nr_rrc_ss_PBCH_BlockPower, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M60_50 }, + { &hf_nr_rrc_rach_ConfigCommon, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RACH_ConfigCommon }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ServingCellConfigCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ServingCellConfigCommon, ServingCellConfigCommon_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_C_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_t304_vals[] = { + { 0, "ms50" }, + { 1, "ms100" }, + { 2, "ms150" }, + { 3, "ms200" }, + { 4, "ms500" }, + { 5, "ms1000" }, + { 6, "ms2000" }, + { 7, "ms10000-v1310" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_t304(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 0U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t CFRA_SSB_Resource_sequence[] = { + { &hf_nr_rrc_ssb , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_ID }, + { &hf_nr_rrc_ra_PreambleIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_0 }, + { &hf_nr_rrc_ra_Resources , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RA_Resources }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CFRA_SSB_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CFRA_SSB_Resource, CFRA_SSB_Resource_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxRAssbResources_OF_CFRA_SSB_Resource_sequence_of[1] = { + { &hf_nr_rrc_cfra_ssb_ResourceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CFRA_SSB_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxRAssbResources_OF_CFRA_SSB_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxRAssbResources_OF_CFRA_SSB_Resource, SEQUENCE_SIZE_1_maxRAssbResources_OF_CFRA_SSB_Resource_sequence_of, + 1, maxRAssbResources, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_CSIRS_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const per_sequence_t CFRA_CSIRS_Resource_sequence[] = { + { &hf_nr_rrc_csirs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSIRS_ID }, + { &hf_nr_rrc_ra_PreambleIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_0 }, + { &hf_nr_rrc_ra_Resources , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RA_Resources }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CFRA_CSIRS_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CFRA_CSIRS_Resource, CFRA_CSIRS_Resource_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxRAcsirsResources_OF_CFRA_CSIRS_Resource_sequence_of[1] = { + { &hf_nr_rrc_cfra_csirs_ResourceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CFRA_CSIRS_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxRAcsirsResources_OF_CFRA_CSIRS_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxRAcsirsResources_OF_CFRA_CSIRS_Resource, SEQUENCE_SIZE_1_maxRAcsirsResources_OF_CFRA_CSIRS_Resource_sequence_of, + 1, maxRAcsirsResources, FALSE); + + return offset; +} + + +static const value_string nr_rrc_CFRA_Resources_vals[] = { + { 0, "cfra-ssb-ResourceList" }, + { 1, "cfra-csirs-ResourceList" }, + { 0, NULL } +}; + +static const per_choice_t CFRA_Resources_choice[] = { + { 0, &hf_nr_rrc_cfra_ssb_ResourceList, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_1_maxRAssbResources_OF_CFRA_SSB_Resource }, + { 1, &hf_nr_rrc_cfra_csirs_ResourceList, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_1_maxRAcsirsResources_OF_CFRA_CSIRS_Resource }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_CFRA_Resources(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CFRA_Resources, CFRA_Resources_choice, + NULL); + + return offset; +} + + +static const per_sequence_t RACH_ConfigDedicated_sequence[] = { + { &hf_nr_rrc_cfra_Resources, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CFRA_Resources }, + { &hf_nr_rrc_rar_SubcarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RACH_ConfigDedicated(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RACH_ConfigDedicated, RACH_ConfigDedicated_sequence); + + return offset; +} + + +static const per_sequence_t T_reconfigurationWithSync_sequence[] = { + { &hf_nr_rrc_spCellConfigCommon, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServingCellConfigCommon }, + { &hf_nr_rrc_newUE_Identity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_C_RNTI }, + { &hf_nr_rrc_t304 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t304 }, + { &hf_nr_rrc_rach_ConfigDedicated, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RACH_ConfigDedicated }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_reconfigurationWithSync(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_reconfigurationWithSync, T_reconfigurationWithSync_sequence); + + return offset; +} + + +static const per_sequence_t T_slotSpecificConfigurations_item_sequence[] = { + { &hf_nr_rrc_slotIndex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_160 }, + { &hf_nr_rrc_nrofDownlinkSymbols, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxSymbolIndex }, + { &hf_nr_rrc_nrofUplinkSymbols, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxSymbolIndex }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_slotSpecificConfigurations_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_slotSpecificConfigurations_item, T_slotSpecificConfigurations_item_sequence); + + return offset; +} + + +static const per_sequence_t T_slotSpecificConfigurations_sequence_of[1] = { + { &hf_nr_rrc_slotSpecificConfigurations_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_slotSpecificConfigurations_item }, +}; + +static int +dissect_nr_rrc_T_slotSpecificConfigurations(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_slotSpecificConfigurations, T_slotSpecificConfigurations_sequence_of, + 0, 160, FALSE); + + return offset; +} + + +static const per_sequence_t T_tdd_UL_DL_configurationDedicated_sequence[] = { + { &hf_nr_rrc_slotSpecificConfigurations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_slotSpecificConfigurations }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_tdd_UL_DL_configurationDedicated(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_tdd_UL_DL_configurationDedicated, T_tdd_UL_DL_configurationDedicated_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_BandwidthParts(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nr_rrc_BandwidthPart(tvb, offset, actx, tree, hf_index); + + return offset; +} + + + +static int +dissect_nr_rrc_ControlResourceSetId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofControlResourceSets_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_maxCoReSetStartSymbol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxCoReSetStartSymbol, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxCoReSetDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxCoReSetDuration, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_reg_BundleSize_vals[] = { + { 0, "n2" }, + { 1, "n3" }, + { 2, "n6" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reg_BundleSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_cce_reg_MappingType_vals[] = { + { 0, "interleaved" }, + { 1, "nonInterleaved" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_cce_reg_MappingType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_interleaverRows_vals[] = { + { 0, "n2" }, + { 1, "n3" }, + { 2, "n6" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_interleaverRows(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t ControlResourceSet_sequence[] = { + { &hf_nr_rrc_controlResourceSetId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ControlResourceSetId }, + { &hf_nr_rrc_frequencyDomainResources, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_startSymbol , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxCoReSetStartSymbol }, + { &hf_nr_rrc_duration_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxCoReSetDuration }, + { &hf_nr_rrc_reg_BundleSize, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reg_BundleSize }, + { &hf_nr_rrc_cce_reg_MappingType, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cce_reg_MappingType }, + { &hf_nr_rrc_precoderGranularity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_interleaverRows, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_interleaverRows }, + { &hf_nr_rrc_shiftIndex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_tci_StateRefId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_pdcch_DMRS_ScramblingID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ControlResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ControlResourceSet, ControlResourceSet_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet_sequence_of[1] = { + { &hf_nr_rrc_controlResourceSetToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ControlResourceSet }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet, SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet_sequence_of, + 1, maxNrofControlResourceSets, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_ControlResourceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nr_rrc_ControlResourceSetId(tvb, offset, actx, tree, hf_index); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId_sequence_of[1] = { + { &hf_nr_rrc_controlResourceSetToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ControlResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId, SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId_sequence_of, + 1, maxNrofControlResourceSets, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_SearchSpaceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxNrofSearchSpaces, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 1U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_monitoringSlotPeriodicityAndOffset_vals[] = { + { 0, "sl1" }, + { 1, "sl2" }, + { 2, "sl5" }, + { 3, "sl10" }, + { 4, "sl20" }, + { 0, NULL } +}; + +static const per_choice_t T_monitoringSlotPeriodicityAndOffset_choice[] = { + { 0, &hf_nr_rrc_sl1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_sl2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_1 }, + { 2, &hf_nr_rrc_sl5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 3, &hf_nr_rrc_sl10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 4, &hf_nr_rrc_sl20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_monitoringSlotPeriodicityAndOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_monitoringSlotPeriodicityAndOffset, T_monitoringSlotPeriodicityAndOffset_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 14, 14, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_aggregationLevel1_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 4, "n4" }, + { 5, "n5" }, + { 6, "n6" }, + { 7, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_aggregationLevel1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_aggregationLevel2_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 4, "n4" }, + { 5, "n5" }, + { 6, "n6" }, + { 7, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_aggregationLevel2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_aggregationLevel4_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 4, "n4" }, + { 5, "n5" }, + { 6, "n6" }, + { 7, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_aggregationLevel4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_aggregationLevel8_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 4, "n4" }, + { 5, "n5" }, + { 6, "n6" }, + { 7, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_aggregationLevel8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_nrofCandidates_sequence[] = { + { &hf_nr_rrc_aggregationLevel1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_aggregationLevel1 }, + { &hf_nr_rrc_aggregationLevel2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_aggregationLevel2 }, + { &hf_nr_rrc_aggregationLevel4, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_aggregationLevel4 }, + { &hf_nr_rrc_aggregationLevel8, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_aggregationLevel8 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nrofCandidates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_nrofCandidates, T_nrofCandidates_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_monitoringPeriodicity_vals[] = { + { 0, "sl1" }, + { 1, "sl2" }, + { 2, "sl5" }, + { 3, "sl10" }, + { 4, "sl20" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_monitoringPeriodicity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_SlotFormatCombinationId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofSlotFormatCombinations_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SlotFormatCombination_sequence[] = { + { &hf_nr_rrc_slotFormatCombinationId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SlotFormatCombinationId }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SlotFormatCombination(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SlotFormatCombination, SlotFormatCombination_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSlotFormatCombinations_OF_SlotFormatCombination_sequence_of[1] = { + { &hf_nr_rrc_slotFormatCombinations_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SlotFormatCombination }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinations_OF_SlotFormatCombination(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinations_OF_SlotFormatCombination, SEQUENCE_SIZE_1_maxNrofSlotFormatCombinations_OF_SlotFormatCombination_sequence_of, + 1, maxNrofSlotFormatCombinations, FALSE); + + return offset; +} + + +static const per_sequence_t CellToSFI_sequence[] = { + { &hf_nr_rrc_slotFormatCombinations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinations_OF_SlotFormatCombination }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CellToSFI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CellToSFI, CellToSFI_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CellToSFI_sequence_of[1] = { + { &hf_nr_rrc_sfi_CellToSFI_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellToSFI }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CellToSFI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CellToSFI, SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CellToSFI_sequence_of, + 1, maxNrofAggregatedCellsPerCellGroup, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_nrofPDCCH_Candidates_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofPDCCH_Candidates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_aggregationLevel_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 3, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_aggregationLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 1U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SFI_PDCCH_sequence[] = { + { &hf_nr_rrc_monitoringPeriodicity_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_monitoringPeriodicity }, + { &hf_nr_rrc_sfi_CellToSFI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CellToSFI }, + { &hf_nr_rrc_nrofPDCCH_Candidates, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofPDCCH_Candidates }, + { &hf_nr_rrc_aggregationLevel, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_aggregationLevel }, + { &hf_nr_rrc_sfi_RNTI , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { &hf_nr_rrc_dci_PayloadLength, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_searchSpace , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_sfi_PositionInDCI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SFI_PDCCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SFI_PDCCH, SFI_PDCCH_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_int_TF_vals[] = { + { 0, "set0" }, + { 1, "set1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_int_TF(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_common_sequence[] = { + { &hf_nr_rrc_sfi_PDCCH , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SFI_PDCCH }, + { &hf_nr_rrc_preemp_DL , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_int_RNTI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { &hf_nr_rrc_int_TF , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_int_TF }, + { &hf_nr_rrc_monitoringPeriodicity, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_common(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_common, T_common_sequence); + + return offset; +} + + +static const per_sequence_t T_ue_Specific_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ue_Specific(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_ue_Specific, T_ue_Specific_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_searchSpaceType_vals[] = { + { 0, "common" }, + { 1, "ue-Specific" }, + { 0, NULL } +}; + +static const per_choice_t T_searchSpaceType_choice[] = { + { 0, &hf_nr_rrc_common , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_common }, + { 1, &hf_nr_rrc_ue_Specific , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_ue_Specific }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_searchSpaceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_searchSpaceType, T_searchSpaceType_choice, + NULL); + + return offset; +} + + +static const per_sequence_t SearchSpace_sequence[] = { + { &hf_nr_rrc_searchSpaceId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SearchSpaceId }, + { &hf_nr_rrc_controlResourceSetId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ControlResourceSetId }, + { &hf_nr_rrc_monitoringSlotPeriodicityAndOffset, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_monitoringSlotPeriodicityAndOffset }, + { &hf_nr_rrc_monitoringSymbolsWithinSlot, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_14 }, + { &hf_nr_rrc_nrofCandidates, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofCandidates }, + { &hf_nr_rrc_searchSpaceType, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_searchSpaceType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SearchSpace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SearchSpace, SearchSpace_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpace_sequence_of[1] = { + { &hf_nr_rrc_searchSpacesToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SearchSpace }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpace, SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpace_sequence_of, + 1, maxNrofSearchSpaces, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId_sequence_of[1] = { + { &hf_nr_rrc_searchSpacesToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SearchSpaceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId, SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId_sequence_of, + 1, maxNrofSearchSpaces, FALSE); + + return offset; +} + + +static const per_sequence_t T_timing_sequence[] = { + { &hf_nr_rrc_dl_assignment_to_DL_data, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_ul_assignment_to_UL_data, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_dl_data_to_UL_ACK, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_timing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_timing, T_timing_sequence); + + return offset; +} + + +static const per_sequence_t PDCCH_Config_sequence[] = { + { &hf_nr_rrc_controlResourceSetToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet }, + { &hf_nr_rrc_controlResourceSetToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId }, + { &hf_nr_rrc_searchSpacesToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpace }, + { &hf_nr_rrc_searchSpacesToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId }, + { &hf_nr_rrc_timing , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_timing }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PDCCH_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PDCCH_Config, PDCCH_Config_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 2, "n6" }, + { 3, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxCodeBlockGroupsPerTransportBlock(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_dmrs_Type_vals[] = { + { 0, "type1" }, + { 1, "type2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dmrs_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_dmrs_AdditionalPosition_vals[] = { + { 0, "pos0" }, + { 1, "pos1" }, + { 2, "pos2" }, + { 3, "pos3" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dmrs_AdditionalPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_nrofPorts_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofPorts_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t Downlink_PTRS_Config_sequence[] = { + { &hf_nr_rrc_frequencyDensity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_timeDensity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_nrofPorts_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofPorts_01 }, + { &hf_nr_rrc_epre_Ratio , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_resourceElementOffset, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_Downlink_PTRS_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_Downlink_PTRS_Config, Downlink_PTRS_Config_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_phaseTracking_RS_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_phaseTracking_RS_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_04 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_Downlink_PTRS_Config }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_phaseTracking_RS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_phaseTracking_RS, T_phaseTracking_RS_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_tci_PresentInDCI_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_tci_PresentInDCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_xOverhead_vals[] = { + { 0, "n0" }, + { 1, "n6" }, + { 2, "n12" }, + { 3, "n18" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_xOverhead(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_275(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 275, 275, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_periodicityAndOffset_01_vals[] = { + { 0, "n5" }, + { 1, "n10" }, + { 2, "n20" }, + { 3, "n40" }, + { 0, NULL } +}; + +static const per_choice_t T_periodicityAndOffset_01_choice[] = { + { 0, &hf_nr_rrc_n5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 1, &hf_nr_rrc_n10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 2, &hf_nr_rrc_n20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 3, &hf_nr_rrc_n40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_periodicityAndOffset_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_periodicityAndOffset_01, T_periodicityAndOffset_01_choice, + NULL); + + return offset; +} + + +static const per_sequence_t RateMatchPattern_sequence[] = { + { &hf_nr_rrc_resourceBlocks, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_275 }, + { &hf_nr_rrc_symbolsInResourceBlock, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_14 }, + { &hf_nr_rrc_periodicityAndOffset_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_periodicityAndOffset_01 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RateMatchPattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RateMatchPattern, RateMatchPattern_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern_sequence_of[1] = { + { &hf_nr_rrc_setup_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RateMatchPattern }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern, SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern_sequence_of, + 1, maxNrofRateMatchPatterns, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_rateMatchPatterns_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_rateMatchPatterns_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_05 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_rateMatchPatterns(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_rateMatchPatterns, T_rateMatchPatterns_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_nrofCRS_Ports_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofCRS_Ports(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_v_Shift_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 4, "n4" }, + { 5, "n5" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_v_Shift(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 6, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_setup_04_sequence[] = { + { &hf_nr_rrc_nrofCRS_Ports, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofCRS_Ports }, + { &hf_nr_rrc_v_Shift , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_v_Shift }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_04, T_setup_04_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_lte_CRS_ToMatchAround_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_lte_CRS_ToMatchAround_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_06 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_04 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_lte_CRS_ToMatchAround(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_lte_CRS_ToMatchAround, T_lte_CRS_ToMatchAround_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_rateMatchResourcesPDSCH_sequence[] = { + { &hf_nr_rrc_rateMatchPatterns, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_rateMatchPatterns }, + { &hf_nr_rrc_lte_CRS_ToMatchAround, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_lte_CRS_ToMatchAround }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_rateMatchResourcesPDSCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_rateMatchResourcesPDSCH, T_rateMatchResourcesPDSCH_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_rbg_Size_vals[] = { + { 0, "config1" }, + { 1, "config2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_rbg_Size(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_mcs_Table_vals[] = { + { 0, "dl-64QAM" }, + { 1, "dl-256QAM" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mcs_Table(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_maxNrofCodeWordsScheduledByDCI_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNrofCodeWordsScheduledByDCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_harq_ACK_Codebook_vals[] = { + { 0, "semiStatic" }, + { 1, "dynamic" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_harq_ACK_Codebook(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PDSCH_Config_sequence[] = { + { &hf_nr_rrc_codeBlockGroupTransmission, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_maxCodeBlockGroupsPerTransportBlock, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxCodeBlockGroupsPerTransportBlock }, + { &hf_nr_rrc_codeBlockGroupFlushIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_dmrs_Type , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dmrs_Type }, + { &hf_nr_rrc_dmrs_AdditionalPosition, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dmrs_AdditionalPosition }, + { &hf_nr_rrc_dmrs_group1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_dmrs_group2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_phaseTracking_RS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_phaseTracking_RS }, + { &hf_nr_rrc_tci_States , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_tci_rs_SetConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_tci_PresentInDCI, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tci_PresentInDCI }, + { &hf_nr_rrc_xOverhead , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_xOverhead }, + { &hf_nr_rrc_pdsch_symbolAllocation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_rateMatchResourcesPDSCH, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_rateMatchResourcesPDSCH }, + { &hf_nr_rrc_rbg_Size , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_rbg_Size }, + { &hf_nr_rrc_mcs_Table , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mcs_Table }, + { &hf_nr_rrc_maxNrofCodeWordsScheduledByDCI, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNrofCodeWordsScheduledByDCI }, + { &hf_nr_rrc_nrofHARQ_processesForPDSCH, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_harq_ACK_Codebook, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_harq_ACK_Codebook }, + { &hf_nr_rrc_pdsch_BundleSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_prbBundlingEnabled, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PDSCH_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PDSCH_Config, PDSCH_Config_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_CSI_ResourceConfigId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofCSI_ResourceConfigurations_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_CSI_ResourceSetId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofCSI_ResourceSets_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_NZP_CSI_RS_ResourceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofNZP_CSI_RS_Resources_1, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_nrofPorts_vals[] = { + { 0, "p1" }, + { 1, "p2" }, + { 2, "p4" }, + { 3, "p8" }, + { 4, "p12" }, + { 5, "p16" }, + { 6, "p24" }, + { 7, "p32" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofPorts(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_cdm_Value_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 3, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_cdm_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_cdm_Pattern_vals[] = { + { 0, "freqOnly" }, + { 1, "timeAndFreq" }, + { 2, "timeOnly" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_cdm_Pattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_csi_RS_Density_vals[] = { + { 0, "dot5" }, + { 1, "one" }, + { 2, "three" }, + { 3, "spare" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_RS_Density(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 0U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_csi_RS_timeConfig_vals[] = { + { 0, "sl5" }, + { 1, "sl10" }, + { 2, "sl20" }, + { 3, "sl40" }, + { 4, "sl80" }, + { 5, "sl160" }, + { 6, "sl320" }, + { 7, "sl640" }, + { 0, NULL } +}; + +static const per_choice_t T_csi_RS_timeConfig_choice[] = { + { 0, &hf_nr_rrc_sl5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 1, &hf_nr_rrc_sl10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 2, &hf_nr_rrc_sl20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 3, &hf_nr_rrc_sl40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 4, &hf_nr_rrc_sl80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 5, &hf_nr_rrc_sl160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 6, &hf_nr_rrc_sl320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 7, &hf_nr_rrc_sl640 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_639 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_csi_RS_timeConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_csi_RS_timeConfig, T_csi_RS_timeConfig_choice, + NULL); + + return offset; +} + + +static const per_sequence_t NZP_CSI_RS_Resource_sequence[] = { + { &hf_nr_rrc_nzp_csi_rs_ResourceId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { &hf_nr_rrc_nrofPorts , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofPorts }, + { &hf_nr_rrc_resourceMapping, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_cdm_Value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cdm_Value }, + { &hf_nr_rrc_cdm_Pattern , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cdm_Pattern }, + { &hf_nr_rrc_csi_RS_Density, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_csi_RS_Density }, + { &hf_nr_rrc_csi_RS_FreqBand, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_powerControlOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_powerControlOffsetSS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_scramblingID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0 }, + { &hf_nr_rrc_csi_RS_timeConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_csi_RS_timeConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_NZP_CSI_RS_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_NZP_CSI_RS_Resource, NZP_CSI_RS_Resource_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_Resource_sequence_of[1] = { + { &hf_nr_rrc_csi_rs_Resources_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_Resource, SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_Resource_sequence_of, + 1, maxNrofCSI_RS_ResourcesPerSet, FALSE); + + return offset; +} + + +static const per_sequence_t CSI_ResourceSet_sequence[] = { + { &hf_nr_rrc_csi_ResourceSetId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ResourceSetId }, + { &hf_nr_rrc_csi_rs_Resources, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_Resource }, + { &hf_nr_rrc_repetition , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_ResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CSI_ResourceSet, CSI_ResourceSet_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_ResourceSets_OF_CSI_ResourceSet_sequence_of[1] = { + { &hf_nr_rrc_csi_ResourceSets_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ResourceSet }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceSets_OF_CSI_ResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceSets_OF_CSI_ResourceSet, SEQUENCE_SIZE_1_maxNrofCSI_ResourceSets_OF_CSI_ResourceSet_sequence_of, + 1, maxNrofCSI_ResourceSets, FALSE); + + return offset; +} + + +static const per_sequence_t CSI_SSB_Resource_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_SSB_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CSI_SSB_Resource, CSI_SSB_Resource_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSSB_Resources_1_OF_CSI_SSB_Resource_sequence_of[1] = { + { &hf_nr_rrc_ssb_Resources_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_SSB_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSSB_Resources_1_OF_CSI_SSB_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSSB_Resources_1_OF_CSI_SSB_Resource, SEQUENCE_SIZE_1_maxNrofSSB_Resources_1_OF_CSI_SSB_Resource_sequence_of, + 1, maxNrofSSB_Resources_1, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_resourceType_vals[] = { + { 0, "aperiodic" }, + { 1, "semiPersistent" }, + { 2, "periodic" }, + { 0, NULL } +}; + +static const per_choice_t T_resourceType_choice[] = { + { 0, &hf_nr_rrc_aperiodic , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_semiPersistent, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 2, &hf_nr_rrc_periodic , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_resourceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_resourceType, T_resourceType_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CSI_ResourceConfig_sequence[] = { + { &hf_nr_rrc_csi_ResourceConfigId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ResourceConfigId }, + { &hf_nr_rrc_csi_ResourceSets, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceSets_OF_CSI_ResourceSet }, + { &hf_nr_rrc_ssb_Resources, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSSB_Resources_1_OF_CSI_SSB_Resource }, + { &hf_nr_rrc_resourceType , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourceType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_ResourceConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CSI_ResourceConfig, CSI_ResourceConfig_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig_sequence_of[1] = { + { &hf_nr_rrc_csi_ResourceConfigs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ResourceConfig }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig, SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig_sequence_of, + 1, maxNrofCSI_ResourceConfigurations, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_CSI_ReportConfigId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofCSI_ReportConfig_1, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_reportSlotConfig_vals[] = { + { 0, "sl5" }, + { 1, "sl10" }, + { 2, "sl20" }, + { 3, "sl40" }, + { 4, "sl80" }, + { 5, "sl160" }, + { 6, "sl320" }, + { 0, NULL } +}; + +static const per_choice_t T_reportSlotConfig_choice[] = { + { 0, &hf_nr_rrc_sl5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 1, &hf_nr_rrc_sl10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 2, &hf_nr_rrc_sl20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 3, &hf_nr_rrc_sl40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 4, &hf_nr_rrc_sl80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 5, &hf_nr_rrc_sl160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 6, &hf_nr_rrc_sl320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_reportSlotConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_reportSlotConfig, T_reportSlotConfig_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_periodic_sequence[] = { + { &hf_nr_rrc_reportSlotConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportSlotConfig }, + { &hf_nr_rrc_pucch_CSI_ResourceIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_periodic(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_periodic, T_periodic_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_reportSlotConfig_01_vals[] = { + { 0, "sl5" }, + { 1, "sl10" }, + { 2, "sl20" }, + { 3, "sl40" }, + { 4, "sl80" }, + { 5, "sl160" }, + { 6, "sl320" }, + { 0, NULL } +}; + +static const per_choice_t T_reportSlotConfig_01_choice[] = { + { 0, &hf_nr_rrc_sl5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 1, &hf_nr_rrc_sl10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 2, &hf_nr_rrc_sl20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 3, &hf_nr_rrc_sl40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 4, &hf_nr_rrc_sl80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 5, &hf_nr_rrc_sl160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 6, &hf_nr_rrc_sl320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_reportSlotConfig_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_reportSlotConfig_01, T_reportSlotConfig_01_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_semiPersistent_sequence[] = { + { &hf_nr_rrc_reportSlotConfig_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportSlotConfig_01 }, + { &hf_nr_rrc_pucch_CSI_ResourceIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_semiPersistent(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_semiPersistent, T_semiPersistent_sequence); + + return offset; +} + + +static const per_sequence_t T_aperiodic_sequence[] = { + { &hf_nr_rrc_aperiodicReportSlotOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_aperiodic(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_aperiodic, T_aperiodic_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_reportConfigType_vals[] = { + { 0, "periodic" }, + { 1, "semiPersistent" }, + { 2, "aperiodic" }, + { 0, NULL } +}; + +static const per_choice_t T_reportConfigType_choice[] = { + { 0, &hf_nr_rrc_periodic_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_periodic }, + { 1, &hf_nr_rrc_semiPersistent_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_semiPersistent }, + { 2, &hf_nr_rrc_aperiodic_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_aperiodic }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_reportConfigType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_reportConfigType, T_reportConfigType_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_pdsch_BundleSizeForCSI_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdsch_BundleSizeForCSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_cRI_RI_i1_CQI_sequence[] = { + { &hf_nr_rrc_pdsch_BundleSizeForCSI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_BundleSizeForCSI }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_cRI_RI_i1_CQI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_cRI_RI_i1_CQI, T_cRI_RI_i1_CQI_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_reportQuantity_vals[] = { + { 0, "cRI-RI-PMI-CQI" }, + { 1, "cRI-RI-i1" }, + { 2, "cRI-RI-i1-CQI" }, + { 3, "cRI-RI-CQI" }, + { 4, "cRI" }, + { 5, "cRI-RSRP" }, + { 6, "spare1" }, + { 7, "spare0" }, + { 0, NULL } +}; + +static const per_choice_t T_reportQuantity_choice[] = { + { 0, &hf_nr_rrc_cRI_RI_PMI_CQI, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_cRI_RI_i1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 2, &hf_nr_rrc_cRI_RI_i1_CQI, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_cRI_RI_i1_CQI }, + { 3, &hf_nr_rrc_cRI_RI_CQI , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 4, &hf_nr_rrc_cRI , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 5, &hf_nr_rrc_cRI_RSRP , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 6, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 7, &hf_nr_rrc_spare0 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_reportQuantity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_reportQuantity, T_reportQuantity_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_cqi_FormatIndicator_vals[] = { + { 0, "widebandCQI" }, + { 1, "subbandCQI" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_cqi_FormatIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_pmi_FormatIndicator_vals[] = { + { 0, "widebandPMI" }, + { 1, "subbandPMI" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pmi_FormatIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_T_csi_ReportingBand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t T_reportFreqConfiguration_sequence[] = { + { &hf_nr_rrc_cqi_FormatIndicator, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cqi_FormatIndicator }, + { &hf_nr_rrc_pmi_FormatIndicator, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_pmi_FormatIndicator }, + { &hf_nr_rrc_csi_ReportingBand, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_csi_ReportingBand }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_reportFreqConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_reportFreqConfiguration, T_reportFreqConfiguration_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_codebookConfig_N1_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n3" }, + { 3, "n4" }, + { 4, "n6" }, + { 5, "n8" }, + { 6, "n12" }, + { 7, "n16" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_codebookConfig_N1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_codebookConfig_N2_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n3" }, + { 3, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_codebookConfig_N2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_subType_vals[] = { + { 0, "typeI-SinglePanel" }, + { 1, "typeI-MultiPanel" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_subType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_codebookMode_vals[] = { + { 0, "config1" }, + { 1, "config2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_codebookMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_numberOfPanels_vals[] = { + { 0, "panels2" }, + { 1, "panels4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_numberOfPanels(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_T_singlePanel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 6, 6, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_T_multiPanel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_codebookSubsetRestrictionType1_vals[] = { + { 0, "singlePanel" }, + { 1, "singlePanel2TX" }, + { 2, "multiPanel" }, + { 3, "singlePanelCodebookSubsetRestriction-i2" }, + { 0, NULL } +}; + +static const per_choice_t T_codebookSubsetRestrictionType1_choice[] = { + { 0, &hf_nr_rrc_singlePanel , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_singlePanel }, + { 1, &hf_nr_rrc_singlePanel2TX, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_6 }, + { 2, &hf_nr_rrc_multiPanel , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_multiPanel }, + { 3, &hf_nr_rrc_singlePanelCodebookSubsetRestriction_i2, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_codebookSubsetRestrictionType1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_codebookSubsetRestrictionType1, T_codebookSubsetRestrictionType1_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_ri_Restriction_vals[] = { + { 0, "typeI-SinglePanelRI-Restriction" }, + { 1, "typeI-MultiPanelRI-Restriction" }, + { 0, NULL } +}; + +static const per_choice_t T_ri_Restriction_choice[] = { + { 0, &hf_nr_rrc_typeI_SinglePanelRI_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { 1, &hf_nr_rrc_typeI_MultiPanelRI_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_4 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ri_Restriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_ri_Restriction, T_ri_Restriction_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_type1_sequence[] = { + { &hf_nr_rrc_subType , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_subType }, + { &hf_nr_rrc_codebookMode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_codebookMode }, + { &hf_nr_rrc_numberOfPanels, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_numberOfPanels }, + { &hf_nr_rrc_codebookSubsetRestrictionType1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_codebookSubsetRestrictionType1 }, + { &hf_nr_rrc_ri_Restriction, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ri_Restriction }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_type1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_type1, T_type1_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_subType_01_vals[] = { + { 0, "typeII" }, + { 1, "typeII-PortSelection" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_subType_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_phaseAlphabetSize_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_phaseAlphabetSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_numberOfBeams_vals[] = { + { 0, "beams2" }, + { 1, "beams3" }, + { 2, "beams4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_numberOfBeams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_portSelectionSamplingSize_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n3" }, + { 3, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_portSelectionSamplingSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_T_codebookSubsetRestrictionType2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 2, 2, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_ri_Restriction_01_vals[] = { + { 0, "typeII-RI-Restriction" }, + { 1, "typeII-PortSelectionRI-Restriction" }, + { 0, NULL } +}; + +static const per_choice_t T_ri_Restriction_01_choice[] = { + { 0, &hf_nr_rrc_typeII_RI_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { 1, &hf_nr_rrc_typeII_PortSelectionRI_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ri_Restriction_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_ri_Restriction_01, T_ri_Restriction_01_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_type2_sequence[] = { + { &hf_nr_rrc_subType_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_subType_01 }, + { &hf_nr_rrc_phaseAlphabetSize, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_phaseAlphabetSize }, + { &hf_nr_rrc_subbandAmplitude, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_numberOfBeams, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_numberOfBeams }, + { &hf_nr_rrc_portSelectionSamplingSize, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_portSelectionSamplingSize }, + { &hf_nr_rrc_codebookSubsetRestrictionType2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_codebookSubsetRestrictionType2 }, + { &hf_nr_rrc_ri_Restriction_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ri_Restriction_01 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_type2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_type2, T_type2_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_codebookType_vals[] = { + { 0, "type1" }, + { 1, "type2" }, + { 0, NULL } +}; + +static const per_choice_t T_codebookType_choice[] = { + { 0, &hf_nr_rrc_type1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_type1 }, + { 1, &hf_nr_rrc_type2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_type2 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_codebookType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_codebookType, T_codebookType_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CodebookConfig_sequence[] = { + { &hf_nr_rrc_codebookConfig_N1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_codebookConfig_N1 }, + { &hf_nr_rrc_codebookConfig_N2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_codebookConfig_N2 }, + { &hf_nr_rrc_codebookType , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_codebookType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CodebookConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CodebookConfig, CodebookConfig_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_nrofCQIsPerReport_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofCQIsPerReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_2_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 2U, 4U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_enabled_sequence[] = { + { &hf_nr_rrc_nrofBeamsToReport, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_2_4 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_enabled(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_enabled, T_enabled_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_nrofReportedRS_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n3" }, + { 3, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofReportedRS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_disabled_sequence[] = { + { &hf_nr_rrc_nrofReportedRS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nrofReportedRS }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_disabled(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_disabled, T_disabled_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_groupBasedBeamReporting_vals[] = { + { 0, "enabled" }, + { 1, "disabled" }, + { 0, NULL } +}; + +static const per_choice_t T_groupBasedBeamReporting_choice[] = { + { 0, &hf_nr_rrc_enabled , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_enabled }, + { 1, &hf_nr_rrc_disabled , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_disabled }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_groupBasedBeamReporting(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_groupBasedBeamReporting, T_groupBasedBeamReporting_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_cqi_Table_vals[] = { + { 0, "dl-64QAM" }, + { 1, "dl-256QAM" }, + { 2, "urllc1" }, + { 3, "urllc2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_cqi_Table(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_subbandSize_vals[] = { + { 0, "value1" }, + { 1, "value2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_subbandSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_bler_Target_vals[] = { + { 0, "v0dot1" }, + { 1, "spare3" }, + { 2, "space2" }, + { 3, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_bler_Target(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t CSI_ReportConfig_sequence[] = { + { &hf_nr_rrc_reportConfigId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportConfigId }, + { &hf_nr_rrc_reportConfigType, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportConfigType }, + { &hf_nr_rrc_reportQuantity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportQuantity }, + { &hf_nr_rrc_reportFreqConfiguration, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportFreqConfiguration }, + { &hf_nr_rrc_measRestrictionTimeForChannel, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_measRestrictionTimeForInterference, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_codebookConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CodebookConfig }, + { &hf_nr_rrc_nrofCQIsPerReport, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofCQIsPerReport }, + { &hf_nr_rrc_groupBasedBeamReporting, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_groupBasedBeamReporting }, + { &hf_nr_rrc_cqi_Table , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_cqi_Table }, + { &hf_nr_rrc_subbandSize , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_subbandSize }, + { &hf_nr_rrc_bler_Target , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_bler_Target }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_ReportConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CSI_ReportConfig, CSI_ReportConfig_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_Reports_OF_CSI_ReportConfig_sequence_of[1] = { + { &hf_nr_rrc_csi_ReportConfigs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportConfig }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_Reports_OF_CSI_ReportConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_Reports_OF_CSI_ReportConfig, SEQUENCE_SIZE_1_maxNrofCSI_Reports_OF_CSI_ReportConfig_sequence_of, + 1, maxNrofCSI_Reports, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_CSI_MeasId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofCSI_MeasId_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_CSI_RS_ConfigurationId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_measQuantity_vals[] = { + { 0, "channel" }, + { 1, "interference" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_measQuantity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t CSI_MeasIdToAddMod_sequence[] = { + { &hf_nr_rrc_csi_measId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_MeasId }, + { &hf_nr_rrc_csi_RS_resourceConfigId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_ConfigurationId }, + { &hf_nr_rrc_csi_reportConfigId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportConfigId }, + { &hf_nr_rrc_measQuantity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_measQuantity }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_MeasIdToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CSI_MeasIdToAddMod, CSI_MeasIdToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_MeasId_OF_CSI_MeasIdToAddMod_sequence_of[1] = { + { &hf_nr_rrc_csi_MeasIdToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_MeasIdToAddMod }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_MeasId_OF_CSI_MeasIdToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_MeasId_OF_CSI_MeasIdToAddMod, SEQUENCE_SIZE_1_maxNrofCSI_MeasId_OF_CSI_MeasIdToAddMod_sequence_of, + 1, maxNrofCSI_MeasId, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 6U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_reportTrigger_sequence[] = { + { &hf_nr_rrc_reportTriggerSize, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_6 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_reportTrigger(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_reportTrigger, T_reportTrigger_sequence); + + return offset; +} + + +static const per_sequence_t CSI_MeasConfig_sequence[] = { + { &hf_nr_rrc_csi_ResourceConfigs, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig }, + { &hf_nr_rrc_csi_ReportConfigs, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_Reports_OF_CSI_ReportConfig }, + { &hf_nr_rrc_csi_MeasIdToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_MeasId_OF_CSI_MeasIdToAddMod }, + { &hf_nr_rrc_reportTrigger, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportTrigger }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_MeasConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CSI_MeasConfig, CSI_MeasConfig_sequence); + + return offset; +} + + +static const per_sequence_t PUCCH_ResourceSet_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUCCH_ResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PUCCH_ResourceSet, PUCCH_ResourceSet_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet_sequence_of[1] = { + { &hf_nr_rrc_resourceSets_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_ResourceSet }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet, SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet_sequence_of, + 1, 1, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_interslotFrequencyHopping_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_interslotFrequencyHopping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_nrofSlots_vals[] = { + { 0, "n1" }, + { 1, "ny1" }, + { 2, "y2" }, + { 3, "y3" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofSlots(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_setup_05_sequence[] = { + { &hf_nr_rrc_interslotFrequencyHopping, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_interslotFrequencyHopping }, + { &hf_nr_rrc_nrofSlots , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nrofSlots }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_05, T_setup_05_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_format1_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_format1_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_07 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_05 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_format1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_format1, T_format1_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 7U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_simultaneousHARQ_ACK_CSI_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_simultaneousHARQ_ACK_CSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_setup_06_sequence[] = { + { &hf_nr_rrc_maxCodeRate , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_7 }, + { &hf_nr_rrc_nrofPRBs , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_16 }, + { &hf_nr_rrc_simultaneousHARQ_ACK_CSI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_simultaneousHARQ_ACK_CSI }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_06, T_setup_06_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_format2_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_format2_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_08 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_06 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_format2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_format2, T_format2_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_interslotFrequencyHopping_01_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_interslotFrequencyHopping_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_additionalDMRS_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_additionalDMRS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_nrofSlots_01_vals[] = { + { 0, "n1" }, + { 1, "y1" }, + { 2, "y2" }, + { 3, "y3" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofSlots_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_pi2PBSK_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pi2PBSK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_setup_07_sequence[] = { + { &hf_nr_rrc_interslotFrequencyHopping_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_interslotFrequencyHopping_01 }, + { &hf_nr_rrc_additionalDMRS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_additionalDMRS }, + { &hf_nr_rrc_maxCodeRate , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_7 }, + { &hf_nr_rrc_nrofSlots_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nrofSlots_01 }, + { &hf_nr_rrc_pi2PBSK , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pi2PBSK }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_07, T_setup_07_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_format3_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_format3_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_09 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_07 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_format3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_format3, T_format3_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_interslotFrequencyHopping_02_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_interslotFrequencyHopping_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_additionalDMRS_01_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_additionalDMRS_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_nrofSlots_02_vals[] = { + { 0, "n1" }, + { 1, "y1" }, + { 2, "y2" }, + { 3, "y3" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofSlots_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_pi2PBSK_01_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pi2PBSK_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_setup_08_sequence[] = { + { &hf_nr_rrc_interslotFrequencyHopping_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_interslotFrequencyHopping_02 }, + { &hf_nr_rrc_additionalDMRS_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_additionalDMRS_01 }, + { &hf_nr_rrc_maxCodeRate , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_7 }, + { &hf_nr_rrc_nrofSlots_02 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nrofSlots_02 }, + { &hf_nr_rrc_pi2PBSK_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pi2PBSK_01 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_08(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_08, T_setup_08_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_format4_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_format4_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_08 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_format4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_format4, T_format4_choice, + NULL); + + return offset; +} + + +static const per_sequence_t SchedulingRequestResource_Config_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SchedulingRequestResource_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SchedulingRequestResource_Config, SchedulingRequestResource_Config_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSchedulingRequestResoruces_OF_SchedulingRequestResource_Config_sequence_of[1] = { + { &hf_nr_rrc_setup_item_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SchedulingRequestResource_Config }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSchedulingRequestResoruces_OF_SchedulingRequestResource_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSchedulingRequestResoruces_OF_SchedulingRequestResource_Config, SEQUENCE_SIZE_1_maxNrofSchedulingRequestResoruces_OF_SchedulingRequestResource_Config_sequence_of, + 1, maxNrofSchedulingRequestResoruces, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_schedulingRequestResources_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_schedulingRequestResources_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_11 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSchedulingRequestResoruces_OF_SchedulingRequestResource_Config }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_schedulingRequestResources(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_schedulingRequestResources, T_schedulingRequestResources_choice, + NULL); + + return offset; +} + + +static const per_sequence_t PUCCH_Config_sequence[] = { + { &hf_nr_rrc_resourceSets , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet }, + { &hf_nr_rrc_format1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_format1 }, + { &hf_nr_rrc_format2 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_format2 }, + { &hf_nr_rrc_format3 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_format3 }, + { &hf_nr_rrc_format4 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_format4 }, + { &hf_nr_rrc_schedulingRequestResources, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_schedulingRequestResources }, + { &hf_nr_rrc_tpc_PUCCH_RNTI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUCCH_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PUCCH_Config, PUCCH_Config_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_codeBlockGroupTransmission_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_codeBlockGroupTransmission(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_01_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 2, "n6" }, + { 3, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_dmrs_Type_01_vals[] = { + { 0, "type1" }, + { 1, "type2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dmrs_Type_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_dmrs_AdditionalPosition_01_vals[] = { + { 0, "pos0" }, + { 1, "pos1" }, + { 2, "pos2" }, + { 3, "pos3" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dmrs_AdditionalPosition_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_nrofPorts_02_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofPorts_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_setup_10_sequence[] = { + { &hf_nr_rrc_frequencyDensity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_timeDensity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_nrofPorts_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofPorts_02 }, + { &hf_nr_rrc_resourceElementOffset, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_10, T_setup_10_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_cp_OFDM_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_cp_OFDM_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_14 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_10 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_cp_OFDM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_cp_OFDM, T_cp_OFDM_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_timeDensity_vals[] = { + { 0, "d1" }, + { 1, "d2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_timeDensity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_setup_11_sequence[] = { + { &hf_nr_rrc_sampleDensity, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_timeDensity_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_timeDensity }, + { &hf_nr_rrc_sequence , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_11(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_11, T_setup_11_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_dft_S_OFDM_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_dft_S_OFDM_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_15 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_11 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_dft_S_OFDM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_dft_S_OFDM, T_dft_S_OFDM_choice, + NULL); + + return offset; +} + + +static const per_sequence_t Uplink_PTRS_Config_sequence[] = { + { &hf_nr_rrc_cp_OFDM , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_cp_OFDM }, + { &hf_nr_rrc_dft_S_OFDM , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dft_S_OFDM }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_Uplink_PTRS_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_Uplink_PTRS_Config, Uplink_PTRS_Config_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_phaseTracking_RS_01_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_phaseTracking_RS_01_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_12 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_Uplink_PTRS_Config }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_phaseTracking_RS_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_phaseTracking_RS_01, T_phaseTracking_RS_01_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_tpcAccumulation_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_tpcAccumulation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_frequencyHopping_vals[] = { + { 0, "mode1" }, + { 1, "mode2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_frequencyHopping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_rateMatching_vals[] = { + { 0, "fullBufferRM" }, + { 1, "limitedBufferRM" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_rateMatching(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_mcs_Table_01_vals[] = { + { 0, "ul-64QAM" }, + { 1, "ul-256QAM" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mcs_Table_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_mcs_TableTransformPrecoder_vals[] = { + { 0, "ul-64QAM" }, + { 1, "ul-256QAM" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mcs_TableTransformPrecoder(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_transformPrecoder_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_transformPrecoder(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_rbg_Size_01_vals[] = { + { 0, "config1" }, + { 1, "config2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_rbg_Size_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t BetaOffsets_sequence[] = { + { &hf_nr_rrc_betaOffsetACK_Index1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_31 }, + { &hf_nr_rrc_betaOffsetACK_Index2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_31 }, + { &hf_nr_rrc_betaOffsetACK_Index3, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_31 }, + { &hf_nr_rrc_betaOffsetCSI_part1_Index1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_31 }, + { &hf_nr_rrc_betaOffsetCSI_part1_Index2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_31 }, + { &hf_nr_rrc_betaOffsetCSI_part2_Index1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_31 }, + { &hf_nr_rrc_betaOffsetCSI_part2_Index2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_31 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BetaOffsets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BetaOffsets, BetaOffsets_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_4_OF_BetaOffsets_sequence_of[1] = { + { &hf_nr_rrc_dynamic_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BetaOffsets }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets, SEQUENCE_SIZE_1_4_OF_BetaOffsets_sequence_of, + 1, 4, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_setup_09_vals[] = { + { 0, "dynamic" }, + { 1, "semiStatic" }, + { 0, NULL } +}; + +static const per_choice_t T_setup_09_choice[] = { + { 0, &hf_nr_rrc_dynamic , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets }, + { 1, &hf_nr_rrc_semiStatic , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BetaOffsets }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_09(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_09, T_setup_09_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_uci_on_PUSCH_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_uci_on_PUSCH_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_13 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_09 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_uci_on_PUSCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_uci_on_PUSCH, T_uci_on_PUSCH_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_xOverhead_01_vals[] = { + { 0, "n0" }, + { 1, "n6" }, + { 2, "n12" }, + { 3, "n18" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_xOverhead_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PUSCH_Config_sequence[] = { + { &hf_nr_rrc_codeBlockGroupTransmission_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_codeBlockGroupTransmission }, + { &hf_nr_rrc_maxCodeBlockGroupsPerTransportBlock_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_01 }, + { &hf_nr_rrc_dmrs_Type_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dmrs_Type_01 }, + { &hf_nr_rrc_dmrs_AdditionalPosition_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dmrs_AdditionalPosition_01 }, + { &hf_nr_rrc_phaseTracking_RS_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_phaseTracking_RS_01 }, + { &hf_nr_rrc_tpcAccumulation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tpcAccumulation }, + { &hf_nr_rrc_tcp_PUSCH_RNTI, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { &hf_nr_rrc_frequencyHopping, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_frequencyHopping }, + { &hf_nr_rrc_rateMatching , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_rateMatching }, + { &hf_nr_rrc_rateMatchResources, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_symbolAllocationIndexs, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_mcs_Table_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mcs_Table_01 }, + { &hf_nr_rrc_mcs_TableTransformPrecoder, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mcs_TableTransformPrecoder }, + { &hf_nr_rrc_transformPrecoder, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecoder }, + { &hf_nr_rrc_rbg_Size_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_rbg_Size_01 }, + { &hf_nr_rrc_uci_on_PUSCH , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_uci_on_PUSCH }, + { &hf_nr_rrc_xOverhead_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_xOverhead_01 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUSCH_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PUSCH_Config, PUSCH_Config_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_SRS_ResourceSetId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofSRS_ResourceSets_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId_sequence_of[1] = { + { &hf_nr_rrc_srs_ResourceSetToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceSetId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId, SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId_sequence_of, + 0, maxNrofSRS_ResourceSets, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_SRS_ResourceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofSRS_Resources_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_srs_ResourcesIds_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId, SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId_sequence_of, + 1, maxNrofSRS_ResourcesPerSet, FALSE); + + return offset; +} + + +static const per_sequence_t SRS_ResourceSet_sequence[] = { + { &hf_nr_rrc_srs_ResourceSetId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceSetId }, + { &hf_nr_rrc_srs_ResourcesIds, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId }, + { &hf_nr_rrc_aperiodicSRS_ResourceTrigger, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SRS_ResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SRS_ResourceSet, SRS_ResourceSet_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet_sequence_of[1] = { + { &hf_nr_rrc_srs_ResourceSetToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceSet }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet, SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet_sequence_of, + 0, maxNrofSRS_ResourceSets, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_srs_ResourceToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId, SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId_sequence_of, + 1, maxNrofSRS_Resources, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_nrofSRS_Ports_vals[] = { + { 0, "port1" }, + { 1, "ports2" }, + { 2, "ports4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofSRS_Ports(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_transmissionComb_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_transmissionComb(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 2U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_aperiodic_01_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_aperiodic_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_aperiodic_01, T_aperiodic_01_sequence); + + return offset; +} + + +static const per_sequence_t T_semi_persistent_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_semi_persistent(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_semi_persistent, T_semi_persistent_sequence); + + return offset; +} + + +static const per_sequence_t T_periodic_01_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_periodic_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_periodic_01, T_periodic_01_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_resourceType_01_vals[] = { + { 0, "aperiodic" }, + { 1, "semi-persistent" }, + { 2, "periodic" }, + { 0, NULL } +}; + +static const per_choice_t T_resourceType_01_choice[] = { + { 0, &hf_nr_rrc_aperiodic_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_aperiodic_01 }, + { 1, &hf_nr_rrc_semi_persistent, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_semi_persistent }, + { 2, &hf_nr_rrc_periodic_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_periodic_01 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_resourceType_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_resourceType_01, T_resourceType_01_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_periodicityAndOffset_02_vals[] = { + { 0, "sl2" }, + { 1, "sl5" }, + { 2, "sl10" }, + { 3, "sl20" }, + { 4, "sl40" }, + { 5, "sl80" }, + { 6, "sl160" }, + { 7, "sl320" }, + { 0, NULL } +}; + +static const per_choice_t T_periodicityAndOffset_02_choice[] = { + { 0, &hf_nr_rrc_sl2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_1 }, + { 1, &hf_nr_rrc_sl5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 2, &hf_nr_rrc_sl10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 3, &hf_nr_rrc_sl20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 4, &hf_nr_rrc_sl40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 5, &hf_nr_rrc_sl80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 6, &hf_nr_rrc_sl160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 7, &hf_nr_rrc_sl320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_periodicityAndOffset_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_periodicityAndOffset_02, T_periodicityAndOffset_02_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 12U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_spatialRelationInfo_vals[] = { + { 0, "ssb-pbch" }, + { 1, "csi-rs" }, + { 2, "srs" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_spatialRelationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t SRS_Resource_sequence[] = { + { &hf_nr_rrc_srs_ResourceId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceId }, + { &hf_nr_rrc_nrofSRS_Ports, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofSRS_Ports }, + { &hf_nr_rrc_transmissionComb, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_transmissionComb }, + { &hf_nr_rrc_resourceMapping, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_freqDomainPosition, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_freqHopping , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_63 }, + { &hf_nr_rrc_groupOrSequenceHopping, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_2 }, + { &hf_nr_rrc_resourceType_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_resourceType_01 }, + { &hf_nr_rrc_periodicityAndOffset_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicityAndOffset_02 }, + { &hf_nr_rrc_sequenceId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_antennaSwitching, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_carrierSwitching, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_cyclicShift , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_12 }, + { &hf_nr_rrc_spatialRelationInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_spatialRelationInfo }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SRS_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SRS_Resource, SRS_Resource_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource_sequence_of[1] = { + { &hf_nr_rrc_srs_ResourceToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource, SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource_sequence_of, + 1, maxNrofSRS_Resources, FALSE); + + return offset; +} + + +static const per_sequence_t SRS_Config_sequence[] = { + { &hf_nr_rrc_srs_ResourceSetToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId }, + { &hf_nr_rrc_srs_ResourceSetToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet }, + { &hf_nr_rrc_srs_ResourceToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId }, + { &hf_nr_rrc_srs_ResourceToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource }, + { &hf_nr_rrc_tpc_SRS_RNTI , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SRS_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SRS_Config, SRS_Config_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_transformPrecoder_01_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_transformPrecoder_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_repK_RV_vals[] = { + { 0, "s1-0231" }, + { 1, "s2-0303" }, + { 2, "s3-0000" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_repK_RV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_priodicity_vals[] = { + { 0, "sym2" }, + { 1, "sym7" }, + { 2, "ms0dot125" }, + { 3, "ms0dot25" }, + { 4, "ms0dot5" }, + { 5, "ms1" }, + { 6, "ms2" }, + { 7, "ms5" }, + { 8, "ms10" }, + { 9, "ms20" }, + { 10, "ms32" }, + { 11, "ms40" }, + { 12, "ms64" }, + { 13, "ms80" }, + { 14, "ms128" }, + { 15, "ms160" }, + { 16, "ms320" }, + { 17, "ms640" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_priodicity_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_priodicity_vals); + + +static int +dissect_nr_rrc_T_priodicity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 18, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_setup_12_sequence[] = { + { &hf_nr_rrc_timeDomainOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_timeDomainAllocation, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_frequencyDomainAllocation, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_dmrs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_mcsAndTBS , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_repK , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_12, T_setup_12_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_rrcConfiguredUplinkGrant_vals[] = { + { 0, "setup" }, + { 1, "release" }, + { 0, NULL } +}; + +static const per_choice_t T_rrcConfiguredUplinkGrant_choice[] = { + { 0, &hf_nr_rrc_setup_16 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_12 }, + { 1, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_rrcConfiguredUplinkGrant(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_rrcConfiguredUplinkGrant, T_rrcConfiguredUplinkGrant_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_uplink_sequence[] = { + { &hf_nr_rrc_periodicity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_powerControl , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_transformPrecoder_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecoder_01 }, + { &hf_nr_rrc_nrofHARQ_processes, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_1 }, + { &hf_nr_rrc_repK_RV , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_repK_RV }, + { &hf_nr_rrc_priodicity , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_priodicity }, + { &hf_nr_rrc_rrcConfiguredUplinkGrant, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_rrcConfiguredUplinkGrant }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_uplink(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_uplink, T_uplink_sequence); + + return offset; +} + + +static const per_sequence_t SPS_Config_sequence[] = { + { &hf_nr_rrc_uplink , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_uplink }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SPS_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SPS_Config, SPS_Config_sequence); + + return offset; +} + + +static const per_sequence_t T_own_sequence[] = { + { &hf_nr_rrc_cif_Presence , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_own(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_own, T_own_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_ServCellIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 16U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 4U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_other_sequence[] = { + { &hf_nr_rrc_schedulingCellId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_pdsch_Start , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_4 }, + { &hf_nr_rrc_cif_InSchedulingCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_7 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_other(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_other, T_other_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_schedulingCellInfo_vals[] = { + { 0, "own" }, + { 1, "other" }, + { 0, NULL } +}; + +static const per_choice_t T_schedulingCellInfo_choice[] = { + { 0, &hf_nr_rrc_own , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_own }, + { 1, &hf_nr_rrc_other , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_other }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_schedulingCellInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_schedulingCellInfo, T_schedulingCellInfo_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CrossCarrierSchedulingConfig_sequence[] = { + { &hf_nr_rrc_schedulingCellInfo, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_schedulingCellInfo }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CrossCarrierSchedulingConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CrossCarrierSchedulingConfig, CrossCarrierSchedulingConfig_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_ue_BeamLockFunction_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ue_BeamLockFunction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_pathlossReferenceLinking_vals[] = { + { 0, "pCell" }, + { 1, "sCell" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pathlossReferenceLinking(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t ServingCellConfigDedicated_sequence[] = { + { &hf_nr_rrc_tdd_UL_DL_configurationDedicated, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_tdd_UL_DL_configurationDedicated }, + { &hf_nr_rrc_bandwidthParts, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandwidthParts }, + { &hf_nr_rrc_dataScramblingIdentity, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NULL }, + { &hf_nr_rrc_pdcch_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PDCCH_Config }, + { &hf_nr_rrc_pdsch_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PDSCH_Config }, + { &hf_nr_rrc_csi_MeasConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CSI_MeasConfig }, + { &hf_nr_rrc_pucch_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PUCCH_Config }, + { &hf_nr_rrc_pusch_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PUSCH_Config }, + { &hf_nr_rrc_srs_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SRS_Config }, + { &hf_nr_rrc_sps_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SPS_Config }, + { &hf_nr_rrc_crossCarrierSchedulingConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CrossCarrierSchedulingConfig }, + { &hf_nr_rrc_tag_Id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TAG_Id }, + { &hf_nr_rrc_ue_BeamLockFunction, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ue_BeamLockFunction }, + { &hf_nr_rrc_pathlossReferenceLinking, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pathlossReferenceLinking }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ServingCellConfigDedicated(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ServingCellConfigDedicated, ServingCellConfigDedicated_sequence); + + return offset; +} + + +static const per_sequence_t SpCellConfig_sequence[] = { + { &hf_nr_rrc_reconfigurationWithSync, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_reconfigurationWithSync }, + { &hf_nr_rrc_spCellConfigDedicated, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ServingCellConfigDedicated }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SpCellConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SpCellConfig, SpCellConfig_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_SCellIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 31U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SCellConfig_sequence[] = { + { &hf_nr_rrc_sCellIndex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SCellIndex }, + { &hf_nr_rrc_sCellConfigCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ServingCellConfigCommon }, + { &hf_nr_rrc_sCellConfigDedicated, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ServingCellConfigDedicated }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SCellConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SCellConfig, SCellConfig_sequence); + + return offset; +} + + +static const per_sequence_t SCellToAddModList_sequence_of[1] = { + { &hf_nr_rrc_SCellToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SCellConfig }, +}; + +static int +dissect_nr_rrc_SCellToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SCellToAddModList, SCellToAddModList_sequence_of, + 1, maxNrofSCells, FALSE); + + return offset; +} + + +static const per_sequence_t SCellToReleaseList_sequence_of[1] = { + { &hf_nr_rrc_SCellToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SCellIndex }, +}; + +static int +dissect_nr_rrc_SCellToReleaseList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SCellToReleaseList, SCellToReleaseList_sequence_of, + 1, maxNrofSCells, FALSE); + + return offset; +} + + +static const per_sequence_t CellGroupConfig_sequence[] = { + { &hf_nr_rrc_cellGroupId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellGroupId }, + { &hf_nr_rrc_rlc_BearerToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxLCH_OF_LCH_Config }, + { &hf_nr_rrc_rlc_BearerToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity }, + { &hf_nr_rrc_mac_CellGroupConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MAC_CellGroupConfig }, + { &hf_nr_rrc_rlf_TimersAndConstants, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RLF_TimersAndConstants }, + { &hf_nr_rrc_physical_CellGroupConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PhysicalCellGroupConfig }, + { &hf_nr_rrc_spCellConfig , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SpCellConfig }, + { &hf_nr_rrc_sCellToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SCellToAddModList }, + { &hf_nr_rrc_sCellToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SCellToReleaseList }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CellGroupConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CellGroupConfig, CellGroupConfig_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupConfig_sequence_of[1] = { + { &hf_nr_rrc_secondaryCellGroupToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellGroupConfig }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupConfig, SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupConfig_sequence_of, + 1, maxSCellGroups, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupId_sequence_of[1] = { + { &hf_nr_rrc_secondaryCellGroupToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellGroupId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupId, SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupId_sequence_of, + 1, maxSCellGroups, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_MeasObjectId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxNrofObjectId, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t MeasObjectToRemoveList_sequence_of[1] = { + { &hf_nr_rrc_MeasObjectToRemoveList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasObjectId }, +}; + +static int +dissect_nr_rrc_MeasObjectToRemoveList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasObjectToRemoveList, MeasObjectToRemoveList_sequence_of, + 1, maxNrofObjectId, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_periodicityAndOffset_vals[] = { + { 0, "sf5" }, + { 1, "sf10" }, + { 2, "sf20" }, + { 3, "sf40" }, + { 4, "sf80" }, + { 5, "sf160" }, + { 0, NULL } +}; + +static const per_choice_t T_periodicityAndOffset_choice[] = { + { 0, &hf_nr_rrc_sf5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 1, &hf_nr_rrc_sf10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 2, &hf_nr_rrc_sf20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 3, &hf_nr_rrc_sf40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 4, &hf_nr_rrc_sf80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 5, &hf_nr_rrc_sf160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_periodicityAndOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_periodicityAndOffset, T_periodicityAndOffset_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_duration_vals[] = { + { 0, "sf1" }, + { 1, "sf5" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_duration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_setup_02_vals[] = { + { 0, "shortBitmap" }, + { 1, "mediumBitmap" }, + { 2, "longBitmap" }, + { 0, NULL } +}; + +static const per_choice_t T_setup_02_choice[] = { + { 0, &hf_nr_rrc_shortBitmap , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_4 }, + { 1, &hf_nr_rrc_mediumBitmap , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { 2, &hf_nr_rrc_longBitmap , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_64 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_setup_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_setup_02, T_setup_02_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_ssb_ToMeasure_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_ssb_ToMeasure_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup_02 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ssb_ToMeasure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_ssb_ToMeasure, T_ssb_ToMeasure_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_smtc1_sequence[] = { + { &hf_nr_rrc_periodicityAndOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicityAndOffset }, + { &hf_nr_rrc_duration , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_duration }, + { &hf_nr_rrc_ssb_ToMeasure, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_ToMeasure }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_smtc1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_smtc1, T_smtc1_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_PhysicalCellId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nr_rrc_PhysCellId(tvb, offset, actx, tree, hf_index); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysicalCellId_sequence_of[1] = { + { &hf_nr_rrc_pci_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysicalCellId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysicalCellId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysicalCellId, SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysicalCellId_sequence_of, + 1, maxNrofPCIsPerSMTC, FALSE); + + return offset; +} + + +static const per_sequence_t T_smtc2_sequence[] = { + { &hf_nr_rrc_pci_List , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysicalCellId }, + { &hf_nr_rrc_periodicty , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_smtc2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_smtc2, T_smtc2_sequence); + + return offset; +} + + +static const per_sequence_t SSB_MeasurementTimingConfiguration_sequence[] = { + { &hf_nr_rrc_smtc1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_smtc1 }, + { &hf_nr_rrc_smtc2 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_smtc2 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SSB_MeasurementTimingConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SSB_MeasurementTimingConfiguration, SSB_MeasurementTimingConfiguration_sequence); + + return offset; +} + + +static const per_sequence_t T_present_sequence[] = { + { &hf_nr_rrc_frequencyOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_subcarrierSpacing_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_present(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_present, T_present_sequence); + + return offset; +} + + +static const per_sequence_t T_notPresent_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_notPresent(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_notPresent, T_notPresent_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_ssbPresence_vals[] = { + { 0, "present" }, + { 1, "notPresent" }, + { 0, NULL } +}; + +static const per_choice_t T_ssbPresence_choice[] = { + { 0, &hf_nr_rrc_present , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_present }, + { 1, &hf_nr_rrc_notPresent , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_notPresent }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ssbPresence(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_ssbPresence, T_ssbPresence_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_csi_rs_measurementBW_size_vals[] = { + { 0, "size24" }, + { 1, "size48" }, + { 2, "size96" }, + { 3, "size192" }, + { 4, "size268" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_rs_measurementBW_size(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 5, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_csi_rs_measurement_BW_start_vals[] = { + { 0, "ffsTypeAndValue" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_rs_measurement_BW_start(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_associated_SSB_vals[] = { + { 0, "ffsTypeAndValue" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_associated_SSB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_csi_rs_MeasurementBW_sequence[] = { + { &hf_nr_rrc_csi_rs_measurementBW_size, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_csi_rs_measurementBW_size }, + { &hf_nr_rrc_csi_rs_measurement_BW_start, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_csi_rs_measurement_BW_start }, + { &hf_nr_rrc_associated_SSB, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_associated_SSB }, + { &hf_nr_rrc_qcled_SSB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_isServingCellMO, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_csi_rs_MeasurementBW(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_csi_rs_MeasurementBW, T_csi_rs_MeasurementBW_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_CSI_RS_ResourceId_RRM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofCSI_RS_ResourcesRRM_1, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_slotConfig_vals[] = { + { 0, "ms5" }, + { 1, "ms10" }, + { 2, "ms20" }, + { 3, "ms40" }, + { 4, "ms80" }, + { 5, "ms160" }, + { 0, NULL } +}; + +static const per_choice_t T_slotConfig_choice[] = { + { 0, &hf_nr_rrc_ms5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 1, &hf_nr_rrc_ms10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 2, &hf_nr_rrc_ms20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 3, &hf_nr_rrc_ms40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 4, &hf_nr_rrc_ms80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 5, &hf_nr_rrc_ms160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_slotConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_slotConfig, T_slotConfig_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CSI_RS_Resource_Mobility_sequence[] = { + { &hf_nr_rrc_csi_rs_ResourceId_RRM, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_ResourceId_RRM }, + { &hf_nr_rrc_cellId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysicalCellId }, + { &hf_nr_rrc_slotConfig , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_slotConfig }, + { &hf_nr_rrc_resourceElementMappingPattern, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_sequenceGenerationConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_RS_Resource_Mobility(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CSI_RS_Resource_Mobility, CSI_RS_Resource_Mobility_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility_sequence_of[1] = { + { &hf_nr_rrc_csi_rs_ResourceList_Mobility_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_Resource_Mobility }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility, SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility_sequence_of, + 1, maxNrofCSI_RS_ResourcesRRM, FALSE); + + return offset; +} + + +static const per_sequence_t CSI_RS_ResourceConfig_Mobility_sequence[] = { + { &hf_nr_rrc_csi_rs_MeasurementBW, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_csi_rs_MeasurementBW }, + { &hf_nr_rrc_subcarrierSpacing_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_csi_rs_ResourceList_Mobility, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_RS_ResourceConfig_Mobility(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CSI_RS_ResourceConfig_Mobility, CSI_RS_ResourceConfig_Mobility_sequence); + + return offset; +} + + +static const per_sequence_t ReferenceSignalConfig_sequence[] = { + { &hf_nr_rrc_ssb_MeasurementTimingConfiguration, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SSB_MeasurementTimingConfiguration }, + { &hf_nr_rrc_ssbPresence , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ssbPresence }, + { &hf_nr_rrc_csi_rs_ResourceConfig_Mobility, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CSI_RS_ResourceConfig_Mobility }, + { &hf_nr_rrc_useServingCellTimingForSync, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ReferenceSignalConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReferenceSignalConfig, ReferenceSignalConfig_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_RSRP_Range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 97U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_RSRQ_Range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 34U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_SINR_Range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 127U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t ThresholdNR_sequence[] = { + { &hf_nr_rrc_threshold_RSRP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, + { &hf_nr_rrc_threshold_RSRQ, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRQ_Range }, + { &hf_nr_rrc_threshold_SINR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SINR_Range }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ThresholdNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ThresholdNR, ThresholdNR_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_2_maxNroSS_BlocksToAverage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 2U, maxNroSS_BlocksToAverage, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_2_maxNroCSI_RS_ResourcesToAverage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 2U, maxNroCSI_RS_ResourcesToAverage, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxQuantityConfigId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxQuantityConfigId, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_Q_OffsetRange_vals[] = { + { 0, "dB-24" }, + { 1, "dB-22" }, + { 2, "dB-20" }, + { 3, "dB-18" }, + { 4, "dB-16" }, + { 5, "dB-14" }, + { 6, "dB-12" }, + { 7, "dB-10" }, + { 8, "dB-8" }, + { 9, "dB-6" }, + { 10, "dB-5" }, + { 11, "dB-4" }, + { 12, "dB-3" }, + { 13, "dB-2" }, + { 14, "dB-1" }, + { 15, "dB0" }, + { 16, "dB1" }, + { 17, "dB2" }, + { 18, "dB3" }, + { 19, "dB4" }, + { 20, "dB5" }, + { 21, "dB6" }, + { 22, "dB8" }, + { 23, "dB10" }, + { 24, "dB12" }, + { 25, "dB14" }, + { 26, "dB16" }, + { 27, "dB18" }, + { 28, "dB20" }, + { 29, "dB22" }, + { 30, "dB24" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_Q_OffsetRange_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_Q_OffsetRange_vals); + + +static int +dissect_nr_rrc_Q_OffsetRange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 31, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t Q_OffsetRangeList_sequence[] = { + { &hf_nr_rrc_rsrpOffsetSSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Q_OffsetRange }, + { &hf_nr_rrc_rsrqOffsetSSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Q_OffsetRange }, + { &hf_nr_rrc_sinrOffsetSSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Q_OffsetRange }, + { &hf_nr_rrc_rsrpOffsetCSI_RS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Q_OffsetRange }, + { &hf_nr_rrc_rsrqOffsetCSI_RS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Q_OffsetRange }, + { &hf_nr_rrc_sinrOffsetCSI_RS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Q_OffsetRange }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_Q_OffsetRangeList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_Q_OffsetRangeList, Q_OffsetRangeList_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_CellIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxNrofCellMeas, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t CellIndexList_sequence_of[1] = { + { &hf_nr_rrc_CellIndexList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellIndex }, +}; + +static int +dissect_nr_rrc_CellIndexList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CellIndexList, CellIndexList_sequence_of, + 1, maxNrofCellMeas, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxNrofCellMeas(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxNrofCellMeas, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t CellsToAddMod_sequence[] = { + { &hf_nr_rrc_cellIndex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxNrofCellMeas }, + { &hf_nr_rrc_physCellId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_cellIndividualOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Q_OffsetRangeList }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CellsToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CellsToAddMod, CellsToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t CellsToAddModList_sequence_of[1] = { + { &hf_nr_rrc_CellsToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellsToAddMod }, +}; + +static int +dissect_nr_rrc_CellsToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CellsToAddModList, CellsToAddModList_sequence_of, + 1, maxNrofCellMeas, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_range_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 2, "n12" }, + { 3, "n16" }, + { 4, "n24" }, + { 5, "n32" }, + { 6, "n48" }, + { 7, "n64" }, + { 8, "n84" }, + { 9, "n96" }, + { 10, "n128" }, + { 11, "n168" }, + { 12, "n252" }, + { 13, "n504" }, + { 14, "spare2" }, + { 15, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PhysCellIdRange_sequence[] = { + { &hf_nr_rrc_start , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_range , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_range }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PhysCellIdRange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PhysCellIdRange, PhysCellIdRange_sequence); + + return offset; +} + + +static const per_sequence_t BlackCellsToAddMod_sequence[] = { + { &hf_nr_rrc_cellIndex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxNrofCellMeas }, + { &hf_nr_rrc_physCellIdRange, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellIdRange }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BlackCellsToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BlackCellsToAddMod, BlackCellsToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t BlackCellsToAddModList_sequence_of[1] = { + { &hf_nr_rrc_BlackCellsToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BlackCellsToAddMod }, +}; + +static int +dissect_nr_rrc_BlackCellsToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BlackCellsToAddModList, BlackCellsToAddModList_sequence_of, + 1, maxNrofCellMeas, FALSE); + + return offset; +} + + +static const per_sequence_t WhiteCellsToAddMod_sequence[] = { + { &hf_nr_rrc_cellIndex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxNrofCellMeas }, + { &hf_nr_rrc_physCellIdRange, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellIdRange }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_WhiteCellsToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_WhiteCellsToAddMod, WhiteCellsToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t WhiteCellsToAddModList_sequence_of[1] = { + { &hf_nr_rrc_WhiteCellsToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_WhiteCellsToAddMod }, +}; + +static int +dissect_nr_rrc_WhiteCellsToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_WhiteCellsToAddModList, WhiteCellsToAddModList_sequence_of, + 1, maxNrofCellMeas, FALSE); + + return offset; +} + + +static const per_sequence_t MeasObjectNR_sequence[] = { + { &hf_nr_rrc_carrierFreq , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_referenceSignalConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ReferenceSignalConfig }, + { &hf_nr_rrc_absThreshSS_BlocksConsolidation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ThresholdNR }, + { &hf_nr_rrc_absThreshCSI_RS_Consolidation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ThresholdNR }, + { &hf_nr_rrc_nroSS_BlocksToAverage, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_maxNroSS_BlocksToAverage }, + { &hf_nr_rrc_nroCSI_RS_ResourcesToAverage, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_maxNroCSI_RS_ResourcesToAverage }, + { &hf_nr_rrc_quantityConfigIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxQuantityConfigId }, + { &hf_nr_rrc_offsetFreq , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Q_OffsetRangeList }, + { &hf_nr_rrc_cellsToRemoveList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellIndexList }, + { &hf_nr_rrc_cellsToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellsToAddModList }, + { &hf_nr_rrc_blackCellsToRemoveList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellIndexList }, + { &hf_nr_rrc_blackCellsToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BlackCellsToAddModList }, + { &hf_nr_rrc_whiteCellsToRemoveList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellIndexList }, + { &hf_nr_rrc_whiteCellsToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_WhiteCellsToAddModList }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasObjectNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasObjectNR, MeasObjectNR_sequence); + + return offset; +} + + +static const per_sequence_t MeasObjectEUTRA_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasObjectEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasObjectEUTRA, MeasObjectEUTRA_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_measObject_vals[] = { + { 0, "measObjectNR" }, + { 1, "measObjectEUTRA" }, + { 0, NULL } +}; + +static const per_choice_t T_measObject_choice[] = { + { 0, &hf_nr_rrc_measObjectNR , ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasObjectNR }, + { 1, &hf_nr_rrc_measObjectEUTRA, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasObjectEUTRA }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_measObject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_measObject, T_measObject_choice, + NULL); + + return offset; +} + + +static const per_sequence_t MeasObjectToAddMod_sequence[] = { + { &hf_nr_rrc_measObjectId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasObjectId }, + { &hf_nr_rrc_measObject , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_measObject }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasObjectToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasObjectToAddMod, MeasObjectToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t MeasObjectToAddModList_sequence_of[1] = { + { &hf_nr_rrc_MeasObjectToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasObjectToAddMod }, +}; + +static int +dissect_nr_rrc_MeasObjectToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasObjectToAddModList, MeasObjectToAddModList_sequence_of, + 1, maxNrofObjectId, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_ReportConfigId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxNrofReportConfigId, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t ReportConfigToRemoveList_sequence_of[1] = { + { &hf_nr_rrc_ReportConfigToRemoveList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportConfigId }, +}; + +static int +dissect_nr_rrc_ReportConfigToRemoveList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReportConfigToRemoveList, ReportConfigToRemoveList_sequence_of, + 1, maxNrofReportConfigId, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_rsType_01_vals[] = { + { 0, "ssb" }, + { 1, "csi-rs" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_rsType_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_ReportInterval_vals[] = { + { 0, "ms120" }, + { 1, "ms240" }, + { 2, "ms480" }, + { 3, "ms640" }, + { 4, "ms1024" }, + { 5, "ms2048" }, + { 6, "ms5120" }, + { 7, "ms10240" }, + { 8, "min1" }, + { 9, "min6" }, + { 10, "min12" }, + { 11, "min30" }, + { 12, "min60" }, + { 13, "spare3" }, + { 14, "spare2" }, + { 15, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_ReportInterval(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_reportAmount_01_vals[] = { + { 0, "ffs" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reportAmount_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t MeasReportQuantity_sequence[] = { + { &hf_nr_rrc_rsrp_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_rsrq_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_sinr_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasReportQuantity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasReportQuantity, MeasReportQuantity_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxCellReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxCellReport, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxNroIndexesToReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxNroIndexesToReport, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t PeriodicalReportConfig_sequence[] = { + { &hf_nr_rrc_rsType_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_rsType_01 }, + { &hf_nr_rrc_reportInterval, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportInterval }, + { &hf_nr_rrc_reportAmount_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportAmount_01 }, + { &hf_nr_rrc_reportQuantityCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasReportQuantity }, + { &hf_nr_rrc_maxReportCells, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxCellReport }, + { &hf_nr_rrc_reportQuantityRsIndexes, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasReportQuantity }, + { &hf_nr_rrc_maxNroRsIndexesToReport, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNroIndexesToReport }, + { &hf_nr_rrc_onlyReportBeamIds, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PeriodicalReportConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PeriodicalReportConfig, PeriodicalReportConfig_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_RSRPRange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nr_rrc_RSRP_Range(tvb, offset, actx, tree, hf_index); + + return offset; +} + + + +static int +dissect_nr_rrc_RSRQRange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nr_rrc_RSRQ_Range(tvb, offset, actx, tree, hf_index); + + return offset; +} + + + +static int +dissect_nr_rrc_SINRRange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nr_rrc_SINR_Range(tvb, offset, actx, tree, hf_index); + + return offset; +} + + +static const value_string nr_rrc_MeasTriggerQuantity_vals[] = { + { 0, "rsrp" }, + { 1, "rsrq" }, + { 2, "sinr" }, + { 0, NULL } +}; + +static const per_choice_t MeasTriggerQuantity_choice[] = { + { 0, &hf_nr_rrc_rsrp , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RSRPRange }, + { 1, &hf_nr_rrc_rsrq , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RSRQRange }, + { 2, &hf_nr_rrc_sinr , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SINRRange }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasTriggerQuantity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasTriggerQuantity, MeasTriggerQuantity_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_Hysteresis(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 30U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_TimeToTrigger_vals[] = { + { 0, "ms0" }, + { 1, "ms40" }, + { 2, "ms64" }, + { 3, "ms80" }, + { 4, "ms100" }, + { 5, "ms128" }, + { 6, "ms160" }, + { 7, "ms256" }, + { 8, "ms320" }, + { 9, "ms480" }, + { 10, "ms512" }, + { 11, "ms640" }, + { 12, "ms1024" }, + { 13, "ms1280" }, + { 14, "ms2560" }, + { 15, "ms5120" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_TimeToTrigger(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_eventA1_sequence[] = { + { &hf_nr_rrc_a1_Threshold , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantity }, + { &hf_nr_rrc_reportOnLeave, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_hysteresis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Hysteresis }, + { &hf_nr_rrc_timeToTrigger, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeToTrigger }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_eventA1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventA1, T_eventA1_sequence); + + return offset; +} + + +static const per_sequence_t T_eventA2_sequence[] = { + { &hf_nr_rrc_a2_Threshold , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantity }, + { &hf_nr_rrc_reportOnLeave, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_hysteresis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Hysteresis }, + { &hf_nr_rrc_timeToTrigger, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeToTrigger }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_eventA2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventA2, T_eventA2_sequence); + + return offset; +} + + +static const value_string nr_rrc_MeasTriggerQuantityOffset_vals[] = { + { 0, "rsrp" }, + { 1, "rsrq" }, + { 2, "sinr" }, + { 0, NULL } +}; + +static const per_choice_t MeasTriggerQuantityOffset_choice[] = { + { 0, &hf_nr_rrc_rsrp_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0 }, + { 1, &hf_nr_rrc_rsrq_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0 }, + { 2, &hf_nr_rrc_sinr_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasTriggerQuantityOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasTriggerQuantityOffset, MeasTriggerQuantityOffset_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_eventA3_sequence[] = { + { &hf_nr_rrc_a3_Offset , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantityOffset }, + { &hf_nr_rrc_reportOnLeave, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_hysteresis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Hysteresis }, + { &hf_nr_rrc_timeToTrigger, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeToTrigger }, + { &hf_nr_rrc_useWhiteCellList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_eventA3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventA3, T_eventA3_sequence); + + return offset; +} + + +static const per_sequence_t T_eventA4_sequence[] = { + { &hf_nr_rrc_a4_Threshold , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantity }, + { &hf_nr_rrc_reportOnLeave, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_hysteresis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Hysteresis }, + { &hf_nr_rrc_timeToTrigger, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeToTrigger }, + { &hf_nr_rrc_useWhiteCellList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_eventA4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventA4, T_eventA4_sequence); + + return offset; +} + + +static const per_sequence_t T_eventA5_sequence[] = { + { &hf_nr_rrc_a5_Threshold1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantity }, + { &hf_nr_rrc_a5_Threshold2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantity }, + { &hf_nr_rrc_reportOnLeave, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_hysteresis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Hysteresis }, + { &hf_nr_rrc_timeToTrigger, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeToTrigger }, + { &hf_nr_rrc_useWhiteCellList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_eventA5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventA5, T_eventA5_sequence); + + return offset; +} + + +static const per_sequence_t T_eventA6_sequence[] = { + { &hf_nr_rrc_a6_Offset , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantityOffset }, + { &hf_nr_rrc_reportOnLeave, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_hysteresis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Hysteresis }, + { &hf_nr_rrc_timeToTrigger, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeToTrigger }, + { &hf_nr_rrc_useWhiteCellList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_eventA6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventA6, T_eventA6_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_eventId_vals[] = { + { 0, "eventA1" }, + { 1, "eventA2" }, + { 2, "eventA3" }, + { 3, "eventA4" }, + { 4, "eventA5" }, + { 5, "eventA6" }, + { 0, NULL } +}; + +static const per_choice_t T_eventId_choice[] = { + { 0, &hf_nr_rrc_eventA1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_eventA1 }, + { 1, &hf_nr_rrc_eventA2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_eventA2 }, + { 2, &hf_nr_rrc_eventA3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_eventA3 }, + { 3, &hf_nr_rrc_eventA4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_eventA4 }, + { 4, &hf_nr_rrc_eventA5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_eventA5 }, + { 5, &hf_nr_rrc_eventA6 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_eventA6 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_eventId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventId, T_eventId_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_rsType_vals[] = { + { 0, "ss" }, + { 1, "csi-rs" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_rsType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_reportAmount_vals[] = { + { 0, "ffs" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reportAmount(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t EventTriggerConfig_sequence[] = { + { &hf_nr_rrc_eventId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_eventId }, + { &hf_nr_rrc_rsType , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_rsType }, + { &hf_nr_rrc_reportInterval, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportInterval }, + { &hf_nr_rrc_reportAmount , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportAmount }, + { &hf_nr_rrc_reportQuantityCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasReportQuantity }, + { &hf_nr_rrc_maxReportCells, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxCellReport }, + { &hf_nr_rrc_reportQuantityRsIndexes, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasReportQuantity }, + { &hf_nr_rrc_maxNroIndexesToReport, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNroIndexesToReport }, + { &hf_nr_rrc_onlyReportBeamIds, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_reportAddNeighMeas, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_EventTriggerConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_EventTriggerConfig, EventTriggerConfig_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_reportType_vals[] = { + { 0, "periodical" }, + { 1, "eventTriggered" }, + { 2, "reportCGI" }, + { 0, NULL } +}; + +static const per_choice_t T_reportType_choice[] = { + { 0, &hf_nr_rrc_periodical , ASN1_EXTENSION_ROOT , dissect_nr_rrc_PeriodicalReportConfig }, + { 1, &hf_nr_rrc_eventTriggered, ASN1_EXTENSION_ROOT , dissect_nr_rrc_EventTriggerConfig }, + { 2, &hf_nr_rrc_reportCGI , ASN1_EXTENSION_ROOT , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_reportType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_reportType, T_reportType_choice, + NULL); + + return offset; +} + + +static const per_sequence_t ReportConfigNR_sequence[] = { + { &hf_nr_rrc_reportType , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ReportConfigNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReportConfigNR, ReportConfigNR_sequence); + + return offset; +} + + +static const per_sequence_t ReportConfigEUTRA_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ReportConfigEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReportConfigEUTRA, ReportConfigEUTRA_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_reportConfig_vals[] = { + { 0, "reportConfigNR" }, + { 1, "reportConfigEUTRA" }, + { 0, NULL } +}; + +static const per_choice_t T_reportConfig_choice[] = { + { 0, &hf_nr_rrc_reportConfigNR, ASN1_NO_EXTENSIONS , dissect_nr_rrc_ReportConfigNR }, + { 1, &hf_nr_rrc_reportConfigEUTRA, ASN1_NO_EXTENSIONS , dissect_nr_rrc_ReportConfigEUTRA }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_reportConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_reportConfig, T_reportConfig_choice, + NULL); + + return offset; +} + + +static const per_sequence_t ReportConfigToAddMod_sequence[] = { + { &hf_nr_rrc_reportConfigId_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportConfigId }, + { &hf_nr_rrc_reportConfig , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ReportConfigToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReportConfigToAddMod, ReportConfigToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t ReportConfigToAddModList_sequence_of[1] = { + { &hf_nr_rrc_ReportConfigToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportConfigToAddMod }, +}; + +static int +dissect_nr_rrc_ReportConfigToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReportConfigToAddModList, ReportConfigToAddModList_sequence_of, + 1, maxReportConfigId, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_MeasId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxNrofMeasId, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t MeasIdToRemoveList_sequence_of[1] = { + { &hf_nr_rrc_MeasIdToRemoveList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasId }, +}; + +static int +dissect_nr_rrc_MeasIdToRemoveList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasIdToRemoveList, MeasIdToRemoveList_sequence_of, + 1, maxNrofMeasId, FALSE); + + return offset; +} + + +static const per_sequence_t MeasIdToAddMod_sequence[] = { + { &hf_nr_rrc_measId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasId }, + { &hf_nr_rrc_measObjectId , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasObjectId }, + { &hf_nr_rrc_reportConfigId_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportConfigId }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasIdToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasIdToAddMod, MeasIdToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t MeasIdToAddModList_sequence_of[1] = { + { &hf_nr_rrc_MeasIdToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasIdToAddMod }, +}; + +static int +dissect_nr_rrc_MeasIdToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasIdToAddModList, MeasIdToAddModList_sequence_of, + 1, maxNrofMeasId, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_s_MeasureConfig_vals[] = { + { 0, "ssb-rsrp" }, + { 1, "csi-rsrp" }, + { 0, NULL } +}; + +static const per_choice_t T_s_MeasureConfig_choice[] = { + { 0, &hf_nr_rrc_ssb_rsrp , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RSRP_Range }, + { 1, &hf_nr_rrc_csi_rsrp , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RSRP_Range }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_s_MeasureConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_s_MeasureConfig, T_s_MeasureConfig_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_FilterCoefficient_vals[] = { + { 0, "fc0" }, + { 1, "fc1" }, + { 2, "fc2" }, + { 3, "fc3" }, + { 4, "fc4" }, + { 5, "fc5" }, + { 6, "fc6" }, + { 7, "fc7" }, + { 8, "fc8" }, + { 9, "fc9" }, + { 10, "fc11" }, + { 11, "fc13" }, + { 12, "fc15" }, + { 13, "fc17" }, + { 14, "fc19" }, + { 15, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_FilterCoefficient(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t QuantityConfigRS_sequence[] = { + { &hf_nr_rrc_ssbFilterCoefficientRSRP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient }, + { &hf_nr_rrc_ssbFilterCoefficientRSRQ, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient }, + { &hf_nr_rrc_ssbFilterCoefficientRS_SINR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient }, + { &hf_nr_rrc_csi_rsFilterCoefficientRSRP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient }, + { &hf_nr_rrc_csi_rsFilterCoefficientRSRQ, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient }, + { &hf_nr_rrc_csi_rsFilterCoefficientRS_SINR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_QuantityConfigRS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_QuantityConfigRS, QuantityConfigRS_sequence); + + return offset; +} + + +static const per_sequence_t QuantityConfig_sequence[] = { + { &hf_nr_rrc_quantityConfigRSindex, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_QuantityConfigRS }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_QuantityConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_QuantityConfig, QuantityConfig_sequence); + + return offset; +} + + +static const per_sequence_t MeasGapConfig_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasGapConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasGapConfig, MeasGapConfig_sequence); + + return offset; +} + + +static const per_sequence_t MeasConfig_sequence[] = { + { &hf_nr_rrc_measObjectToRemoveList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasObjectToRemoveList }, + { &hf_nr_rrc_measObjectToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasObjectToAddModList }, + { &hf_nr_rrc_reportConfigToRemoveList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ReportConfigToRemoveList }, + { &hf_nr_rrc_reportConfigToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ReportConfigToAddModList }, + { &hf_nr_rrc_measIdToRemoveList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasIdToRemoveList }, + { &hf_nr_rrc_measIdToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasIdToAddModList }, + { &hf_nr_rrc_s_MeasureConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_s_MeasureConfig }, + { &hf_nr_rrc_quantityConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_QuantityConfig }, + { &hf_nr_rrc_measGapConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasGapConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasConfig, MeasConfig_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_nonCriticalExtension, T_nonCriticalExtension_sequence); + + return offset; +} + + +static const per_sequence_t RRCReconfiguration_IEs_sequence[] = { + { &hf_nr_rrc_radioBearerConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RadioBearerConfig }, + { &hf_nr_rrc_masterCellGroupConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellGroupConfig }, + { &hf_nr_rrc_secondaryCellGroupToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupConfig }, + { &hf_nr_rrc_secondaryCellGroupToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupId }, + { &hf_nr_rrc_measConfig , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasConfig }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReconfiguration_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReconfiguration_IEs, RRCReconfiguration_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_01_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensionsFuture_01, T_criticalExtensionsFuture_01_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_01_vals[] = { + { 0, "rrcReconfiguration" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_01_choice[] = { + { 0, &hf_nr_rrc_rrcReconfiguration_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfiguration_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_01 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensions_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensions_01, T_criticalExtensions_01_choice, + NULL); + + return offset; +} + + +static const per_sequence_t RRCReconfiguration_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_01 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReconfiguration, RRCReconfiguration_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_c1_vals[] = { + { 0, "rrcReconfiguration" }, + { 1, "spare15" }, + { 2, "spare14" }, + { 3, "spare13" }, + { 4, "spare12" }, + { 5, "spare11" }, + { 6, "spare10" }, + { 7, "spare9" }, + { 8, "spare8" }, + { 9, "spare7" }, + { 10, "spare6" }, + { 11, "spare5" }, + { 12, "spare4" }, + { 13, "spare3" }, + { 14, "spare2" }, + { 15, "spare1" }, + { 0, NULL } +}; + +static const per_choice_t T_c1_choice[] = { + { 0, &hf_nr_rrc_rrcReconfiguration, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfiguration }, + { 1, &hf_nr_rrc_spare15 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 2, &hf_nr_rrc_spare14 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 3, &hf_nr_rrc_spare13 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 4, &hf_nr_rrc_spare12 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 5, &hf_nr_rrc_spare11 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 6, &hf_nr_rrc_spare10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 7, &hf_nr_rrc_spare9 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 8, &hf_nr_rrc_spare8 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 9, &hf_nr_rrc_spare7 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 10, &hf_nr_rrc_spare6 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 11, &hf_nr_rrc_spare5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 12, &hf_nr_rrc_spare4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 13, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 14, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 15, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_c1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_c1, T_c1_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_messageClassExtension_01_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_messageClassExtension_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_messageClassExtension_01, T_messageClassExtension_01_sequence); + + return offset; +} + + +static const value_string nr_rrc_DL_DCCH_MessageType_vals[] = { + { 0, "c1" }, + { 1, "messageClassExtension" }, + { 0, NULL } +}; + +static const per_choice_t DL_DCCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1 }, + { 1, &hf_nr_rrc_messageClassExtension_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_01 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_DL_DCCH_MessageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DL_DCCH_MessageType, DL_DCCH_MessageType_choice, + NULL); + + return offset; +} + + +static const per_sequence_t DL_DCCH_Message_sequence[] = { + { &hf_nr_rrc_message_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DL_DCCH_MessageType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_DL_DCCH_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + proto_item *ti; + + col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_clear(actx->pinfo->cinfo, COL_INFO); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + tree = proto_item_add_subtree(ti, ett_nr_rrc); + + actx->pinfo->link_dir = P2P_DIR_DL; + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DL_DCCH_Message, DL_DCCH_Message_sequence); + + return offset; +} + + +static const per_sequence_t ResultsSSBCell_sequence[] = { + { &hf_nr_rrc_ssb_Cellrsrp , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, + { &hf_nr_rrc_ssb_Cellrsrq , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRQ_Range }, + { &hf_nr_rrc_ssb_Cellsinr , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SINR_Range }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ResultsSSBCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ResultsSSBCell, ResultsSSBCell_sequence); + + return offset; +} + + +static const per_sequence_t ResultsCSI_RSCell_sequence[] = { + { &hf_nr_rrc_csi_rs_Cellrsrp, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, + { &hf_nr_rrc_csi_rs_Cellrsrq, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRQ_Range }, + { &hf_nr_rrc_csi_rs_Cellsinr, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SINR_Range }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ResultsCSI_RSCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ResultsCSI_RSCell, ResultsCSI_RSCell_sequence); + + return offset; +} + + +static const per_sequence_t T_cellResults_sequence[] = { + { &hf_nr_rrc_resultsSSBCell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ResultsSSBCell }, + { &hf_nr_rrc_resultsCSI_RSCell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ResultsCSI_RSCell }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_cellResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_cellResults, T_cellResults_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_SSB_Index(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 7U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t ResultsPerSSBIndex_sequence[] = { + { &hf_nr_rrc_ssb_Index , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_Index }, + { &hf_nr_rrc_ss_rsrp , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, + { &hf_nr_rrc_ss_rsrq , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRQ_Range }, + { &hf_nr_rrc_ss_sinr , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SINR_Range }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ResultsPerSSBIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ResultsPerSSBIndex, ResultsPerSSBIndex_sequence); + + return offset; +} + + +static const per_sequence_t ResultsPerSSBIndexList_sequence_of[1] = { + { &hf_nr_rrc_ResultsPerSSBIndexList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ResultsPerSSBIndex }, +}; + +static int +dissect_nr_rrc_ResultsPerSSBIndexList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ResultsPerSSBIndexList, ResultsPerSSBIndexList_sequence_of, + 1, maxNroSSBs, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_CSI_RSIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const per_sequence_t ResultsPerCSI_RSIndex_sequence[] = { + { &hf_nr_rrc_csi_rsIndex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RSIndex }, + { &hf_nr_rrc_csi_rsrp , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, + { &hf_nr_rrc_csi_rsrq , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRQ_Range }, + { &hf_nr_rrc_csi_sinr , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SINR_Range }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ResultsPerCSI_RSIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ResultsPerCSI_RSIndex, ResultsPerCSI_RSIndex_sequence); + + return offset; +} + + +static const per_sequence_t ResultsPerCSI_RSIndexList_sequence_of[1] = { + { &hf_nr_rrc_ResultsPerCSI_RSIndexList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ResultsPerCSI_RSIndex }, +}; + +static int +dissect_nr_rrc_ResultsPerCSI_RSIndexList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ResultsPerCSI_RSIndexList, ResultsPerCSI_RSIndexList_sequence_of, + 1, maxNroCSI_RS, FALSE); + + return offset; +} + + +static const per_sequence_t T_rsIndexResults_sequence[] = { + { &hf_nr_rrc_resultsSSBIndexes, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ResultsPerSSBIndexList }, + { &hf_nr_rrc_resultsCSI_RSIndexes, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ResultsPerCSI_RSIndexList }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_rsIndexResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_rsIndexResults, T_rsIndexResults_sequence); + + return offset; +} + + +static const per_sequence_t T_measResult_sequence[] = { + { &hf_nr_rrc_cellResults , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cellResults }, + { &hf_nr_rrc_rsIndexResults, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_rsIndexResults }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_measResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_measResult, T_measResult_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultNR_sequence[] = { + { &hf_nr_rrc_physCellId , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_cgi_Info , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, + { &hf_nr_rrc_measResult , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_measResult }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasResultNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasResultNR, MeasResultNR_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultServFreq_sequence[] = { + { &hf_nr_rrc_servFreqId , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_measResultServingCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultNR }, + { &hf_nr_rrc_measResultBestNeighCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultNR }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasResultServFreq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasResultServFreq, MeasResultServFreq_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultServFreqList_sequence_of[1] = { + { &hf_nr_rrc_MeasResultServFreqList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultServFreq }, +}; + +static int +dissect_nr_rrc_MeasResultServFreqList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasResultServFreqList, MeasResultServFreqList_sequence_of, + 1, maxServCell, FALSE); + + return offset; +} + + +static const per_sequence_t MeasResultListNR_sequence_of[1] = { + { &hf_nr_rrc_MeasResultListNR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultNR }, +}; + +static int +dissect_nr_rrc_MeasResultListNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasResultListNR, MeasResultListNR_sequence_of, + 1, maxCellReport, FALSE); + + return offset; +} + + +static const per_sequence_t MeasResultListEUTRA_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasResultListEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasResultListEUTRA, MeasResultListEUTRA_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_measResultNeighCells_vals[] = { + { 0, "measResultListNR" }, + { 1, "measResultListEUTRA" }, + { 0, NULL } +}; + +static const per_choice_t T_measResultNeighCells_choice[] = { + { 0, &hf_nr_rrc_measResultListNR, ASN1_EXTENSION_ROOT , dissect_nr_rrc_MeasResultListNR }, + { 1, &hf_nr_rrc_measResultListEUTRA, ASN1_EXTENSION_ROOT , dissect_nr_rrc_MeasResultListEUTRA }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_measResultNeighCells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_measResultNeighCells, T_measResultNeighCells_choice, + NULL); + + return offset; +} + + +static const per_sequence_t MeasResults_sequence[] = { + { &hf_nr_rrc_measId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasId }, + { &hf_nr_rrc_measResultServingFreqList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultServFreqList }, + { &hf_nr_rrc_measResultNeighCells, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_measResultNeighCells }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasResults, MeasResults_sequence); + + return offset; +} + + +static const per_sequence_t MeasurementReport_IEs_sequence[] = { + { &hf_nr_rrc_measResults , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResults }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasurementReport_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasurementReport_IEs, MeasurementReport_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensionsFuture, T_criticalExtensionsFuture_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_vals[] = { + { 0, "measurementReport" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_choice[] = { + { 0, &hf_nr_rrc_measurementReport_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasurementReport_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensions, T_criticalExtensions_choice, + NULL); + + return offset; +} + + +static const per_sequence_t MeasurementReport_sequence[] = { + { &hf_nr_rrc_criticalExtensions, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Measurement Report"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasurementReport, MeasurementReport_sequence); + + return offset; +} + + +static const per_sequence_t RRCReconfigurationComplete_IEs_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReconfigurationComplete_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReconfigurationComplete_IEs, RRCReconfigurationComplete_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_02_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensionsFuture_02, T_criticalExtensionsFuture_02_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_02_vals[] = { + { 0, "rrcReconfigurationComplete" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_02_choice[] = { + { 0, &hf_nr_rrc_rrcReconfigurationComplete_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfigurationComplete_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_02, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_02 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensions_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensions_02, T_criticalExtensions_02_choice, + NULL); + + return offset; +} + + +static const per_sequence_t RRCReconfigurationComplete_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_02 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration Complete"); + + + + + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReconfigurationComplete, RRCReconfigurationComplete_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_c1_01_vals[] = { + { 0, "measurementReport" }, + { 1, "rrcReconfigurationComplete" }, + { 2, "spare14" }, + { 3, "spare13" }, + { 4, "spare12" }, + { 5, "spare11" }, + { 6, "spare10" }, + { 7, "spare9" }, + { 8, "spare8" }, + { 9, "spare7" }, + { 10, "spare6" }, + { 11, "spare5" }, + { 12, "spare4" }, + { 13, "spare3" }, + { 14, "spare2" }, + { 15, "spare1" }, + { 0, NULL } +}; + +static const per_choice_t T_c1_01_choice[] = { + { 0, &hf_nr_rrc_measurementReport, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasurementReport }, + { 1, &hf_nr_rrc_rrcReconfigurationComplete, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfigurationComplete }, + { 2, &hf_nr_rrc_spare14 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 3, &hf_nr_rrc_spare13 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 4, &hf_nr_rrc_spare12 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 5, &hf_nr_rrc_spare11 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 6, &hf_nr_rrc_spare10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 7, &hf_nr_rrc_spare9 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 8, &hf_nr_rrc_spare8 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 9, &hf_nr_rrc_spare7 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 10, &hf_nr_rrc_spare6 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 11, &hf_nr_rrc_spare5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 12, &hf_nr_rrc_spare4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 13, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 14, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 15, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_c1_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_c1_01, T_c1_01_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_messageClassExtension_02_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_messageClassExtension_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_messageClassExtension_02, T_messageClassExtension_02_sequence); + + return offset; +} + + +static const value_string nr_rrc_UL_DCCH_MessageType_vals[] = { + { 0, "c1" }, + { 1, "messageClassExtension" }, + { 0, NULL } +}; + +static const per_choice_t UL_DCCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_01 }, + { 1, &hf_nr_rrc_messageClassExtension_02, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_02 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_UL_DCCH_MessageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UL_DCCH_MessageType, UL_DCCH_MessageType_choice, + NULL); + + return offset; +} + + +static const per_sequence_t UL_DCCH_Message_sequence[] = { + { &hf_nr_rrc_message_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UL_DCCH_MessageType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UL_DCCH_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + proto_item *ti; + + col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_clear(actx->pinfo->cinfo, COL_INFO); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + tree = proto_item_add_subtree(ti, ett_nr_rrc); + + actx->pinfo->link_dir = P2P_DIR_UL; + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UL_DCCH_Message, UL_DCCH_Message_sequence); + + return offset; +} + +/*--- PDUs ---*/ + +static int dissect_BCCH_BCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_nr_rrc_BCCH_BCH_Message(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_BCCH_BCH_Message_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_nr_rrc_DL_DCCH_Message(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_DL_DCCH_Message_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_nr_rrc_UL_DCCH_Message(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_UL_DCCH_Message_PDU); + offset += 7; offset >>= 3; + return offset; +} + + +/*--- End of included file: packet-nr-rrc-fn.c ---*/ +#line 78 "./asn1/nr-rrc/packet-nr-rrc-template.c" + +void proto_register_nr_rrc(void) { + + /* List of fields */ + static hf_register_info hf[] = { + + +/*--- Included file: packet-nr-rrc-hfarr.c ---*/ +#line 1 "./asn1/nr-rrc/packet-nr-rrc-hfarr.c" + { &hf_nr_rrc_BCCH_BCH_Message_PDU, + { "BCCH-BCH-Message", "nr-rrc.BCCH_BCH_Message_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_DL_DCCH_Message_PDU, + { "DL-DCCH-Message", "nr-rrc.DL_DCCH_Message_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_UL_DCCH_Message_PDU, + { "UL-DCCH-Message", "nr-rrc.UL_DCCH_Message_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_message, + { "message", "nr-rrc.message", + FT_UINT32, BASE_DEC, VALS(nr_rrc_BCCH_BCH_MessageType_vals), 0, + "BCCH_BCH_MessageType", HFILL }}, + { &hf_nr_rrc_mib, + { "mib", "nr-rrc.mib_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_messageClassExtension, + { "messageClassExtension", "nr-rrc.messageClassExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_message_01, + { "message", "nr-rrc.message", + FT_UINT32, BASE_DEC, VALS(nr_rrc_DL_DCCH_MessageType_vals), 0, + "DL_DCCH_MessageType", HFILL }}, + { &hf_nr_rrc_c1, + { "c1", "nr-rrc.c1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rrcReconfiguration, + { "rrcReconfiguration", "nr-rrc.rrcReconfiguration_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare15, + { "spare15", "nr-rrc.spare15_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare14, + { "spare14", "nr-rrc.spare14_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare13, + { "spare13", "nr-rrc.spare13_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare12, + { "spare12", "nr-rrc.spare12_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare11, + { "spare11", "nr-rrc.spare11_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare10, + { "spare10", "nr-rrc.spare10_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare9, + { "spare9", "nr-rrc.spare9_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare8, + { "spare8", "nr-rrc.spare8_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare7, + { "spare7", "nr-rrc.spare7_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare6, + { "spare6", "nr-rrc.spare6_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare5, + { "spare5", "nr-rrc.spare5_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare4, + { "spare4", "nr-rrc.spare4_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare3, + { "spare3", "nr-rrc.spare3_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare2, + { "spare2", "nr-rrc.spare2_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare1, + { "spare1", "nr-rrc.spare1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_messageClassExtension_01, + { "messageClassExtension", "nr-rrc.messageClassExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_messageClassExtension_01", HFILL }}, + { &hf_nr_rrc_message_02, + { "message", "nr-rrc.message", + FT_UINT32, BASE_DEC, VALS(nr_rrc_UL_DCCH_MessageType_vals), 0, + "UL_DCCH_MessageType", HFILL }}, + { &hf_nr_rrc_c1_01, + { "c1", "nr-rrc.c1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_01_vals), 0, + "T_c1_01", HFILL }}, + { &hf_nr_rrc_measurementReport, + { "measurementReport", "nr-rrc.measurementReport_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rrcReconfigurationComplete, + { "rrcReconfigurationComplete", "nr-rrc.rrcReconfigurationComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_messageClassExtension_02, + { "messageClassExtension", "nr-rrc.messageClassExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_messageClassExtension_02", HFILL }}, + { &hf_nr_rrc_ssb_IndexExplicit, + { "ssb-IndexExplicit", "nr-rrc.ssb_IndexExplicit", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_7", HFILL }}, + { &hf_nr_rrc_halfFrameIndex, + { "halfFrameIndex", "nr-rrc.halfFrameIndex", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_halfFrameIndex_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_systemFrameNumber, + { "systemFrameNumber", "nr-rrc.systemFrameNumber", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_10", HFILL }}, + { &hf_nr_rrc_subCarrierSpacingCommon, + { "subCarrierSpacingCommon", "nr-rrc.subCarrierSpacingCommon", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, + { &hf_nr_rrc_ssb_subcarrierOffset, + { "ssb-subcarrierOffset", "nr-rrc.ssb_subcarrierOffset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_11", HFILL }}, + { &hf_nr_rrc_dmrs_TypeA_Position, + { "dmrs-TypeA-Position", "nr-rrc.dmrs_TypeA_Position", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_TypeA_Position_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcchConfigSIB1, + { "pdcchConfigSIB1", "nr-rrc.pdcchConfigSIB1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_nr_rrc_cellBarred, + { "cellBarred", "nr-rrc.cellBarred", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cellBarred_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_intraFreqReselection, + { "intraFreqReselection", "nr-rrc.intraFreqReselection", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_intraFreqReselection_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare, + { "spare", "nr-rrc.spare", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_0", HFILL }}, + { &hf_nr_rrc_criticalExtensions, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_measurementReport_01, + { "measurementReport", "nr-rrc.measurementReport_element", + FT_NONE, BASE_NONE, NULL, 0, + "MeasurementReport_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measResults, + { "measResults", "nr-rrc.measResults_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rrc_TransactionIdentifier, + { "rrc-TransactionIdentifier", "nr-rrc.rrc_TransactionIdentifier", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_criticalExtensions_01, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_01_vals), 0, + "T_criticalExtensions_01", HFILL }}, + { &hf_nr_rrc_rrcReconfiguration_01, + { "rrcReconfiguration", "nr-rrc.rrcReconfiguration_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCReconfiguration_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_01, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_01", HFILL }}, + { &hf_nr_rrc_radioBearerConfig, + { "radioBearerConfig", "nr-rrc.radioBearerConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_masterCellGroupConfig, + { "masterCellGroupConfig", "nr-rrc.masterCellGroupConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + "CellGroupConfig", HFILL }}, + { &hf_nr_rrc_secondaryCellGroupToAddModList, + { "secondaryCellGroupToAddModList", "nr-rrc.secondaryCellGroupToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupConfig", HFILL }}, + { &hf_nr_rrc_secondaryCellGroupToAddModList_item, + { "CellGroupConfig", "nr-rrc.CellGroupConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_secondaryCellGroupToReleaseList, + { "secondaryCellGroupToReleaseList", "nr-rrc.secondaryCellGroupToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupId", HFILL }}, + { &hf_nr_rrc_secondaryCellGroupToReleaseList_item, + { "CellGroupId", "nr-rrc.CellGroupId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measConfig, + { "measConfig", "nr-rrc.measConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_lateNonCriticalExtension, + { "lateNonCriticalExtension", "nr-rrc.lateNonCriticalExtension", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_criticalExtensions_02, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_02_vals), 0, + "T_criticalExtensions_02", HFILL }}, + { &hf_nr_rrc_rrcReconfigurationComplete_01, + { "rrcReconfigurationComplete", "nr-rrc.rrcReconfigurationComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCReconfigurationComplete_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_02, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_02", HFILL }}, + { &hf_nr_rrc_bandwidthPartId, + { "bandwidthPartId", "nr-rrc.bandwidthPartId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_location, + { "location", "nr-rrc.location", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxNrofPhysicalResourceBlocksTimes4", HFILL }}, + { &hf_nr_rrc_bandwidth, + { "bandwidth", "nr-rrc.bandwidth", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofPhysicalResourceBlocks", HFILL }}, + { &hf_nr_rrc_subcarrierSpacing, + { "subcarrierSpacing", "nr-rrc.subcarrierSpacing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subcarrierSpacing_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cyclicPrefix, + { "cyclicPrefix", "nr-rrc.cyclicPrefix", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cyclicPrefix_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_directCurrentLocation, + { "directCurrentLocation", "nr-rrc.directCurrentLocation", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3299", HFILL }}, + { &hf_nr_rrc_cellGroupId, + { "cellGroupId", "nr-rrc.cellGroupId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rlc_BearerToAddModList, + { "rlc-BearerToAddModList", "nr-rrc.rlc_BearerToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxLCH_OF_LCH_Config", HFILL }}, + { &hf_nr_rrc_rlc_BearerToAddModList_item, + { "LCH-Config", "nr-rrc.LCH_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rlc_BearerToReleaseList, + { "rlc-BearerToReleaseList", "nr-rrc.rlc_BearerToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity", HFILL }}, + { &hf_nr_rrc_rlc_BearerToReleaseList_item, + { "LogicalChannelIdentity", "nr-rrc.LogicalChannelIdentity", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_mac_CellGroupConfig, + { "mac-CellGroupConfig", "nr-rrc.mac_CellGroupConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rlf_TimersAndConstants, + { "rlf-TimersAndConstants", "nr-rrc.rlf_TimersAndConstants_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_physical_CellGroupConfig, + { "physical-CellGroupConfig", "nr-rrc.physical_CellGroupConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + "PhysicalCellGroupConfig", HFILL }}, + { &hf_nr_rrc_spCellConfig, + { "spCellConfig", "nr-rrc.spCellConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sCellToAddModList, + { "sCellToAddModList", "nr-rrc.sCellToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sCellToReleaseList, + { "sCellToReleaseList", "nr-rrc.sCellToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_logicalChannelIdentity, + { "logicalChannelIdentity", "nr-rrc.logicalChannelIdentity", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_servedRadioBearer, + { "servedRadioBearer", "nr-rrc.servedRadioBearer", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_32", HFILL }}, + { &hf_nr_rrc_reestablishRLC, + { "reestablishRLC", "nr-rrc.reestablishRLC", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reestablishRLC_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rlc_Config, + { "rlc-Config", "nr-rrc.rlc_Config", + FT_UINT32, BASE_DEC, VALS(nr_rrc_RLC_Config_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_mac_LogicalChannelConfig, + { "mac-LogicalChannelConfig", "nr-rrc.mac_LogicalChannelConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + "LogicalChannelConfig", HFILL }}, + { &hf_nr_rrc_harq_ACK_Spatial_Bundling, + { "harq-ACK-Spatial-Bundling", "nr-rrc.harq_ACK_Spatial_Bundling", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_harq_ACK_Spatial_Bundling_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_reconfigurationWithSync, + { "reconfigurationWithSync", "nr-rrc.reconfigurationWithSync_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spCellConfigCommon, + { "spCellConfigCommon", "nr-rrc.spCellConfigCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + "ServingCellConfigCommon", HFILL }}, + { &hf_nr_rrc_newUE_Identity, + { "newUE-Identity", "nr-rrc.newUE_Identity", + FT_BYTES, BASE_NONE, NULL, 0, + "C_RNTI", HFILL }}, + { &hf_nr_rrc_t304, + { "t304", "nr-rrc.t304", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t304_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rach_ConfigDedicated, + { "rach-ConfigDedicated", "nr-rrc.rach_ConfigDedicated_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spCellConfigDedicated, + { "spCellConfigDedicated", "nr-rrc.spCellConfigDedicated_element", + FT_NONE, BASE_NONE, NULL, 0, + "ServingCellConfigDedicated", HFILL }}, + { &hf_nr_rrc_SCellToReleaseList_item, + { "SCellIndex", "nr-rrc.SCellIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_SCellToAddModList_item, + { "SCellConfig", "nr-rrc.SCellConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sCellIndex, + { "sCellIndex", "nr-rrc.sCellIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sCellConfigCommon, + { "sCellConfigCommon", "nr-rrc.sCellConfigCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + "ServingCellConfigCommon", HFILL }}, + { &hf_nr_rrc_sCellConfigDedicated, + { "sCellConfigDedicated", "nr-rrc.sCellConfigDedicated_element", + FT_NONE, BASE_NONE, NULL, 0, + "ServingCellConfigDedicated", HFILL }}, + { &hf_nr_rrc_CellIndexList_item, + { "CellIndex", "nr-rrc.CellIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_schedulingCellInfo, + { "schedulingCellInfo", "nr-rrc.schedulingCellInfo", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_schedulingCellInfo_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_own, + { "own", "nr-rrc.own_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cif_Presence, + { "cif-Presence", "nr-rrc.cif_Presence", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_other, + { "other", "nr-rrc.other_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_schedulingCellId, + { "schedulingCellId", "nr-rrc.schedulingCellId", + FT_UINT32, BASE_DEC, NULL, 0, + "ServCellIndex", HFILL }}, + { &hf_nr_rrc_pdsch_Start, + { "pdsch-Start", "nr-rrc.pdsch_Start", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_4", HFILL }}, + { &hf_nr_rrc_cif_InSchedulingCell, + { "cif-InSchedulingCell", "nr-rrc.cif_InSchedulingCell", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_7", HFILL }}, + { &hf_nr_rrc_csi_ResourceConfigs, + { "csi-ResourceConfigs", "nr-rrc.csi_ResourceConfigs", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig", HFILL }}, + { &hf_nr_rrc_csi_ResourceConfigs_item, + { "CSI-ResourceConfig", "nr-rrc.CSI_ResourceConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_ReportConfigs, + { "csi-ReportConfigs", "nr-rrc.csi_ReportConfigs", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_Reports_OF_CSI_ReportConfig", HFILL }}, + { &hf_nr_rrc_csi_ReportConfigs_item, + { "CSI-ReportConfig", "nr-rrc.CSI_ReportConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_MeasIdToAddModList, + { "csi-MeasIdToAddModList", "nr-rrc.csi_MeasIdToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_MeasId_OF_CSI_MeasIdToAddMod", HFILL }}, + { &hf_nr_rrc_csi_MeasIdToAddModList_item, + { "CSI-MeasIdToAddMod", "nr-rrc.CSI_MeasIdToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportTrigger, + { "reportTrigger", "nr-rrc.reportTrigger_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportTriggerSize, + { "reportTriggerSize", "nr-rrc.reportTriggerSize", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_6", HFILL }}, + { &hf_nr_rrc_csi_ResourceConfigId, + { "csi-ResourceConfigId", "nr-rrc.csi_ResourceConfigId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_ResourceSets, + { "csi-ResourceSets", "nr-rrc.csi_ResourceSets", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_ResourceSets_OF_CSI_ResourceSet", HFILL }}, + { &hf_nr_rrc_csi_ResourceSets_item, + { "CSI-ResourceSet", "nr-rrc.CSI_ResourceSet_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_Resources, + { "ssb-Resources", "nr-rrc.ssb_Resources", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSSB_Resources_1_OF_CSI_SSB_Resource", HFILL }}, + { &hf_nr_rrc_ssb_Resources_item, + { "CSI-SSB-Resource", "nr-rrc.CSI_SSB_Resource_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resourceType, + { "resourceType", "nr-rrc.resourceType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourceType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_aperiodic, + { "aperiodic", "nr-rrc.aperiodic_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_semiPersistent, + { "semiPersistent", "nr-rrc.semiPersistent_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodic, + { "periodic", "nr-rrc.periodic_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_ResourceSetId, + { "csi-ResourceSetId", "nr-rrc.csi_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_rs_Resources, + { "csi-rs-Resources", "nr-rrc.csi_rs_Resources", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_Resource", HFILL }}, + { &hf_nr_rrc_csi_rs_Resources_item, + { "NZP-CSI-RS-Resource", "nr-rrc.NZP_CSI_RS_Resource_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_repetition, + { "repetition", "nr-rrc.repetition", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_nzp_csi_rs_ResourceId, + { "nzp-csi-rs-ResourceId", "nr-rrc.nzp_csi_rs_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofPorts, + { "nrofPorts", "nr-rrc.nrofPorts", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofPorts_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_resourceMapping, + { "resourceMapping", "nr-rrc.resourceMapping_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cdm_Value, + { "cdm-Value", "nr-rrc.cdm_Value", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cdm_Value_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cdm_Pattern, + { "cdm-Pattern", "nr-rrc.cdm_Pattern", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cdm_Pattern_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RS_Density, + { "csi-RS-Density", "nr-rrc.csi_RS_Density", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_RS_Density_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RS_FreqBand, + { "csi-RS-FreqBand", "nr-rrc.csi_RS_FreqBand_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_powerControlOffset, + { "powerControlOffset", "nr-rrc.powerControlOffset_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_powerControlOffsetSS, + { "powerControlOffsetSS", "nr-rrc.powerControlOffsetSS_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_scramblingID, + { "scramblingID", "nr-rrc.scramblingID", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0", HFILL }}, + { &hf_nr_rrc_csi_RS_timeConfig, + { "csi-RS-timeConfig", "nr-rrc.csi_RS_timeConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_RS_timeConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sl5, + { "sl5", "nr-rrc.sl5", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4", HFILL }}, + { &hf_nr_rrc_sl10, + { "sl10", "nr-rrc.sl10", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_9", HFILL }}, + { &hf_nr_rrc_sl20, + { "sl20", "nr-rrc.sl20", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_19", HFILL }}, + { &hf_nr_rrc_sl40, + { "sl40", "nr-rrc.sl40", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_39", HFILL }}, + { &hf_nr_rrc_sl80, + { "sl80", "nr-rrc.sl80", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_79", HFILL }}, + { &hf_nr_rrc_sl160, + { "sl160", "nr-rrc.sl160", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_159", HFILL }}, + { &hf_nr_rrc_sl320, + { "sl320", "nr-rrc.sl320", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_319", HFILL }}, + { &hf_nr_rrc_sl640, + { "sl640", "nr-rrc.sl640", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_639", HFILL }}, + { &hf_nr_rrc_reportConfigId, + { "reportConfigId", "nr-rrc.reportConfigId", + FT_UINT32, BASE_DEC, NULL, 0, + "CSI_ReportConfigId", HFILL }}, + { &hf_nr_rrc_reportConfigType, + { "reportConfigType", "nr-rrc.reportConfigType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportConfigType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodic_01, + { "periodic", "nr-rrc.periodic_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportSlotConfig, + { "reportSlotConfig", "nr-rrc.reportSlotConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportSlotConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pucch_CSI_ResourceIndex, + { "pucch-CSI-ResourceIndex", "nr-rrc.pucch_CSI_ResourceIndex_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_semiPersistent_01, + { "semiPersistent", "nr-rrc.semiPersistent_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportSlotConfig_01, + { "reportSlotConfig", "nr-rrc.reportSlotConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportSlotConfig_01_vals), 0, + "T_reportSlotConfig_01", HFILL }}, + { &hf_nr_rrc_aperiodic_01, + { "aperiodic", "nr-rrc.aperiodic_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_aperiodicReportSlotOffset, + { "aperiodicReportSlotOffset", "nr-rrc.aperiodicReportSlotOffset_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportQuantity, + { "reportQuantity", "nr-rrc.reportQuantity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportQuantity_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cRI_RI_PMI_CQI, + { "cRI-RI-PMI-CQI", "nr-rrc.cRI_RI_PMI_CQI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cRI_RI_i1, + { "cRI-RI-i1", "nr-rrc.cRI_RI_i1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cRI_RI_i1_CQI, + { "cRI-RI-i1-CQI", "nr-rrc.cRI_RI_i1_CQI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdsch_BundleSizeForCSI, + { "pdsch-BundleSizeForCSI", "nr-rrc.pdsch_BundleSizeForCSI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_BundleSizeForCSI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cRI_RI_CQI, + { "cRI-RI-CQI", "nr-rrc.cRI_RI_CQI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cRI, + { "cRI", "nr-rrc.cRI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cRI_RSRP, + { "cRI-RSRP", "nr-rrc.cRI_RSRP_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare0, + { "spare0", "nr-rrc.spare0_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportFreqConfiguration, + { "reportFreqConfiguration", "nr-rrc.reportFreqConfiguration_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cqi_FormatIndicator, + { "cqi-FormatIndicator", "nr-rrc.cqi_FormatIndicator", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cqi_FormatIndicator_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pmi_FormatIndicator, + { "pmi-FormatIndicator", "nr-rrc.pmi_FormatIndicator", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pmi_FormatIndicator_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_ReportingBand, + { "csi-ReportingBand", "nr-rrc.csi_ReportingBand", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measRestrictionTimeForChannel, + { "measRestrictionTimeForChannel", "nr-rrc.measRestrictionTimeForChannel_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measRestrictionTimeForInterference, + { "measRestrictionTimeForInterference", "nr-rrc.measRestrictionTimeForInterference_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_codebookConfig, + { "codebookConfig", "nr-rrc.codebookConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofCQIsPerReport, + { "nrofCQIsPerReport", "nr-rrc.nrofCQIsPerReport", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofCQIsPerReport_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_groupBasedBeamReporting, + { "groupBasedBeamReporting", "nr-rrc.groupBasedBeamReporting", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_groupBasedBeamReporting_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_enabled, + { "enabled", "nr-rrc.enabled_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofBeamsToReport, + { "nrofBeamsToReport", "nr-rrc.nrofBeamsToReport", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_2_4", HFILL }}, + { &hf_nr_rrc_disabled, + { "disabled", "nr-rrc.disabled_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofReportedRS, + { "nrofReportedRS", "nr-rrc.nrofReportedRS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofReportedRS_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cqi_Table, + { "cqi-Table", "nr-rrc.cqi_Table", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cqi_Table_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_subbandSize, + { "subbandSize", "nr-rrc.subbandSize", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subbandSize_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_bler_Target, + { "bler-Target", "nr-rrc.bler_Target", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bler_Target_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_codebookConfig_N1, + { "codebookConfig-N1", "nr-rrc.codebookConfig_N1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codebookConfig_N1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_codebookConfig_N2, + { "codebookConfig-N2", "nr-rrc.codebookConfig_N2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codebookConfig_N2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_codebookType, + { "codebookType", "nr-rrc.codebookType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codebookType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_type1, + { "type1", "nr-rrc.type1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_subType, + { "subType", "nr-rrc.subType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_codebookMode, + { "codebookMode", "nr-rrc.codebookMode", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codebookMode_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_numberOfPanels, + { "numberOfPanels", "nr-rrc.numberOfPanels", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_numberOfPanels_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_codebookSubsetRestrictionType1, + { "codebookSubsetRestrictionType1", "nr-rrc.codebookSubsetRestrictionType1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codebookSubsetRestrictionType1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_singlePanel, + { "singlePanel", "nr-rrc.singlePanel", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_singlePanel2TX, + { "singlePanel2TX", "nr-rrc.singlePanel2TX", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6", HFILL }}, + { &hf_nr_rrc_multiPanel, + { "multiPanel", "nr-rrc.multiPanel", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_singlePanelCodebookSubsetRestriction_i2, + { "singlePanelCodebookSubsetRestriction-i2", "nr-rrc.singlePanelCodebookSubsetRestriction_i2", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_ri_Restriction, + { "ri-Restriction", "nr-rrc.ri_Restriction", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ri_Restriction_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_typeI_SinglePanelRI_Restriction, + { "typeI-SinglePanelRI-Restriction", "nr-rrc.typeI_SinglePanelRI_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_typeI_MultiPanelRI_Restriction, + { "typeI-MultiPanelRI-Restriction", "nr-rrc.typeI_MultiPanelRI_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_nr_rrc_type2, + { "type2", "nr-rrc.type2_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_subType_01, + { "subType", "nr-rrc.subType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subType_01_vals), 0, + "T_subType_01", HFILL }}, + { &hf_nr_rrc_phaseAlphabetSize, + { "phaseAlphabetSize", "nr-rrc.phaseAlphabetSize", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phaseAlphabetSize_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_subbandAmplitude, + { "subbandAmplitude", "nr-rrc.subbandAmplitude", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_numberOfBeams, + { "numberOfBeams", "nr-rrc.numberOfBeams", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_numberOfBeams_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_portSelectionSamplingSize, + { "portSelectionSamplingSize", "nr-rrc.portSelectionSamplingSize", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_portSelectionSamplingSize_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_codebookSubsetRestrictionType2, + { "codebookSubsetRestrictionType2", "nr-rrc.codebookSubsetRestrictionType2", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ri_Restriction_01, + { "ri-Restriction", "nr-rrc.ri_Restriction", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ri_Restriction_01_vals), 0, + "T_ri_Restriction_01", HFILL }}, + { &hf_nr_rrc_typeII_RI_Restriction, + { "typeII-RI-Restriction", "nr-rrc.typeII_RI_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_typeII_PortSelectionRI_Restriction, + { "typeII-PortSelectionRI-Restriction", "nr-rrc.typeII_PortSelectionRI_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_csi_measId, + { "csi-measId", "nr-rrc.csi_measId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RS_resourceConfigId, + { "csi-RS-resourceConfigId", "nr-rrc.csi_RS_resourceConfigId", + FT_INT32, BASE_DEC, NULL, 0, + "CSI_RS_ConfigurationId", HFILL }}, + { &hf_nr_rrc_csi_reportConfigId, + { "csi-reportConfigId", "nr-rrc.csi_reportConfigId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measQuantity, + { "measQuantity", "nr-rrc.measQuantity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_measQuantity_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_carrierFreqUL, + { "carrierFreqUL", "nr-rrc.carrierFreqUL", + FT_INT32, BASE_DEC, NULL, 0, + "ARFCN_ValueNR", HFILL }}, + { &hf_nr_rrc_carrierBandwidthUL, + { "carrierBandwidthUL", "nr-rrc.carrierBandwidthUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_CarrierBandwidthNR_vals), 0, + "CarrierBandwidthNR", HFILL }}, + { &hf_nr_rrc_additionalSpectrumEmission, + { "additionalSpectrumEmission", "nr-rrc.additionalSpectrumEmission", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_p_Max, + { "p-Max", "nr-rrc.p_Max", + FT_INT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_frequencyShift7p5khz, + { "frequencyShift7p5khz", "nr-rrc.frequencyShift7p5khz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyShift7p5khz_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_initialUplinkBandwidthPart, + { "initialUplinkBandwidthPart", "nr-rrc.initialUplinkBandwidthPart_element", + FT_NONE, BASE_NONE, NULL, 0, + "BandwidthPart", HFILL }}, + { &hf_nr_rrc_ul_SpecificParameters, + { "ul-SpecificParameters", "nr-rrc.ul_SpecificParameters_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_priority, + { "priority", "nr-rrc.priority", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_16", HFILL }}, + { &hf_nr_rrc_prioritisedBitRate, + { "prioritisedBitRate", "nr-rrc.prioritisedBitRate", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_prioritisedBitRate_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_bucketSizeDuration, + { "bucketSizeDuration", "nr-rrc.bucketSizeDuration", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bucketSizeDuration_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_allowedSubCarrierSpacing, + { "allowedSubCarrierSpacing", "nr-rrc.allowedSubCarrierSpacing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, + { &hf_nr_rrc_allowedTiming, + { "allowedTiming", "nr-rrc.allowedTiming_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_logicalChannelGroup, + { "logicalChannelGroup", "nr-rrc.logicalChannelGroup", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxLCid", HFILL }}, + { &hf_nr_rrc_logicalChannelSR_Mask, + { "logicalChannelSR-Mask", "nr-rrc.logicalChannelSR_Mask", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_logicalChannelSR_DelayTimerApplied, + { "logicalChannelSR-DelayTimerApplied", "nr-rrc.logicalChannelSR_DelayTimerApplied", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_drx_Config, + { "drx-Config", "nr-rrc.drx_Config", + FT_UINT32, BASE_DEC, VALS(nr_rrc_DRX_Config_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_schedulingRequestConfig, + { "schedulingRequestConfig", "nr-rrc.schedulingRequestConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_bsr_Config, + { "bsr-Config", "nr-rrc.bsr_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + "BSR_Configuration", HFILL }}, + { &hf_nr_rrc_tag_Config, + { "tag-Config", "nr-rrc.tag_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + "TAG_Configuration", HFILL }}, + { &hf_nr_rrc_phr_Config, + { "phr-Config", "nr-rrc.phr_Config", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PHR_Config_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sCellDeactivationTimer, + { "sCellDeactivationTimer", "nr-rrc.sCellDeactivationTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sCellDeactivationTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_skipUplinkTxDynamic, + { "skipUplinkTxDynamic", "nr-rrc.skipUplinkTxDynamic", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_release, + { "release", "nr-rrc.release_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drx_onDurationTimer, + { "drx-onDurationTimer", "nr-rrc.drx_onDurationTimer", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_onDurationTimer_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drx_InactivityTimer, + { "drx-InactivityTimer", "nr-rrc.drx_InactivityTimer", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_InactivityTimer_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drx_HARQ_RTT_TimerDL, + { "drx-HARQ-RTT-TimerDL", "nr-rrc.drx_HARQ_RTT_TimerDL", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_56", HFILL }}, + { &hf_nr_rrc_drx_HARQ_RTT_TimerUL, + { "drx-HARQ-RTT-TimerUL", "nr-rrc.drx_HARQ_RTT_TimerUL", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_56", HFILL }}, + { &hf_nr_rrc_drx_RetransmissionTimerDL, + { "drx-RetransmissionTimerDL", "nr-rrc.drx_RetransmissionTimerDL", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_RetransmissionTimerDL_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drx_RetransmissionTimerUL, + { "drx-RetransmissionTimerUL", "nr-rrc.drx_RetransmissionTimerUL", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_RetransmissionTimerUL_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drx_LongCycleStartOffset, + { "drx-LongCycleStartOffset", "nr-rrc.drx_LongCycleStartOffset", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_LongCycleStartOffset_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ms10, + { "ms10", "nr-rrc.ms10", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_9", HFILL }}, + { &hf_nr_rrc_ms20, + { "ms20", "nr-rrc.ms20", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_19", HFILL }}, + { &hf_nr_rrc_ms32, + { "ms32", "nr-rrc.ms32", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_ms40, + { "ms40", "nr-rrc.ms40", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_39", HFILL }}, + { &hf_nr_rrc_ms60, + { "ms60", "nr-rrc.ms60", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_59", HFILL }}, + { &hf_nr_rrc_ms64, + { "ms64", "nr-rrc.ms64", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_nr_rrc_ms70, + { "ms70", "nr-rrc.ms70", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_69", HFILL }}, + { &hf_nr_rrc_ms80, + { "ms80", "nr-rrc.ms80", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_79", HFILL }}, + { &hf_nr_rrc_ms128, + { "ms128", "nr-rrc.ms128", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_127", HFILL }}, + { &hf_nr_rrc_ms160, + { "ms160", "nr-rrc.ms160", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_159", HFILL }}, + { &hf_nr_rrc_ms256, + { "ms256", "nr-rrc.ms256", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_nr_rrc_ms320, + { "ms320", "nr-rrc.ms320", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_319", HFILL }}, + { &hf_nr_rrc_ms512, + { "ms512", "nr-rrc.ms512", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_511", HFILL }}, + { &hf_nr_rrc_ms640, + { "ms640", "nr-rrc.ms640", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_639", HFILL }}, + { &hf_nr_rrc_ms1024, + { "ms1024", "nr-rrc.ms1024", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, + { &hf_nr_rrc_ms1280, + { "ms1280", "nr-rrc.ms1280", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1279", HFILL }}, + { &hf_nr_rrc_ms2048, + { "ms2048", "nr-rrc.ms2048", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_2047", HFILL }}, + { &hf_nr_rrc_ms2560, + { "ms2560", "nr-rrc.ms2560", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_2559", HFILL }}, + { &hf_nr_rrc_ms5120, + { "ms5120", "nr-rrc.ms5120", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_5119", HFILL }}, + { &hf_nr_rrc_ms10240, + { "ms10240", "nr-rrc.ms10240", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_10239", HFILL }}, + { &hf_nr_rrc_shortDRX, + { "shortDRX", "nr-rrc.shortDRX_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drx_ShortCycle, + { "drx-ShortCycle", "nr-rrc.drx_ShortCycle", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_ShortCycle_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drx_ShortCycleTimer, + { "drx-ShortCycleTimer", "nr-rrc.drx_ShortCycleTimer", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_16", HFILL }}, + { &hf_nr_rrc_drx_SlotOffset, + { "drx-SlotOffset", "nr-rrc.drx_SlotOffset", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_SlotOffset_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_01, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_setup_01", HFILL }}, + { &hf_nr_rrc_phr_PeriodicTimer, + { "phr-PeriodicTimer", "nr-rrc.phr_PeriodicTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_PeriodicTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_phr_ProhibitTimer, + { "phr-ProhibitTimer", "nr-rrc.phr_ProhibitTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_ProhibitTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_phr_Tx_PowerFactorChange, + { "phr-Tx-PowerFactorChange", "nr-rrc.phr_Tx_PowerFactorChange", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_Tx_PowerFactorChange_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_multiplePHR, + { "multiplePHR", "nr-rrc.multiplePHR", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_phr_Type2PCell, + { "phr-Type2PCell", "nr-rrc.phr_Type2PCell", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_phr_Type2OtherCell, + { "phr-Type2OtherCell", "nr-rrc.phr_Type2OtherCell", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_phr_ModeOtherCG, + { "phr-ModeOtherCG", "nr-rrc.phr_ModeOtherCG", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_ModeOtherCG_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_tag_ToReleaseList, + { "tag-ToReleaseList", "nr-rrc.tag_ToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_tag_ToAddModList, + { "tag-ToAddModList", "nr-rrc.tag_ToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_TAG_ToReleaseList_item, + { "TAG-Id", "nr-rrc.TAG_Id", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_TAG_ToAddModList_item, + { "TAG-ToAddMod", "nr-rrc.TAG_ToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_tag_Id, + { "tag-Id", "nr-rrc.tag_Id", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_timeAlignmentTimer, + { "timeAlignmentTimer", "nr-rrc.timeAlignmentTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_TimeAlignmentTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodicBSR_Timer, + { "periodicBSR-Timer", "nr-rrc.periodicBSR_Timer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicBSR_Timer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_retxBSR_Timer, + { "retxBSR-Timer", "nr-rrc.retxBSR_Timer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_retxBSR_Timer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_logicaChannelSR_DelayTimer, + { "logicaChannelSR-DelayTimer", "nr-rrc.logicaChannelSR_DelayTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_logicaChannelSR_DelayTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_measObjectToRemoveList, + { "measObjectToRemoveList", "nr-rrc.measObjectToRemoveList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measObjectToAddModList, + { "measObjectToAddModList", "nr-rrc.measObjectToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportConfigToRemoveList, + { "reportConfigToRemoveList", "nr-rrc.reportConfigToRemoveList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportConfigToAddModList, + { "reportConfigToAddModList", "nr-rrc.reportConfigToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measIdToRemoveList, + { "measIdToRemoveList", "nr-rrc.measIdToRemoveList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measIdToAddModList, + { "measIdToAddModList", "nr-rrc.measIdToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_s_MeasureConfig, + { "s-MeasureConfig", "nr-rrc.s_MeasureConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_s_MeasureConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_rsrp, + { "ssb-rsrp", "nr-rrc.ssb_rsrp", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRP_Range", HFILL }}, + { &hf_nr_rrc_csi_rsrp, + { "csi-rsrp", "nr-rrc.csi_rsrp", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRP_Range", HFILL }}, + { &hf_nr_rrc_quantityConfig, + { "quantityConfig", "nr-rrc.quantityConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measGapConfig, + { "measGapConfig", "nr-rrc.measGapConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_MeasObjectToRemoveList_item, + { "MeasObjectId", "nr-rrc.MeasObjectId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_MeasIdToRemoveList_item, + { "MeasId", "nr-rrc.MeasId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ReportConfigToRemoveList_item, + { "ReportConfigId", "nr-rrc.ReportConfigId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_MeasIdToAddModList_item, + { "MeasIdToAddMod", "nr-rrc.MeasIdToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measId, + { "measId", "nr-rrc.measId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measObjectId, + { "measObjectId", "nr-rrc.measObjectId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportConfigId_01, + { "reportConfigId", "nr-rrc.reportConfigId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_carrierFreq, + { "carrierFreq", "nr-rrc.carrierFreq", + FT_INT32, BASE_DEC, NULL, 0, + "ARFCN_ValueNR", HFILL }}, + { &hf_nr_rrc_referenceSignalConfig, + { "referenceSignalConfig", "nr-rrc.referenceSignalConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_absThreshSS_BlocksConsolidation, + { "absThreshSS-BlocksConsolidation", "nr-rrc.absThreshSS_BlocksConsolidation_element", + FT_NONE, BASE_NONE, NULL, 0, + "ThresholdNR", HFILL }}, + { &hf_nr_rrc_absThreshCSI_RS_Consolidation, + { "absThreshCSI-RS-Consolidation", "nr-rrc.absThreshCSI_RS_Consolidation_element", + FT_NONE, BASE_NONE, NULL, 0, + "ThresholdNR", HFILL }}, + { &hf_nr_rrc_nroSS_BlocksToAverage, + { "nroSS-BlocksToAverage", "nr-rrc.nroSS_BlocksToAverage", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_2_maxNroSS_BlocksToAverage", HFILL }}, + { &hf_nr_rrc_nroCSI_RS_ResourcesToAverage, + { "nroCSI-RS-ResourcesToAverage", "nr-rrc.nroCSI_RS_ResourcesToAverage", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_2_maxNroCSI_RS_ResourcesToAverage", HFILL }}, + { &hf_nr_rrc_quantityConfigIndex, + { "quantityConfigIndex", "nr-rrc.quantityConfigIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxQuantityConfigId", HFILL }}, + { &hf_nr_rrc_offsetFreq, + { "offsetFreq", "nr-rrc.offsetFreq_element", + FT_NONE, BASE_NONE, NULL, 0, + "Q_OffsetRangeList", HFILL }}, + { &hf_nr_rrc_cellsToRemoveList, + { "cellsToRemoveList", "nr-rrc.cellsToRemoveList", + FT_UINT32, BASE_DEC, NULL, 0, + "CellIndexList", HFILL }}, + { &hf_nr_rrc_cellsToAddModList, + { "cellsToAddModList", "nr-rrc.cellsToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_blackCellsToRemoveList, + { "blackCellsToRemoveList", "nr-rrc.blackCellsToRemoveList", + FT_UINT32, BASE_DEC, NULL, 0, + "CellIndexList", HFILL }}, + { &hf_nr_rrc_blackCellsToAddModList, + { "blackCellsToAddModList", "nr-rrc.blackCellsToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_whiteCellsToRemoveList, + { "whiteCellsToRemoveList", "nr-rrc.whiteCellsToRemoveList", + FT_UINT32, BASE_DEC, NULL, 0, + "CellIndexList", HFILL }}, + { &hf_nr_rrc_whiteCellsToAddModList, + { "whiteCellsToAddModList", "nr-rrc.whiteCellsToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_MeasurementTimingConfiguration, + { "ssb-MeasurementTimingConfiguration", "nr-rrc.ssb_MeasurementTimingConfiguration_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssbPresence, + { "ssbPresence", "nr-rrc.ssbPresence", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssbPresence_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_present, + { "present", "nr-rrc.present_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_frequencyOffset, + { "frequencyOffset", "nr-rrc.frequencyOffset_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_subcarrierSpacing_01, + { "subcarrierSpacing", "nr-rrc.subcarrierSpacing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_notPresent, + { "notPresent", "nr-rrc.notPresent_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_rs_ResourceConfig_Mobility, + { "csi-rs-ResourceConfig-Mobility", "nr-rrc.csi_rs_ResourceConfig_Mobility_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_useServingCellTimingForSync, + { "useServingCellTimingForSync", "nr-rrc.useServingCellTimingForSync", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_smtc1, + { "smtc1", "nr-rrc.smtc1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodicityAndOffset, + { "periodicityAndOffset", "nr-rrc.periodicityAndOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicityAndOffset_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sf5, + { "sf5", "nr-rrc.sf5", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4", HFILL }}, + { &hf_nr_rrc_sf10, + { "sf10", "nr-rrc.sf10", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_9", HFILL }}, + { &hf_nr_rrc_sf20, + { "sf20", "nr-rrc.sf20", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_19", HFILL }}, + { &hf_nr_rrc_sf40, + { "sf40", "nr-rrc.sf40", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_39", HFILL }}, + { &hf_nr_rrc_sf80, + { "sf80", "nr-rrc.sf80", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_79", HFILL }}, + { &hf_nr_rrc_sf160, + { "sf160", "nr-rrc.sf160", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_159", HFILL }}, + { &hf_nr_rrc_duration, + { "duration", "nr-rrc.duration", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_duration_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_ToMeasure, + { "ssb-ToMeasure", "nr-rrc.ssb_ToMeasure", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_ToMeasure_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_02, + { "setup", "nr-rrc.setup", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_setup_02_vals), 0, + "T_setup_02", HFILL }}, + { &hf_nr_rrc_shortBitmap, + { "shortBitmap", "nr-rrc.shortBitmap", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_nr_rrc_mediumBitmap, + { "mediumBitmap", "nr-rrc.mediumBitmap", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_longBitmap, + { "longBitmap", "nr-rrc.longBitmap", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_64", HFILL }}, + { &hf_nr_rrc_smtc2, + { "smtc2", "nr-rrc.smtc2_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pci_List, + { "pci-List", "nr-rrc.pci_List", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysicalCellId", HFILL }}, + { &hf_nr_rrc_pci_List_item, + { "PhysicalCellId", "nr-rrc.PhysicalCellId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodicty, + { "periodicty", "nr-rrc.periodicty_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_rs_MeasurementBW, + { "csi-rs-MeasurementBW", "nr-rrc.csi_rs_MeasurementBW_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_rs_measurementBW_size, + { "csi-rs-measurementBW-size", "nr-rrc.csi_rs_measurementBW_size", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_rs_measurementBW_size_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_rs_measurement_BW_start, + { "csi-rs-measurement-BW-start", "nr-rrc.csi_rs_measurement_BW_start", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_rs_measurement_BW_start_vals), 0, + "T_csi_rs_measurement_BW_start", HFILL }}, + { &hf_nr_rrc_associated_SSB, + { "associated-SSB", "nr-rrc.associated_SSB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_associated_SSB_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_qcled_SSB, + { "qcled-SSB", "nr-rrc.qcled_SSB", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_isServingCellMO, + { "isServingCellMO", "nr-rrc.isServingCellMO", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_csi_rs_ResourceList_Mobility, + { "csi-rs-ResourceList-Mobility", "nr-rrc.csi_rs_ResourceList_Mobility", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility", HFILL }}, + { &hf_nr_rrc_csi_rs_ResourceList_Mobility_item, + { "CSI-RS-Resource-Mobility", "nr-rrc.CSI_RS_Resource_Mobility_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_rs_ResourceId_RRM, + { "csi-rs-ResourceId-RRM", "nr-rrc.csi_rs_ResourceId_RRM", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellId, + { "cellId", "nr-rrc.cellId", + FT_UINT32, BASE_DEC, NULL, 0, + "PhysicalCellId", HFILL }}, + { &hf_nr_rrc_slotConfig, + { "slotConfig", "nr-rrc.slotConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_slotConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ms5, + { "ms5", "nr-rrc.ms5", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4", HFILL }}, + { &hf_nr_rrc_resourceElementMappingPattern, + { "resourceElementMappingPattern", "nr-rrc.resourceElementMappingPattern_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sequenceGenerationConfig, + { "sequenceGenerationConfig", "nr-rrc.sequenceGenerationConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rsrpOffsetSSB, + { "rsrpOffsetSSB", "nr-rrc.rsrpOffsetSSB", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, + "Q_OffsetRange", HFILL }}, + { &hf_nr_rrc_rsrqOffsetSSB, + { "rsrqOffsetSSB", "nr-rrc.rsrqOffsetSSB", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, + "Q_OffsetRange", HFILL }}, + { &hf_nr_rrc_sinrOffsetSSB, + { "sinrOffsetSSB", "nr-rrc.sinrOffsetSSB", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, + "Q_OffsetRange", HFILL }}, + { &hf_nr_rrc_rsrpOffsetCSI_RS, + { "rsrpOffsetCSI-RS", "nr-rrc.rsrpOffsetCSI_RS", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, + "Q_OffsetRange", HFILL }}, + { &hf_nr_rrc_rsrqOffsetCSI_RS, + { "rsrqOffsetCSI-RS", "nr-rrc.rsrqOffsetCSI_RS", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, + "Q_OffsetRange", HFILL }}, + { &hf_nr_rrc_sinrOffsetCSI_RS, + { "sinrOffsetCSI-RS", "nr-rrc.sinrOffsetCSI_RS", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, + "Q_OffsetRange", HFILL }}, + { &hf_nr_rrc_threshold_RSRP, + { "threshold-RSRP", "nr-rrc.threshold_RSRP", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRP_Range", HFILL }}, + { &hf_nr_rrc_threshold_RSRQ, + { "threshold-RSRQ", "nr-rrc.threshold_RSRQ", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRQ_Range", HFILL }}, + { &hf_nr_rrc_threshold_SINR, + { "threshold-SINR", "nr-rrc.threshold_SINR", + FT_UINT32, BASE_DEC, NULL, 0, + "SINR_Range", HFILL }}, + { &hf_nr_rrc_CellsToAddModList_item, + { "CellsToAddMod", "nr-rrc.CellsToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellIndex, + { "cellIndex", "nr-rrc.cellIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofCellMeas", HFILL }}, + { &hf_nr_rrc_physCellId, + { "physCellId", "nr-rrc.physCellId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellIndividualOffset, + { "cellIndividualOffset", "nr-rrc.cellIndividualOffset_element", + FT_NONE, BASE_NONE, NULL, 0, + "Q_OffsetRangeList", HFILL }}, + { &hf_nr_rrc_BlackCellsToAddModList_item, + { "BlackCellsToAddMod", "nr-rrc.BlackCellsToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_physCellIdRange, + { "physCellIdRange", "nr-rrc.physCellIdRange_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_WhiteCellsToAddModList_item, + { "WhiteCellsToAddMod", "nr-rrc.WhiteCellsToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_MeasObjectToAddModList_item, + { "MeasObjectToAddMod", "nr-rrc.MeasObjectToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measObject, + { "measObject", "nr-rrc.measObject", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_measObject_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_measObjectNR, + { "measObjectNR", "nr-rrc.measObjectNR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measObjectEUTRA, + { "measObjectEUTRA", "nr-rrc.measObjectEUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measResultServingFreqList, + { "measResultServingFreqList", "nr-rrc.measResultServingFreqList", + FT_UINT32, BASE_DEC, NULL, 0, + "MeasResultServFreqList", HFILL }}, + { &hf_nr_rrc_measResultNeighCells, + { "measResultNeighCells", "nr-rrc.measResultNeighCells", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_measResultNeighCells_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_measResultListNR, + { "measResultListNR", "nr-rrc.measResultListNR", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measResultListEUTRA, + { "measResultListEUTRA", "nr-rrc.measResultListEUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_MeasResultServFreqList_item, + { "MeasResultServFreq", "nr-rrc.MeasResultServFreq_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_servFreqId, + { "servFreqId", "nr-rrc.servFreqId", + FT_UINT32, BASE_DEC, NULL, 0, + "ServCellIndex", HFILL }}, + { &hf_nr_rrc_measResultServingCell, + { "measResultServingCell", "nr-rrc.measResultServingCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "MeasResultNR", HFILL }}, + { &hf_nr_rrc_measResultBestNeighCell, + { "measResultBestNeighCell", "nr-rrc.measResultBestNeighCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "MeasResultNR", HFILL }}, + { &hf_nr_rrc_MeasResultListNR_item, + { "MeasResultNR", "nr-rrc.MeasResultNR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cgi_Info, + { "cgi-Info", "nr-rrc.cgi_Info_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measResult, + { "measResult", "nr-rrc.measResult_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellResults, + { "cellResults", "nr-rrc.cellResults_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resultsSSBCell, + { "resultsSSBCell", "nr-rrc.resultsSSBCell_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resultsCSI_RSCell, + { "resultsCSI-RSCell", "nr-rrc.resultsCSI_RSCell_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rsIndexResults, + { "rsIndexResults", "nr-rrc.rsIndexResults_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resultsSSBIndexes, + { "resultsSSBIndexes", "nr-rrc.resultsSSBIndexes", + FT_UINT32, BASE_DEC, NULL, 0, + "ResultsPerSSBIndexList", HFILL }}, + { &hf_nr_rrc_resultsCSI_RSIndexes, + { "resultsCSI-RSIndexes", "nr-rrc.resultsCSI_RSIndexes", + FT_UINT32, BASE_DEC, NULL, 0, + "ResultsPerCSI_RSIndexList", HFILL }}, + { &hf_nr_rrc_ssb_Cellrsrp, + { "ssb-Cellrsrp", "nr-rrc.ssb_Cellrsrp", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRP_Range", HFILL }}, + { &hf_nr_rrc_ssb_Cellrsrq, + { "ssb-Cellrsrq", "nr-rrc.ssb_Cellrsrq", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRQ_Range", HFILL }}, + { &hf_nr_rrc_ssb_Cellsinr, + { "ssb-Cellsinr", "nr-rrc.ssb_Cellsinr", + FT_UINT32, BASE_DEC, NULL, 0, + "SINR_Range", HFILL }}, + { &hf_nr_rrc_csi_rs_Cellrsrp, + { "csi-rs-Cellrsrp", "nr-rrc.csi_rs_Cellrsrp", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRP_Range", HFILL }}, + { &hf_nr_rrc_csi_rs_Cellrsrq, + { "csi-rs-Cellrsrq", "nr-rrc.csi_rs_Cellrsrq", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRQ_Range", HFILL }}, + { &hf_nr_rrc_csi_rs_Cellsinr, + { "csi-rs-Cellsinr", "nr-rrc.csi_rs_Cellsinr", + FT_UINT32, BASE_DEC, NULL, 0, + "SINR_Range", HFILL }}, + { &hf_nr_rrc_ResultsPerSSBIndexList_item, + { "ResultsPerSSBIndex", "nr-rrc.ResultsPerSSBIndex_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_Index, + { "ssb-Index", "nr-rrc.ssb_Index", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ss_rsrp, + { "ss-rsrp", "nr-rrc.ss_rsrp", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRP_Range", HFILL }}, + { &hf_nr_rrc_ss_rsrq, + { "ss-rsrq", "nr-rrc.ss_rsrq", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRQ_Range", HFILL }}, + { &hf_nr_rrc_ss_sinr, + { "ss-sinr", "nr-rrc.ss_sinr", + FT_UINT32, BASE_DEC, NULL, 0, + "SINR_Range", HFILL }}, + { &hf_nr_rrc_ResultsPerCSI_RSIndexList_item, + { "ResultsPerCSI-RSIndex", "nr-rrc.ResultsPerCSI_RSIndex_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_rsIndex, + { "csi-rsIndex", "nr-rrc.csi_rsIndex", + FT_INT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_rsrq, + { "csi-rsrq", "nr-rrc.csi_rsrq", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRQ_Range", HFILL }}, + { &hf_nr_rrc_csi_sinr, + { "csi-sinr", "nr-rrc.csi_sinr", + FT_UINT32, BASE_DEC, NULL, 0, + "SINR_Range", HFILL }}, + { &hf_nr_rrc_controlResourceSetToAddModList, + { "controlResourceSetToAddModList", "nr-rrc.controlResourceSetToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet", HFILL }}, + { &hf_nr_rrc_controlResourceSetToAddModList_item, + { "ControlResourceSet", "nr-rrc.ControlResourceSet_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_controlResourceSetToReleaseList, + { "controlResourceSetToReleaseList", "nr-rrc.controlResourceSetToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId", HFILL }}, + { &hf_nr_rrc_controlResourceSetToReleaseList_item, + { "ControlResourceId", "nr-rrc.ControlResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_searchSpacesToAddModList, + { "searchSpacesToAddModList", "nr-rrc.searchSpacesToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpace", HFILL }}, + { &hf_nr_rrc_searchSpacesToAddModList_item, + { "SearchSpace", "nr-rrc.SearchSpace_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_searchSpacesToReleaseList, + { "searchSpacesToReleaseList", "nr-rrc.searchSpacesToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId", HFILL }}, + { &hf_nr_rrc_searchSpacesToReleaseList_item, + { "SearchSpaceId", "nr-rrc.SearchSpaceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_timing, + { "timing", "nr-rrc.timing_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dl_assignment_to_DL_data, + { "dl-assignment-to-DL-data", "nr-rrc.dl_assignment_to_DL_data_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ul_assignment_to_UL_data, + { "ul-assignment-to-UL-data", "nr-rrc.ul_assignment_to_UL_data_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dl_data_to_UL_ACK, + { "dl-data-to-UL-ACK", "nr-rrc.dl_data_to_UL_ACK_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_controlResourceSetId, + { "controlResourceSetId", "nr-rrc.controlResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_frequencyDomainResources, + { "frequencyDomainResources", "nr-rrc.frequencyDomainResources_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_startSymbol, + { "startSymbol", "nr-rrc.startSymbol", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxCoReSetStartSymbol", HFILL }}, + { &hf_nr_rrc_duration_01, + { "duration", "nr-rrc.duration", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxCoReSetDuration", HFILL }}, + { &hf_nr_rrc_reg_BundleSize, + { "reg-BundleSize", "nr-rrc.reg_BundleSize", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reg_BundleSize_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cce_reg_MappingType, + { "cce-reg-MappingType", "nr-rrc.cce_reg_MappingType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cce_reg_MappingType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_precoderGranularity, + { "precoderGranularity", "nr-rrc.precoderGranularity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_interleaverRows, + { "interleaverRows", "nr-rrc.interleaverRows", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interleaverRows_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_shiftIndex, + { "shiftIndex", "nr-rrc.shiftIndex_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_tci_StateRefId, + { "tci-StateRefId", "nr-rrc.tci_StateRefId_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcch_DMRS_ScramblingID, + { "pdcch-DMRS-ScramblingID", "nr-rrc.pdcch_DMRS_ScramblingID_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_searchSpaceId, + { "searchSpaceId", "nr-rrc.searchSpaceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_monitoringSlotPeriodicityAndOffset, + { "monitoringSlotPeriodicityAndOffset", "nr-rrc.monitoringSlotPeriodicityAndOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_monitoringSlotPeriodicityAndOffset_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sl1, + { "sl1", "nr-rrc.sl1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sl2, + { "sl2", "nr-rrc.sl2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1", HFILL }}, + { &hf_nr_rrc_monitoringSymbolsWithinSlot, + { "monitoringSymbolsWithinSlot", "nr-rrc.monitoringSymbolsWithinSlot", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_14", HFILL }}, + { &hf_nr_rrc_nrofCandidates, + { "nrofCandidates", "nr-rrc.nrofCandidates_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_aggregationLevel1, + { "aggregationLevel1", "nr-rrc.aggregationLevel1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_aggregationLevel2, + { "aggregationLevel2", "nr-rrc.aggregationLevel2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_aggregationLevel4, + { "aggregationLevel4", "nr-rrc.aggregationLevel4", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel4_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_aggregationLevel8, + { "aggregationLevel8", "nr-rrc.aggregationLevel8", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel8_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_searchSpaceType, + { "searchSpaceType", "nr-rrc.searchSpaceType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_searchSpaceType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_common, + { "common", "nr-rrc.common_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sfi_PDCCH, + { "sfi-PDCCH", "nr-rrc.sfi_PDCCH_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_preemp_DL, + { "preemp-DL", "nr-rrc.preemp_DL", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_int_RNTI, + { "int-RNTI", "nr-rrc.int_RNTI", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_int_TF, + { "int-TF", "nr-rrc.int_TF", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_int_TF_vals), 0, + "T_int_TF", HFILL }}, + { &hf_nr_rrc_monitoringPeriodicity, + { "monitoringPeriodicity", "nr-rrc.monitoringPeriodicity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ue_Specific, + { "ue-Specific", "nr-rrc.ue_Specific_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_monitoringPeriodicity_01, + { "monitoringPeriodicity", "nr-rrc.monitoringPeriodicity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_monitoringPeriodicity_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sfi_CellToSFI, + { "sfi-CellToSFI", "nr-rrc.sfi_CellToSFI", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CellToSFI", HFILL }}, + { &hf_nr_rrc_sfi_CellToSFI_item, + { "CellToSFI", "nr-rrc.CellToSFI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofPDCCH_Candidates, + { "nrofPDCCH-Candidates", "nr-rrc.nrofPDCCH_Candidates", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofPDCCH_Candidates_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_aggregationLevel, + { "aggregationLevel", "nr-rrc.aggregationLevel", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sfi_RNTI, + { "sfi-RNTI", "nr-rrc.sfi_RNTI", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_dci_PayloadLength, + { "dci-PayloadLength", "nr-rrc.dci_PayloadLength_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_searchSpace, + { "searchSpace", "nr-rrc.searchSpace_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sfi_PositionInDCI, + { "sfi-PositionInDCI", "nr-rrc.sfi_PositionInDCI", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_1", HFILL }}, + { &hf_nr_rrc_slotFormatCombinations, + { "slotFormatCombinations", "nr-rrc.slotFormatCombinations", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSlotFormatCombinations_OF_SlotFormatCombination", HFILL }}, + { &hf_nr_rrc_slotFormatCombinations_item, + { "SlotFormatCombination", "nr-rrc.SlotFormatCombination_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_slotFormatCombinationId, + { "slotFormatCombinationId", "nr-rrc.slotFormatCombinationId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drb, + { "drb", "nr-rrc.drb_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_discardTimer, + { "discardTimer", "nr-rrc.discardTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_discardTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcp_SN_Size_UL, + { "pdcp-SN-Size-UL", "nr-rrc.pdcp_SN_Size_UL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcp_SN_Size_UL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcp_SN_Size_DL, + { "pdcp-SN-Size-DL", "nr-rrc.pdcp_SN_Size_DL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcp_SN_Size_DL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_headerCompression, + { "headerCompression", "nr-rrc.headerCompression", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_headerCompression_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_notUsed, + { "notUsed", "nr-rrc.notUsed_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rohc, + { "rohc", "nr-rrc.rohc_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxCID, + { "maxCID", "nr-rrc.maxCID", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_16383", HFILL }}, + { &hf_nr_rrc_profiles, + { "profiles", "nr-rrc.profiles_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_profile0x0001, + { "profile0x0001", "nr-rrc.profile0x0001", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_profile0x0002, + { "profile0x0002", "nr-rrc.profile0x0002", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_profile0x0003, + { "profile0x0003", "nr-rrc.profile0x0003", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_profile0x0004, + { "profile0x0004", "nr-rrc.profile0x0004", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_profile0x0006, + { "profile0x0006", "nr-rrc.profile0x0006", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_profile0x0101, + { "profile0x0101", "nr-rrc.profile0x0101", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_profile0x0102, + { "profile0x0102", "nr-rrc.profile0x0102", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_profile0x0103, + { "profile0x0103", "nr-rrc.profile0x0103", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_profile0x0104, + { "profile0x0104", "nr-rrc.profile0x0104", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_uplinkOnlyROHC, + { "uplinkOnlyROHC", "nr-rrc.uplinkOnlyROHC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_profiles_01, + { "profiles", "nr-rrc.profiles_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_profiles_01", HFILL }}, + { &hf_nr_rrc_integrityProtection, + { "integrityProtection", "nr-rrc.integrityProtection", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_statusReportRequired, + { "statusReportRequired", "nr-rrc.statusReportRequired", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_moreThanOneRLC, + { "moreThanOneRLC", "nr-rrc.moreThanOneRLC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_primaryPath, + { "primaryPath", "nr-rrc.primaryPath_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellGroup, + { "cellGroup", "nr-rrc.cellGroup", + FT_UINT32, BASE_DEC, NULL, 0, + "CellGroupId", HFILL }}, + { &hf_nr_rrc_logicalChannel, + { "logicalChannel", "nr-rrc.logicalChannel", + FT_UINT32, BASE_DEC, NULL, 0, + "LogicalChannelIdentity", HFILL }}, + { &hf_nr_rrc_ul_DataSplitThreshold, + { "ul-DataSplitThreshold", "nr-rrc.ul_DataSplitThreshold", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ul_DataSplitThreshold_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_03, + { "setup", "nr-rrc.setup", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_setup_03_vals_ext, 0, + "T_setup_03", HFILL }}, + { &hf_nr_rrc_ul_Duplication, + { "ul-Duplication", "nr-rrc.ul_Duplication", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_t_Reordering, + { "t-Reordering", "nr-rrc.t_Reordering", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_t_Reordering_vals_ext, 0, + "T_t_Reordering", HFILL }}, + { &hf_nr_rrc_outOfOrderDelivery, + { "outOfOrderDelivery", "nr-rrc.outOfOrderDelivery", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_codeBlockGroupTransmission, + { "codeBlockGroupTransmission", "nr-rrc.codeBlockGroupTransmission", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_maxCodeBlockGroupsPerTransportBlock, + { "maxCodeBlockGroupsPerTransportBlock", "nr-rrc.maxCodeBlockGroupsPerTransportBlock", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_codeBlockGroupFlushIndicator, + { "codeBlockGroupFlushIndicator", "nr-rrc.codeBlockGroupFlushIndicator", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_dmrs_Type, + { "dmrs-Type", "nr-rrc.dmrs_Type", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_Type_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dmrs_AdditionalPosition, + { "dmrs-AdditionalPosition", "nr-rrc.dmrs_AdditionalPosition", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_AdditionalPosition_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dmrs_group1, + { "dmrs-group1", "nr-rrc.dmrs_group1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dmrs_group2, + { "dmrs-group2", "nr-rrc.dmrs_group2_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_phaseTracking_RS, + { "phaseTracking-RS", "nr-rrc.phaseTracking_RS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phaseTracking_RS_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_04, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "Downlink_PTRS_Config", HFILL }}, + { &hf_nr_rrc_tci_States, + { "tci-States", "nr-rrc.tci_States_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_tci_rs_SetConfig, + { "tci-rs-SetConfig", "nr-rrc.tci_rs_SetConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_tci_PresentInDCI, + { "tci-PresentInDCI", "nr-rrc.tci_PresentInDCI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tci_PresentInDCI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_xOverhead, + { "xOverhead", "nr-rrc.xOverhead", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_xOverhead_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdsch_symbolAllocation, + { "pdsch-symbolAllocation", "nr-rrc.pdsch_symbolAllocation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rateMatchResourcesPDSCH, + { "rateMatchResourcesPDSCH", "nr-rrc.rateMatchResourcesPDSCH_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rateMatchPatterns, + { "rateMatchPatterns", "nr-rrc.rateMatchPatterns", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rateMatchPatterns_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_05, + { "setup", "nr-rrc.setup", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern", HFILL }}, + { &hf_nr_rrc_setup_item, + { "RateMatchPattern", "nr-rrc.RateMatchPattern_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_lte_CRS_ToMatchAround, + { "lte-CRS-ToMatchAround", "nr-rrc.lte_CRS_ToMatchAround", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_lte_CRS_ToMatchAround_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_06, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_setup_04", HFILL }}, + { &hf_nr_rrc_nrofCRS_Ports, + { "nrofCRS-Ports", "nr-rrc.nrofCRS_Ports", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofCRS_Ports_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_v_Shift, + { "v-Shift", "nr-rrc.v_Shift", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_v_Shift_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rbg_Size, + { "rbg-Size", "nr-rrc.rbg_Size", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rbg_Size_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_mcs_Table, + { "mcs-Table", "nr-rrc.mcs_Table", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mcs_Table_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNrofCodeWordsScheduledByDCI, + { "maxNrofCodeWordsScheduledByDCI", "nr-rrc.maxNrofCodeWordsScheduledByDCI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNrofCodeWordsScheduledByDCI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofHARQ_processesForPDSCH, + { "nrofHARQ-processesForPDSCH", "nr-rrc.nrofHARQ_processesForPDSCH_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_harq_ACK_Codebook, + { "harq-ACK-Codebook", "nr-rrc.harq_ACK_Codebook", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_harq_ACK_Codebook_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdsch_BundleSize, + { "pdsch-BundleSize", "nr-rrc.pdsch_BundleSize_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_prbBundlingEnabled, + { "prbBundlingEnabled", "nr-rrc.prbBundlingEnabled", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_frequencyDensity, + { "frequencyDensity", "nr-rrc.frequencyDensity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_timeDensity, + { "timeDensity", "nr-rrc.timeDensity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofPorts_01, + { "nrofPorts", "nr-rrc.nrofPorts", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofPorts_01_vals), 0, + "T_nrofPorts_01", HFILL }}, + { &hf_nr_rrc_epre_Ratio, + { "epre-Ratio", "nr-rrc.epre_Ratio_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resourceElementOffset, + { "resourceElementOffset", "nr-rrc.resourceElementOffset_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resourceBlocks, + { "resourceBlocks", "nr-rrc.resourceBlocks", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_275", HFILL }}, + { &hf_nr_rrc_symbolsInResourceBlock, + { "symbolsInResourceBlock", "nr-rrc.symbolsInResourceBlock", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_14", HFILL }}, + { &hf_nr_rrc_periodicityAndOffset_01, + { "periodicityAndOffset", "nr-rrc.periodicityAndOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicityAndOffset_01_vals), 0, + "T_periodicityAndOffset_01", HFILL }}, + { &hf_nr_rrc_n5, + { "n5", "nr-rrc.n5", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4", HFILL }}, + { &hf_nr_rrc_n10, + { "n10", "nr-rrc.n10", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_9", HFILL }}, + { &hf_nr_rrc_n20, + { "n20", "nr-rrc.n20", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_19", HFILL }}, + { &hf_nr_rrc_n40, + { "n40", "nr-rrc.n40", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_39", HFILL }}, + { &hf_nr_rrc_resourceSets, + { "resourceSets", "nr-rrc.resourceSets", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet", HFILL }}, + { &hf_nr_rrc_resourceSets_item, + { "PUCCH-ResourceSet", "nr-rrc.PUCCH_ResourceSet_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_format1, + { "format1", "nr-rrc.format1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_format1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_07, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_setup_05", HFILL }}, + { &hf_nr_rrc_interslotFrequencyHopping, + { "interslotFrequencyHopping", "nr-rrc.interslotFrequencyHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interslotFrequencyHopping_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofSlots, + { "nrofSlots", "nr-rrc.nrofSlots", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofSlots_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_format2, + { "format2", "nr-rrc.format2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_format2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_08, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_setup_06", HFILL }}, + { &hf_nr_rrc_maxCodeRate, + { "maxCodeRate", "nr-rrc.maxCodeRate", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_nr_rrc_nrofPRBs, + { "nrofPRBs", "nr-rrc.nrofPRBs", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_16", HFILL }}, + { &hf_nr_rrc_simultaneousHARQ_ACK_CSI, + { "simultaneousHARQ-ACK-CSI", "nr-rrc.simultaneousHARQ_ACK_CSI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousHARQ_ACK_CSI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_format3, + { "format3", "nr-rrc.format3", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_format3_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_09, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_setup_07", HFILL }}, + { &hf_nr_rrc_interslotFrequencyHopping_01, + { "interslotFrequencyHopping", "nr-rrc.interslotFrequencyHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interslotFrequencyHopping_01_vals), 0, + "T_interslotFrequencyHopping_01", HFILL }}, + { &hf_nr_rrc_additionalDMRS, + { "additionalDMRS", "nr-rrc.additionalDMRS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_additionalDMRS_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofSlots_01, + { "nrofSlots", "nr-rrc.nrofSlots", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofSlots_01_vals), 0, + "T_nrofSlots_01", HFILL }}, + { &hf_nr_rrc_pi2PBSK, + { "pi2PBSK", "nr-rrc.pi2PBSK", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pi2PBSK_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_format4, + { "format4", "nr-rrc.format4", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_format4_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_10, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_setup_08", HFILL }}, + { &hf_nr_rrc_interslotFrequencyHopping_02, + { "interslotFrequencyHopping", "nr-rrc.interslotFrequencyHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interslotFrequencyHopping_02_vals), 0, + "T_interslotFrequencyHopping_02", HFILL }}, + { &hf_nr_rrc_additionalDMRS_01, + { "additionalDMRS", "nr-rrc.additionalDMRS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_additionalDMRS_01_vals), 0, + "T_additionalDMRS_01", HFILL }}, + { &hf_nr_rrc_nrofSlots_02, + { "nrofSlots", "nr-rrc.nrofSlots", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofSlots_02_vals), 0, + "T_nrofSlots_02", HFILL }}, + { &hf_nr_rrc_pi2PBSK_01, + { "pi2PBSK", "nr-rrc.pi2PBSK", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pi2PBSK_01_vals), 0, + "T_pi2PBSK_01", HFILL }}, + { &hf_nr_rrc_schedulingRequestResources, + { "schedulingRequestResources", "nr-rrc.schedulingRequestResources", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_schedulingRequestResources_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_11, + { "setup", "nr-rrc.setup", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSchedulingRequestResoruces_OF_SchedulingRequestResource_Config", HFILL }}, + { &hf_nr_rrc_setup_item_01, + { "SchedulingRequestResource-Config", "nr-rrc.SchedulingRequestResource_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_tpc_PUCCH_RNTI, + { "tpc-PUCCH-RNTI", "nr-rrc.tpc_PUCCH_RNTI", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_codeBlockGroupTransmission_01, + { "codeBlockGroupTransmission", "nr-rrc.codeBlockGroupTransmission", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codeBlockGroupTransmission_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxCodeBlockGroupsPerTransportBlock_01, + { "maxCodeBlockGroupsPerTransportBlock", "nr-rrc.maxCodeBlockGroupsPerTransportBlock", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_01_vals), 0, + "T_maxCodeBlockGroupsPerTransportBlock_01", HFILL }}, + { &hf_nr_rrc_dmrs_Type_01, + { "dmrs-Type", "nr-rrc.dmrs_Type", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_Type_01_vals), 0, + "T_dmrs_Type_01", HFILL }}, + { &hf_nr_rrc_dmrs_AdditionalPosition_01, + { "dmrs-AdditionalPosition", "nr-rrc.dmrs_AdditionalPosition", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_AdditionalPosition_01_vals), 0, + "T_dmrs_AdditionalPosition_01", HFILL }}, + { &hf_nr_rrc_phaseTracking_RS_01, + { "phaseTracking-RS", "nr-rrc.phaseTracking_RS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phaseTracking_RS_01_vals), 0, + "T_phaseTracking_RS_01", HFILL }}, + { &hf_nr_rrc_setup_12, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "Uplink_PTRS_Config", HFILL }}, + { &hf_nr_rrc_tpcAccumulation, + { "tpcAccumulation", "nr-rrc.tpcAccumulation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpcAccumulation_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_tcp_PUSCH_RNTI, + { "tcp-PUSCH-RNTI", "nr-rrc.tcp_PUSCH_RNTI", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_frequencyHopping, + { "frequencyHopping", "nr-rrc.frequencyHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyHopping_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rateMatching, + { "rateMatching", "nr-rrc.rateMatching", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rateMatching_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rateMatchResources, + { "rateMatchResources", "nr-rrc.rateMatchResources_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_symbolAllocationIndexs, + { "symbolAllocationIndexs", "nr-rrc.symbolAllocationIndexs_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_mcs_Table_01, + { "mcs-Table", "nr-rrc.mcs_Table", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mcs_Table_01_vals), 0, + "T_mcs_Table_01", HFILL }}, + { &hf_nr_rrc_mcs_TableTransformPrecoder, + { "mcs-TableTransformPrecoder", "nr-rrc.mcs_TableTransformPrecoder", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mcs_TableTransformPrecoder_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_transformPrecoder, + { "transformPrecoder", "nr-rrc.transformPrecoder", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_transformPrecoder_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rbg_Size_01, + { "rbg-Size", "nr-rrc.rbg_Size", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rbg_Size_01_vals), 0, + "T_rbg_Size_01", HFILL }}, + { &hf_nr_rrc_uci_on_PUSCH, + { "uci-on-PUSCH", "nr-rrc.uci_on_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uci_on_PUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_13, + { "setup", "nr-rrc.setup", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_setup_09_vals), 0, + "T_setup_09", HFILL }}, + { &hf_nr_rrc_dynamic, + { "dynamic", "nr-rrc.dynamic", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_4_OF_BetaOffsets", HFILL }}, + { &hf_nr_rrc_dynamic_item, + { "BetaOffsets", "nr-rrc.BetaOffsets_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_semiStatic, + { "semiStatic", "nr-rrc.semiStatic_element", + FT_NONE, BASE_NONE, NULL, 0, + "BetaOffsets", HFILL }}, + { &hf_nr_rrc_xOverhead_01, + { "xOverhead", "nr-rrc.xOverhead", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_xOverhead_01_vals), 0, + "T_xOverhead_01", HFILL }}, + { &hf_nr_rrc_cp_OFDM, + { "cp-OFDM", "nr-rrc.cp_OFDM", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cp_OFDM_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_14, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_setup_10", HFILL }}, + { &hf_nr_rrc_nrofPorts_02, + { "nrofPorts", "nr-rrc.nrofPorts", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofPorts_02_vals), 0, + "T_nrofPorts_02", HFILL }}, + { &hf_nr_rrc_dft_S_OFDM, + { "dft-S-OFDM", "nr-rrc.dft_S_OFDM", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dft_S_OFDM_vals), 0, + "T_dft_S_OFDM", HFILL }}, + { &hf_nr_rrc_setup_15, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_setup_11", HFILL }}, + { &hf_nr_rrc_sampleDensity, + { "sampleDensity", "nr-rrc.sampleDensity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_timeDensity_01, + { "timeDensity", "nr-rrc.timeDensity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_timeDensity_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sequence, + { "sequence", "nr-rrc.sequence_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_betaOffsetACK_Index1, + { "betaOffsetACK-Index1", "nr-rrc.betaOffsetACK_Index1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_betaOffsetACK_Index2, + { "betaOffsetACK-Index2", "nr-rrc.betaOffsetACK_Index2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_betaOffsetACK_Index3, + { "betaOffsetACK-Index3", "nr-rrc.betaOffsetACK_Index3", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_betaOffsetCSI_part1_Index1, + { "betaOffsetCSI-part1-Index1", "nr-rrc.betaOffsetCSI_part1_Index1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_betaOffsetCSI_part1_Index2, + { "betaOffsetCSI-part1-Index2", "nr-rrc.betaOffsetCSI_part1_Index2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_betaOffsetCSI_part2_Index1, + { "betaOffsetCSI-part2-Index1", "nr-rrc.betaOffsetCSI_part2_Index1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_betaOffsetCSI_part2_Index2, + { "betaOffsetCSI-part2-Index2", "nr-rrc.betaOffsetCSI_part2_Index2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_quantityConfigRSindex, + { "quantityConfigRSindex", "nr-rrc.quantityConfigRSindex_element", + FT_NONE, BASE_NONE, NULL, 0, + "QuantityConfigRS", HFILL }}, + { &hf_nr_rrc_ssbFilterCoefficientRSRP, + { "ssbFilterCoefficientRSRP", "nr-rrc.ssbFilterCoefficientRSRP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_FilterCoefficient_vals), 0, + "FilterCoefficient", HFILL }}, + { &hf_nr_rrc_ssbFilterCoefficientRSRQ, + { "ssbFilterCoefficientRSRQ", "nr-rrc.ssbFilterCoefficientRSRQ", + FT_UINT32, BASE_DEC, VALS(nr_rrc_FilterCoefficient_vals), 0, + "FilterCoefficient", HFILL }}, + { &hf_nr_rrc_ssbFilterCoefficientRS_SINR, + { "ssbFilterCoefficientRS-SINR", "nr-rrc.ssbFilterCoefficientRS_SINR", + FT_UINT32, BASE_DEC, VALS(nr_rrc_FilterCoefficient_vals), 0, + "FilterCoefficient", HFILL }}, + { &hf_nr_rrc_csi_rsFilterCoefficientRSRP, + { "csi-rsFilterCoefficientRSRP", "nr-rrc.csi_rsFilterCoefficientRSRP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_FilterCoefficient_vals), 0, + "FilterCoefficient", HFILL }}, + { &hf_nr_rrc_csi_rsFilterCoefficientRSRQ, + { "csi-rsFilterCoefficientRSRQ", "nr-rrc.csi_rsFilterCoefficientRSRQ", + FT_UINT32, BASE_DEC, VALS(nr_rrc_FilterCoefficient_vals), 0, + "FilterCoefficient", HFILL }}, + { &hf_nr_rrc_csi_rsFilterCoefficientRS_SINR, + { "csi-rsFilterCoefficientRS-SINR", "nr-rrc.csi_rsFilterCoefficientRS_SINR", + FT_UINT32, BASE_DEC, VALS(nr_rrc_FilterCoefficient_vals), 0, + "FilterCoefficient", HFILL }}, + { &hf_nr_rrc_groupBconfigured, + { "groupBconfigured", "nr-rrc.groupBconfigured_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ra_Msg3SizeGroupA, + { "ra-Msg3SizeGroupA", "nr-rrc.ra_Msg3SizeGroupA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ra_Msg3SizeGroupA_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_messagePowerOffsetGroupB, + { "messagePowerOffsetGroupB", "nr-rrc.messagePowerOffsetGroupB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_messagePowerOffsetGroupB_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cbra_SSB_ResourceList, + { "cbra-SSB-ResourceList", "nr-rrc.cbra_SSB_ResourceList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ra_ContentionResolutionTimer, + { "ra-ContentionResolutionTimer", "nr-rrc.ra_ContentionResolutionTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ra_ContentionResolutionTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_Threshold, + { "ssb-Threshold", "nr-rrc.ssb_Threshold_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sul_RSRP_Threshold, + { "sul-RSRP-Threshold", "nr-rrc.sul_RSRP_Threshold_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_prach_ConfigurationIndex, + { "prach-ConfigurationIndex", "nr-rrc.prach_ConfigurationIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_nr_rrc_prach_RootSequenceIndex, + { "prach-RootSequenceIndex", "nr-rrc.prach_RootSequenceIndex", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_prach_RootSequenceIndex_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_l839, + { "l839", "nr-rrc.l839", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_837", HFILL }}, + { &hf_nr_rrc_l139, + { "l139", "nr-rrc.l139", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_137", HFILL }}, + { &hf_nr_rrc_zeroCorrelationZoneConfig, + { "zeroCorrelationZoneConfig", "nr-rrc.zeroCorrelationZoneConfig", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_nr_rrc_restrictedSetConfig, + { "restrictedSetConfig", "nr-rrc.restrictedSetConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_restrictedSetConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_preambleReceivedTargetPower, + { "preambleReceivedTargetPower", "nr-rrc.preambleReceivedTargetPower", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_preambleReceivedTargetPower_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_powerRampingStep, + { "powerRampingStep", "nr-rrc.powerRampingStep", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_powerRampingStep_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_preambleTransMax, + { "preambleTransMax", "nr-rrc.preambleTransMax", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_preambleTransMax_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ra_ResponseWindow, + { "ra-ResponseWindow", "nr-rrc.ra_ResponseWindow_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_msg2_SubcarrierSpacing, + { "msg2-SubcarrierSpacing", "nr-rrc.msg2_SubcarrierSpacing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, + { &hf_nr_rrc_rach_ControlResourceSet, + { "rach-ControlResourceSet", "nr-rrc.rach_ControlResourceSet_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_msg3_SubcarrierSpacing, + { "msg3-SubcarrierSpacing", "nr-rrc.msg3_SubcarrierSpacing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, + { &hf_nr_rrc_msg3_transformPrecoding, + { "msg3-transformPrecoding", "nr-rrc.msg3_transformPrecoding", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_msg3_transformPrecoding_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_CBRA_SSB_ResourceList_item, + { "CBRA-SSB-Resource", "nr-rrc.CBRA_SSB_Resource_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb, + { "ssb", "nr-rrc.ssb", + FT_UINT32, BASE_DEC, NULL, 0, + "SSB_ID", HFILL }}, + { &hf_nr_rrc_startIndexRA_PreambleGroupA, + { "startIndexRA-PreambleGroupA", "nr-rrc.startIndexRA_PreambleGroupA", + FT_UINT32, BASE_DEC, NULL, 0, + "PreambleStartIndex", HFILL }}, + { &hf_nr_rrc_numberofRA_PreamblesGroupA, + { "numberofRA-PreamblesGroupA", "nr-rrc.numberofRA_PreamblesGroupA", + FT_UINT32, BASE_DEC, NULL, 0, + "NumberOfRA_Preambles", HFILL }}, + { &hf_nr_rrc_numberOfRA_Preambles, + { "numberOfRA-Preambles", "nr-rrc.numberOfRA_Preambles", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ra_Resources, + { "ra-Resources", "nr-rrc.ra_Resources_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cfra_Resources, + { "cfra-Resources", "nr-rrc.cfra_Resources", + FT_UINT32, BASE_DEC, VALS(nr_rrc_CFRA_Resources_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rar_SubcarrierSpacing, + { "rar-SubcarrierSpacing", "nr-rrc.rar_SubcarrierSpacing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, + { &hf_nr_rrc_cfra_ssb_ResourceList, + { "cfra-ssb-ResourceList", "nr-rrc.cfra_ssb_ResourceList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxRAssbResources_OF_CFRA_SSB_Resource", HFILL }}, + { &hf_nr_rrc_cfra_ssb_ResourceList_item, + { "CFRA-SSB-Resource", "nr-rrc.CFRA_SSB_Resource_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cfra_csirs_ResourceList, + { "cfra-csirs-ResourceList", "nr-rrc.cfra_csirs_ResourceList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxRAcsirsResources_OF_CFRA_CSIRS_Resource", HFILL }}, + { &hf_nr_rrc_cfra_csirs_ResourceList_item, + { "CFRA-CSIRS-Resource", "nr-rrc.CFRA_CSIRS_Resource_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ra_PreambleIndex, + { "ra-PreambleIndex", "nr-rrc.ra_PreambleIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_0", HFILL }}, + { &hf_nr_rrc_csirs, + { "csirs", "nr-rrc.csirs", + FT_INT32, BASE_DEC, NULL, 0, + "CSIRS_ID", HFILL }}, + { &hf_nr_rrc_srb_ToAddModList, + { "srb-ToAddModList", "nr-rrc.srb_ToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_srb_ToReleaseList, + { "srb-ToReleaseList", "nr-rrc.srb_ToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_3", HFILL }}, + { &hf_nr_rrc_drb_ToAddModList, + { "drb-ToAddModList", "nr-rrc.drb_ToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drb_ToReleaseList, + { "drb-ToReleaseList", "nr-rrc.drb_ToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_securityConfig, + { "securityConfig", "nr-rrc.securityConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_SRB_ToAddModList_item, + { "SRB-ToAddMod", "nr-rrc.SRB_ToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_srb_Identity, + { "srb-Identity", "nr-rrc.srb_Identity", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reestablishPDCP, + { "reestablishPDCP", "nr-rrc.reestablishPDCP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reestablishPDCP_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcp_Config, + { "pdcp-Config", "nr-rrc.pdcp_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_DRB_ToAddModList_item, + { "DRB-ToAddMod", "nr-rrc.DRB_ToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cnAssociation, + { "cnAssociation", "nr-rrc.cnAssociation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cnAssociation_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_eps_BearerIdentity, + { "eps-BearerIdentity", "nr-rrc.eps_BearerIdentity", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_nr_rrc_sdap_Config, + { "sdap-Config", "nr-rrc.sdap_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drb_Identity, + { "drb-Identity", "nr-rrc.drb_Identity", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reestablishPDCP_01, + { "reestablishPDCP", "nr-rrc.reestablishPDCP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reestablishPDCP_01_vals), 0, + "T_reestablishPDCP_01", HFILL }}, + { &hf_nr_rrc_recoverPDCP, + { "recoverPDCP", "nr-rrc.recoverPDCP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_recoverPDCP_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_DRB_ToReleaseList_item, + { "DRB-Identity", "nr-rrc.DRB_Identity", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_securityAlgorithmConfig, + { "securityAlgorithmConfig", "nr-rrc.securityAlgorithmConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_keyToUse, + { "keyToUse", "nr-rrc.keyToUse", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_keyToUse_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportType, + { "reportType", "nr-rrc.reportType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodical, + { "periodical", "nr-rrc.periodical_element", + FT_NONE, BASE_NONE, NULL, 0, + "PeriodicalReportConfig", HFILL }}, + { &hf_nr_rrc_eventTriggered, + { "eventTriggered", "nr-rrc.eventTriggered_element", + FT_NONE, BASE_NONE, NULL, 0, + "EventTriggerConfig", HFILL }}, + { &hf_nr_rrc_reportCGI, + { "reportCGI", "nr-rrc.reportCGI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_eventId, + { "eventId", "nr-rrc.eventId", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_eventId_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_eventA1, + { "eventA1", "nr-rrc.eventA1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_a1_Threshold, + { "a1-Threshold", "nr-rrc.a1_Threshold", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantity_vals), 0, + "MeasTriggerQuantity", HFILL }}, + { &hf_nr_rrc_reportOnLeave, + { "reportOnLeave", "nr-rrc.reportOnLeave", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_hysteresis, + { "hysteresis", "nr-rrc.hysteresis", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_timeToTrigger, + { "timeToTrigger", "nr-rrc.timeToTrigger", + FT_UINT32, BASE_DEC, VALS(nr_rrc_TimeToTrigger_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_eventA2, + { "eventA2", "nr-rrc.eventA2_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_a2_Threshold, + { "a2-Threshold", "nr-rrc.a2_Threshold", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantity_vals), 0, + "MeasTriggerQuantity", HFILL }}, + { &hf_nr_rrc_eventA3, + { "eventA3", "nr-rrc.eventA3_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_a3_Offset, + { "a3-Offset", "nr-rrc.a3_Offset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantityOffset_vals), 0, + "MeasTriggerQuantityOffset", HFILL }}, + { &hf_nr_rrc_useWhiteCellList, + { "useWhiteCellList", "nr-rrc.useWhiteCellList", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_eventA4, + { "eventA4", "nr-rrc.eventA4_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_a4_Threshold, + { "a4-Threshold", "nr-rrc.a4_Threshold", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantity_vals), 0, + "MeasTriggerQuantity", HFILL }}, + { &hf_nr_rrc_eventA5, + { "eventA5", "nr-rrc.eventA5_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_a5_Threshold1, + { "a5-Threshold1", "nr-rrc.a5_Threshold1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantity_vals), 0, + "MeasTriggerQuantity", HFILL }}, + { &hf_nr_rrc_a5_Threshold2, + { "a5-Threshold2", "nr-rrc.a5_Threshold2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantity_vals), 0, + "MeasTriggerQuantity", HFILL }}, + { &hf_nr_rrc_eventA6, + { "eventA6", "nr-rrc.eventA6_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_a6_Offset, + { "a6-Offset", "nr-rrc.a6_Offset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantityOffset_vals), 0, + "MeasTriggerQuantityOffset", HFILL }}, + { &hf_nr_rrc_rsType, + { "rsType", "nr-rrc.rsType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rsType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportInterval, + { "reportInterval", "nr-rrc.reportInterval", + FT_UINT32, BASE_DEC, VALS(nr_rrc_ReportInterval_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportAmount, + { "reportAmount", "nr-rrc.reportAmount", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportAmount_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportQuantityCell, + { "reportQuantityCell", "nr-rrc.reportQuantityCell_element", + FT_NONE, BASE_NONE, NULL, 0, + "MeasReportQuantity", HFILL }}, + { &hf_nr_rrc_maxReportCells, + { "maxReportCells", "nr-rrc.maxReportCells", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxCellReport", HFILL }}, + { &hf_nr_rrc_reportQuantityRsIndexes, + { "reportQuantityRsIndexes", "nr-rrc.reportQuantityRsIndexes_element", + FT_NONE, BASE_NONE, NULL, 0, + "MeasReportQuantity", HFILL }}, + { &hf_nr_rrc_maxNroIndexesToReport, + { "maxNroIndexesToReport", "nr-rrc.maxNroIndexesToReport", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNroIndexesToReport", HFILL }}, + { &hf_nr_rrc_onlyReportBeamIds, + { "onlyReportBeamIds", "nr-rrc.onlyReportBeamIds", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_reportAddNeighMeas, + { "reportAddNeighMeas", "nr-rrc.reportAddNeighMeas_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rsType_01, + { "rsType", "nr-rrc.rsType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rsType_01_vals), 0, + "T_rsType_01", HFILL }}, + { &hf_nr_rrc_reportAmount_01, + { "reportAmount", "nr-rrc.reportAmount", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportAmount_01_vals), 0, + "T_reportAmount_01", HFILL }}, + { &hf_nr_rrc_maxNroRsIndexesToReport, + { "maxNroRsIndexesToReport", "nr-rrc.maxNroRsIndexesToReport", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNroIndexesToReport", HFILL }}, + { &hf_nr_rrc_rsrp, + { "rsrp", "nr-rrc.rsrp", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRPRange", HFILL }}, + { &hf_nr_rrc_rsrq, + { "rsrq", "nr-rrc.rsrq", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRQRange", HFILL }}, + { &hf_nr_rrc_sinr, + { "sinr", "nr-rrc.sinr", + FT_UINT32, BASE_DEC, NULL, 0, + "SINRRange", HFILL }}, + { &hf_nr_rrc_rsrp_01, + { "rsrp", "nr-rrc.rsrp", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0", HFILL }}, + { &hf_nr_rrc_rsrq_01, + { "rsrq", "nr-rrc.rsrq", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0", HFILL }}, + { &hf_nr_rrc_sinr_01, + { "sinr", "nr-rrc.sinr", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0", HFILL }}, + { &hf_nr_rrc_rsrp_02, + { "rsrp", "nr-rrc.rsrp", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_rsrq_02, + { "rsrq", "nr-rrc.rsrq", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_sinr_02, + { "sinr", "nr-rrc.sinr", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_ReportConfigToAddModList_item, + { "ReportConfigToAddMod", "nr-rrc.ReportConfigToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportConfig, + { "reportConfig", "nr-rrc.reportConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportConfigNR, + { "reportConfigNR", "nr-rrc.reportConfigNR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportConfigEUTRA, + { "reportConfigEUTRA", "nr-rrc.reportConfigEUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_am, + { "am", "nr-rrc.am_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ul_AM_RLC, + { "ul-AM-RLC", "nr-rrc.ul_AM_RLC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dl_AM_RLC, + { "dl-AM-RLC", "nr-rrc.dl_AM_RLC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_um_Bi_Directional, + { "um-Bi-Directional", "nr-rrc.um_Bi_Directional_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ul_UM_RLC, + { "ul-UM-RLC", "nr-rrc.ul_UM_RLC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dl_UM_RLC, + { "dl-UM-RLC", "nr-rrc.dl_UM_RLC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_um_Uni_Directional_UL, + { "um-Uni-Directional-UL", "nr-rrc.um_Uni_Directional_UL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_um_Uni_Directional_DL, + { "um-Uni-Directional-DL", "nr-rrc.um_Uni_Directional_DL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sn_FieldLength, + { "sn-FieldLength", "nr-rrc.sn_FieldLength", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SN_FieldLength_AM_vals), 0, + "SN_FieldLength_AM", HFILL }}, + { &hf_nr_rrc_t_PollRetransmit, + { "t-PollRetransmit", "nr-rrc.t_PollRetransmit", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_PollRetransmit_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pollPDU, + { "pollPDU", "nr-rrc.pollPDU", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_PollPDU_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pollByte, + { "pollByte", "nr-rrc.pollByte", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_PollByte_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxRetxThreshold, + { "maxRetxThreshold", "nr-rrc.maxRetxThreshold", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxRetxThreshold_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_t_Reassembly, + { "t-Reassembly", "nr-rrc.t_Reassembly", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_Reassembly_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_t_StatusProhibit, + { "t-StatusProhibit", "nr-rrc.t_StatusProhibit", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_StatusProhibit_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sn_FieldLength_01, + { "sn-FieldLength", "nr-rrc.sn_FieldLength", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SN_FieldLength_UM_vals), 0, + "SN_FieldLength_UM", HFILL }}, + { &hf_nr_rrc_schedulingRequestToAddModList, + { "schedulingRequestToAddModList", "nr-rrc.schedulingRequestToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod", HFILL }}, + { &hf_nr_rrc_schedulingRequestToAddModList_item, + { "SchedulingRequestToAddMod", "nr-rrc.SchedulingRequestToAddMod_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_schedulingRequestToReleaseList, + { "schedulingRequestToReleaseList", "nr-rrc.schedulingRequestToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId", HFILL }}, + { &hf_nr_rrc_schedulingRequestToReleaseList_item, + { "SchedulingRequestId", "nr-rrc.SchedulingRequestId", + FT_INT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_schedulingRequestID, + { "schedulingRequestID", "nr-rrc.schedulingRequestID", + FT_INT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sr_prohibitTimer, + { "sr-prohibitTimer", "nr-rrc.sr_prohibitTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sr_prohibitTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sr_TransMax, + { "sr-TransMax", "nr-rrc.sr_TransMax", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sr_TransMax_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pduSession, + { "pduSession", "nr-rrc.pduSession", + FT_INT32, BASE_DEC, NULL, 0, + "PDUsessionID", HFILL }}, + { &hf_nr_rrc_sdap_Header_DL, + { "sdap-Header-DL", "nr-rrc.sdap_Header_DL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sdap_Header_DL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sdap_Header_UL, + { "sdap-Header-UL", "nr-rrc.sdap_Header_UL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sdap_Header_UL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_defaultDRB, + { "defaultDRB", "nr-rrc.defaultDRB", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_reflectiveQoS, + { "reflectiveQoS", "nr-rrc.reflectiveQoS", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_mappedQoSflows, + { "mappedQoSflows", "nr-rrc.mappedQoSflows", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI", HFILL }}, + { &hf_nr_rrc_mappedQoSflows_item, + { "QFI", "nr-rrc.QFI", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cipheringAlgorithm, + { "cipheringAlgorithm", "nr-rrc.cipheringAlgorithm", + FT_UINT32, BASE_DEC, VALS(nr_rrc_CipheringAlgorithm_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_integrityProtAlgorithm, + { "integrityProtAlgorithm", "nr-rrc.integrityProtAlgorithm", + FT_UINT32, BASE_DEC, VALS(nr_rrc_IntegrityProtAlgorithm_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_frequencyInfoDL, + { "frequencyInfoDL", "nr-rrc.frequencyInfoDL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_carrierFreqDL, + { "carrierFreqDL", "nr-rrc.carrierFreqDL", + FT_INT32, BASE_DEC, NULL, 0, + "ARFCN_ValueNR", HFILL }}, + { &hf_nr_rrc_carrierBandwidthDL, + { "carrierBandwidthDL", "nr-rrc.carrierBandwidthDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_CarrierBandwidthNR_vals), 0, + "CarrierBandwidthNR", HFILL }}, + { &hf_nr_rrc_frequencyInfoUL, + { "frequencyInfoUL", "nr-rrc.frequencyInfoUL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_supplementaryUplink, + { "supplementaryUplink", "nr-rrc.supplementaryUplink_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_subcarrierSpacingCommon, + { "subcarrierSpacingCommon", "nr-rrc.subcarrierSpacingCommon", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, + { &hf_nr_rrc_ssb_subcarrier_offset, + { "ssb-subcarrier-offset", "nr-rrc.ssb_subcarrier_offset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_11", HFILL }}, + { &hf_nr_rrc_ssb_PositionsInBurst, + { "ssb-PositionsInBurst", "nr-rrc.ssb_PositionsInBurst", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_PositionsInBurst_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_periodicityServingCell, + { "ssb-periodicityServingCell", "nr-rrc.ssb_periodicityServingCell", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_periodicityServingCell_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dmrs_TypeA_Position_01, + { "dmrs-TypeA-Position", "nr-rrc.dmrs_TypeA_Position", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_TypeA_Position_01_vals), 0, + "T_dmrs_TypeA_Position_01", HFILL }}, + { &hf_nr_rrc_subcarrierSpacingSSB, + { "subcarrierSpacingSSB", "nr-rrc.subcarrierSpacingSSB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacingSSB_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_tdd_UL_DL_configurationCommon, + { "tdd-UL-DL-configurationCommon", "nr-rrc.tdd_UL_DL_configurationCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dl_UL_TransmissionPeriodicity, + { "dl-UL-TransmissionPeriodicity", "nr-rrc.dl_UL_TransmissionPeriodicity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dl_UL_TransmissionPeriodicity_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofDownlinkSlots, + { "nrofDownlinkSlots", "nr-rrc.nrofDownlinkSlots", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_160", HFILL }}, + { &hf_nr_rrc_nrofDownlinkSymbols, + { "nrofDownlinkSymbols", "nr-rrc.nrofDownlinkSymbols", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxSymbolIndex", HFILL }}, + { &hf_nr_rrc_nrofUplinkSlots, + { "nrofUplinkSlots", "nr-rrc.nrofUplinkSlots", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_160", HFILL }}, + { &hf_nr_rrc_nrofUplinkSymbols, + { "nrofUplinkSymbols", "nr-rrc.nrofUplinkSymbols", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxSymbolIndex", HFILL }}, + { &hf_nr_rrc_ss_PBCH_BlockPower, + { "ss-PBCH-BlockPower", "nr-rrc.ss_PBCH_BlockPower", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M60_50", HFILL }}, + { &hf_nr_rrc_rach_ConfigCommon, + { "rach-ConfigCommon", "nr-rrc.rach_ConfigCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_tdd_UL_DL_configurationDedicated, + { "tdd-UL-DL-configurationDedicated", "nr-rrc.tdd_UL_DL_configurationDedicated_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_slotSpecificConfigurations, + { "slotSpecificConfigurations", "nr-rrc.slotSpecificConfigurations", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_slotSpecificConfigurations_item, + { "slotSpecificConfigurations item", "nr-rrc.slotSpecificConfigurations_item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_slotIndex, + { "slotIndex", "nr-rrc.slotIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_160", HFILL }}, + { &hf_nr_rrc_bandwidthParts, + { "bandwidthParts", "nr-rrc.bandwidthParts_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dataScramblingIdentity, + { "dataScramblingIdentity", "nr-rrc.dataScramblingIdentity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcch_Config, + { "pdcch-Config", "nr-rrc.pdcch_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdsch_Config, + { "pdsch-Config", "nr-rrc.pdsch_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_MeasConfig, + { "csi-MeasConfig", "nr-rrc.csi_MeasConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pucch_Config, + { "pucch-Config", "nr-rrc.pucch_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pusch_Config, + { "pusch-Config", "nr-rrc.pusch_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_srs_Config, + { "srs-Config", "nr-rrc.srs_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sps_Config, + { "sps-Config", "nr-rrc.sps_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_crossCarrierSchedulingConfig, + { "crossCarrierSchedulingConfig", "nr-rrc.crossCarrierSchedulingConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ue_BeamLockFunction, + { "ue-BeamLockFunction", "nr-rrc.ue_BeamLockFunction", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ue_BeamLockFunction_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pathlossReferenceLinking, + { "pathlossReferenceLinking", "nr-rrc.pathlossReferenceLinking", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pathlossReferenceLinking_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_uplink, + { "uplink", "nr-rrc.uplink_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodicity, + { "periodicity", "nr-rrc.periodicity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_powerControl, + { "powerControl", "nr-rrc.powerControl_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_transformPrecoder_01, + { "transformPrecoder", "nr-rrc.transformPrecoder", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_transformPrecoder_01_vals), 0, + "T_transformPrecoder_01", HFILL }}, + { &hf_nr_rrc_nrofHARQ_processes, + { "nrofHARQ-processes", "nr-rrc.nrofHARQ_processes", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_1", HFILL }}, + { &hf_nr_rrc_repK_RV, + { "repK-RV", "nr-rrc.repK_RV", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_repK_RV_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_priodicity, + { "priodicity", "nr-rrc.priodicity", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_priodicity_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rrcConfiguredUplinkGrant, + { "rrcConfiguredUplinkGrant", "nr-rrc.rrcConfiguredUplinkGrant", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rrcConfiguredUplinkGrant_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_16, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_setup_12", HFILL }}, + { &hf_nr_rrc_timeDomainOffset, + { "timeDomainOffset", "nr-rrc.timeDomainOffset_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_timeDomainAllocation, + { "timeDomainAllocation", "nr-rrc.timeDomainAllocation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_frequencyDomainAllocation, + { "frequencyDomainAllocation", "nr-rrc.frequencyDomainAllocation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dmrs, + { "dmrs", "nr-rrc.dmrs_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_mcsAndTBS, + { "mcsAndTBS", "nr-rrc.mcsAndTBS_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_repK, + { "repK", "nr-rrc.repK_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_srs_ResourceSetToReleaseList, + { "srs-ResourceSetToReleaseList", "nr-rrc.srs_ResourceSetToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId", HFILL }}, + { &hf_nr_rrc_srs_ResourceSetToReleaseList_item, + { "SRS-ResourceSetId", "nr-rrc.SRS_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_srs_ResourceSetToAddModList, + { "srs-ResourceSetToAddModList", "nr-rrc.srs_ResourceSetToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet", HFILL }}, + { &hf_nr_rrc_srs_ResourceSetToAddModList_item, + { "SRS-ResourceSet", "nr-rrc.SRS_ResourceSet_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_srs_ResourceToReleaseList, + { "srs-ResourceToReleaseList", "nr-rrc.srs_ResourceToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId", HFILL }}, + { &hf_nr_rrc_srs_ResourceToReleaseList_item, + { "SRS-ResourceId", "nr-rrc.SRS_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_srs_ResourceToAddModList, + { "srs-ResourceToAddModList", "nr-rrc.srs_ResourceToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource", HFILL }}, + { &hf_nr_rrc_srs_ResourceToAddModList_item, + { "SRS-Resource", "nr-rrc.SRS_Resource_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_tpc_SRS_RNTI, + { "tpc-SRS-RNTI", "nr-rrc.tpc_SRS_RNTI", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_srs_ResourceSetId, + { "srs-ResourceSetId", "nr-rrc.srs_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_srs_ResourcesIds, + { "srs-ResourcesIds", "nr-rrc.srs_ResourcesIds", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId", HFILL }}, + { &hf_nr_rrc_srs_ResourcesIds_item, + { "SRS-ResourceId", "nr-rrc.SRS_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_aperiodicSRS_ResourceTrigger, + { "aperiodicSRS-ResourceTrigger", "nr-rrc.aperiodicSRS_ResourceTrigger_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_srs_ResourceId, + { "srs-ResourceId", "nr-rrc.srs_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofSRS_Ports, + { "nrofSRS-Ports", "nr-rrc.nrofSRS_Ports", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofSRS_Ports_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_transmissionComb, + { "transmissionComb", "nr-rrc.transmissionComb", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_transmissionComb_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_freqDomainPosition, + { "freqDomainPosition", "nr-rrc.freqDomainPosition_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_freqHopping, + { "freqHopping", "nr-rrc.freqHopping", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_nr_rrc_groupOrSequenceHopping, + { "groupOrSequenceHopping", "nr-rrc.groupOrSequenceHopping", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_2", HFILL }}, + { &hf_nr_rrc_resourceType_01, + { "resourceType", "nr-rrc.resourceType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourceType_01_vals), 0, + "T_resourceType_01", HFILL }}, + { &hf_nr_rrc_aperiodic_02, + { "aperiodic", "nr-rrc.aperiodic_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_aperiodic_01", HFILL }}, + { &hf_nr_rrc_semi_persistent, + { "semi-persistent", "nr-rrc.semi_persistent_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodic_02, + { "periodic", "nr-rrc.periodic_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_periodic_01", HFILL }}, + { &hf_nr_rrc_periodicityAndOffset_02, + { "periodicityAndOffset", "nr-rrc.periodicityAndOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicityAndOffset_02_vals), 0, + "T_periodicityAndOffset_02", HFILL }}, + { &hf_nr_rrc_sequenceId, + { "sequenceId", "nr-rrc.sequenceId_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_antennaSwitching, + { "antennaSwitching", "nr-rrc.antennaSwitching_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_carrierSwitching, + { "carrierSwitching", "nr-rrc.carrierSwitching_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cyclicShift, + { "cyclicShift", "nr-rrc.cyclicShift", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_12", HFILL }}, + { &hf_nr_rrc_spatialRelationInfo, + { "spatialRelationInfo", "nr-rrc.spatialRelationInfo", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_spatialRelationInfo_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_start, + { "start", "nr-rrc.start", + FT_UINT32, BASE_DEC, NULL, 0, + "PhysCellId", HFILL }}, + { &hf_nr_rrc_range, + { "range", "nr-rrc.range", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_range_vals), 0, + NULL, HFILL }}, + +/*--- End of included file: packet-nr-rrc-hfarr.c ---*/ +#line 85 "./asn1/nr-rrc/packet-nr-rrc-template.c" + + }; + + static gint *ett[] = { + &ett_nr_rrc, + +/*--- Included file: packet-nr-rrc-ettarr.c ---*/ +#line 1 "./asn1/nr-rrc/packet-nr-rrc-ettarr.c" + &ett_nr_rrc_BCCH_BCH_Message, + &ett_nr_rrc_BCCH_BCH_MessageType, + &ett_nr_rrc_T_messageClassExtension, + &ett_nr_rrc_DL_DCCH_Message, + &ett_nr_rrc_DL_DCCH_MessageType, + &ett_nr_rrc_T_c1, + &ett_nr_rrc_T_messageClassExtension_01, + &ett_nr_rrc_UL_DCCH_Message, + &ett_nr_rrc_UL_DCCH_MessageType, + &ett_nr_rrc_T_c1_01, + &ett_nr_rrc_T_messageClassExtension_02, + &ett_nr_rrc_MIB, + &ett_nr_rrc_MeasurementReport, + &ett_nr_rrc_T_criticalExtensions, + &ett_nr_rrc_T_criticalExtensionsFuture, + &ett_nr_rrc_MeasurementReport_IEs, + &ett_nr_rrc_RRCReconfiguration, + &ett_nr_rrc_T_criticalExtensions_01, + &ett_nr_rrc_T_criticalExtensionsFuture_01, + &ett_nr_rrc_RRCReconfiguration_IEs, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxSCellGroups_OF_CellGroupId, + &ett_nr_rrc_T_nonCriticalExtension, + &ett_nr_rrc_RRCReconfigurationComplete, + &ett_nr_rrc_T_criticalExtensions_02, + &ett_nr_rrc_T_criticalExtensionsFuture_02, + &ett_nr_rrc_RRCReconfigurationComplete_IEs, + &ett_nr_rrc_BandwidthPart, + &ett_nr_rrc_CellGroupConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxLCH_OF_LCH_Config, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity, + &ett_nr_rrc_LCH_Config, + &ett_nr_rrc_PhysicalCellGroupConfig, + &ett_nr_rrc_SpCellConfig, + &ett_nr_rrc_T_reconfigurationWithSync, + &ett_nr_rrc_SCellToReleaseList, + &ett_nr_rrc_SCellToAddModList, + &ett_nr_rrc_SCellConfig, + &ett_nr_rrc_CellIndexList, + &ett_nr_rrc_CrossCarrierSchedulingConfig, + &ett_nr_rrc_T_schedulingCellInfo, + &ett_nr_rrc_T_own, + &ett_nr_rrc_T_other, + &ett_nr_rrc_CSI_MeasConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_Reports_OF_CSI_ReportConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_MeasId_OF_CSI_MeasIdToAddMod, + &ett_nr_rrc_T_reportTrigger, + &ett_nr_rrc_CSI_ResourceConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceSets_OF_CSI_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSSB_Resources_1_OF_CSI_SSB_Resource, + &ett_nr_rrc_T_resourceType, + &ett_nr_rrc_CSI_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_Resource, + &ett_nr_rrc_NZP_CSI_RS_Resource, + &ett_nr_rrc_T_csi_RS_timeConfig, + &ett_nr_rrc_CSI_SSB_Resource, + &ett_nr_rrc_CSI_ReportConfig, + &ett_nr_rrc_T_reportConfigType, + &ett_nr_rrc_T_periodic, + &ett_nr_rrc_T_reportSlotConfig, + &ett_nr_rrc_T_semiPersistent, + &ett_nr_rrc_T_reportSlotConfig_01, + &ett_nr_rrc_T_aperiodic, + &ett_nr_rrc_T_reportQuantity, + &ett_nr_rrc_T_cRI_RI_i1_CQI, + &ett_nr_rrc_T_reportFreqConfiguration, + &ett_nr_rrc_T_groupBasedBeamReporting, + &ett_nr_rrc_T_enabled, + &ett_nr_rrc_T_disabled, + &ett_nr_rrc_CodebookConfig, + &ett_nr_rrc_T_codebookType, + &ett_nr_rrc_T_type1, + &ett_nr_rrc_T_codebookSubsetRestrictionType1, + &ett_nr_rrc_T_ri_Restriction, + &ett_nr_rrc_T_type2, + &ett_nr_rrc_T_ri_Restriction_01, + &ett_nr_rrc_CSI_MeasIdToAddMod, + &ett_nr_rrc_FrequencyInfoUL, + &ett_nr_rrc_LogicalChannelConfig, + &ett_nr_rrc_T_ul_SpecificParameters, + &ett_nr_rrc_MAC_CellGroupConfig, + &ett_nr_rrc_DRX_Config, + &ett_nr_rrc_T_setup, + &ett_nr_rrc_T_drx_LongCycleStartOffset, + &ett_nr_rrc_T_shortDRX, + &ett_nr_rrc_PHR_Config, + &ett_nr_rrc_T_setup_01, + &ett_nr_rrc_TAG_Config, + &ett_nr_rrc_TAG_ToReleaseList, + &ett_nr_rrc_TAG_ToAddModList, + &ett_nr_rrc_TAG_ToAddMod, + &ett_nr_rrc_BSR_Config, + &ett_nr_rrc_MeasConfig, + &ett_nr_rrc_T_s_MeasureConfig, + &ett_nr_rrc_MeasObjectToRemoveList, + &ett_nr_rrc_MeasIdToRemoveList, + &ett_nr_rrc_ReportConfigToRemoveList, + &ett_nr_rrc_MeasIdToAddModList, + &ett_nr_rrc_MeasIdToAddMod, + &ett_nr_rrc_MeasObjectNR, + &ett_nr_rrc_ReferenceSignalConfig, + &ett_nr_rrc_T_ssbPresence, + &ett_nr_rrc_T_present, + &ett_nr_rrc_T_notPresent, + &ett_nr_rrc_SSB_MeasurementTimingConfiguration, + &ett_nr_rrc_T_smtc1, + &ett_nr_rrc_T_periodicityAndOffset, + &ett_nr_rrc_T_ssb_ToMeasure, + &ett_nr_rrc_T_setup_02, + &ett_nr_rrc_T_smtc2, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysicalCellId, + &ett_nr_rrc_CSI_RS_ResourceConfig_Mobility, + &ett_nr_rrc_T_csi_rs_MeasurementBW, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility, + &ett_nr_rrc_CSI_RS_Resource_Mobility, + &ett_nr_rrc_T_slotConfig, + &ett_nr_rrc_Q_OffsetRangeList, + &ett_nr_rrc_ThresholdNR, + &ett_nr_rrc_CellsToAddModList, + &ett_nr_rrc_CellsToAddMod, + &ett_nr_rrc_BlackCellsToAddModList, + &ett_nr_rrc_BlackCellsToAddMod, + &ett_nr_rrc_WhiteCellsToAddModList, + &ett_nr_rrc_WhiteCellsToAddMod, + &ett_nr_rrc_MeasObjectToAddModList, + &ett_nr_rrc_MeasObjectToAddMod, + &ett_nr_rrc_T_measObject, + &ett_nr_rrc_MeasResults, + &ett_nr_rrc_T_measResultNeighCells, + &ett_nr_rrc_MeasResultServFreqList, + &ett_nr_rrc_MeasResultServFreq, + &ett_nr_rrc_MeasResultListNR, + &ett_nr_rrc_MeasResultNR, + &ett_nr_rrc_T_measResult, + &ett_nr_rrc_T_cellResults, + &ett_nr_rrc_T_rsIndexResults, + &ett_nr_rrc_ResultsSSBCell, + &ett_nr_rrc_ResultsCSI_RSCell, + &ett_nr_rrc_ResultsPerSSBIndexList, + &ett_nr_rrc_ResultsPerSSBIndex, + &ett_nr_rrc_ResultsPerCSI_RSIndexList, + &ett_nr_rrc_ResultsPerCSI_RSIndex, + &ett_nr_rrc_PDCCH_Config, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpace, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId, + &ett_nr_rrc_T_timing, + &ett_nr_rrc_ControlResourceSet, + &ett_nr_rrc_SearchSpace, + &ett_nr_rrc_T_monitoringSlotPeriodicityAndOffset, + &ett_nr_rrc_T_nrofCandidates, + &ett_nr_rrc_T_searchSpaceType, + &ett_nr_rrc_T_common, + &ett_nr_rrc_T_ue_Specific, + &ett_nr_rrc_SFI_PDCCH, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_CellToSFI, + &ett_nr_rrc_CellToSFI, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinations_OF_SlotFormatCombination, + &ett_nr_rrc_SlotFormatCombination, + &ett_nr_rrc_PDCP_Config, + &ett_nr_rrc_T_drb, + &ett_nr_rrc_T_headerCompression, + &ett_nr_rrc_T_rohc, + &ett_nr_rrc_T_profiles, + &ett_nr_rrc_T_uplinkOnlyROHC, + &ett_nr_rrc_T_profiles_01, + &ett_nr_rrc_T_moreThanOneRLC, + &ett_nr_rrc_T_primaryPath, + &ett_nr_rrc_T_ul_DataSplitThreshold, + &ett_nr_rrc_PDSCH_Config, + &ett_nr_rrc_T_phaseTracking_RS, + &ett_nr_rrc_T_rateMatchResourcesPDSCH, + &ett_nr_rrc_T_rateMatchPatterns, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern, + &ett_nr_rrc_T_lte_CRS_ToMatchAround, + &ett_nr_rrc_T_setup_04, + &ett_nr_rrc_Downlink_PTRS_Config, + &ett_nr_rrc_RateMatchPattern, + &ett_nr_rrc_T_periodicityAndOffset_01, + &ett_nr_rrc_PUCCH_Config, + &ett_nr_rrc_SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet, + &ett_nr_rrc_T_format1, + &ett_nr_rrc_T_setup_05, + &ett_nr_rrc_T_format2, + &ett_nr_rrc_T_setup_06, + &ett_nr_rrc_T_format3, + &ett_nr_rrc_T_setup_07, + &ett_nr_rrc_T_format4, + &ett_nr_rrc_T_setup_08, + &ett_nr_rrc_T_schedulingRequestResources, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSchedulingRequestResoruces_OF_SchedulingRequestResource_Config, + &ett_nr_rrc_PUCCH_ResourceSet, + &ett_nr_rrc_PUSCH_Config, + &ett_nr_rrc_T_phaseTracking_RS_01, + &ett_nr_rrc_T_uci_on_PUSCH, + &ett_nr_rrc_T_setup_09, + &ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets, + &ett_nr_rrc_Uplink_PTRS_Config, + &ett_nr_rrc_T_cp_OFDM, + &ett_nr_rrc_T_setup_10, + &ett_nr_rrc_T_dft_S_OFDM, + &ett_nr_rrc_T_setup_11, + &ett_nr_rrc_BetaOffsets, + &ett_nr_rrc_QuantityConfig, + &ett_nr_rrc_QuantityConfigRS, + &ett_nr_rrc_RACH_ConfigCommon, + &ett_nr_rrc_T_groupBconfigured, + &ett_nr_rrc_T_prach_RootSequenceIndex, + &ett_nr_rrc_CBRA_SSB_ResourceList, + &ett_nr_rrc_CBRA_SSB_Resource, + &ett_nr_rrc_RACH_ConfigDedicated, + &ett_nr_rrc_CFRA_Resources, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxRAssbResources_OF_CFRA_SSB_Resource, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxRAcsirsResources_OF_CFRA_CSIRS_Resource, + &ett_nr_rrc_CFRA_SSB_Resource, + &ett_nr_rrc_CFRA_CSIRS_Resource, + &ett_nr_rrc_RadioBearerConfig, + &ett_nr_rrc_SRB_ToAddModList, + &ett_nr_rrc_SRB_ToAddMod, + &ett_nr_rrc_DRB_ToAddModList, + &ett_nr_rrc_DRB_ToAddMod, + &ett_nr_rrc_T_cnAssociation, + &ett_nr_rrc_DRB_ToReleaseList, + &ett_nr_rrc_SecurityConfig, + &ett_nr_rrc_ReportConfigNR, + &ett_nr_rrc_T_reportType, + &ett_nr_rrc_EventTriggerConfig, + &ett_nr_rrc_T_eventId, + &ett_nr_rrc_T_eventA1, + &ett_nr_rrc_T_eventA2, + &ett_nr_rrc_T_eventA3, + &ett_nr_rrc_T_eventA4, + &ett_nr_rrc_T_eventA5, + &ett_nr_rrc_T_eventA6, + &ett_nr_rrc_PeriodicalReportConfig, + &ett_nr_rrc_MeasTriggerQuantity, + &ett_nr_rrc_MeasTriggerQuantityOffset, + &ett_nr_rrc_MeasReportQuantity, + &ett_nr_rrc_ReportConfigToAddModList, + &ett_nr_rrc_ReportConfigToAddMod, + &ett_nr_rrc_T_reportConfig, + &ett_nr_rrc_RLC_Config, + &ett_nr_rrc_T_am, + &ett_nr_rrc_T_um_Bi_Directional, + &ett_nr_rrc_T_um_Uni_Directional_UL, + &ett_nr_rrc_T_um_Uni_Directional_DL, + &ett_nr_rrc_UL_AM_RLC, + &ett_nr_rrc_DL_AM_RLC, + &ett_nr_rrc_UL_UM_RLC, + &ett_nr_rrc_DL_UM_RLC, + &ett_nr_rrc_RLF_TimersAndConstants, + &ett_nr_rrc_SchedulingRequestConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId, + &ett_nr_rrc_SchedulingRequestToAddMod, + &ett_nr_rrc_SDAP_Config, + &ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI, + &ett_nr_rrc_SecurityAlgorithmConfig, + &ett_nr_rrc_ServingCellConfigCommon, + &ett_nr_rrc_T_frequencyInfoDL, + &ett_nr_rrc_T_supplementaryUplink, + &ett_nr_rrc_T_ssb_PositionsInBurst, + &ett_nr_rrc_T_tdd_UL_DL_configurationCommon, + &ett_nr_rrc_ServingCellConfigDedicated, + &ett_nr_rrc_T_tdd_UL_DL_configurationDedicated, + &ett_nr_rrc_T_slotSpecificConfigurations, + &ett_nr_rrc_T_slotSpecificConfigurations_item, + &ett_nr_rrc_SPS_Config, + &ett_nr_rrc_T_uplink, + &ett_nr_rrc_T_rrcConfiguredUplinkGrant, + &ett_nr_rrc_T_setup_12, + &ett_nr_rrc_SRS_Config, + &ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId, + &ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource, + &ett_nr_rrc_SRS_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId, + &ett_nr_rrc_SRS_Resource, + &ett_nr_rrc_T_resourceType_01, + &ett_nr_rrc_T_aperiodic_01, + &ett_nr_rrc_T_semi_persistent, + &ett_nr_rrc_T_periodic_01, + &ett_nr_rrc_T_periodicityAndOffset_02, + &ett_nr_rrc_MeasGapConfig, + &ett_nr_rrc_MeasObjectEUTRA, + &ett_nr_rrc_MeasResultListEUTRA, + &ett_nr_rrc_PhysCellIdRange, + &ett_nr_rrc_RA_Resources, + &ett_nr_rrc_ReportConfigEUTRA, + &ett_nr_rrc_SchedulingRequestResource_Config, + +/*--- End of included file: packet-nr-rrc-ettarr.c ---*/ +#line 91 "./asn1/nr-rrc/packet-nr-rrc-template.c" + &ett_nr_rrc_UECapabilityInformation + }; + + /* Register protocol */ + proto_nr_rrc = proto_register_protocol(PNAME, PSNAME, PFNAME); + + /* Register fields and subtrees */ + proto_register_field_array(proto_nr_rrc, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + /* Register the dissectors defined in nr-rrc.cnf */ + +/*--- Included file: packet-nr-rrc-dis-reg.c ---*/ +#line 1 "./asn1/nr-rrc/packet-nr-rrc-dis-reg.c" + register_dissector("nr-rrc.bcch.bch", dissect_BCCH_BCH_Message_PDU, proto_nr_rrc); + register_dissector("nr-rrc.dl.dcch", dissect_DL_DCCH_Message_PDU, proto_nr_rrc); + register_dissector("nr-rrc.ul.dcch", dissect_UL_DCCH_Message_PDU, proto_nr_rrc); + + +/*--- End of included file: packet-nr-rrc-dis-reg.c ---*/ +#line 103 "./asn1/nr-rrc/packet-nr-rrc-template.c" +} + +void +proto_reg_handoff_nr_rrc(void) +{ +} -- cgit v1.2.3