diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2018-04-06 12:26:31 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-04-06 11:29:02 +0000 |
commit | 64d6a7b846d4e4803382f786cde9bc4168942ca0 (patch) | |
tree | d8d9ffd1a457c13e79fb9823849250804b4f016c /epan | |
parent | 485cec5bdfc90d968b0970e657cf24435e22fe25 (diff) |
NR RRC: upgrade dissector to v15.1.0
Change-Id: If34d8627e8dee0e9dd7c1dc72701aec57df68853
Reviewed-on: https://code.wireshark.org/review/26774
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/asn1/f1ap/f1ap.cnf | 9 | ||||
-rw-r--r-- | epan/dissectors/asn1/f1ap/packet-f1ap-template.c | 2 | ||||
-rw-r--r-- | epan/dissectors/asn1/lte-rrc/lte-rrc.cnf | 11 | ||||
-rw-r--r-- | epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c | 5 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/CMakeLists.txt | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/Makefile.am | 3 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn | 271 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn | 6030 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn | 59 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/nr-rrc.cnf | 146 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c | 4 | ||||
-rw-r--r-- | epan/dissectors/asn1/x2ap/x2ap.cnf | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-f1ap.c | 78 | ||||
-rw-r--r-- | epan/dissectors/packet-lte-rrc.c | 52 | ||||
-rw-r--r-- | epan/dissectors/packet-lte-rrc.h | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-nr-rrc.c | 30139 | ||||
-rw-r--r-- | epan/dissectors/packet-nr-rrc.h | 7 | ||||
-rw-r--r-- | epan/dissectors/packet-x2ap.c | 4 |
18 files changed, 27958 insertions, 8868 deletions
diff --git a/epan/dissectors/asn1/f1ap/f1ap.cnf b/epan/dissectors/asn1/f1ap/f1ap.cnf index 585c13ae59..0e1b7463bc 100644 --- a/epan/dissectors/asn1/f1ap/f1ap.cnf +++ b/epan/dissectors/asn1/f1ap/f1ap.cnf @@ -394,7 +394,7 @@ BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec %(DEFAULT_BODY)s if (param_tvb) { proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SCG_Config_Info); - dissect_nr_rrc_SCG_ConfigInfo_PDU(param_tvb, actx->pinfo, subtree, NULL); + dissect_nr_rrc_CG_ConfigInfo_PDU(param_tvb, actx->pinfo, subtree, NULL); } #.FN_BODY CellGroupConfig VAL_PTR = ¶m_tvb @@ -428,6 +428,13 @@ BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec } } +#.FN_BODY SIB1-message VAL_PTR = ¶m_tvb + tvbuff_t *param_tvb = NULL; +%(DEFAULT_BODY)s + if (param_tvb) { + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SIB1_message); + dissect_nr_rrc_SIB1_PDU(param_tvb, actx->pinfo, subtree, NULL); + } #.FN_HDR Reset col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset"); diff --git a/epan/dissectors/asn1/f1ap/packet-f1ap-template.c b/epan/dissectors/asn1/f1ap/packet-f1ap-template.c index 054575e846..8e1e6301bf 100644 --- a/epan/dissectors/asn1/f1ap/packet-f1ap-template.c +++ b/epan/dissectors/asn1/f1ap/packet-f1ap-template.c @@ -47,6 +47,7 @@ static gint ett_f1ap = -1; static gint ett_f1ap_ResourceCoordinationTransferContainer = -1; static gint ett_f1ap_PLMN_Identity = -1; static gint ett_f1ap_MIB_message = -1; +static gint ett_f1ap_SIB1_message = -1; static gint ett_f1ap_SCG_Config_Info = -1; static gint ett_f1ap_CellGroupConfig = -1; static gint ett_f1ap_TransportLayerAddress = -1; @@ -190,6 +191,7 @@ void proto_register_f1ap(void) { &ett_f1ap_ResourceCoordinationTransferContainer, &ett_f1ap_PLMN_Identity, &ett_f1ap_MIB_message, + &ett_f1ap_SIB1_message, &ett_f1ap_SCG_Config_Info, &ett_f1ap_CellGroupConfig, &ett_f1ap_TransportLayerAddress, diff --git a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf index 6c287b761d..aa87a01f6f 100644 --- a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf +++ b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf @@ -40,7 +40,6 @@ HandoverPreparationInformation-NB_PDU RLF-Report-r9_PDU RLF-Report-v9e0_PDU SCG-ConfigInfo-r12_PDU -UECapabilityInformation_PDU UEPagingCoverageInformation_PDU UEPagingCoverageInformation-NB_PDU UE-EUTRA-Capability_PDU @@ -166,6 +165,14 @@ SI-OrPSI-GERAN TYPE_PREFIX lte_rrc_call_dissector(nas_eps_handle, nas_eps_tvb, actx->pinfo, subtree); } +#.FN_BODY UECapabilityEnquiry-v1510-IEs/requestedFreqBandsNR-MRDC-r15 VAL_PTR = &freq_band_list_tvb + tvbuff_t *freq_band_list_tvb = NULL; +%(DEFAULT_BODY)s + if (freq_band_list_tvb) { + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_requestedFreqBandsNR_MRDC_r15); + dissect_nr_rrc_FreqBandList_PDU(freq_band_list_tvb, actx->pinfo, subtree, NULL); + } + #.FN_BODY UE-CapabilityRAT-Container /* Initialise to invalid value */ private_data_set_rat_type(actx, 0xFF); @@ -2465,7 +2472,7 @@ P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm if (scg_config_info_tvb) { proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_sourceContextENDC_r15); - dissect_nr_rrc_SCG_ConfigInfo_PDU(scg_config_info_tvb, actx->pinfo, subtree, NULL); + dissect_nr_rrc_ConfigRestrictInfoSCG_PDU(scg_config_info_tvb, actx->pinfo, subtree, NULL); } # diff --git a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c index 356eaa9b34..d518e0a2c3 100644 --- a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c +++ b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c @@ -294,6 +294,7 @@ static gint ett_lte_rrc_sourceRB_ConfigNR_r15 = -1; static gint ett_lte_rrc_sourceRB_ConfigSN_NR_r15 = -1; static gint ett_lte_rrc_sourceOtherConfigSN_NR_r15 = -1; static gint ett_lte_rrc_sourceContextENDC_r15 = -1; +static gint ett_lte_rrc_requestedFreqBandsNR_MRDC_r15 = -1; static expert_field ei_lte_rrc_number_pages_le15 = EI_INIT; static expert_field ei_lte_rrc_si_info_value_changed = EI_INIT; @@ -348,6 +349,7 @@ static const fragment_items lte_rrc_sib12_frag_items = { /* Forward declarations */ static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +static int dissect_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); static const true_false_string lte_rrc_eutra_cap_feat_group_ind_1_val = { "Intra-subframe freq hopping for PUSCH scheduled by UL grant; DCI format 3a; Aperiodic CQI/PMI/RI report on PUSCH: Mode 2-0 & 2-2 - Supported", @@ -4200,7 +4202,8 @@ void proto_register_lte_rrc(void) { &ett_lte_rrc_sourceRB_ConfigNR_r15, &ett_lte_rrc_sourceRB_ConfigSN_NR_r15, &ett_lte_rrc_sourceOtherConfigSN_NR_r15, - &ett_lte_rrc_sourceContextENDC_r15 + &ett_lte_rrc_sourceContextENDC_r15, + &ett_lte_rrc_requestedFreqBandsNR_MRDC_r15 }; static ei_register_info ei[] = { diff --git a/epan/dissectors/asn1/nr-rrc/CMakeLists.txt b/epan/dissectors/asn1/nr-rrc/CMakeLists.txt index 663fc126dc..1bdcb21070 100644 --- a/epan/dissectors/asn1/nr-rrc/CMakeLists.txt +++ b/epan/dissectors/asn1/nr-rrc/CMakeLists.txt @@ -21,6 +21,7 @@ set( EXT_ASN_FILE_LIST set( ASN_FILE_LIST NR-InterNodeDefinitions.asn NR-RRC-Definitions.asn + NR-UE-Variables.asn ) set( EXTRA_DIST diff --git a/epan/dissectors/asn1/nr-rrc/Makefile.am b/epan/dissectors/asn1/nr-rrc/Makefile.am index a70f6d272d..94bc4c8f64 100644 --- a/epan/dissectors/asn1/nr-rrc/Makefile.am +++ b/epan/dissectors/asn1/nr-rrc/Makefile.am @@ -14,7 +14,8 @@ EXT_ASN_FILE_LIST = ASN_FILE_LIST = \ NR-InterNodeDefinitions.asn \ - NR-RRC-Definitions.asn + NR-RRC-Definitions.asn \ + NR-UE-Variables.asn EXTRA_DIST = \ $(EXTRA_DIST_COMMON) \ diff --git a/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn b/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn index c01cdd54bc..696ca6a92d 100644 --- a/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn +++ b/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn @@ -1,27 +1,45 @@ --- 3GPP TS 38.331 V15.0.0 (2017-12) +-- 3GPP TS 38.331 V15.1.0 (2018-03) NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= BEGIN IMPORTS + ARFCN-ValueNR, + CellIdentity, + CSI-RS-Index, + GapConfig, + maxBandComb, + maxBasebandProcComb, + maxNrofSCells, + maxNrofIndexesToReport, + MeasQuantityResults, + MeasResultSCG-Failure, + MeasResultCellListSFTD, + P-Max, + PhysCellId, + RadioBearerConfig, RRCReconfiguration, + ServCellIndex, + SSB-Index, + ShortMAC-I, UE-CapabilityRAT-ContainerList FROM NR-RRC-Definitions; +-- TAG_NR-INTER-NODE-DEFINITIONS-STOP -- TAG-HANDOVER-COMMAND-START HandoverCommand ::= SEQUENCE { criticalExtensions CHOICE { c1 CHOICE{ - handoverCommand-r15 HandoverCommand-r15-IEs, + handoverCommand HandoverCommand-IEs, spare3 NULL, spare2 NULL, spare1 NULL }, criticalExtensionsFuture SEQUENCE {} } } -HandoverCommand-r15-IEs ::= SEQUENCE { +HandoverCommand-IEs ::= SEQUENCE { handoverCommandMessage OCTET STRING (CONTAINING RRCReconfiguration), nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -32,14 +50,14 @@ HandoverCommand-r15-IEs ::= SEQUENCE { HandoverPreparationInformation ::= SEQUENCE { criticalExtensions CHOICE { c1 CHOICE{ - handoverPreparationInformation-r15 HandoverPreparationInformation-r15-IEs, + handoverPreparationInformation HandoverPreparationInformation-IEs, spare3 NULL, spare2 NULL, spare1 NULL }, criticalExtensionsFuture SEQUENCE {} } } -HandoverPreparationInformation-r15-IEs ::= SEQUENCE { +HandoverPreparationInformation-IEs ::= SEQUENCE { ue-CapabilityRAT-List UE-CapabilityRAT-ContainerList, sourceConfig OCTET STRING (CONTAINING RRCReconfiguration), rrm-Config RRM-Config OPTIONAL, @@ -51,7 +69,7 @@ AS-Context ::= SEQUENCE { reestablishmentInfo SEQUENCE { sourcePhysCellId PhysCellId, targetCellShortMAC-I ShortMAC-I, - additionalReestabInfoList AdditionalReestabInfoList OPTIONAL + additionalReestabInfoList ReestabNCellInfoList OPTIONAL } OPTIONAL, -- FFS Whether to change e.g. move all re-establishment info to Xx configRestrictInfo ConfigRestrictInfoSCG OPTIONAL, @@ -61,124 +79,229 @@ AS-Context ::= SEQUENCE { ReestabNCellInfoList ::= SEQUENCE ( SIZE (1..maxCellPrep) ) OF ReestabNCellInfo ReestabNCellInfo::= SEQUENCE{ - cellIdentity CellIdentity, - key-gNodeB-Star BIT STRING (SIZE (256)), - shortMAC-I ShortMAC-I + cellIdentity CellIdentity, + key-gNodeB-Star BIT STRING (SIZE (256)), + shortMAC-I ShortMAC-I } RRM-Config ::= SEQUENCE { - ue-InactiveTime INTEGER, + ue-InactiveTime ENUMERATED { + s1, s2, s3, s5, s7, s10, s15, s20, + s25, s30, s40, s50, min1, min1s20c, min1s40, + min2, min2s30, min3, min3s30, min4, min5, min6, + min7, min8, min9, min10, min12, min14, min17, min20, + min24, min28, min33, min38, min44, min50, hr1, + hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6, + hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2, + day2hr12, day3, day4, day5, day7, day10, day14, day19, + day24, day30, dayMoreThan30} OPTIONAL , candidateCellInfoList CandidateCellInfoList OPTIONAL, ... } -- TAG-HANDOVER-PREPARATION-INFORMATION-STOP --- TAG-SCG-CONFIG-START +-- TAG-CG-CONFIG-START -SCG-Config ::= SEQUENCE { +CG-Config ::= SEQUENCE { criticalExtensions CHOICE { c1 CHOICE{ - scg-Config-r15 SCG-Config-r15-IEs, + cg-Config CG-Config-IEs, spare3 NULL, spare2 NULL, spare1 NULL }, criticalExtensionsFuture SEQUENCE {} } } -SCG-Config-r15-IEs ::= SEQUENCE { - scg-CellGroupdConfig OCTET STRING (CONTAINING RRCReconfiguration) OPTIONAL, - p-maxFR1 P-Max OPTIONAL, - scg-RB-Config OCTET STRING (CONTAINING RadioBearerConfiguration) OPTIONAL, - configRestrictModReq ConfigRestrictModReqSCG OPTIONAL, - candidateCellInfoList CandidateCellInfoList OPTIONAL, - nonCriticalExtension SEQUENCE {} OPTIONAL +CG-Config-IEs ::= SEQUENCE { + scg-CellGroupConfig OCTET STRING (CONTAINING RRCReconfiguration) OPTIONAL, + scg-RB-Config OCTET STRING (CONTAINING RadioBearerConfig) OPTIONAL, + configRestrictModReq ConfigRestrictModReqSCG OPTIONAL, + drx-InfoSCG DRX-Info OPTIONAL, + candidateCellInfoListSN OCTET STRING (CONTAINING CandidateCellInfoList) OPTIONAL, + measConfigSN MeasConfigSN OPTIONAL, + selectedBandCombinationNR BandCombinationIndex OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MeasConfigSN ::= SEQUENCE { + measuredFrequenciesFR1 SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF NR-FreqInfo OPTIONAL, + ... +} + +NR-FreqInfo ::= SEQUENCE { + measuredFrequency ARFCN-ValueNR OPTIONAL, + ... } ConfigRestrictModReqSCG ::= SEQUENCE { - requestedBC-List-NR SEQUENCE OF INTEGER OPTIONAL, - requestedBPC-List-NR SEQUENCE OF INTEGER OPTIONAL, - -- FFS Signalling details of BC and BPC restrictions requested by SgNB to be alleviated + requestedBC-MRDC BandCombinationIndex OPTIONAL, + requestedBPC-ListMRDC BPC-IndexList OPTIONAL, + requestedP-MaxFR1 P-Max OPTIONAL, ... } --- TAG-SCG-CONFIG-STOP --- TAG-SCG-CONFIG-INFO-START +BandCombinationIndex ::= INTEGER (1..maxBandComb) -SCG-ConfigInfo ::= SEQUENCE { - criticalExtensions CHOICE { - c1 CHOICE{ - scg-ConfigInfo-r15 SCG-ConfigInfo-r15-IEs, +-- TAG-CG-CONFIG-STOP +-- TAG-CG-CONFIG-INFO-START + +CG-ConfigInfo ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + cg-ConfigInfo CG-ConfigInfo-IEs, spare3 NULL, spare2 NULL, spare1 NULL }, - criticalExtensionsFuture SEQUENCE {} + criticalExtensionsFuture SEQUENCE {} } } -SCG-ConfigInfo-r15-IEs ::= SEQUENCE { - eutra-CapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL, - candidateCellInfoList CandidateCellInfoList OPTIONAL, - measResultSSTD MeasResultSSTD OPTIONAL, - configRestrictInfo ConfigRestrictInfoSCG OPTIONAL, - drx-InfoMCG DRX-Info OPTIONAL, - sourceConfigSCG OCTET STRING (CONTAINING RRCReconfiguration) OPTIONAL, - p-maxFR1 P-Max OPTIONAL, - mcg-RB-Config OCTET STRING (CONTAINING RadioBearerConfiguration) OPTIONAL, - nonCriticalExtension SEQUENCE {} OPTIONAL -} - -ConfigRestrictInfoSCG ::= SEQUENCE { - restrictedBandCombinationNR INTEGER OPTIONAL, - restrictedBasebandCombinationNR-NR SEQUENCE OF INTEGER OPTIONAL, - -- FFS Signalling details of BC and BPC restrictions to be observed by SgNB - -- FFS Signalling details regarding power coordination - maxMeasFreqsSCG-NR INTEGER OPTIONAL, +CG-ConfigInfo-IEs ::= SEQUENCE { + ue-CapabilityInfo OCTET STRING (CONTAINING UE-CapabilityRAT-ContainerList) OPTIONAL,-- Cond SN-Addition + candidateCellInfoListMN CandidateCellInfoList OPTIONAL, + candidateCellInfoListSN OCTET STRING (CONTAINING CandidateCellInfoList) OPTIONAL, + measResultCellListSFTD MeasResultCellListSFTD OPTIONAL, + scgFailureInfo SEQUENCE { + failureType ENUMERATED { t310-Expiry, randomAccessProblem, + rlc-MaxNumRetx, scg-ChangeFailure, + scg-reconfigFailure, + srb3-IntegrityFailure}, + measResultSCG OCTET STRING (CONTAINING MeasResultSCG-Failure) + } OPTIONAL, + configRestrictInfo ConfigRestrictInfoSCG OPTIONAL, + drx-InfoMCG DRX-Info OPTIONAL, + measConfigMN MeasConfigMN OPTIONAL, + sourceConfigSCG OCTET STRING (CONTAINING RRCReconfiguration) OPTIONAL, + scg-RB-Config OCTET STRING (CONTAINING RadioBearerConfig) OPTIONAL, + mcg-RB-Config OCTET STRING (CONTAINING RadioBearerConfig) OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ConfigRestrictInfoSCG ::= SEQUENCE { + allowedBC-ListMRDC BandCombinationIndexList OPTIONAL, + allowedBPC-ListMRDC BPC-IndexList OPTIONAL, + powerCoordination-FR1 SEQUENCE { + p-maxNR P-Max OPTIONAL, + p-maxEUTRA P-Max OPTIONAL + } OPTIONAL, + servCellIndexRangeSCG SEQUENCE { + lowBound ServCellIndex, + upBound ServCellIndex + } OPTIONAL, -- Cond SN-Addition + maxMeasFreqsSCG-NR INTEGER(1..maxMeasFreqsMN) OPTIONAL, ... } +BandCombinationIndexList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationIndex + +BPC-IndexList ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BPC-Index +BPC-Index ::= INTEGER (1..maxBasebandProcComb) + DRX-Info ::= SEQUENCE { - cycle INTEGER, - offset INTEGER + drx-LongCycleStartOffset CHOICE { + ms10 INTEGER(0..9), + ms20 INTEGER(0..19), + ms32 INTEGER(0..31), + ms40 INTEGER(0..39), + ms60 INTEGER(0..59), + ms64 INTEGER(0..63), + ms70 INTEGER(0..69), + ms80 INTEGER(0..79), + ms128 INTEGER(0..127), + ms160 INTEGER(0..159), + ms256 INTEGER(0..255), + ms320 INTEGER(0..319), + ms512 INTEGER(0..511), + ms640 INTEGER(0..639), + ms1024 INTEGER(0..1023), + ms1280 INTEGER(0..1279), + ms2048 INTEGER(0..2047), + ms2560 INTEGER(0..2559), + ms5120 INTEGER(0..5119), + ms10240 INTEGER(0..10239) + }, + shortDRX SEQUENCE { + drx-ShortCycle ENUMERATED { + ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32, + ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, spare9, + spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }, + drx-ShortCycleTimer INTEGER (1..16) + } OPTIONAL +} + +MeasConfigMN ::= SEQUENCE { + measuredFrequenciesMN SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF NR-FreqInfo OPTIONAL, + measGapConfigFR1 GapConfig OPTIONAL, + gapPurpose ENUMERATED {perUE, perFR1} OPTIONAL, + ... } --- TAG-SCG-CONFIG-INFO-STOP + +-- TAG-CG-CONFIG-INFO-STOP +-- TAG-MEASUREMENT-TIMING-CONFIGURATION-START + +MeasurementTimingConfiguration ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + measTimingConf MeasurementTimingConfiguration-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +MeasurementTimingConfiguration-IEs ::= SEQUENCE { + measTiming MeasTimingList OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MeasTimingList ::= SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF MeasTiming + +MeasTiming ::= SEQUENCE { + carrierFreq ARFCN-ValueNR OPTIONAL, + ssb-MeasurementTimingConfiguration ENUMERATED {ffsTypeAndValue} OPTIONAL, + ... +} + +-- TAG-MEASUREMENT-TIMING-CONFIGURATION-STOP -- TAG-CANDIDATE-CELL-INFO-LIST-START -CandidateCellInfoList ::= SEQUENCE (SIZE (1..maxCellSCG)) OF CandidateCellInfo +CandidateCellInfoList ::= SEQUENCE (SIZE (1.. maxNrofSCells)) OF CandidateCellInfo -CandidateCellInfo ::= SEQUENCE { - -- FFS whether to introduce something additional for transfer of SN configured measurements +CandidateCellInfo ::= SEQUENCE { cellIdentification SEQUENCE { physCellId PhysCellId, dl-CarrierFreq ARFCN-ValueNR }, - measResultCell SEQUENCE { - rsrpResultCell RSRP-Range, - rsrqResultCell RSRQ-Range - -- FFS whether to support SINR - } OPTIONAL, - candidateRS-IndexList CandidateRS-IndexInfoList OPTIONAL, + measResultCell MeasQuantityResults OPTIONAL, + candidateRS-IndexListSSB CandidateRS-IndexInfoListSSB OPTIONAL, + candidateRS-IndexListCSI-RS CandidateRS-IndexInfoListCSI-RS OPTIONAL, ... } -CandidateRS-IndexInfoList ::= SEQUENCE (SIZE (1..maxRS-IndexReport)) OF CandidateRS-IndexInfo -- WS modification: was CandidateBeamInfoList +CandidateRS-IndexInfoListSSB ::= SEQUENCE (SIZE (1..maxNrofIndexesToReport)) OF CandidateRS-IndexInfoSSB -CandidateRS-IndexInfo ::= SEQUENCE { - -- FFS whether to support CSI RS based beam results also - ssb-Index SSB-Index, - measResultSSB SEQUENCE { - rsrpResultCell RSRP-Range, - rsrqResultCell RSRQ-Range - -- FFS whether to support SINR - } OPTIONAL, +CandidateRS-IndexInfoSSB ::= SEQUENCE { + ssb-Index SSB-Index, + measResultSSB MeasQuantityResults OPTIONAL, + ... +} + +CandidateRS-IndexInfoListCSI-RS ::= SEQUENCE (SIZE (1..maxNrofIndexesToReport)) OF CandidateRS-IndexInfoCSI-RS + +CandidateRS-IndexInfoCSI-RS ::= SEQUENCE { + csi-RS-Index CSI-RS-Index, + measResultCSI-RS MeasQuantityResults OPTIONAL, ... } -- TAG-CANDIDATE-CELL-INFO-LIST-STOP +-- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-START + +maxMeasFreqsMN INTEGER ::= 32 -- Maximum number of MN-configured measurement frequencies +-- WS modification: already defined in NR-RRC-Definitions +-- maxCellPrep INTEGER ::= 32 Maximum number of cells prepared for handover --- WS modification: fake definitions for missing entries in ASN.1 -maxCellPrep INTEGER ::= 1 -maxCellSCG INTEGER ::= 1 -maxRS-IndexReport INTEGER ::= 1 -MeasResultSSTD ::= SEQUENCE {} +-- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-STOP +-- TAG_NR-INTER-NODE-DEFINITIONS-END-START END diff --git a/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn b/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn index ab60b460c6..e57f82598b 100644 --- a/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn +++ b/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn @@ -1,4 +1,4 @@ --- 3GPP TS 38.331 V15.0.0 (2017-12) +-- 3GPP TS 38.331 V15.1.0 (2018-03) NR-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= @@ -59,39 +59,34 @@ UL-DCCH-MessageType ::= CHOICE { -- TAG-MIB-START MIB ::= SEQUENCE { - -- Part of the SSB index transmitted explicitly in the MasterInformationBlock (see 38.213, section 4.1). - -- The SSB-Index identifies this SSB in the SS-Burst-Set. - -- The field is only present for carrier frequencies >6 GHz. FFS whether to create a separate MIB for >6 GHz or move optional field to the end. - ssb-IndexExplicit INTEGER (1..7) OPTIONAL, -- Cond Above6Ghz + -- The 6 most significant bit (MSB) of the 10 bit System Frame Number. The 4 LSB of the SFN are conveyed in the PBCH transport block + -- as well but outside the MIB. + systemFrameNumber BIT STRING (SIZE (6)), - -- Indication of whether the SS block is in the first or second 5 ms of a radio frame. - -- Corresponds to L1 parameter 'half-frame-index' (see 38,211, section 4.3.1) - halfFrameIndex ENUMERATED {firstHalf,secondHalf}, + -- Subcarrier spacing for SIB1, Msg.2/4 for initial access and broadcast SI-messages. + -- If the UE acquires this MIB on a carrier frequency <6GHz, the values 15 and 30 kHz are applicable. + -- If the UE acquires this MIB on a carrier frequency >6GHz, the values 60 and 120 kHz are applicable. + subCarrierSpacingCommon ENUMERATED {scs15or60, scs30or120}, - systemFrameNumber BIT STRING (SIZE (10)), + -- The frequency domain offset between SSB and the overall resource block grid in number of subcarriers. (See 38.211, section 7.4.3.1) + -- Note: For frequencies <6 GHz a fith, this field may comprise only the 4 least significant bits of the ssb-SubcarrierOffset. + -- The codepoint "FFS_RAN1" indicates that this cell does not provide SIB1 and that there is hence no common CORESET. + ssb-SubcarrierOffset INTEGER (0..15), - -- Subcarrier spacing for SIB1, Msg.2/4 for initial access and SI-messages. - -- Values 15 and 30 kHz are applicable for carrier frequencies <6GHz; Values 60 and 120 kHz are applicable for carrier frequencies >6GHz - subCarrierSpacingCommon SubcarrierSpacing, - - -- The frequency domain offset between SSB and the overall resource block grid in number of subcarriers. See 38.211, section 7.4.3.1) - ssb-subcarrierOffset INTEGER (0..11), - - -- Position of (first) DL DM-RS (see 38.211, section 7.4.1.1.1) + -- Position of (first) DL DM-RS. Corresponds to L1 parameter 'DL-DMRS-typeA-pos' (see 38.211, section 7.4.1.1.1) dmrs-TypeA-Position ENUMERATED {pos2, pos3}, - -- Determines a bandwidth for PDCCH/SIB, a common ControlResourceSet (CORESET) a common search space and necessary PDCCH parameters + -- Determines a bandwidth for PDCCH/SIB, a common ControlResourceSet (CORESET) a common search space and necessary PDCCH parameters. -- Corresponds to L1 parameter 'RMSI-PDCCH-Config' (see FFS_Specification, section FFS_Section) - -- FFS: Make optional and omit e.g. in EN-DC or in other cells not broadcasting SIB1? Or make it mandatory to avoid optional fields in MIB? - pdcchConfigSIB1 INTEGER(0..255), + pdcch-ConfigSIB1 INTEGER (0..255), - -- Indicates that UE shall not campe on this cell + -- Indicates that UE shall not camp on this cell cellBarred ENUMERATED {barred, notBarred}, - -- Indicates that intraFreqReselection is not allowed when cellBarred is set to barred. - intraFreqReselection ENUMERATED {allowed, notAllowed}, - -- FFS: How many spare values to keep in MIB? - spare BIT STRING (SIZE (0)) -- WS modification; was ffsValue + -- Controls cell reselection to intra-frequency cells when the highest ranked cell is barred, or treated as barred by the UE, + -- as specified in TS 38.304. + intraFreqReselection ENUMERATED {allowed, notAllowed}, + spare BIT STRING (SIZE (1)) } -- TAG-MIB-STOP @@ -105,8 +100,10 @@ MeasurementReport ::= SEQUENCE { } MeasurementReport-IEs ::= SEQUENCE { - measResults MeasResults --- FFS + measResults MeasResults, + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL } -- TAG-MEASUREMENTREPORT-STOP @@ -122,20 +119,17 @@ RRCReconfiguration ::= SEQUENCE { RRCReconfiguration-IEs ::= SEQUENCE { -- Configuration of Radio Bearers (DRBs, SRBs) including SDAP/PDCP. - -- In In EN-DC this field may only be present if the RRCReconfiguration + -- In EN-DC this field may only be present if the RRCReconfiguration -- is transmitted over SRB3. radioBearerConfig RadioBearerConfig OPTIONAL, -- Need M - -- Configuration of primary and secondary cell groups (Dual Connectivity): - masterCellGroupConfig CellGroupConfig OPTIONAL, -- Need M - secondaryCellGroupToAddModList SEQUENCE (SIZE (1..maxSCellGroups)) OF CellGroupConfig OPTIONAL, -- Need M - secondaryCellGroupToReleaseList SEQUENCE (SIZE (1..maxSCellGroups)) OF CellGroupId OPTIONAL, -- Need M + -- Configuration of secondary cell group (EN-DC): + secondaryCellGroup OCTET STRING (CONTAINING CellGroupConfig) OPTIONAL, -- Need M measConfig MeasConfig OPTIONAL, -- Need M - lateNonCriticalExtension OCTET STRING OPTIONAL, - nonCriticalExtension SEQUENCE{} OPTIONAL + nonCriticalExtension SEQUENCE {} OPTIONAL } -- TAG-RRCRECONFIGURATION-STOP @@ -150,7 +144,8 @@ RRCReconfigurationComplete ::= SEQUENCE { } RRCReconfigurationComplete-IEs ::= SEQUENCE { - -- FFS + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } -- TAG-RRCRECONFIGURATIONCOMPLETE-STOP @@ -160,6 +155,10 @@ SIB1 ::= SEQUENCE { -- FFS / TODO: Add other parameters. + -- Frequency offset for the SSB of -5kHz (M=-1) or +5kHz (M=1). When the field is absent, the UE applies no offset (M=0). + -- The offset is only applicable for the frequency range 0-2.65GHz. Corresponds to parameter 'M' (see 38.101, section FFS_Section) + frequencyOffsetSSB ENUMERATED {khz-5, khz5} OPTIONAL, -- Need R + -- Time domain positions of the transmitted SS-blocks in an SS-Burst-Set (see 38.213, section 4.1) ssb-PositionsInBurst SEQUENCE { -- Indicates the presence of the up to 8 SSBs in one group @@ -169,116 +168,207 @@ SIB1 ::= SEQUENCE { }, -- The SSB periodicity in msec for the rate matching purpose (see 38.211, section [7.4.3.1]) - ssb-periodicityServingCell ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, spare1, spare2 }, + ssb-PeriodicityServingCell ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160, spare1, spare2}, -- TX power that the NW used for SSB transmission. The UE uses it to estimate the RA preamble TX power. -- (see 38.213, section 7.4) ss-PBCH-BlockPower INTEGER (-60..50), - frequencyInfoUL FrequencyInfoUL OPTIONAL, -- Cond FDD - + uplinkConfigCommon UplinkConfigCommon OPTIONAL, -- FFS: How to indicate the FrequencyInfoUL for the SUL supplementaryUplink SEQUENCE { - frequencyInfoUL FrequencyInfoUL + uplinkConfigCommon UplinkConfigCommon OPTIONAL -- FFS: Add additional (selection) criteria determining when/whether the UE shall use the SUL frequency } OPTIONAL, -- Cond SUL - tdd-UL-DL-configuration NULL OPTIONAL, -- Cond TDD WS modification: was TYPE_FFS! + tdd-UL-DL-Configuration TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD + tdd-UL-DL-configurationCommon2 TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD + + pdcch-ConfigCommon PDCCH-ConfigCommon OPTIONAL, + pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, - -- Enables hopping of base sequence of PUCCH Format 0 when transmitted in different slots. - -- Corresponds to L1 parameter 'PUCCH-F0-Base-sequence-hopping' (see 38.211, section 6.4.1.3) - pucch-Format0-BaseSequenceHopping ENUMERATED {true} OPTIONAL, - -- Enabling hopping of base sequence of PUCCH Format 1 when transmitted in different slots - -- Corresponds to L1 parameter 'PUCCH-F1-Base-sequence-hopping' (see 38.211, section 6.4.1.3) - pucch-Format1-BaseSequenceHopping ENUMERATED {true} OPTIONAL + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL } -- TAG-SIB1-STOP -- TAG-SETUP-RELEASE-START ---SetupRelease { ElementTypeParam } ::= CHOICE { --- release NULL, --- setup ElementTypeParam ---} +-- WS modiifcation: asn2wrs does not support this syntax; replace all occurrences +-- SetupRelease { ElementTypeParam } ::= CHOICE { +-- release NULL, +-- setup ElementTypeParam +-- } -- TAG-SETUP-RELEASE-STOP --- TAG-DRB-IDENTITY-START +-- TAG-ADDITIONALSPECTRUMEMISSION-START -DRB-Identity ::= INTEGER (4..32) +AdditionalSpectrumEmission ::= INTEGER (0..7) --- TAG-DRB-IDENTITY-STOP +-- TAG-ADDITIONALSPECTRUMEMISSION-STOP +-- TAG-ALPHA-START + +Alpha ::= ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1} + +-- TAG-ALPHA-STOP +-- TAG-ARFCN-VALUE-NR-START + +ARFCN-ValueNR ::= INTEGER (0..3279165) + +-- TAG-ARFCN-VALUE-NR-STOP -- TAG-BANDWIDTH-PART-START -BandwidthPart-Config ::= SEQUENCE { - -- FFS: Conditions! What to do when certain fields or the entire bandwidth part is omitted? Assume parameters of the carrier instead? - -- Or use the initialBWP derived from SIB1 or ServingCellConfigCommon? Or make it mandatory to provide at least one BWP. - -- FFS: How can a BandiwdthPart be changed? Only via synchronousReconfiguration or also without? +-- Generic parameters used in Uplink- and Downlink bandwidth parts +BWP ::= SEQUENCE { + -- Frequency domain location and bandwidth of this bandwidth part defined commonly in a table (FFS_Section). The location is given as + -- distance (in number of PRBs) to point A (absoluteFrequencyPointA in FrequencyInfoDL). + -- Corresponds to L1 parameter 'DL-BWP-loc'. (see 38.211, section FFS_Section). + -- In case of TDD, a BWP-pair (UL BWP and DL BWP with the same bwp-Id) must have the same location (see 38.211, section REF) + locationAndBandwidth INTEGER (0..37949), + -- Subcarrier spacing to be used in this BWP for all channels and + -- reference signals unless explicitly configured elsewhere. + -- Corresponds to subcarrier spacing according to 38.211, Table 4.2-1. + -- The value kHz15 corresponds to µ=0, kHz30 to µ=1, and so on. Only the values 15 or 30 kHz (<6GHz), 60 or 120 kHz (>6GHz) are + -- applicable. + subcarrierSpacing SubcarrierSpacing, + -- Indicates whether to use the extended cyclic prefix for this bandwidth part. If not set, the UE uses the normal cyclic prefix. + -- Normal CP is supported for all numerologies and slot formats. Extended CP is supported only for 60 kHz subcarrier spacing. + -- (see 38.211, section 4.2.2) + cyclicPrefix ENUMERATED { extended } OPTIONAL -- Need R +} + +BWP-Uplink ::= SEQUENCE { + -- An identifier for this bandwidth part. Other parts of the RRC configuration use the BWP-Id to associate themselves with a particular + -- bandwidth part. The BWP ID=0 is always associated with the initial BWP and may hence not be used here (in other bandwidth parts). + -- The NW may trigger the UE to swtich UL or DL BWP using a DCI field. The four code points in that DCI field map to the RRC-configured + -- BWP-ID as follows: For up to 3 configured BWPs (in addition to the initial BWP) the DCI code point is equivalent to the BWP ID + -- (initial = 0, first dedicated = 1, ...). If the NW configures 4 dedicated bandwidth parts, they are identified by DCI code + -- points 0 to 3. In this case it is not possible to switch to the initial BWP using the DCI field. + -- Corresponds to L1 parameter 'UL-BWP-index'. (see 38.211, 38.213, section 12) + bwp-Id BWP-Id, + bwp-Common BWP-UplinkCommon OPTIONAL, -- Need M + bwp-Dedicated BWP-UplinkDedicated OPTIONAL, -- Need M + ... +} - -- NOTE: The changes in this section are based on RAN1 agreements (not from the official L1 parameter list): +BWP-UplinkCommon ::= SEQUENCE { + genericParameters BWP, + -- Configuration of cell specific random access parameters which the UE uses for contention based and contention free random access + -- as well as for contention based beam failure recovery. + rach-ConfigCommon CHOICE {release NULL, setup RACH-ConfigCommon } OPTIONAL, -- Need M + -- Cell specific parameters for the PUSCH + pusch-ConfigCommon CHOICE {release NULL, setup PUSCH-ConfigCommon } OPTIONAL, -- Need M - -- The bandwidth parts for downlink. (see 38.211, 38.213, section 12) - downlinkBandwidthPartsToReleaseList SEQUENCE (SIZE (1..maxNrofBandwidthParts)) OF BandiwdthPartId OPTIONAL, - downlinkBandwidthPartsToAddModList SEQUENCE (SIZE (1..maxNrofBandwidthParts)) OF BandwidthPart OPTIONAL, - -- ID of the downlink bandwidth part to be used upon MAC-activation of an SCell. If not provided, the UE uses the default BWP - firstActiveDownlinkBwp-Id BandiwdthPartId OPTIONAL, -- Cond SCellOnly + -- Cell specific parameters for the PUCCH + pucch-ConfigCommon CHOICE {release NULL, setup PUCCH-ConfigCommon } OPTIONAL, -- Need M + ... +} - -- Corresponds to L1 parameter 'default-DL-BWP'. - -- ID of the downlink bandwidth part to be used upon expiry of txxx. - -- This field is UE specific. When the field is absent the UE the initial BWP as default BWP. - -- (see 38.211, 38.213, section 12) - -- FFS: May the NW change the default BWP with a regular RRC reconfiguration or only with Reconfiguration with sync? - -- FFS: Whether to add a default uplink BWP - defaultDownlinkBwp-Id BandiwdthPartId OPTIONAL, +BWP-UplinkDedicated ::= SEQUENCE { + -- PUCCH configuration for one BWP of the regular UL or SUL of a serving cell. If the UE is configured with SUL, the network + -- configures PUCCH only on the BWPs of one of the uplinks (UL or SUL). + pucch-Config CHOICE {release NULL, setup PUCCH-Config } OPTIONAL, -- Need M + -- PUSCH configuration for one BWP of the regular UL or SUL of a serving cell. If the UE is configured with SUL and + -- if it has a PUSCH-Config for both UL and SUL, a carrier indicator field in DCI indicates for which of the two to use an UL grant. + -- See also L1 parameter 'dynamicPUSCHSUL' (see 38.213, section FFS_Section) + pusch-Config CHOICE {release NULL, setup PUSCH-Config } OPTIONAL, -- Need M + -- A Configured-Grant of typ1 or type2. It may be configured for Ul or SUL but in case of type1 [FFS also type2] not for both at a time. + configuredGrantConfig CHOICE {release NULL, setup ConfiguredGrantConfig } OPTIONAL, -- Need M + -- Uplink sounding reference signal configuration + srs-Config CHOICE {release NULL, setup SRS-Config } OPTIONAL, -- Need M + -- Determines how the UE performs Beam Failure Recovery upon detection of a Beam Failure (see RadioLinkMonitoringConfig) + beamFailureRecoveryConfig CHOICE {release NULL, setup BeamFailureRecoveryConfig } OPTIONAL, -- Need M + ... +} + + +BWP-Downlink ::= SEQUENCE { + -- An identifier for this bandwidth part. Other parts of the RRC configuration use the BWP-Id to associate themselves with a particular + -- bandwidth part. The BWP ID=0 is always associated with the initial BWP and may hence not be used here. (in other bandwidth parts). + -- The NW may trigger the UE to swtich UL or DL BWP using a DCI field. The four code points in that DCI field map to the RRC-configured + -- BWP-ID as follows: For up to 3 configured BWPs (in addition to the initial BWP) the DCI code point is equivalent to the BWP ID + -- (initial = 0, first dedicated = 1, ...). If the NW configures 4 dedicated bandwidth parts, they are identified by DCI code + -- points 0 to 3. In this case it is not possible to switch to the initial BWP using the DCI field. + -- Corresponds to L1 parameter 'DL-BWP-index'. (see 38.211, 38.213, section 12) + bwp-Id BWP-Id, + bwp-Common BWP-DownlinkCommon OPTIONAL, -- Need M + bwp-Dedicated BWP-DownlinkDedicated OPTIONAL, -- Need M + ... +} + + +BWP-DownlinkCommon ::= SEQUENCE { + genericParameters BWP, + pdcch-ConfigCommon CHOICE {release NULL, setup PDCCH-ConfigCommon } OPTIONAL, -- Need M + pdsch-ConfigCommon CHOICE {release NULL, setup PDSCH-ConfigCommon } OPTIONAL, -- Need M + ... +} + +BWP-DownlinkDedicated ::= SEQUENCE { + pdcch-Config CHOICE {release NULL, setup PDCCH-Config } OPTIONAL, -- Need M + pdsch-Config CHOICE {release NULL, setup PDSCH-Config } OPTIONAL, -- Need M + sps-Config CHOICE {release NULL, setup SPS-Config } OPTIONAL, -- Need M + radioLinkMonitoringConfig CHOICE {release NULL, setup RadioLinkMonitoringConfig } OPTIONAL, -- Need M + ... +} - -- The bandwidth parts for uplink. In case of TDD uplink- and downlink BWP with the same bandwidthPartId are considered - -- as a BWP pair and must have the same center frequency. - uplinkBandwidthPartsToReleaseList SEQUENCE (SIZE (1..maxNrofBandwidthParts)) OF BandiwdthPartId OPTIONAL, - uplinkBandwidthPartsToAddModList SEQUENCE (SIZE (1..maxNrofBandwidthParts)) OF BandwidthPart OPTIONAL, - -- ID of the uplink bandwidth part to be used upon MAC-activation of an SCell. If not provided, the UE uses the FFS: default BWP - firstActiveUplinkBwp-Id BandiwdthPartId OPTIONAL, -- Cond SCellOnly - - -- The duration in ms after which the UE falls back to the default Bandwidth Part. (see 38.321, section FFS_Section) - -- The UE starts the timer when it switches its active downlink BWP to a downlink BWP other than the default downlink BWP. - -- The UE restarts the timer to the initial value when it successfully decodes a DCI to schedule PDSCH(s) in its active downlink BWP. - -- When the timer expires, the UE switches its active downlink BWP to the default downlink (FFS: and uplink?) BWP. - -- FFS: For TDD the UE switches also the paired uplink BWP to the one with the defaultDownlinkBwp-Id. - -- FFS: For FDD the UE switches the uplink BWP????? - -- When the network releases the timer configuration, the UE stops the timer without swithching to the default (FFS: and uplink?) BWP. - bandwidthPartInactivityTimer CHOICE { - release NULL, - setup ENUMERATED { - null }} OPTIONAL -- Need M - -} - -BandwidthPart ::= SEQUENCE { - -- An identifier for this bandwidth part. - -- Corresponds to L1 parameter 'UL-BWP-index'. (see 38.211, 38.213, section 12) - bandwidthPartId BandwidthPartId, - -- Frequency domain location of this bandwidth part as a distance in number of PRBs in relation to the reference PRB (PRB 0) - -- of the associated carrier. Corresponds to L1 parameter 'DL-BWP-loc'. (see 38.211, section FFS_Section). - -- In case of TDD, a BWP-pair (UL BWP and DL BWP with the same bandwidthPartId) must have the same location (see 38.211, section REF) - -- FFS_Value: RAN1 seems to discuss the final range. - location INTEGER (0.. maxNrofPhysicalResourceBlocksTimes4) OPTIONAL, - -- Bandwidth of this bandwidth part (see 38.211, section REF) - bandwidth INTEGER (1.. maxNrofPhysicalResourceBlocks) OPTIONAL, - -- Subcarrier spacing to be used in this BWP. It is applied to at least PDCCH, PDSCH and corresponding DMRS. - -- The values provided here are converted into a subcarrier spacing as indicated in 38.211, Table 4.1-2. - subcarrierSpacing ENUMERATED {n0, n1, n2, n3, n4} OPTIONAL, - -- Indicates whether to use the extended cyclic prefix for this bandwidth part. If not set, the UE uses the normal cyclic prefix. - -- Normal CP is supported for all numerologies and slot formats. Extended CP is supported only for 60 kHz subcarrier spacing. - -- (see 38.211, section 4.2.2) - cyclicPrefix ENUMERATED { extended } OPTIONAL, - - -- Frequency location of the uplink "direct current" frequency. - -- Corresponds to L1 parameter 'UL-BWP-DC'. (see 38.211, section FFS_Section) - directCurrentLocation INTEGER (0..3299) OPTIONAL -- Cond UplinkOnly -} - -BandwidthPartId ::= INTEGER (0..maxNrofBandwidthParts-1) -- TAG-BANDWIDTH-PART-STOP +-- TAG-BWP-ID-START + +BWP-Id ::= INTEGER (0..maxNrofBWPs) + +-- TAG-BWP-ID-STOP +-- TAG-BEAM-FAILURE-RECOVERY-CONFIG-START + +BeamFailureRecoveryConfig ::= SEQUENCE { + rootSequenceIndex-BFR INTEGER (0..137) OPTIONAL, -- Need M + -- Configuration of contention free random access occasions for BFR + rach-ConfigBFR RACH-ConfigGeneric OPTIONAL, -- Need M + -- L1-RSRP threshold used for determining whether a candidate beam may be used by the UE to attempt contention free + -- Random Access to recover from beam failure. The signalled threshold is applied directly for SSB, a threshold for + -- CSI-RS is determined by linearly scaling singalled value based on Pc_ss corresponding to the CSI-RS resource. + -- (see FFS_Specification, FFS_Section) + candidateBeamThreshold RSRP-Range OPTIONAL, -- Need M + -- A list of reference signals (CSI-RS and/or SSB) identifying the candidate beams for recover and the associated RA parameters + candidateBeamRSList SEQUENCE (SIZE(1..maxNrofCandidateBeams)) OF PRACH-ResourceDedicatedBFR OPTIONAL, -- Need M + -- Explicitly signalled PRACH Mask Index for RA Resource selection in TS 36.321. The mask is valid for all SSB resources + ra-ssb-OccasionMaskIndex INTEGER (0..15) OPTIONAL, -- Need M + -- Control Resource Set that the UE uses to receive the random access response for beam failure recovery. + -- If the field is absent the UE uses the initial CORESET (ControlResourceSetId = 0) + recoveryControlResourceSetId ControlResourceSetId OPTIONAL , -- Need S + -- Search space to use for BFR RAR. If the field is absent, the UE uses the initial Serach Space (SearchSpaceId = 0). + recoverySearchSpaceId SearchSpaceId OPTIONAL, -- Need S + ... +} + +PRACH-ResourceDedicatedBFR ::= CHOICE { + ssb BFR-SSB-Resource, + csi-RS BFR-CSIRS-Resource +} + +BFR-SSB-Resource ::= SEQUENCE { + -- The ID of an SSB transmitted by this serving cell. It determines a candidate beam for beam failure recovery (BFR) + ssb SSB-Index, + -- The preamble index that the UE shall use when performing BFR upon selecting the candidate beams identified by this SSB. + ra-PreambleIndex INTEGER (0..63), + ... +} + +BFR-CSIRS-Resource ::= SEQUENCE { + -- The ID of a NZP-CSI-RS-Resource configured in the CSI-MeasConfig of this serving cell. This reference signal determines a candidate beam + -- for beam failure recovery (BFR). + csi-RS NZP-CSI-RS-ResourceId, + -- RA occasions that the UE shall use when performing BFR upon selecting the candidate beam identified by this CSI-RS. If the field is absent + -- the UE uses the RA occasion associated with the SSB that is QCLed with this CSI-RS. + -- The RA preamble index to use in the RA occasions associated with this CSI-RS. If the field is absent, the UE uses the preamble index + -- associated with the SSB that is QCLed with this CSI-RS. + ra-PreambleIndex INTEGER (0..63) OPTIONAL, -- Need R + ... +} + +-- TAG-BEAM-FAILURE-RECOVERY-CONFIG-STOP -- TAG-CELL-GROUP-CONFIG-START -- Configuration of one Cell-Group: @@ -286,308 +376,690 @@ CellGroupConfig ::= SEQUENCE { cellGroupId CellGroupId, -- Logical Channel configuration and association with radio bearers: - rlc-BearerToAddModList SEQUENCE (SIZE(1..maxLCH)) OF LCH-Config OPTIONAL, - rlc-BearerToReleaseList SEQUENCE (SIZE(1..maxLCH)) OF LogicalChannelIdentity OPTIONAL, + rlc-BearerToAddModList SEQUENCE (SIZE(1..maxLC-ID)) OF RLC-Bearer-Config OPTIONAL, -- Need N + rlc-BearerToReleaseList SEQUENCE (SIZE(1..maxLC-ID)) OF LogicalChannelIdentity OPTIONAL, -- Need N -- Parameters applicable for the entire cell group: mac-CellGroupConfig MAC-CellGroupConfig OPTIONAL, -- Need M - rlf-TimersAndConstants RLF-TimersAndConstants OPTIONAL, -- Need M - physical-CellGroupConfig PhysicalCellGroupConfig OPTIONAL, -- Need M + physicalCellGroupConfig PhysicalCellGroupConfig OPTIONAL, -- Need M - -- Serving Cell specific parameters (PCell and SCells) + -- Serving Cell specific parameters (SpCell and SCells) spCellConfig SpCellConfig OPTIONAL, -- Need M - sCellToAddModList SCellToAddModList OPTIONAL, -- Need M - sCellToReleaseList SCellToReleaseList OPTIONAL -- Need M + sCellToAddModList SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig OPTIONAL, -- Need N + -- List of seconary serving cells to be released (not applicable for SpCells) + sCellToReleaseList SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex OPTIONAL, -- Need N + ... } -CellGroupId ::= INTEGER (1.. maxSCellGroups) +-- The ID of a cell group. 0 identifies the master cell group. Other values identify secondary cell groups. +-- In this version of the specification only values 0 and 1 are supported. +-- FFS: This should be moved to be own IE section +CellGroupId ::= INTEGER (0.. maxSecondaryCellGroups) --- Configuration of one logical channel: -LCH-Config ::= SEQUENCE { +RLC-Bearer-Config ::= SEQUENCE { + -- ID used commonly for the MAC logical channel and for the RLC bearer. logicalChannelIdentity LogicalChannelIdentity, - -- Associate the logical channel with an SRB or a DRB: - servedRadioBearer INTEGER (1..32) OPTIONAL, -- Cond LCH-SetupOnly + -- Associates the RLC Bearer with an SRB or a DRB. The UE shall deliver DL RLC SDUs received via the RLC entity of this + -- RLC bearer to the PDCP entity of the servedRadioBearer. Furthermore, the UE shall advertise and deliver uplink PDCP PDUs of the + -- uplink PDCP entity of the servedRadioBearer to the uplink RLC entity of this RLC bearer unless the uplink scheduling + -- restrictions ('moreThanOneRLC' in PDCP-Config and the restrictions in LogicalChannelConfig) forbid it to do so. + servedRadioBearer CHOICE { + srb-Identity SRB-Identity, + drb-Identity DRB-Identity + } OPTIONAL, -- Cond LCH-SetupOnly reestablishRLC ENUMERATED {true} OPTIONAL, -- Need N rlc-Config RLC-Config OPTIONAL, -- Cond LCH-Setup - mac-LogicalChannelConfig LogicalChannelConfig OPTIONAL -- Cond LCH-Setup + mac-LogicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond LCH-Setup + ... } -LogicalChannelIdentity ::= INTEGER (1..32) -- WS modification: was FFS but 38.321 defines max value as 32 +LogicalChannelIdentity ::= INTEGER (1..maxLC-ID) -- Cell-Group specific L1 parameters PhysicalCellGroupConfig ::= SEQUENCE { - -- Enables spatial bundling of HARQ ACKs. It is configured per cell group, i.e. for all the cells within the cell group. - -- It is only applicable when more than 4 layers are possible to schedule. + -- Enables spatial bundling of HARQ ACKs. It is configured per cell group (i.e. for all the cells within the cell group) for PUCCH + -- reporting of HARQ-ACK. It is only applicable when more than 4 layers are possible to schedule. -- Corresponds to L1 parameter 'HARQ-ACK-spatial-bundling' (see 38.213, section FFS_Section) -- Absence indicates that spatial bundling is disabled. - harq-ACK-Spatial-Bundling ENUMERATED {true} OPTIONAL -- Need R, + harq-ACK-SpatialBundlingPUCCH ENUMERATED {true} OPTIONAL, -- Need R + + -- Enables spatial bundling of HARQ ACKs. It is configured per cell group (i.e. for all the cells within the cell group) for PUSCH + -- reporting of HARQ-ACK. It is only applicable when more than 4 layers are possible to schedule. + -- Corresponds to L1 parameter 'HARQ-ACK-spatial-bundling' (see 38.213, section FFS_Section) + -- Absence indicates that spatial bundling is disabled. + harq-ACK-SpatialBundlingPUSCH ENUMERATED {true} OPTIONAL, -- Need R + -- The maximum transmit power to be used by the UE in this NR cell group. + p-NR P-Max OPTIONAL, -- Need R + -- The PDSCH HARQ-ACK codebook is either semi-static of dynamic. This is applicable to both CA and none CA operation. + -- Corresponds to L1 parameter 'HARQ-ACK-codebook' (see 38.213, section FFS_Section) + pdsch-HARQ-ACK-Codebook ENUMERATED {semiStatic, dynamic}, + -- RNTI used for SRS TPC commands on DCI. Corresponds to L1 parameter 'TPC-SRS-RNTI' (see 38.213, section 10) + tpc-SRS-RNTI RNTI-Value OPTIONAL, -- Need R + -- RNTI used for PUCCH TPC commands on DCI. Corresponds to L1 parameter 'TPC-PUCCH-RNTI' (see 38.213, section 10). + tpc-PUCCH-RNTI RNTI-Value OPTIONAL, -- Need R + -- RNTI used for PUSCH TPC commands on DCI. Corresponds to L1 parameter 'TPC-PUSCH-RNTI' (see 38.213, section 10) + tpc-PUSCH-RNTI RNTI-Value OPTIONAL,-- Need R + ... } -- Serving cell specific MAC and PHY parameters for a SpCell: SpCellConfig ::= SEQUENCE { + -- Serving cell ID of a PSCell (the PCell of the Master Cell Group uses ID = 0) + servCellIndex ServCellIndex OPTIONAL, -- Cond SCG -- Parameters for the synchronous reconfiguration to the target SpCell: - reconfigurationWithSync SEQUENCE { - spCellConfigCommon ServingCellConfigCommon, - newUE-Identity C-RNTI, - t304 ENUMERATED {ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, ms10000-v1310}, - rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL -- Need M - } OPTIONAL, -- Cond SpCellChange - - spCellConfigDedicated ServingCellConfigDedicated OPTIONAL -- Need M + reconfigurationWithSync ReconfigurationWithSync OPTIONAL, -- Cond ReconfWithSync + rlf-TimersAndConstants CHOICE {release NULL, setup RLF-TimersAndConstants } OPTIONAL, -- Need M + rlmInSyncOutOfSyncThreshold INTEGER (0..1) OPTIONAL, -- Need M + spCellConfigDedicated ServingCellConfig OPTIONAL, -- Need M + ... } -C-RNTI ::= BIT STRING (SIZE (16)) -SCellToReleaseList ::= SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex -SCellToAddModList ::= SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig +ReconfigurationWithSync ::= SEQUENCE { + spCellConfigCommon ServingCellConfigCommon OPTIONAL, -- Need M + newUE-Identity RNTI-Value, + t304 ENUMERATED {ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, ms10000}, + rach-ConfigDedicated CHOICE { + uplink RACH-ConfigDedicated, + supplementaryUplink RACH-ConfigDedicated + } OPTIONAL, -- Need N + ... +} SCellConfig ::= SEQUENCE { sCellIndex SCellIndex, sCellConfigCommon ServingCellConfigCommon OPTIONAL, -- Cond SCellAdd - sCellConfigDedicated ServingCellConfigDedicated OPTIONAL -- Cond SCellAddMod + sCellConfigDedicated ServingCellConfig OPTIONAL, -- Cond SCellAddMod + ... } -- TAG-CELL-GROUP-CONFIG-STOP --- TAG-CELL-INDEX-LIST-START +-- TAG-CODEBOOKCONFIG-START +CodebookConfig ::= SEQUENCE { + -- CodebookType including possibly sub-types and the corresponding parameters for each. Corresponds to L1 parameter 'CodebookType' + -- (see 38.214, section 5.2.2.2) + codebookType CHOICE { + type1 SEQUENCE { + subType CHOICE { + typeI-SinglePanel SEQUENCE { + nrOfAntennaPorts CHOICE { + two SEQUENCE { + -- Codebook subset restriction for 2TX codebook + -- Corresponds to L1 parameter ' TypeI-SinglePanel-2Tx-CodebookSubsetRestriction' (see 38.214 section 5.2.2.2.1) + twoTX-CodebookSubsetRestriction BIT STRING (SIZE (6)) + }, + moreThanTwo SEQUENCE { + -- Number of antenna ports in first (n1) and second (n2) dimension and codebook subset restriction + -- Corresponds to L1 parameters 'CodebookConfig-N1', 'CodebookConfig-N2' + -- 'TypeI-SinglePanel-CodebookSubsetRestriction ' (see 38.214 section 5.2.2.2.1) + n1-n2 CHOICE { + two-one-TypeI-SinglePanel-Restriction BIT STRING (SIZE (8)), + two-two-TypeI-SinglePanel-Restriction BIT STRING (SIZE (64)), + four-one-TypeI-SinglePanel-Restriction BIT STRING (SIZE (16)), + three-two-TypeI-SinglePanel-Restriction BIT STRING (SIZE (96)), + six-one-TypeI-SinglePanel-Restriction BIT STRING (SIZE (24)), + four-two-TypeI-SinglePanel-Restriction BIT STRING (SIZE (128)), + eight-one-TypeI-SinglePanel-Restriction BIT STRING (SIZE (32)), + four-three-TypeI-SinglePanel-Restriction BIT STRING (SIZE (192)), + six-two-TypeI-SinglePanel-Restriction BIT STRING (SIZE (192)), + twelve-one-TypeI-SinglePanel-Restriction BIT STRING (SIZE (48)), + four-four-TypeI-SinglePanel-Restriction BIT STRING (SIZE (256)), + eight-two-TypeI-SinglePanel-Restriction BIT STRING (SIZE (256)), + sixteen-one-TypeI-SinglePanel-Restriction BIT STRING (SIZE (64)) + }, + -- i2 codebook subset restriction for Type I Single-panel codebook used when reportQuantity is CRI/Ri/i1/CQI + -- Corresponds to L1 parameter 'TypeI-SinglePanel-CodebookSubsetRestriction-i2' (see 38.214 section 5.2.2.2.1) + typeI-SinglePanel-codebookSubsetRestriction-i2 BIT STRING (SIZE (16)) OPTIONAL + } + }, + -- Restriction for RI for TypeI-SinglePanel-RI-Restriction + -- Corresponds to L1 parameter 'TypeI-SinglePanel-RI-Restriction' (see 38.214, section 5.2.2.2.1) + typeI-SinglePanel-ri-Restriction BIT STRING (SIZE (8)) + }, + typeI-MultiPanel SEQUENCE { + -- Codebook subset restriction for Type I Multi-panel codebook + -- Corresponds to L1 parameter 'TypeI-MultiPanel-CodebookSubsetRestriction' (see 38.214, section 5.2.2.2.2) + ng-n1-n2 CHOICE { + two-two-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (8)), + two-four-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (32)), + four-two-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (32)), + two-two-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (128)), + two-eight-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (64)), + four-four-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (64)), + two-four-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (256)), + four-two-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (256)) + }, + -- Restriction for RI for TypeI-MultiPanel-RI-Restriction + -- Corresponds to L1 parameter 'TypeI-MultiPanel-RI-Restriction' (see 38.214, section 5.2.2.2.2) + ri-Restriction BIT STRING (SIZE (4)) + } + }, + -- CodebookMode as specified in 38.214 section 5.2.2.2.2 + codebookMode INTEGER (1..2) + + }, + type2 SEQUENCE { + subType CHOICE { + typeII SEQUENCE { + -- Number of antenna ports in first (n1) and second (n2) dimension and codebook subset restriction + -- Corresponds to L1 parameters 'CodebookConfig-N1', 'CodebookConfig-N2' + -- The CHOICE name indicates the value of n1 and n2, the CHOICE contents is the codebook subset restriction bitmap + -- Corresponds to L1 parameter ' TypeII-CodebookSubsetRestriction' (see 38.214 section 5.2.2.2.3) + -- Number of bits for codebook subset restriction is ceil(log2(nchoosek(O1*O2,4)))+8*n1*n2 where nchoosek(a,b) = a!/(b!(a-b)!) + n1-n2-codebookSubsetRestriction CHOICE { + two-one BIT STRING (SIZE (16)), + two-two BIT STRING (SIZE (139)), + four-one BIT STRING (SIZE (32)), + three-two BIT STRING (SIZE (59)), + six-one BIT STRING (SIZE (49)), + four-two BIT STRING (SIZE (75)), + eight-one BIT STRING (SIZE (65)), + four-three BIT STRING (SIZE (107)), + six-two BIT STRING (SIZE (107)), + twelve-one BIT STRING (SIZE (129)), + four-four BIT STRING (SIZE (139)), + eight-two BIT STRING (SIZE (139)), + sixteen-one BIT STRING (SIZE (129)) + }, + -- Restriction for RI for TypeII-RI-Restriction + -- Corresponds to L1 parameter 'TypeII-RI-Restriction' (see 38.214, section 5.2.2.2.3) + typeII-RI-Restriction BIT STRING (SIZE (2)) + }, + typeII-PortSelection SEQUENCE { + -- The size of the port selection codebook (parameter d) + portSelectionSamplingSize ENUMERATED {n1, n2, n3, n4} OPTIONAL, -- Cond TypeII-PortSelection + -- Restriction for RI for TypeII-PortSelection-RI-Restriction + -- Corresponds to L1 parameter 'TypeII-PortSelection-RI-Restriction' (see 38.214, section 5.2.2.4) + typeII-PortSelectionRI-Restriction BIT STRING (SIZE (2)) + } + }, + -- The size of the PSK alphabet, QPSK or 8-PSK + phaseAlphabetSize ENUMERATED {n4, n8}, + -- If subband amplitude reporting is activated (true) + subbandAmplitude BOOLEAN, + -- Number of beams, L, used for linear combination + numberOfBeams ENUMERATED {two, three, four} + } + } +} -CellIndexList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellIndex +-- TAG-CODEBOOKCONFIG-STOP +-- TAG-CONFIGUREDGRANTCONFIG-START -CellIndex ::= INTEGER (1..maxNrofCellMeas) +ConfiguredGrantConfig ::= SEQUENCE { --- TAG-CELL-INDEX-LIST-STOP --- TAG-CONTROL-RESOURCE-INDEX-START + -- Frequency hopping as agreed in RAN1-AH18776 + frequencyHopping ENUMERATED {mode1, mode2}, + -- DMRS configuration, as agreed in RAN1-AH18776 + cg-DMRS-Configuration DMRS-UplinkConfig, -ControlResourceIndex ::= INTEGER (1..maxNrofControlResourceSets) + -- Indicates the MCS table the UE shall use for PUSCH without transform precoding, as agreed in RAN1-AH18776 + mcs-Table ENUMERATED {qam64, qam256}, + -- Indicates the MCS table the UE shall use for PUSCH with transform precoding, as agreed in RAN1-AH18776 + -- When the field is absent the UE applies the value 64QAM + mcs-TableTransformPrecoder ENUMERATED {qam256} OPTIONAL, -- Need S + -- Selection between and configuration of dynamic and semi-static beta-offset, as agreed in RAN1-AH18776 + -- Note: For Type 1 UL data transmission without grant, "uci-on-PUSCH" should be set to semiStatic + uci-OnPUSCH CHOICE {release NULL, setup CG-UCI-OnPUSCH }, + -- Configuration of resource allocation type 0 and resource allocation type 1, as agreed in RAN1-AH18776 + -- Note: For Type 1 UL data transmission without grant, "resourceAllocation" should be resourceAllocationType0 or resourceAllocationType1 + resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch }, + -- Selection between config 1 and config 2 for RBG size for PUSCH. When the field is absent the UE applies the value config1. + -- Note: rbg-Size is used when the transformPrecoder parameter is disabled. + rbg-Size ENUMERATED {config2} OPTIONAL, -- Need S + + -- Closed control loop to apply. Corresponds to L1 parameter 'PUSCH-closed-loop-index' (see 38.213, section FFS_Section) + powerControlLoopToUse ENUMERATED {n0, n1}, + -- Index of the P0-PUSCH-AlphaSet to be used for this configuration + p0-PUSCH-Alpha P0-PUSCH-AlphaSetId, + -- Enable transformer precoder for type1 and type2. Absence indicates that it is disabled. + -- Corresponds to L1 parameter 'UL-TWG-tp' (see 38.214, section 6.1.3) + transformPrecoder ENUMERATED {enabled} OPTIONAL, -- Need R + -- The number of HARQ processes configured. It applies for both Type 1 and Type 2 + -- Corresponds to L1 parameter 'UL-TWG-numbHARQproc' (see 38.321, section 5.8.2) + nrofHARQ-Processes INTEGER(1..16), + -- The number or repetitions of K: + repK ENUMERATED {n1, n2, n4, n8}, + -- If repetitions is used, this field indicates the redundancy version (RV) sequence to use. + -- Corresponds to L1 parameter 'UL-TWG-RV-rep' (see 38.321, section 5.8.2) + repK-RV ENUMERATED {s1-0231, s2-0303, s3-0000} OPTIONAL, -- Cond RepK + -- Periodicity for UL transmission without UL grant for type 1 and type 2 + -- Corresponds to L1 parameter 'UL-TWG-periodicity' (see 38.321, section 5.8.2) + + -- The following periodicities are supported depending on the configured subcarrier spacing [symbols]: + -- 15kHz: 2, 7, n*14, where n={1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 320, 640} + -- 30kHz: 2, 7, n*14, where n={1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 256, 320, 640, 1280} + -- 60kHz with normal CP: 2, 7, n*14, where n={1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 256, 320, 512, 640, 1280, 2560} + -- 60kHz with ECP: 2, 6, n*12, where n={1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 256, 320, 512, 640, 1280, 2560} + -- 120kHz: 2, 7, n*14, where n={1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 256, 320, 512, 640, 1024, 1280, 2560, 5120} + -- (see 38.214, Table 6.1.2.3-1) + periodicity ENUMERATED { + sym2, sym7, sym1x14, sym2x14, sym4x14, sym5x14, sym8x14, sym10x14, sym16x14, sym20x14, + sym32x14, sym40x14, sym64x14, sym80x14, sym128x14, sym160x14, sym256x14, sym320x14, sym512x14, + sym640x14, sym1024x14, sym1280x14, sym2560x14, sym5120x14, + + sym6, sym1x12, sym2x12, sym4x12, sym5x12, sym8x12, sym10x12, sym16x12, sym20x12, sym32x12, + sym40x12, sym64x12, sym80x12, sym128x12, sym160x12, sym256x12, sym320x12, sym512x12, sym640x12, + sym1280x12, sym2560x12 + }, + + -- If configured, the UE uses the configured grant timer (see 38.321, section 5.8.2) with this initial timer value. + -- Supported values are as follows in units of symbols: + -- For normal CP: 2, 7, {1, 2, 4, 5, 8, 10, 20, 32, 40, 64, 80, 128, 160, 256, 512, 640 } x 14 + -- For extended CP: 2, 6, {1, 2, 4, 8, 20, 40, 80, 128, 160, 256, 320, 512, 640 } x 12 + configuredGrantTimer ENUMERATED { + sym2, sym7, sym1x14, sym2x14, sym4x14, sym5x14, sym8x14, sym10x14, sym16x14, sym20x14, sym32x14, + sym40x14, sym64x14, sym80x14, sym128x14, sym160x14, sym256x14, sym512x14, sym640x14, + + sym6, sym1x12, sym2x12, sym4x12, sym5x12, sym8x12, sym10x12, sym16x12, sym20x12, sym32x12, + sym40x12, sym64x12, sym80x12, sym128x12, sym256x12, sym320x12, sym512x12, sym640x12 + } OPTIONAL, -- Need R + -- Selection between "configured grant" transmission with fully RRC-configured UL grant (Type1) + -- or with UL grant configured by DCI addressed to CS-RNTI (Type2). + rrc-ConfiguredUplinkGrant SEQUENCE { + -- Offset related to SFN=0 + timeDomainOffset INTEGER (0..5119), + -- Corresponding to the DCI field of time domain resource assignment, and the maximum bit width is 4. + --(see 38.214, section 6.1.2 and 38.212, section 7.3.1) + timeDomainAllocation INTEGER (0..15), -- RAN1 indicated just "Mapping-type,Index-start-len" + -- Corresponding to the DCI field of freq domain resource assignment. + -- (see 38.214, section 6.1.2, and 38.212, section 7.3.1) + frequencyDomainAllocation BIT STRING (SIZE(18)), + -- UE-specific DMRS configuration: corresponding to the DCI field of antenna ports, and the maximum bitwidth is 5. + -- (see 38.214, section 6.1.2, and 38.212, section 7.3.1) + antennaPort INTEGER (0..31), + dmrs-SeqInitialization INTEGER (0..1) OPTIONAL, -- Cond NoTransformPrecoder + precodingAndNumberOfLayers INTEGER (0..63), + srs-ResourceIndicator INTEGER (0..15), + -- The modulation order, target code rate and TB size (see 38.214, section 6.1.2) + mcsAndTBS INTEGER (0..31), + -- Enables intra-slot frequency hopping with the given frequency hopping offset + -- Corresponds to L1 parameter 'UL-TWG-hopping' (see 38.214, section FFS_Section) + + frequencyHoppingOffset INTEGER (1.. maxNrofPhysicalResourceBlocks-1), + pathlossReferenceIndex INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1), + ... + } OPTIONAL -- Cond Type1 +} --- TAG-CONTROL-RESOURCE-INDEX-STOP +CG-UCI-OnPUSCH ::= CHOICE { + dynamic SEQUENCE (SIZE (1..4)) OF BetaOffsets, + semiStatic BetaOffsets +} -CrossCarrierSchedulingConfig ::= SEQUENCE { +-- TAG-CONFIGUREDGRANTCONFIG-STOP +-- TAG-CONTROLRESOURCESET-START + +ControlResourceSet ::= SEQUENCE { + -- Corresponds to L1 parameter 'CORESET-ID' + -- Value 0 identifies the common CORESET configured in MIB and in ServingCellConfigCommon + -- Values 1..maxNrofControlResourceSets-1 identify CORESETs configured by dedicated signalling + -- The controlResourceSetId is unique among the BWPs of a ServingCell. + controlResourceSetId ControlResourceSetId, - -- FFS: Indicate this separately for UL and DL (as done in LTE for LAA) + + -- Frequency domain resources for the CORESET. Each bit corresponds a group of 6 RBs, with grouping starting from PRB 0, which is fully + -- contained in the bandwidth part within which the CORESET is configured. + -- The most significant bit corresponds to the group of lowest frequency which is fully contained in the bandwidth part within which the + -- CORESET is configured, each next subsequent lower significance bit corresponds to the next lowest frequency group fully contained within + -- the bandwidth part within which the CORESET is configured, if any. + -- Bits corresponding to a group not fully contained within the bandwidth part within which the CORESET is configured are set to zero. + -- Corresponds to L1 parameter 'CORESET-freq-dom'(see 38.211, section 7.3.2.2) + frequencyDomainResources BIT STRING (SIZE (45)), + -- Contiguous time duration of the CORESET in number of symbols + -- Corresponds to L1 parameter 'CORESET-time-duration' (see 38.211, section 7.3.2.2FFS_Section) + duration INTEGER (1..maxCoReSetDuration), + -- Mapping of Control Channel Elements (CCE) to Resource Element Groups (REG). + -- Corresponds to L1 parameter 'CORESET-CCE-REG-mapping-type' (see 38.211Section sections 7.3.2.2 and 7.4.1.3.2) + cce-REG-MappingType CHOICE { + interleaved SEQUENCE { + -- Resource Element Groups (REGs) can be bundled to create REG bundles. This parameter defines the size of such bundles. + -- Corresponds to L1 parameter 'CORESET-REG-bundle-size' (see 38.211, section FFS_Section) + reg-BundleSize ENUMERATED {n2, n3, n6}, + -- Corresponds to L1 parameter 'CORESET-interleaver-size' (see 38.211, 38.213, section FFS_Section) + interleaverSize ENUMERATED {n2, n3, n6}, + -- Corresponds to L1 parameter 'CORESET-shift-index' (see 38.211, section 7.3.2.2) + shiftIndex INTEGER(0..maxNrofPhysicalResourceBlocks-1) + }, + nonInterleaved NULL + }, + -- Precoder granularity in frequency domain. + -- Corresponds to L1 parameter 'CORESET-precoder-granuality' (see 38.211, sections 7.3.2.2 and 7.4.1.3.2) + precoderGranularity ENUMERATED {sameAsREG-bundle, allContiguousRBs}, + + -- A subset of the TCI states defined in TCI-States used for providing QCL relationships between the DL RS(s) in one RS Set + -- (TCI-State) and the PDCCH DMRS ports. Corresponds to L1 parameter 'TCI-StatesPDCCH' (see 38.214, section FFS_Section) + tci-StatesPDCCH SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId OPTIONAL, -- Need R + + -- If at least spatial QCL is configured/indicated, this field indicates if TCI field is present or not present in DL-related DCI. + -- When the field is absent the UE considers the TCI to be absent/disabled. + -- Corresponds to L1 parameter 'TCI-PresentInDCI' (see 38,213, section 5.1.5) + tci-PresentInDCI ENUMERATED {enabled} OPTIONAL, -- Need S + + -- PDCCH DMRS scrambling initalization. Corresponds to L1 parameter 'PDCCH-DMRS-Scrambling-ID' (see 38.214, section 5.1) + -- When the field is absent the UE applies the value '0'. + pdcch-DMRS-ScramblingID BIT STRING (SIZE (16)) OPTIONAL -- Need S +} + +-- TAG-CONTROLRESOURCESET-STOP +-- TAG-CONTROL-RESOURCE-SET-ID-START + +ControlResourceSetId ::= INTEGER (0..maxNrofControlResourceSets-1) + +-- TAG-CONTROL-RESOURCE-SET-ID-STOP + +CrossCarrierSchedulingConfig ::= SEQUENCE { schedulingCellInfo CHOICE { own SEQUENCE { -- No cross carrier scheduling cif-Presence BOOLEAN }, other SEQUENCE { -- Cross carrier scheduling schedulingCellId ServCellIndex, - -- FFS: pdsch-start is probably not needed since RAN1 agreed that the scheduling DCI can provide (an index into a - -- UE-specific table giving) the OFDM symbols used for the PDSCH (or PUSCH) transmission. But what does "can provide" mean? - pdsch-Start INTEGER (1..4), - -- FFS: cif-InSchedulingCell is probably still needed since RAN1 agreed that "If CIF is present in DCI, the bitwidth is fixed at 3 bit". cif-InSchedulingCell INTEGER (1..7) - } - } + } -- Cond SCellOnly + }, + ... } --- TAG-CSI-MEAS-CONFIG-START +-- TAG-CSI-APERIODICTRIGGERSTATELIST-START --- Top level parameter for CSI/BM framework. Contains lists of reporting, resource, and link configurations (see 38.214, section 5.2) -CSI-MeasConfig ::= SEQUENCE { - csi-ResourceConfigs SEQUENCE (SIZE (1..maxNrofCSI-ResourceConfigurations)) OF CSI-ResourceConfig OPTIONAL, - csi-ReportConfigs SEQUENCE (SIZE (1..maxNrofCSI-Reports)) OF CSI-ReportConfig OPTIONAL, - csi-MeasIdToAddModList SEQUENCE (SIZE (1..maxNrofCSI-MeasId)) OF CSI-MeasIdToAddMod OPTIONAL, +CSI-AperiodicTriggerStateList ::= SEQUENCE (SIZE (1..maxNrOfCSI-AperiodicTriggers)) OF CSI-AperiodicTriggerState - -- Contains trigger states for dynamically selecting one or more aperiodic and semi-persistent reporting configurations - -- and/or triggering one or more aperiodic CSI-RS resource sets for channel and/or interference measurement. - -- FFS_CHECK: Is this the appropriate place for the IE or should it be inside the resource configuration or in a set? - reportTrigger SEQUENCE { - -- Size of CSI request field in DCI (bits). Corresponds to L1 parameter 'ReportTriggerSize' (see 38.214, section 5.2) - reportTriggerSize INTEGER (0..6) OPTIONAL -- WS modification: was FFS but 38.214 defines max value as 6 - } +CSI-AperiodicTriggerState ::= SEQUENCE { + associatedReportConfigInfoList SEQUENCE (SIZE(1..maxNrofReportConfigPerAperiodicTrigger)) OF CSI-AssociatedReportConfigInfo, + ... } +CSI-AssociatedReportConfigInfo ::= SEQUENCE { + -- The reportConfigId of one of the CSI-ReportConfigToAddMod configured in CSI-MeasConfig + reportConfigId CSI-ReportConfigId, --- One CSI resource configuration comprising of one or more resource sets -CSI-ResourceConfig ::= SEQUENCE { - -- FFS: Where is the CSI-ResourceConfigId used? - csi-ResourceConfigId CSI-ResourceConfigId, - -- Contains up to maxNrofCSI-ResourceSets resource CSI-ReosurceSets if ResourceConfigType is 'aperiodic' and maxNrofCSI-ResourceSets otherwise. - -- Corresponds to L1 parameter 'ResourceSetConfigList' (see 38.214, section 5.2.1.3.1) - csi-ResourceSets SEQUENCE (SIZE (1..maxNrofCSI-ResourceSets)) OF CSI-ResourceSet, + resourcesForChannel CHOICE { + nzp-CSI-RS SEQUENCE { + -- NZP-CSI-RS-ResourceSet for channel measurements. Entry number in nzp-CSI-RS-ResourceSetList in the CSI-ResourceConfig + -- indicated by resourcesForChannelMeasurement in the CSI-ReportConfig indicated by reportConfigId above + -- (1 corresponds to the first entry, 2 to thesecond entry, and so on). + resourceSet INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig), - -- List of SSB resources used for beam measurement and reporting in a resource set - -- Corresponds to L1 parameter 'SSBResourceMeasList' (see 38,214, section FFS_Section) - ssb-Resources SEQUENCE (SIZE (1..maxNrofSSB-Resources-1)) OF CSI-SSB-Resource OPTIONAL, + -- List of references to TCI-States for providing the QCL source and QCL type for for each NZP-CSI-RS-Resource + -- listed in nzp-CSI-RS-Resources of the NZP-CSI-RS-ResourceSet indicated by nzp-CSI-RS-ResourcesforChannel. + -- First entry in qcl-info-forChannel corresponds to first entry in nzp-CSI-RS-Resources of that NZP-CSI-RS-ResourceSet, + -- second entry in qcl-info-forChannel corresponds to second entry in nzp-CSI-RS-Resources, + -- and so on. Corresponds to L1 parameter 'QCL-Info-aPeriodicReportingTrigger' (see 38.214, section 5.2.1.5.1) + qcl-info SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet)) OF TCI-StateId + }, + -- CSI-SSB-ResourceSet for channel measurements. Entry number in csi-SSB-ResourceSetList in the CSI-ResourceConfig indicated by + -- resourcesForChannelMeasurement in the CSI-ReportConfig indicated by reportConfigId above (1 corresponds to the first entry, 2 to + -- the second entry, and so on). + csi-SSB-ResourceSet INTEGER (1..maxNrofCSI-SSB-ResourceSetsPerConfig) + }, - -- Time domain behavior of resource configuration. Corresponds to L1 parameter 'ResourceConfigType' (see 38.214, section 5.2.2.3.5) - resourceType CHOICE { - aperiodic NULL, - semiPersistent NULL, - periodic NULL - }} + -- CSI-IM-ResourceSet for interference measurement. Entry number in csi-IM-ResourceSetList in the CSI-ResourceConfig indicated by + -- csi-IM-ResourcesForInterference in the CSI-ReportConfig indicated by reportConfigId above (1 corresponds to the first entry, 2 to the second + -- entry, and so on). + -- The indicated CSI-IM-ResourceSet should have exactly the same number of resources like the NZP-CSI-RS-ResourceSet indicated in + -- nzp-CSI-RS-ResourcesforChannel. + -- This field can only be present if the CSI-ReportConfig identified by reportConfigId includes csi-IM-ResourcesForInterference. + csi-IM-ResourcesforInteference INTEGER(1..maxNrofCSI-IM-ResourceSetsPerConfig) OPTIONAL, --Cond CSI-IM-forInterference + + + -- NZP-CSI-RS-ResourceSet for interference measurement. Entry number in nzp-CSI-RS-ResourceSetList in the CSI-ResourceConfig indicated by + -- nzp-CSI-RS-ResourcesForInterference in the CSI-ReportConfig indicated by reportConfigId above (1 corresponds to the first entry, + -- 2 to the second entry, and so on). + -- The indicated NZP-CSI-RS-ResourceSet should have exactly the same number of resources like the NZP-CSI-RS-ResourceSet indicated in + -- nzp-CSI-RS-ResourcesforChannel. + -- This field can only be present if the CSI-ReportConfig identified by reportConfigId includes nzp-CSI-RS-ResourcesForInterference. + nzp-CSI-RS-ResourcesforInterference INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig) OPTIONAL, --Cond LinkedNZP-CSI-RS-forInterference + ... +} -CSI-ResourceConfigId ::= INTEGER (0..maxNrofCSI-ResourceConfigurations-1) +-- TAG-CSI-APERIODICTRIGGERSTATELIST-STOP +-- TAG-CSI-FREQUENCYOCCUPATION-START --- A set of CSI-RS resources (their IDs) for which DCI indicates whether or not these CSI-RS resources are currently present or not. --- Corresponds to L1 parameter 'ResourceSetConfig' (see 38.214, section 5.2) -CSI-ResourceSet ::= SEQUENCE { - -- FFS: Where is the CSI-ResourceSetId used? - csi-ResourceSetId CSI-ResourceSetId, - -- Contains up to maxNrofCSI-RS-ResourcesPerSet CSI-RS-Resource configurations. - -- Corresponds to L1 parameter 'CSI-RS-ResourceConfigList' (see 38.214, section 5.2) - -- FFS: Better make the csi-rs-Resources a common pool on CSI-MeasConfig level? - csi-rs-Resources SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesPerSet)) OF NZP-CSI-RS-Resource, - -- Indicates whether repetition is on/off. Repetition on (off), means that The UE can (cannot) assume that - -- the network maintains a fixed TX beam over the resources in the set. - -- Corresponds to L1 parameter 'ResourceRep' (see 38.214, section FFS_Section) - repetition BOOLEAN +CSI-FrequencyOccupation ::= SEQUENCE { + -- PRB where this CSI resource starts in relation to PRB 0 of the associated BWP. + -- Only multiples of 4 are allowed (0, 4, ...) + startingRB INTEGER (0..maxNrofPhysicalResourceBlocks-1), + -- Number of PRBs across which this CSI resource spans. Only multiples of 4 are allowed. The smallest configurable + -- number is the minimum of 24 and the width of the associated BWP. + nrofRBs INTEGER (24..maxNrofPhysicalResourceBlocks), + ... } -CSI-ResourceSetId ::= INTEGER (0..maxNrofCSI-ResourceSets-1) +-- TAG-CSI-FREQUENCYOCCUPATION-STOP +-- TAG-CSI-IM-RESOURCE-START +CSI-IM-Resource ::= SEQUENCE { + csi-IM-ResourceId CSI-IM-ResourceId, --- A CSI-RS (reference signal) resource which the UE may be configured to measure on (see 38.214, section 5.2.1.3.1) -NZP-CSI-RS-Resource ::= SEQUENCE { - nzp-csi-rs-ResourceId NZP-CSI-RS-ResourceId, - -- Number of ports (see 38.214, section 5.2.1.2) - nrofPorts ENUMERATED {p1,p2,p4,p8,p12,p16,p24,p32}, - -- OFDM symbol location(s) in a slot and subcarrier occupancy in a PRB of the CSI-RS resource - -- FFS: how to configure CSI-RS in different slots for fine time/frequency tracking (see 38.214, section 5.2.1.3.1) - resourceMapping NULL, -- WS modification: was TYPE_FFS! - -- CDM value (1, 2, 4, or 8), CDM pattern (freq only, time and freq, time only) (see 38.214, section 5.2.1.3.1) - cdm-Value ENUMERATED {n1, n2, n4, n8}, - cdm-Pattern ENUMERATED {freqOnly, timeAndFreq, timeOnly}, - -- Density of CSI-RS resource measured in RE/port/PRB (see 38.214, section 5.2.1.3.1) - -- Values 0.5 (dot5), 1 (one) and 3 (three) are allowed for X=1, - -- values 0.5 (dot5) and 1 (one) are allowed for X=2, 16, 24 and 32, - -- value 1 (one) is allowed for X=4, 8, 12. - csi-RS-Density ENUMERATED {dot5, one, three, spare}, - -- Wideband or partial band CSI-RS (see 38.214, section 5.2.1.3.1) - csi-RS-FreqBand NULL, -- WS modification: was TYPE_FFS! - -- Power offset of NZP CSI-RS RE to PDSCH RE, corresponds to parameter Pc (see 38.214, section 5.2.1.3.1) - powerControlOffset NULL, -- WS modification: was TYPE_FFS! - -- Power offset of NZP CSI-RS RE to SS RE. Corresponds to L1 parameter 'Pc_SS' (see 38.214, section FFS_Section) - powerControlOffsetSS NULL OPTIONAL, -- WS modification: was FFS_Value - -- Scrambling ID (see 38.214, section 5.2.1.3.1) - scramblingID INTEGER(0), -- WS modification: was TYPE_FFS! - -- Periodicity and slot offset - csi-RS-timeConfig CHOICE { - sl5 INTEGER (0..4), - sl10 INTEGER (0..9), - sl20 INTEGER (0..19), - sl40 INTEGER (0..39), - sl80 INTEGER (0..79), - sl160 INTEGER (0..159), - sl320 INTEGER (0..319), - sl640 INTEGER (0..639) - } + -- The resource element pattern (Pattern0 (2,2) or Pattern1 (4,1)) with corresponding parameters. + -- Corresponds to L1 parameter 'CSI-IM-RE-pattern' (see 38.214, section 5.2.2.3.4) + csi-IM-ResourceElementPattern CHOICE { + pattern0 SEQUENCE { + -- OFDM subcarrier occupancy of the CSI-IM resource for Pattern0 + -- Corresponds to L1 parameter 'CSI-IM-ResourceMapping' (see 38.214, section 5.2.2.3.4) + subcarrierLocation-p0 ENUMERATED { s0, s2, s4, s6, s8, s10 }, + -- OFDM symbol location of the CSI-IM resource for Pattern0 + -- Corresponds to L1 parameter 'CSI-IM-ResourceMapping' (see 38.214, section 5.2.2.3.4) + symbolLocation-p0 INTEGER (0..12) + }, + pattern1 SEQUENCE { + -- OFDM subcarrier occupancy of the CSI-IM resource for Pattern1 + -- Corresponds to L1 parameter 'CSI-IM-ResourceMapping' (see 38.214, section 5.2.2.3.4) + subcarrierLocation-p1 ENUMERATED { s0, s4, s8 }, + -- OFDM symbol location of the CSI-IM resource for Pattern1 + -- Corresponds to L1 parameter 'CSI-IM-ResourceMapping' (see 38.214, section 5.2.2.3.4) + symbolLocation-p1 INTEGER (0..13) + } + } OPTIONAL, --Need M + + -- Frequency-occupancy of CSI-IM. Corresponds to L1 parameter 'CSI-IM-FreqBand' (see 38.214, section 5.2.2.3.2) + freqBand CSI-FrequencyOccupation OPTIONAL, -- Need M + + -- Periodicity and slot offset for periodic/semi-persistent CSI-IM. Corresponds to L1 parameter 'CSI-IM-timeConfig' + periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, --Cond PeriodicOrSemiPersistent + ... } -NZP-CSI-RS-ResourceId ::= INTEGER (0..maxNrofNZP-CSI-RS-Resources-1) +-- TAG-CSI-IM-RESOURCE-STOP +-- TAG-CSI-IM-RESOURCEID-START +CSI-IM-ResourceId ::= INTEGER (0..maxNrofCSI-IM-Resources-1) -ZP-CSI-RS-Resource ::= SEQUENCE { - zp-csi-rs-ResourceId ZP-CSI-RS-ResourceId, - -- OFDM symbol and subcarrier occupancy of the CSI-RS resource within a slot (see 38.214, section REF) - resourceMapping NULL -- WS modification: was TYPE_FFS! +-- TAG-CSI-IM-RESOURCEID-STOP +-- TAG-CSI-IM-RESOURCESET-START +CSI-IM-ResourceSet ::= SEQUENCE { + csi-IM-ResourceSetId CSI-IM-ResourceSetId, + -- CSI-IM-Resources associated with this CSI-IM-ResourceSet + -- Corresponds to L1 parameter 'CSI-IM-ResourceConfigList' (see 38.214, section 5.2) + csi-IM-Resources SEQUENCE (SIZE(1..maxNrofCSI-IM-ResourcesPerSet)) OF CSI-IM-ResourceId, + ... } +-- TAG-CSI-IM-RESOURCESET-STOP +-- TAG-CSI-IM-RESOURCESETID-START -ZP-CSI-RS-ResourceId ::= INTEGER (0..maxNrofZP-CSI-RS-Resources-1) +CSI-IM-ResourceSetId ::= INTEGER (0..maxNrofCSI-IM-ResourceSets-1) -CSI-IM-ResourceConfig ::= SEQUENCE { - csi-IM-ResourceConfigId CSI-IM-ResourceConfigId, +-- TAG-CSI-IM-RESOURCESETID-STOP +-- TAG-CSI-MEAS-CONFIG-START - -- The resource element pattern for the CSI-IM resource - -- Corresponds to L1 parameter 'CSI-IM-RE-pattern' (see 38.214, section 5.2.2.3.4) - csi-IM-ResourceElementPattern ENUMERATED {pattern2-2, pattern4-1}, +CSI-MeasConfig ::= SEQUENCE { + -- Pool of NZP-CSI-RS-Resource which can be referred to from NZP-CSI-RS-ResourceSet + nzp-CSI-RS-ResourceToAddModList SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-Resources)) OF NZP-CSI-RS-Resource OPTIONAL, -- Need N + nzp-CSI-RS-ResourceToReleaseList SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-Resources)) OF NZP-CSI-RS-ResourceId OPTIONAL, -- Need N - -- OFDM symbol and subcarrier occupancy of the CSI-IM resource within a slot - -- Corresponds to L1 parameter 'CSI-IM-ResourceMapping' (see 38.214, section 5.2.2.3.4) - -- FFS_Values: RAN1 indicated "symbol locations: [0..13] and subcarrier locations: [0..9]" -> Should this be a bitmap of 9x13? Or two separate? - resourceMapping NULL OPTIONAL -- WS modification: was TYPE_FFS! -} + -- Pool of NZP-CSI-RS-ResourceSet which can be referred to from CSI-ResourceConfig or from MAC CEs + nzp-CSI-RS-ResourceSetToAddModList SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSets)) OF NZP-CSI-RS-ResourceSet OPTIONAL, -- Need N + nzp-CSI-RS-ResourceSetToReleaseList SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSets)) OF NZP-CSI-RS-ResourceSetId OPTIONAL, -- Need N + + -- Pool of CSI-IM-Resource which can be referred to from CSI-IM-ResourceSet + csi-IM-ResourceToAddModList SEQUENCE (SIZE (1..maxNrofCSI-IM-Resources)) OF CSI-IM-Resource OPTIONAL, -- Need N + csi-IM-ResourceToReleaseList SEQUENCE (SIZE (1..maxNrofCSI-IM-Resources)) OF CSI-IM-ResourceId OPTIONAL, -- Need N + + -- Pool of CSI-IM-ResourceSet which can be referred to from CSI-ResourceConfig or from MAC CEs + csi-IM-ResourceSetToAddModList SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSets)) OF CSI-IM-ResourceSet OPTIONAL, -- Need N + csi-IM-ResourceSetToReleaseList SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSets)) OF CSI-IM-ResourceSetId OPTIONAL, -- Need N + + -- Pool of CSI-SSB-ResourceSet which can be referred to from CSI-ResourceConfig + csi-SSB-ResourceSetToAddModList SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSets)) OF CSI-SSB-ResourceSet OPTIONAL, -- Need N + csi-SSB-ResourceSetToAddReleaseList SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSets)) OF CSI-SSB-ResourceSetId OPTIONAL, -- Need N + + -- Configured CSI resource settings as specified in TS 38.214 section 5.2.1.2 + csi-ResourceConfigToAddModList SEQUENCE (SIZE (1..maxNrofCSI-ResourceConfigurations)) OF CSI-ResourceConfig OPTIONAL, -- Need N + csi-ResourceConfigToReleaseList SEQUENCE (SIZE (1..maxNrofCSI-ResourceConfigurations)) OF CSI-ResourceConfigId OPTIONAL, -- Need N -CSI-IM-ResourceConfigId ::= INTEGER (0..maxNrofCSI-IM-Resources-1) + -- Configured CSI report settings as specified in TS 38.214 section 5.2.1.1 + csi-ReportConfigToAddModList SEQUENCE (SIZE (1..maxNrofCSI-ReportConfigurations)) OF CSI-ReportConfig OPTIONAL, -- Need N + csi-ReportConfigToReleaseList SEQUENCE (SIZE (1..maxNrofCSI-ReportConfigurations)) OF CSI-ReportConfigId OPTIONAL, -- Need N -CSI-SSB-Resource ::= SEQUENCE { - -- FFS: Undefined what the IE CSI-SSB-Resource contains. + + -- Size of CSI request field in DCI (bits). Corresponds to L1 parameter 'ReportTriggerSize' (see 38.214, section 5.2) + reportTriggerSize INTEGER (0..6) OPTIONAL, + + -- Contains trigger states for dynamically selecting one or more aperiodic and semi-persistent reporting configurations + -- and/or triggering one or more aperiodic CSI-RS resource sets for channel and/or interference measurement. + -- FFS: How to address the MAC-CE configuration + aperiodicTriggerStateList CHOICE {release NULL, setup CSI-AperiodicTriggerStateList } OPTIONAL, -- Need M + semiPersistentOnPUSCH-TriggerStateList CHOICE {release NULL, setup CSI-SemiPersistentOnPUSCH-TriggerStateList } OPTIONAL, -- Need M + ... } +maxNrofNZP-CSI-RS-ResourceSets INTEGER ::= 64 +maxNrofNZP-CSI-RS-ResourceSets-1 INTEGER ::= 63 + +maxNrofCSI-SSB-ResourceSets INTEGER ::= 64 +maxNrofCSI-SSB-ResourceSets-1 INTEGER ::= 63 + +maxNrofCSI-IM-ResourceSets INTEGER ::= 64 +maxNrofCSI-IM-ResourceSets-1 INTEGER ::= 63 + +-- TAG-CSI-MEAS-CONFIG-STOP +-- TAG-CSI-REPORTCONFIG-START -- Configuration of a CSI-Report sent on L1 (e.g. PUCCH) (see 38.214, section 5.2.1) -CSI-ReportConfig ::= SEQUENCE { +CSI-ReportConfig ::= SEQUENCE { reportConfigId CSI-ReportConfigId, + + -- Indicates in which serving cell the CSI-ResourceConfigToAddMod(s) below are to be found. + -- If the field is absent, the resources are on the same serving cell as this report configuration. + carrier ServCellIndex OPTIONAL, -- Need S + + -- Resources for channel measurement. csi-ResourceConfigId of a CSI-ResourceConfig included in the configuration of the serving cell + -- indicated with the field "carrier" above. This CSI-ReportConfig is associated with the DL BWP indicated by bwp-Id in that CSI-ResourceConfig. + resourcesForChannelMeasurement CSI-ResourceConfigId, + + -- CSI IM resources for interference measurement. csi-ResourceConfigId of a CSI-ResourceConfig included in the configuration of the serving cell + -- indicated with the field "carrier" above. The bwp-Id in that CSI-ResourceConfigToAddMod is the same value like the bwp-Id in the + -- CSI-ResourceConfig indicated by resourcesForChannelMeasurement. + csi-IM-ResourcesForInterference CSI-ResourceConfigId OPTIONAL, -- Need R + + -- NZP CSI RS resources for interference measurement. csi-ResourceConfigId of a CSI-ResourceConfigToAddMod included in the configuration of the + -- serving cell indicated with the field "carrier" above. The bwp-Id in that CSI-ResourceConfigToAddMod is the same value like the bwp-Id in the + -- CSI-ResourceConfigToAddMod indicated by resourcesForChannelMeasurement. + nzp-CSI-RS-ResourcesForInterference CSI-ResourceConfigId OPTIONAL, -- Need R + -- Time domain behavior of reporting configuration reportConfigType CHOICE { periodic SEQUENCE { - -- Periodicity and slot offset . Corresponds to L1 parameter 'ReportPeriodicity'and 'ReportSlotOffset' + -- Periodicity and slot offset. Corresponds to L1 parameter 'ReportPeriodicity'and 'ReportSlotOffset' -- (see 38.214, section section 5.2.1.4). - reportSlotConfig CHOICE { - sl5 INTEGER(0..4), - sl10 INTEGER(0..9), - sl20 INTEGER(0..19), - sl40 INTEGER(0..39), - sl80 INTEGER(0..79), - sl160 INTEGER(0..159), - sl320 INTEGER(0..319) - }, + reportSlotConfig CSI-ReportPeriodicityAndOffset, -- Indicates which PUCCH resource to use for reporting on PUCCH. - pucch-CSI-ResourceIndex NULL -- WS modification: was TYPE_FFS! + pucch-CSI-ResourceList SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource }, - semiPersistent SEQUENCE { + semiPersistentOnPUCCH SEQUENCE { -- Periodicity and slot offset. Corresponds to L1 parameter 'ReportPeriodicity' and 'ReportSlotOffset' -- (see 38.214, section section 5.2.1.4). - reportSlotConfig CHOICE { - sl5 INTEGER(0..4), - sl10 INTEGER(0..9), - sl20 INTEGER(0..19), - sl40 INTEGER(0..39), - sl80 INTEGER(0..79), - sl160 INTEGER(0..159), - sl320 INTEGER(0..319) - }, + reportSlotConfig CSI-ReportPeriodicityAndOffset, -- Indicates which PUCCH resource to use for reporting on PUCCH. - pucch-CSI-ResourceIndex NULL -- WS modification: was TYPE_FFS! + pucch-CSI-ResourceList SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource + }, + semiPersistentOnPUSCH SEQUENCE { + -- Periodicity. Corresponds to L1 parameter 'Reportperiodicity-spCSI'. (see 38.214, section 5.2.1.1?FFS_Section) + reportSlotConfig ENUMERATED {sl5, sl10, sl20, sl40, sl80, sl160, sl320}, + -- Timing offset Y for aperiodic reporting using PUSCH. This field lists the allowed offset values. + -- A particular value is indicated in DCI. The first report is transmitted in slot n+Y, second report in n+Y+P, + -- where P is the configured periodicity. + reportSlotOffsetList SEQUENCE (SIZE (1..4)) OF INTEGER (0..7), + -- RNTI for SP CSI-RNTI, Corresponds to L1 parameter 'SPCSI-RNTI' (see 38.214, section 5.2.1.5.2) + -- FFS: RAN1 models different RNTIs as different Search Spaces with independent configurations. Align the configuration + -- of this one (e.g. group with monitoring periodicity, PDCCH candidate configuration, DCI-Payload size...)? + csi-RNTI RNTI-Value, + -- Index of the p0-alpha set determining the power control for this CSI report transmission. + -- Corresponds to L1 parameter 'SPCSI-p0alpha' (see 38.214, section FFS_Section) + p0alpha P0-PUSCH-AlphaSetId }, aperiodic SEQUENCE { - -- Timing offset Y for aperiodic reporting. A particular value is indicated in DCI. (see 38.214, section 5.2.1.1) - aperiodicReportSlotOffset NULL -- WS modification: was TYPE_FFS! + -- Timing offset Y for aperiodic reporting using PUSCH. This field lists the allowed offset values. A particular value is indicated in DCI. + -- (see 38.214, section 5.2.3) + -- FFS_Value: Range wasn’t final in RAN1 table. + -- FFS_FIXME: How are the DCI codepoints mapped to the allowed offsets? + reportSlotOffsetList SEQUENCE (SIZE (1..16)) OF INTEGER (0..7) } }, - -- The CSI related quanities to report (see 38.214, section REF) + -- The CSI related quanities to report. Corresponds to L1 parameter 'ReportQuantity' (see 38.214, section REF) reportQuantity CHOICE { - cRI-RI-PMI-CQI NULL, - cRI-RI-i1 NULL, - cRI-RI-i1-CQI SEQUENCE { + none NULL, + cri-RI-PMI-CQI NULL, + cri-RI-i1 NULL, + cri-RI-i1-CQI SEQUENCE { -- PRB bundling size to assume for CQI calcuation when reportQuantity is CRI/RI/i1/CQI - -- Corresponds to L1 parameter 'PDSCH-bundle-size-for-CSI' (see 38.214, section FFS_Section) + -- Corresponds to L1 parameter 'PDSCH-bundle-size-for-CSI' (see 38.214, section 5.2.1.4) pdsch-BundleSizeForCSI ENUMERATED {n2, n4} OPTIONAL }, - cRI-RI-CQI NULL, - cRI NULL, - cRI-RSRP NULL, - spare1 NULL, - spare0 NULL + cri-RI-CQI NULL, + cri-RSRP NULL, + ssb-Index-RSRP NULL, + cri-RI-LI-PMI-CQI NULL }, - -- Reporting configuration in the frequency domain. (see 38.214, section 5.2.1) + -- Reporting configuration in the frequency domain. (see 38.214, section 5.2.1.4) reportFreqConfiguration SEQUENCE { -- Indicates whether the UE shall report a single (wideband) or multiple (subband) CQI. (see 38.214, section 5.2.1.4) cqi-FormatIndicator ENUMERATED { widebandCQI, subbandCQI }, -- Indicates whether the UE shall report a single (wideband) or multiple (subband) PMI. (see 38.214, section 5.2.1.4) pmi-FormatIndicator ENUMERATED { widebandPMI, subbandPMI }, -- Indicates a contiguous or non-contigous subset of subbands in the bandwidth part which CSI shall be reported - -- for. FFS: Each bit in the bit-string represents one subband. The right-most bit in the bit string represents the + -- for. Each bit in the bit-string represents one subband. The right-most bit in the bit string represents the -- lowest subband in the BWP. (see 38.214, section 5.2.1.4) - -- FFS: Size of the bitmap. Introduce a CHOICE with different bitmap lengths depening on number of subbands in carrier/BWP? - csi-ReportingBand BIT STRING (SIZE (FFS)) + -- The number of subbands is determined according to 38.214 section 5.2.1.4. It is absent if there are less than 24 PRBs (no sub band) + -- and present otherwise, the number of sub bands can be from 3 (24 PRBs, sub band size 8) to 18 (72 PRBs, sub band size 4). + csi-ReportingBand CHOICE { + subbands3 BIT STRING(SIZE(3)), + subbands4 BIT STRING(SIZE(4)), + subbands5 BIT STRING(SIZE(5)), + subbands6 BIT STRING(SIZE(6)), + subbands7 BIT STRING(SIZE(7)), + subbands8 BIT STRING(SIZE(8)), + subbands9 BIT STRING(SIZE(9)), + subbands10 BIT STRING(SIZE(10)), + subbands11 BIT STRING(SIZE(11)), + subbands12 BIT STRING(SIZE(12)), + subbands13 BIT STRING(SIZE(13)), + subbands14 BIT STRING(SIZE(14)), + subbands15 BIT STRING(SIZE(15)), + subbands16 BIT STRING(SIZE(16)), + subbands17 BIT STRING(SIZE(17)), + subbands18 BIT STRING(SIZE(18)), + ... + } OPTIONAL -- Need S + }, - -- Time domain measurement restriction for the channel (signal) measurements. (see 38.214, section 5.2.1.1) - measRestrictionTimeForChannel NULL, -- WS modification: was TYPE_FFS! - -- Time domain measurement restriction for interference measurements. (see 38.214, section 5.2.1.1) - measRestrictionTimeForInterference NULL, -- WS modification: was TYPE_FFS! + -- Time domain measurement restriction for the channel (signal) measurements. + -- Corresponds to L1 parameter 'MeasRestrictionConfig-time-channel' (see 38.214, section 5.2.1.1) + timeRestrictionForChannelMeasurements ENUMERATED {configured, notConfigured}, + -- Time domain measurement restriction for interference measurements. + -- Corresponds to L1 parameter 'MeasRestrictionConfig-time-interference' (see 38.214, section 5.2.1.1) + timeRestrictionForInterferenceMeasurements ENUMERATED {configured, notConfigured}, -- Codebook configuration for Type-1 or Type-II including codebook subset restriction codebookConfig CodebookConfig, -- Maximum number of CQIs per CSI report (cf. 1 for 1-CW, 2 for 2-CW) nrofCQIsPerReport ENUMERATED {n1, n2}, - -- Turning on/off group beam based reporting (see 38.214, section FFS_Section) + -- Turning on/off group beam based reporting (see 38.214, section 5.2.1.4) groupBasedBeamReporting CHOICE { - enabled SEQUENCE { - -- Number of beams to report for group based beam reporting (see 38.214, section REF) - nrofBeamsToReport INTEGER (2..4) -- WS modification: was TYPE_FFS! but 38.214 suggests this range - }, - disabled SEQUENCE { + enabled NULL, + disabled SEQUENCE { -- The number (N) of measured RS resources to be reported per report setting in a non-group-based report. -- N <= N_max, where N_max is either 2 or 4 depending on UE capability. -- FFS: The signaling mechanism for the gNB to select a subset of N beams for the UE to measure and report. @@ -595,194 +1067,423 @@ CSI-ReportConfig ::= SEQUENCE { -- FFS_ASN1: Change groupBasedBeamReporting into a CHOICE and include this field into the "no" option? -- (see 38.214, section FFS_Section) -- When the field is absent the UE applies the value 1 - nrofReportedRS ENUMERATED {n1, n2, n3, n4} OPTIONAL + nrofReportedRS ENUMERATED {n1, n2, n3, n4} OPTIONAL -- Need S } }, - -- Which CQI table to use for CQI calculation. Corresponds to L1 parameter 'CQI-Table' (see 38.214, section FFS_Section) - -- FFS: Whether URLLC2 should be added as one option - cqi-Table ENUMERATED {dl-64QAM, dl-256QAM, urllc1, urllc2} OPTIONAL, - -- Indicates one out of two possible BWP-dependent values for the subband size - -- Corresponds to L1 parameter 'SubbandSize' (see 38.214, section FFS_Section) - -- FFS_Value: Clarify what value1 and value2 mean. + -- Which CQI table to use for CQI calculation. Corresponds to L1 parameter 'CQI-table' (see 38.214, section 5.2.2.1) + cqi-Table ENUMERATED {table1, table2, spare2, spare1} OPTIONAL, + -- Indicates one out of two possible BWP-dependent values for the subband size as indicated in 38.214 table 5.2.1.4-2 + -- Corresponds to L1 parameter 'SubbandSize' (see 38.214, section 5.2.1.4) subbandSize ENUMERATED {value1, value2}, -- BLER target that the UE shall be assume in its CQI calculation. - -- Corresponds to L1 parameter 'BLER-Target' (see 38.214, section FFS_Section) + -- Corresponds to L1 parameter 'BLER-Target' (see 38.214, section 5.2.2.1) -- FFS_Values (now filled with spares) - bler-Target ENUMERATED {v0dot1, spare3, space2, spare1} OPTIONAL - + bler-Target ENUMERATED {zerodot1, spare3, space2, spare1} OPTIONAL, + -- Port indication for RI/CQI calculation. For each CSI-RS resource in the linked ResourceConfig for channel measurement, + -- a port indication for each rank R, indicating which R ports to use. Applicable only for non-PMI feedback. + -- Corresponds to L1 parameter 'Non-PMI-PortIndication' (see 38.214, section FFS_Section) + -- The first entry in non-PMI-PortIndication corresponds to the NZP-CSI-RS-Resource indicated by the first entry in + -- nzp-CSI-RS-Resources in the NZP-CSI-RS-ResourceSet indicated in the first entry of nzp-CSI-RS-ResourceSetList of the + -- CSI-ResourceConfig whose CSI-ResourceConfigId is indicated in a CSI-MeasId together with the above CSI-ReportConfigId, + -- the second entry in non-PMI-PortIndication corresponds to the NZP-CSI-RS-Resource indicated by the second entry in + -- nzp-CSI-RS-Resources in the NZP-CSI-RS-ResourceSet indicated in the first entry of nzp-CSI-RS-ResourceSetList of the + -- same CSI-ResourceConfig, and so on until the NZP-CSI-RS-Resource indicated by the last entry in nzp-CSI-RS-Resources + -- in the in the NZP-CSI-RS-ResourceSet indicated in the first entry of nzp-CSI-RS-ResourceSetList of the + -- same CSI-ResourceConfig, then the next entry corresponds to the NZP-CSI-RS-Resource indicated by the first entry + -- in nzp-CSI-RS-Resources in the NZP-CSI-RS-ResourceSet indicated in the second entry of nzp-CSI-RS-ResourceSetList of the + -- same CSI-ResourceConfig and so on. + non-PMI-PortIndication SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerConfig)) OF PortIndexFor8Ranks OPTIONAL, ... +} + +CSI-ReportPeriodicityAndOffset ::= CHOICE { + slots4 INTEGER(0..3), + slots5 INTEGER(0..4), + slots8 INTEGER(0..7), + slots10 INTEGER(0..9), + slots16 INTEGER(0..15), + slots20 INTEGER(0..19), + slots40 INTEGER(0..39), + slots80 INTEGER(0..79), + slots160 INTEGER(0..159), + slots320 INTEGER(0..319) +} + +PUCCH-CSI-Resource ::= CHOICE { + uplinkBandwidthPartId BWP-Id, + -- PUCCH resource for the associated uplink BWP. Only PUCCH-Resource of format 2, 3 and 4 is supported. + pucch-Resource PUCCH-Resource +} + +-- The PortIndexFor8Ranks allows to indicate port indexes for 1 to 8 ranks using a port index ranges from 0 to 31, or from 0 to 15, or from 0 +-- to 7, or from 0 to 3, or from 0 to 1, or with 0 only. + +PortIndexFor8Ranks ::= CHOICE { + portIndex8 SEQUENCE{ + rank1-8 PortIndex8, + rank2-8 SEQUENCE(SIZE(1..2)) OF PortIndex8, + rank3-8 SEQUENCE(SIZE(1..3)) OF PortIndex8, + rank4-8 SEQUENCE(SIZE(1..4)) OF PortIndex8, + rank5-8 SEQUENCE(SIZE(1..5)) OF PortIndex8, + rank6-8 SEQUENCE(SIZE(1..6)) OF PortIndex8, + rank7-8 SEQUENCE(SIZE(1..7)) OF PortIndex8, + rank8-8 SEQUENCE(SIZE(1..8)) OF PortIndex8 + }, + portIndex4 SEQUENCE{ + rank1-4 PortIndex4, + rank2-4 SEQUENCE(SIZE(1..2)) OF PortIndex4, + rank3-4 SEQUENCE(SIZE(1..3)) OF PortIndex4, + rank4-4 SEQUENCE(SIZE(1..4)) OF PortIndex4 + }, + portIndex2 SEQUENCE{ + rank1-2 PortIndex2, + rank2-2 SEQUENCE(SIZE(1..2)) OF PortIndex2 + }, + portIndex1 NULL } -CSI-ReportConfigId ::= INTEGER (0..maxNrofCSI-ReportConfig-1) +PortIndex8::= INTEGER (0..7) +PortIndex4::= INTEGER (0..3) +PortIndex2::= INTEGER (0..1) --- Codebook configuration for Type-I and Type-II (see 38.214, section 5.2.2.2) -CodebookConfig ::= SEQUENCE { - -- Number of antenna ports in first dimension - codebookConfig-N1 ENUMERATED {n1,n2,n3,n4,n6,n8,n12,n16}, - -- Number of antenna ports in second dimension - codebookConfig-N2 ENUMERATED {n1,n2,n3,n4}, - -- Codebook subset restriction for the different codebooks +maxNrofNZP-CSI-RS-ResourcesPerConfig INTEGER ::= 128 +-- TAG-CSI-REPORTCONFIG-STOP +-- TAG-CSI-REPORTCONFIGID-START +CSI-ReportConfigId ::= INTEGER (0..maxNrofCSI-ReportConfigurations-1) - -- CodebookType including possibly sub-types and the corresponding parameters for each. Corresponds to L1 parameter 'CodebookType' - -- (see 38.214, section 5.2.2.2) - codebookType CHOICE { - type1 SEQUENCE { - subType ENUMERATED {typeI-SinglePanel, typeI-MultiPanel}, - -- Switch between Config 1 and Config 2 - codebookMode ENUMERATED {config1, config2}, - -- Number of panels, Ng, used in multi-panel codebook - numberOfPanels ENUMERATED {panels2, panels4} OPTIONAL, -- Cond TypeI-MultiPanel - codebookSubsetRestrictionType1 CHOICE { - -- Codebook subset restriction for Type I Single-panel codebook - -- Corresponds to L1 parameter 'TypeI-SinglePanel-CodebookSubsetRestriction' (see 38.214, section FFS_Section) - -- FFS_Value: RAN1 indicated Bitmap of size N1*N2*O1*O2 - singlePanel BIT STRING (SIZE (FFS)), - - -- Codebook subset restriction for 2TX codebook - -- Corresponds to L1 parameter 'TypeI-SinglePanel-2Tx-CodebookSubsetRestriction' (see 38.214, section FFS_Section) - singlePanel2TX BIT STRING (SIZE (6)), - - -- Codebook subset restriction for Type I Multi-panel codebook - -- Corresponds to L1 parameter 'TypeI-MultiPanel-CodebookSubsetRestriction' (see 38.214, section FFS_Section) - multiPanel BIT STRING (SIZE (FFS)), - -- i2 codebook subset restriction for Type I Single-panel codebook used when reportQuantity is CRI/Ri/i1/CQI - -- Corresponds to L1 parameter 'TypeI-SinglePanel-CodebookSubsetRestriction-i2' (see 38.214, section FFS_Section) - singlePanelCodebookSubsetRestriction-i2 BIT STRING (SIZE (16)) - }, - ri-Restriction CHOICE { - -- Restriction for RI for TypeI-SinglePanel-RI-Restriction - -- Corresponds to L1 parameter 'TypeI-SinglePanel-RI-Restriction' (see 38.214, section FFS_Section) - typeI-SinglePanelRI-Restriction BIT STRING (SIZE (8)), - -- Restriction for RI for TypeI-MultiPanel-RI-Restriction - -- Corresponds to L1 parameter 'TypeI-MultiPanel-RI-Restriction' (see 38.214, section FFS_Section) - typeI-MultiPanelRI-Restriction BIT STRING (SIZE (4)) - } +-- TAG-CSI-REPORTCONFIGID-STOP +-- TAG-CSI-RESOURCECONFIG-START + +-- One CSI resource configuration comprising of one or more resource sets +CSI-ResourceConfig ::= SEQUENCE { + + -- Used in CSI-ReportConfig to refer to an instance of CSI-ResourceConfig + csi-ResourceConfigId CSI-ResourceConfigId, + + -- Contains up to maxNrofNZP-CSI-RS-ResourceSetsPerConfig resource sets if ResourceConfigType is 'aperiodic' and 1 otherwise. + -- Corresponds to L1 parameter 'ResourceSetConfigList' (see 38.214, section 5.2.1.3.1) + csi-RS-ResourceSetList CHOICE { + nzp-CSI-RS-SSB SEQUENCE { + nzp-CSI-RS-ResourceSetList SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig)) OF NZP-CSI-RS-ResourceSetId OPTIONAL, + -- List of SSB resources used for beam measurement and reporting in a resource set + -- Corresponds to L1 parameter 'resource-config-SS-list' (see 38,214, section FFS_Section) + csi-SSB-ResourceSetList SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSetsPerConfig)) OF CSI-SSB-ResourceSetId OPTIONAL }, - type2 SEQUENCE { - subType ENUMERATED {typeII, typeII-PortSelection}, - -- The size of the PSK alphabet, QPSK or 8-PSK - phaseAlphabetSize ENUMERATED {n4, n8}, - -- If subband amplitude reporting is activated (true) - subbandAmplitude BOOLEAN, - -- Number of beams, L, used for linear combination - numberOfBeams ENUMERATED {beams2, beams3, beams4}, - -- The size of the port selection codebook (parameter d) - portSelectionSamplingSize ENUMERATED {n1, n2, n3, n4} OPTIONAL, -- Cond TypeII-PortSelection - -- Codebook subset restriction for Type II codebook. - -- FFS: Clarify the meaning of the bitmap - -- FFS: The size of the bitmap is ceil(log2(nchoosek(O1*O2,4)))+8*N1*N2 ==> Clarify size. Present different bitmap sizes by CHOICE? - codebookSubsetRestrictionType2 BIT STRING (SIZE (FFS)), - ri-Restriction CHOICE { - -- Restriction for RI for TypeII-RI-Restriction - -- Corresponds to L1 parameter 'TypeII-RI-Restriction' (see 38.214, section FFS_Section) - typeII-RI-Restriction BIT STRING (SIZE (2)), - -- Restriction for RI for TypeII-PortSelection-RI-Restriction - -- Corresponds to L1 parameter 'TypeII-PortSelection-RI-Restriction' (see 38.214, section FFS_Section) - typeII-PortSelectionRI-Restriction BIT STRING (SIZE (2)) - } - } - } + csi-IM-ResourceSetList SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSetsPerConfig)) OF CSI-IM-ResourceSetId + }, + + + -- The DL BWP which the CSI-RS associated with this CSI-ResourceConfig are located in. + -- Corresponds to L1 parameter 'BWP-Info' (see 38.214, section 5.2.1.2 + bwp-Id BWP-Id, + + -- Time domain behavior of resource configuration. Corresponds to L1 parameter 'ResourceConfigType' (see 38.214, section 5.2.2.3.5) + resourceType ENUMERATED { aperiodic, semiPersistent, periodic }, + ... } +-- TAG-CSI-RESOURCECONFIGTOADDMOD-STOP +-- TAG-CSI-RESOURCECONFIGID-START +CSI-ResourceConfigId ::= INTEGER (0..maxNrofCSI-ResourceConfigurations-1) + +-- TAG-CSI-RESOURCECONFIGID-STOP +-- TAG-CSI-RESOURCEPERIODICITYANDOFFSET-START + +CSI-ResourcePeriodicityAndOffset ::= CHOICE { + slots4 INTEGER (0..3), + slots5 INTEGER (0..4), + slots8 INTEGER (0..7), + slots10 INTEGER (0..9), + slots16 INTEGER (0..15), + slots20 INTEGER (0..19), + slots32 INTEGER (0..31), + slots40 INTEGER (0..39), + slots64 INTEGER (0..63), + slots80 INTEGER (0..79), + slots160 INTEGER (0..159), + slots320 INTEGER (0..319), + slots640 INTEGER (0..639) +} + +-- TAG-CSI-RESIYRCEPERIODICITYANDOFFSET-STOP +-- TAG-CSI-RS-RESOURCEMAPPING-START + +CSI-RS-ResourceMapping ::= SEQUENCE { + -- Frequency domain allocation within a physical resource block in accordance with 38.211, section 7.4.1.5.3 including table 7.4.1.5.2-1. + -- The number of bits that may be set to one depend on the chosen row in that table. For the choice "other", the row can be determined from + -- the parmeters below and from the number of bits set to 1 in frequencyDomainAllocation. + frequencyDomainAllocation CHOICE { + row1 BIT STRING (SIZE (4)), + row2 BIT STRING (SIZE (12)), + row4 BIT STRING (SIZE (3)), + other BIT STRING (SIZE (6)) + }, + -- Number of ports (see 38.214, section 5.2.2.3.1) + nrofPorts ENUMERATED {p1,p2,p4,p8,p12,p16,p24,p32}, + -- Time domain allocation within a physical resource block. The field indicates the first OFDM symbol in the PRB used for CSI-RS. + -- Parameter l0 in 38.211, section 7.4.1.5.3. Value 2 is supported only when DL-DMRS-typeA-pos equals 3. + firstOFDMSymbolInTimeDomain INTEGER (0..13), + -- Time domain allocation within a physical resource block. Parameter l1 in 38.211, section 7.4.1.5.3. + firstOFDMSymbolInTimeDomain2 INTEGER (0..13) OPTIONAL, -- Need R + -- CDM type (see 38.214, section 5.2.2.3.1) + cdm-Type ENUMERATED {noCDM, fd-CDM2, cdm4-FD2-TD2, cdm8-FD2-TD4}, + -- Density of CSI-RS resource measured in RE/port/PRB. Corresponds to L1 parameter 'CSI-RS-Density' (see 38.211, section 7.4.1.5.3) + -- Values 0.5 (dot5), 1 (one) and 3 (three) are allowed for X=1, + -- values 0.5 (dot5) and 1 (one) are allowed for X=2, 16, 24 and 32, + -- value 1 (one) is allowed for X=4, 8, 12. + -- For density = 1/2, includes 1 bit indication for RB level comb offset indicating whether odd or even RBs are occupied by CSI-RS + density CHOICE { + dot5 ENUMERATED {evenPRBs, oddPRBs}, + one NULL, + three NULL, + spare NULL + }, + -- Wideband or partial band CSI-RS. Corresponds to L1 parameter 'CSI-RS-FreqBand' (see 38.214, section 5.2.2.3.1) + freqBand CSI-FrequencyOccupation, + ... +} --- Linking a CSI-RS-ResourceConfig with a CSI-ReportConfig (see 38.214, section 5.2) -CSI-MeasIdToAddMod ::= SEQUENCE { - csi-measId CSI-MeasId, - csi-RS-resourceConfigId CSI-RS-ConfigurationId, - csi-reportConfigId CSI-ReportConfigId, +-- TAG-CSI-RS-RESOURCEMAPPING-STOP +-- TAG-CSI-SEMIPERSISTENTONPUSCHTRIGGERSTATELIST-START - -- For CQI-Emulation, i.e., how to measure and compute the CQI. - -- CHECK: Clarify further what the values mean. - -- CHECK: Is there a need to inform the UE which resource to use for which measurement (signal, interference, ...)? - measQuantity ENUMERATED {channel, interference} +CSI-SemiPersistentOnPUSCH-TriggerStateList ::= SEQUENCE(SIZE (1..maxNrOfSemiPersistentPUSCH-Triggers)) OF CSI-SemiPersistentOnPUSCH-TriggerState +CSI-SemiPersistentOnPUSCH-TriggerState ::= SEQUENCE { + associatedReportConfigInfo CSI-ReportConfigId, + ... } -CSI-MeasId ::= INTEGER (0..maxNrofCSI-MeasId-1) +maxNrOfSemiPersistentPUSCH-Triggers INTEGER ::= 64 -- Maximum number of triggers for semi persistent reporting on PUSCH + +-- TAG-CSI-SEMIPERSISTENTONPUSCHTRIGGERSTATELIST-STOP +-- TAG-CSI-SSB-RESOURCESETID-START + +CSI-SSB-ResourceSetId ::= INTEGER (0..maxNrofCSI-SSB-ResourceSets-1) --- CHECK: Do the BeamManagement parameters really belong into the CSI context? Or rather to RLF/RLM? --- FFS_FIXME: BeamManagement IE is not used anywhere. -BeamManagement ::= SEQUENCE { - -- Use of PRACH or/and PUSCH for beam in some combination, details FFS - linkReconfigurationRequest NULL OPTIONAL, -- WS modification: was FFS_Value - -- List of CSI-RS resouces used for beam failure detection - -- Corresponds to L1 parameter 'Beam-Failure-Detection-RS-ResourceConfig' (see 38.213, section 6) - failureDetectionResources NULL OPTIONAL, -- WS modification: was FFS_Value +-- TAG-CSI-SSB-RESOURCESETID-STOP +-- TAG-CSI-SSB-RESOURCESET-START - -- Number of beam failure instances before the UE declares beam failure - -- Corresponds to L1 parameter 'Beam-Failure-Instance-MaxCount' (see 38.321, section FFS_Section) - beamFailureInstanceMaxCount NULL OPTIONAL, -- WS modification: was FFS_Value +CSI-SSB-ResourceSet ::= SEQUENCE { + csi-SSB-ResourceSetId CSI-SSB-ResourceSetId, + csi-SSB-ResourceList SEQUENCE (SIZE(1..maxNrofCSI-SSB-ResourcePerSet)) OF SSB-Index, + ... +} - -- Reference signal used to identify candidate beam - -- Corresponds to L1 parameter 'Candidate-Beam-RS-Identification-Resource' (see 38.213, section 6) - beamFailureCandidateBeamResource NULL OPTIONAL, -- WS modification: was FFS_Value +-- TAG-CSI-SSB-RESOURCESET-STOP +-- TAG-DMRS-DOWNLINKCONFIG-START - -- The candidate beam can be considered identified when metric X (FFS) of candidate beam is higher than a threshold" - -- Corresponds to L1 parameter 'Beam-failure-candidate-beam-threshold' (see 38.213, section 6) - beamFailureCandidateBeamThreshold NULL OPTIONAL, -- WS modification: was FFS_Value +DMRS-DownlinkConfig ::= SEQUENCE { + -- Selection of the DMRS type to be used for DL (see 38.211, section 7.4.1.1.1). + -- If the field is absent, the UE uses DMRS type 1. + dmrs-Type ENUMERATED {type2} OPTIONAL, -- Need R + -- Position for additional DM-RS in DL, see Table 7.4.1.1.2-4 in 38.211. + -- The four values represent the cases of 1+0, 1+1, 1+1+1. 1+1+1+1 non-adjacent OFDM symbols for DL. + -- If the field is absent, the UE applies the value pos2. + dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos3} OPTIONAL, -- Need R + -- DM-RS groups that are QCL:ed, i.e. group 1 (see 38.214, section 5.1) + dmrs-group1 BIT STRING (SIZE (12)) OPTIONAL, -- Need R + -- DM-RS groups that are QCL:ed, i.e. group 2 (see 38.214, section 5.1) + dmrs-group2 BIT STRING (SIZE (12)) OPTIONAL, -- Need R + -- The maximum number of OFDM symbols for DL front loaded DMRS. 'len1' corresponds to value 1. 'len2 corresponds to value 2. + -- If the field is absent, the UE applies value len1. + -- Corresponds to L1 parameter 'DL-DMRS-max-len' (see 38.214, section 5.1) + maxLength ENUMERATED {len2} OPTIONAL, -- Need R + -- DL DMRS scrambling initalization + -- Corresponds to L1 parameter 'n_SCID 0' (see 38.211, section 7.4.1) + -- When the field is absent the UE applies the value Physical cell ID (physCellId) configured for this serving cell." + scramblingID0 INTEGER (0..65535) OPTIONAL, -- Need S + -- DL DMRS scrambling initalization. Corresponds to L1 parameter 'n_SCID 1' (see 38.211, section 7.4.1) + -- When the field is absent the UE applies the value (physCellId) configured for this serving cell. + scramblingID1 INTEGER (0..65535) OPTIONAL, -- Need S + + -- Configures downlink PTRS. If absent of released, the UE assumes that downlink PTRS are not present. See 38.214 section 5.1.6.3 + phaseTrackingRS CHOICE {release NULL, setup PTRS-DownlinkConfig } OPTIONAL, -- Need M - -- RACH resource to send the beam failure recovery request - -- Corresponds to L1 parameter 'Beam-failure-recovery-request-RACH-Resource' (see 38.213, section 6) - beamFailureRecoveryRACH-Resource NULL OPTIONAL, -- WS modification: was FFS_Value + ... +} - -- Window for beamfailure recovery - -- Corresponds to L1 parameter 'Beam-failure-recovery-request-window' (see 38.213, section 6) - beamFailureRecoveryRequestWindow NULL OPTIONAL, -- WS modification: was FFS_Value +-- TAG-DMRS-DOWNLINKCONFIG-STOP +-- TAG-DMRS-UPLINKCONFIG-START - -- CORESET configured to receive the Beam Failure Recovery Response. FFS: parameter name to be updated - -- Corresponds to L1 parameter 'Beam-Failure-Recovery-Response-CORESET' (see 38.213, section 6) - -- When the field is absent the UE applies the value FFS_DefaultValue - -- FFS_Value: Is this the ID of a CORESET defined elsewhere? Or is it really a ControlResourceSet IE? - recoveryControlResourceSet NULL OPTIONAL -- WS modification: was FFS_Value +DMRS-UplinkConfig ::= SEQUENCE { + -- Selection of the DMRS type to be used for UL (see section 38.211, section 6.4.1.1.3) + -- If the field is absent, the UE uses DMRS type 1. + dmrs-Type ENUMERATED {type2} OPTIONAL, -- Need R + -- Position for additional DM-RS in UL. Corresponds to L1 parameter 'UL-DMRS-add-pos' (see Table 7.4.1.1.2-4 in 38.211) + -- The four values represent the cases of 1+0, 1+1, 1+1+1. 1+1+1+1 non-adjacent OFDM symbols for UL. + -- If the field is absent, the UE applies the value pos2. + dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos3} OPTIONAL, -- Need R + -- Configures uplink PTRS (see 38.211, section x.x.x.x) FFS_Ref + phaseTrackingRS CHOICE {release NULL, setup PTRS-UplinkConfig } OPTIONAL, -- Need M + -- The maximum number of OFDM symbols for UL front loaded DMRS. 'len1' corresponds to value 1. 'len2 corresponds to value 2. + -- If the field is absent, the UE applies value len1. + -- Corresponds to L1 parameter 'UL-DMRS-max-len' (see 38.214, section 6.4.1.1.2) + maxLength ENUMERATED {len2} OPTIONAL, -- Need R + + transformPrecoding CHOICE { + -- DMRS related parameters for Cyclic Prefix OFDM + disabled SEQUENCE { + -- UL DMRS scrambling initalization for CP-OFDM + -- Corresponds to L1 parameter 'n_SCID 0' (see 38.214, section 6.4.1.1.2) + -- When the field is absent the UE applies the value Physical cell ID (physCellId) + scramblingID0 INTEGER (0..65535) OPTIONAL, -- Need S + -- UL DMRS scrambling initalization for CP-OFDM. + -- Corresponds to L1 parameter 'n_SCID 1' (see 38.214, section 6.4.1.1.2) + -- When the field is absent the UE applies the value Physical cell ID (physCellId) + scramblingID1 INTEGER (0..65535) OPTIONAL -- Need S + }, + -- DMRS related parameters for DFT-s-OFDM (Transform Precoding) + enabled SEQUENCE { + -- Parameter: N_ID^(PUSCH) for DFT-s-OFDM DMRS. If the value is absent or released, the UE uses the Physical cell ID. + -- Corresponds to L1 parameter 'nPUSCH-Identity-Transform precoding' (see 38.211, section FFS_Section) + nPUSCH-Identity INTEGER(0..1007) OPTIONAL, -- Need S + -- Sequence-group hopping for PUSCH can be disabled for a certain UE despite being enabled on a cell basis. For DFT-s-OFDM DMRS + -- If the field is released, the UE considers group hopping to be enabled. + -- Corresponds to L1 parameter 'Disable-sequence-group-hopping-Transform-precoding' (see 38.211, section FFS_Section) + disableSequenceGroupHopping ENUMERATED {disabled} OPTIONAL, -- Need S + -- Determines if sequence hopping is enabled or not. For DFT-s-OFDM DMRS. + -- If the field is released, the UE considers sequence hopping to be disabled. + -- Corresponds to L1 parameter 'Sequence-hopping-enabled-Transform-precoding' (see 38.211, section FFS_Section) + sequenceHoppingEnabled ENUMERATED {enabled} OPTIONAL -- Need S + } + }, + ... } --- TAG-CSI-MEAS-CONFIG-STOP --- TAG-FAILURE-REPORT-SCG-TO-OTHER-RAT-START --- FFS if failureType is needed - -FailureReportSCG-ToOtherRAT ::= SEQUENCE { - failureType ENUMERATED { t313-Expiry, randomAccessProblem, - rlc-MaxNumRetx, maxUL-TimingDiff, - scg-ChangeFailure, scg-reconfigFailure, - srb3-IntegrityFailure}, - measResultServingFreqList MeasResultServFreqList2NR, - measResultNeighCells MeasResultList2NR, +-- TAG-DMRS-UPLINKCONFIG-STOP +-- TAG-DOWNLINKPREEMPTION-START + +-- Configuration of downlink preemption indication on PDCCH. +DownlinkPreemption ::= SEQUENCE { + -- RNTI used for indication pre-emption in DL. + -- Corresponds to L1 parameter 'INT-RNTI', where ”INT” stands for ”interruption” (see 38.213, section 10) + int-RNTI RNTI-Value, + + -- Set selection for DL-preemption indication. Corresponds to L1 parameter 'int-TF-unit' (see 38.213, section 10.1) + -- The set determines how the UE interprets the DL preemption DCI payload. + timeFrequencySet ENUMERATED {set0, set1}, + + -- Total length of the DCI payload scrambled with INT-RNTI. The value must be an integer multiple of 14 bit. + -- Corresponds to L1 parameter 'INT-DCI-payload-length' (see 38.213, section 11.2) + dci-PayloadSize INTEGER (0..maxINT-DCI-PayloadSize), + + -- Indicates (per serving cell) the position of the 14 bit INT values inside the DCI payload. + -- Corresponds to L1 parameter 'INT-cell-to-INT' and 'cell-to-INT' (see 38.213, section 11.2) + int-ConfigurationPerServingCell SEQUENCE (SIZE (1..maxNrofServingCells)) OF INT-ConfigurationPerServingCell, ... } -MeasResultServFreqList2NR ::= SEQUENCE (SIZE (1..maxServCell)) OF MeasResultServFreq2NR +INT-ConfigurationPerServingCell ::= SEQUENCE { + servingCellId ServCellIndex, + -- Starting position (in number of bit) of the 14 bit INT value applicable for this serving cell (servingCellId) within the DCI + -- payload. Must be multiples of 14 (bit). Corresponds to L1 parameter 'INT-values' (see 38.213, section 11.2) + positionInDCI INTEGER (0..maxINT-DCI-PayloadSize-1) +} -MeasResultServFreq2NR ::= SEQUENCE { - carrierFreq ARFCN-ValueNR, - measResultServingCell MeasResultNR, - measResultBestNeighServingCell MeasResultNR OPTIONAL +-- TAG-DOWNLINKPREEMPTION-STOP +-- TAG-DRB-IDENTITY-START + +DRB-Identity ::= INTEGER (1..32) + +-- TAG-DRB-IDENTITY-STOP +-- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-START + +EUTRA-MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF EUTRA-MBSFN-SubframeConfig + +EUTRA-MBSFN-SubframeConfig ::= SEQUENCE { + -- Field as defined in MBSFN-SubframeConfig in 36.331 + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + -- Field as defined in MBSFN-SubframeConfig in 36.331 + radioframeAllocationOffset INTEGER (0..7), + -- Field as defined in MBSFN-SubframeConfig in 36.331 + subframeAllocation CHOICE { + -- Field as defined in MBSFN-SubframeConfig in 36.331 + oneFrame BIT STRING (SIZE(6)), + -- Field as defined in MBSFN-SubframeConfig in 36.331 + fourFrames BIT STRING (SIZE(24)) + }, + subframeAllocation-v1430 CHOICE { + -- Field as defined in MBSFN-SubframeConfig in 36.331 + oneFrame-v1430 BIT STRING (SIZE(2)), + -- Field as defined in MBSFN-SubframeConfig in 36.331 + fourFrames-v1430 BIT STRING (SIZE(8)) + } OPTIONAL, -- Need R + ... } -MeasResultList2NR ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2NR +-- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-STOP -MeasResult2NR ::= SEQUENCE { - carrierFreq ARFCN-ValueNR, - measResult MeasResultListNR +FilterCoefficient ::= ENUMERATED { + fc0, fc1, fc2, fc3, fc4, fc5, + fc6, fc7, fc8, fc9, fc11, fc13, + fc15, fc17, fc19, spare1, ...} + +-- TAG-FREQBANDINDICATORNR-START + +FreqBandIndicatorNR ::= INTEGER (1..1024) + +-- TAG-FREQBANDINDICATORNR-STOP +-- TAG-FREQUENCY-INFO-DL-START + +FrequencyInfoDL ::= SEQUENCE { + -- Frequency of the SSB to be used for this serving cell. The frequency provided in this field identifies the position of + -- resource element RE=#0 (subcarrier #0) of resource block RB#10 of the SS block. The cell-defining SSB of an SpCell is always on + -- the sync raster. Frequencies are considered to be on the sync raster if they are also identifiable with a GSCN value (see 38.101). + absoluteFrequencySSB ARFCN-ValueNR, + -- The frequency domain offset between SSB and the overall resource block grid in number of subcarriers. + -- Absence of the field indicates that no offset is applied (offset = 0). For FR2 only values up to 11 are applicable. + -- Corresponds to L1 parameter kssb (See 38.211, section 7.4.3.1) + ssb-SubcarrierOffset INTEGER (1..23) OPTIONAL, -- Need S + -- List of one or multiple frequency bands to which this carrier(s) belongs. Multiple values are only supported in + -- system information but not when the FrequencyInfoDL is provided in dedicated signalling (HO or S(p)Cell addition). + frequencyBandList MultiFrequencyBandListNR, + -- Absolute frequency position of the reference resource block (Common RB 0). Its lowest subcarrier is also known as Point A. + -- Note that the lower edge of the actual carrier is not defined by this field but rather in the scs-SpecificCarrierList. + -- Corresponds to L1 parameter 'offset-ref-low-scs-ref-PRB' (see 38.211, section FFS_Section) + absoluteFrequencyPointA ARFCN-ValueNR, + + -- A set of carriers for different subcarrier spacings (numerologies). Defined in relation to Point A. + -- Corresponds to L1 parameter 'offset-pointA-set' (see 38.211, section FFS_Section) + scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier, + ... } --- TAG-FAILURE-REPORT-SCG-TO-OTHER-RAT-STOP +-- TAG-FREQUENCY-INFO-UL-STOP -- TAG-FREQUENCY-INFO-UL-START FrequencyInfoUL ::= SEQUENCE { - -- FFS_FIXME: Frequency Information parameters need corrections (currently just inherited from LTE). - carrierFreqUL ARFCN-ValueNR OPTIONAL, -- Need OP - carrierBandwidthUL CarrierBandwidthNR OPTIONAL, -- Need OP - additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Need OP - p-Max P-Max OPTIONAL, -- Need OP - -- Enable or disable the NR UL transmission with a 7.5KHz shift to the LTE raster - frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD - - -- The initial uplink BWP configuration for a SpCell. Corresponds to L1 parameter 'initial-UL-BWP'. - -- (see 38.331, section FFS_Section). - initialUplinkBandwidthPart BandwidthPart OPTIONAL -- Cond FDD-PCell + -- List of one or multiple frequency bands to which this carrier(s) belongs. Multiple values are only supported in + -- system information but not when the FrequencyInfoDL is provided in dedicated signalling (HO or S(p)Cell addition). + frequencyBandList MultiFrequencyBandListNR OPTIONAL, -- Cond FDD-OrSUL + -- Absolute frequency of the reference resource block (Common RB 0). Its lowest subcarrier is also known as Point A. + -- Corresponds to L1 parameter 'offset-ref-low-scs-ref-PRB' (see 38.211, section FFS_Section) + absoluteFrequencyPointA ARFCN-ValueNR OPTIONAL, -- Cond FDD-OrSUL + -- A set of virtual carriers for different subcarrier spacings (numerologies). Defined in relation to Point A. + -- Note that the lower edge of the actual carrier is not defined by this field but rather in the scs-SpecificCarrierList. + -- Corresponds to L1 parameter 'offset-pointA-set' (see 38.211, section FFS_Section) + scs-SpecificCarriers SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier, + + -- The additional spectrum emission requirements to be applied by the UE on this uplink. + -- If the field is absent, the UE applies the value FFS_RAN4. (see FFS_section, section FFS_Section) + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Need S + -- FFS_Definition. Corresponds to parameter FFS_RAN4. (see FFS_Spec, section FFS_Section) + -- If the field is absent, the UE applies the value FFS_RAN4. + p-Max P-Max OPTIONAL, -- Need S + -- Enable the NR UL transmission with a 7.5KHz shift to the LTE raster. If the field is absent, the frequency shift is disabled. + frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD-OrSUL-Optional + ... } -- TAG-FREQUENCY-INFO-UL-STOP +-- TAG-GSCN-VALUE-NR-START + +GSCN-ValueNR ::= INTEGER (1..28557) + + +-- TAG-GSCN-VALUE-NR-STOP + +Hysteresis ::= INTEGER (0..30) + -- TAG-LOGICAL-CHANNEL-CONFIG-START LogicalChannelConfig ::= SEQUENCE { @@ -792,137 +1493,127 @@ LogicalChannelConfig ::= SEQUENCE { kBps1024, kBps2048, kBps4096, kBps8192, kBps16384, kBps32768, kBps65536, infinity}, bucketSizeDuration ENUMERATED {ms50, ms100, ms150, ms300, ms500, ms1000, spare2, spare1}, - -- FFS: Detailed handling of restrictions (UP email discussion) - -- Defined in L1 parameters but the value range must be checked. - allowedSubCarrierSpacing SubcarrierSpacing OPTIONAL, - - allowedTiming NULL OPTIONAL, -- WS modification: was TYPE_FFS - logicalChannelGroup INTEGER (0..maxLCid) OPTIONAL, + allowedServingCells SEQUENCE (SIZE (1..maxNrofServingCells-1)) OF ServCellIndex OPTIONAL, -- Need R + allowedSCS-List SEQUENCE (SIZE (1..maxSCSs)) OF SubcarrierSpacing OPTIONAL, -- Need R + maxPUSCH-Duration ENUMERATED { ms0p02, ms0p04, ms0p0625, ms0p125, ms0p25, ms0p5, spare2, spare1 } OPTIONAL, -- Need R + configuredGrantType1Allowed ENUMERATED {true} OPTIONAL, -- Need R + logicalChannelGroup INTEGER (0..maxLCG-ID) OPTIONAL, -- Need R + schedulingRequestID SchedulingRequestId OPTIONAL, -- Need R logicalChannelSR-Mask BOOLEAN, - logicalChannelSR-DelayTimerApplied BOOLEAN - } OPTIONAL -- Cond UL + } OPTIONAL, -- Cond UL -- other parameters + ... } -- TAG-LOGICAL-CHANNEL-CONFIG-STOP -- TAG-MAC-CELL-GROUP-CONFIG-START MAC-CellGroupConfig ::= SEQUENCE { - drx-Config DRX-Config OPTIONAL, -- Need R - - schedulingRequestConfig SchedulingRequestConfig OPTIONAL, - bsr-Config BSR-Configuration OPTIONAL, -- Need N - tag-Config TAG-Configuration OPTIONAL, -- Need N - phr-Config PHR-Config OPTIONAL, -- Need N - sCellDeactivationTimer ENUMERATED { - ms20, ms40, ms80, ms160, ms200, ms240, ms320, ms400, ms480, ms520, ms640, ms720, ms840, ms1280, spare2, - spare1} OPTIONAL, -- Cond ServingCellWithoutPUCCH + drx-Config CHOICE {release NULL, setup DRX-Config } OPTIONAL, -- Need M + + schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need M + bsr-Config BSR-Config OPTIONAL, -- Need M + tag-Config TAG-Config OPTIONAL, -- Need M + phr-Config CHOICE {release NULL, setup PHR-Config } OPTIONAL, -- Need M -- FFS : configurable per SCell? - skipUplinkTxDynamic BOOLEAN -} - -DRX-Config ::= CHOICE { - release NULL, - setup SEQUENCE { - drx-onDurationTimer ENUMERATED { - ms1-32, ms2-32, ms3-32, ms4-32, ms5-32, ms6-32, ms7-32, ms8-32, ms9-32, ms10-32, ms11-32, - ms12-32, ms13-32, ms14-32, ms15-32, ms16-32, ms17-32, ms18-32, ms19-32, ms-20-32, ms21-32, - ms22-32, ms23-32, ms24-32, ms25-32, ms26-32, ms27-32, ms28-32, ms29-32, ms30-32, ms31-32, - ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60, - ms80, ms100, ms200, ms300, ms400, ms500, ms600, ms800, ms1000, ms1200, - ms1600, spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }, - drx-InactivityTimer ENUMERATED { - ms0, ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40,ms50, ms60, ms80, - ms100, ms200, ms300, ms500, ms750, ms1280, ms1920, ms2560, spare9, spare8, - spare7, spare6, spare5, spare4, spare3, spare2, spare1}, - drx-HARQ-RTT-TimerDL INTEGER (0..56), - drx-HARQ-RTT-TimerUL INTEGER (0..56), - drx-RetransmissionTimerDL ENUMERATED { - sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64, sl80, sl96, sl112, sl128, - spare15, spare14, spare13, spare12, spare11, spare10, spare9, - spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1}, - drx-RetransmissionTimerUL ENUMERATED { - sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64, sl80, sl96, sl112, sl1128, - u160sl160, u320sl320, spare15, spare14, spare13, spare12, spare11, spare10, spare9, + skipUplinkTxDynamic BOOLEAN, + -- RNTI value for downlink SPS (see SPS-config) and uplink configured scheduling (see ConfiguredSchedulingConfig). + cs-RNTI CHOICE {release NULL, setup RNTI-Value } OPTIONAL -- Need M +} + +DRX-Config ::= SEQUENCE { + drx-onDurationTimer CHOICE { + subMilliSeconds INTEGER (1..31), + milliSeconds ENUMERATED { + ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60, + ms80, ms100, ms200, ms300, ms400, ms500, ms600, ms800, ms1000, ms1200, + ms1600, spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 } + }, + drx-InactivityTimer ENUMERATED { + ms0, ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40, ms50, ms60, ms80, + ms100, ms200, ms300, ms500, ms750, ms1280, ms1920, ms2560, spare9, spare8, + spare7, spare6, spare5, spare4, spare3, spare2, spare1}, + drx-HARQ-RTT-TimerDL INTEGER (0..56), + drx-HARQ-RTT-TimerUL INTEGER (0..56), + drx-RetransmissionTimerDL ENUMERATED { + sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64, sl80, sl96, sl112, sl128, + sl160, sl320, spare15, spare14, spare13, spare12, spare11, spare10, spare9, + spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1}, + drx-RetransmissionTimerUL ENUMERATED { + sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64, sl80, sl96, sl112, sl128, + sl160, sl320, spare15, spare14, spare13, spare12, spare11, spare10, spare9, + spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }, + drx-LongCycleStartOffset CHOICE { + ms10 INTEGER(0..9), + ms20 INTEGER(0..19), + ms32 INTEGER(0..31), + ms40 INTEGER(0..39), + ms60 INTEGER(0..59), + ms64 INTEGER(0..63), + ms70 INTEGER(0..69), + ms80 INTEGER(0..79), + ms128 INTEGER(0..127), + ms160 INTEGER(0..159), + ms256 INTEGER(0..255), + ms320 INTEGER(0..319), + ms512 INTEGER(0..511), + ms640 INTEGER(0..639), + ms1024 INTEGER(0..1023), + ms1280 INTEGER(0..1279), + ms2048 INTEGER(0..2047), + ms2560 INTEGER(0..2559), + ms5120 INTEGER(0..5119), + ms10240 INTEGER(0..10239) + }, + -- FFS need for finer offset granulary + -- FFS need for shorter values for long and short cycles + shortDRX SEQUENCE { + drx-ShortCycle ENUMERATED { + ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32, + ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }, - -- FFS units and dependency on numerology for DL and UL retransmission timers - drx-LongCycleStartOffset CHOICE { - ms10 INTEGER(0..9), - ms20 INTEGER(0..19), - ms32 INTEGER(0..31), - ms40 INTEGER(0..39), - ms60 INTEGER(0..59), - ms64 INTEGER(0..63), - ms70 INTEGER(0..69), - ms80 INTEGER(0..79), - ms128 INTEGER(0..127), - ms160 INTEGER(0..159), - ms256 INTEGER(0..255), - ms320 INTEGER(0..319), - ms512 INTEGER(0..511), - ms640 INTEGER(0..639), - ms1024 INTEGER(0..1023), - ms1280 INTEGER(0..1279), - ms2048 INTEGER(0..2047), - ms2560 INTEGER(0..2559), - ms5120 INTEGER(0..5119), - ms10240 INTEGER(0..10239) - }, - -- FFS need for finer offset granulary - -- FFS need for shorter values for long and short cycles - shortDRX SEQUENCE { - drx-ShortCycle ENUMERATED { - ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32, - ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, spare9, - spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 }, - drx-ShortCycleTimer INTEGER (1..16) - } OPTIONAL, -- Need R - drx-SlotOffset ENUMERATED { - ms0, ms1-32,ms2-32, ms3-32, ms4-32, ms5-32, ms6-32, ms7-32, ms8-32, ms9-32, ms10-32, ms11-32, - ms12-32, ms13-32, ms14-32, ms15-32, ms16-32, ms17-32, ms18-32, ms19-32, ms-20-32, ms21-32, - ms22-32, ms23-32, ms24-32, ms25-32, ms26-32, ms27-32, ms28-32, ms29-32, ms30-32, ms31-32 } } -} - -PHR-Config ::= CHOICE { - release NULL, - setup SEQUENCE { - phr-PeriodicTimer ENUMERATED {sf10, sf20, sf50, sf100, sf200,sf500, sf1000, infinity}, - phr-ProhibitTimer ENUMERATED {sf0, sf10, sf20, sf50, sf100,sf200, sf500, sf1000}, - phr-Tx-PowerFactorChange ENUMERATED {dB1, dB3, dB6, infinity}, - multiplePHR BOOLEAN, - phr-Type2PCell BOOLEAN, - phr-Type2OtherCell BOOLEAN, - phr-ModeOtherCG ENUMERATED {real, virtual} - } + drx-ShortCycleTimer INTEGER (1..16) + } OPTIONAL, -- Need R + drx-SlotOffset INTEGER (0..31) + +} + +PHR-Config ::= SEQUENCE { + phr-PeriodicTimer ENUMERATED {sf10, sf20, sf50, sf100, sf200,sf500, sf1000, infinity}, + phr-ProhibitTimer ENUMERATED {sf0, sf10, sf20, sf50, sf100,sf200, sf500, sf1000}, + phr-Tx-PowerFactorChange ENUMERATED {dB1, dB3, dB6, infinity}, + multiplePHR BOOLEAN, + phr-Type2PCell BOOLEAN, + phr-Type2OtherCell BOOLEAN, + phr-ModeOtherCG ENUMERATED {real, virtual} + } TAG-Config ::= SEQUENCE { - tag-ToReleaseList TAG-ToReleaseList OPTIONAL, -- Need N - tag-ToAddModList TAG-ToAddModList OPTIONAL -- Need N + tag-ToReleaseList SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-Id OPTIONAL, -- Need N + tag-ToAddModList SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-ToAddMod OPTIONAL -- Need N } -TAG-ToReleaseList ::= SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-Id -TAG-ToAddModList ::= SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-ToAddMod TAG-ToAddMod ::= SEQUENCE { tag-Id TAG-Id, timeAlignmentTimer TimeAlignmentTimer, ... } -TAG-Id ::= INTEGER (0.. maxNrofTAGs-1) +TAG-Id ::= INTEGER (0..maxNrofTAGs-1) -TimeAlignmentTimer ::= ENUMERATED {ms500, ms750, ms1280, ms1920, ms2560, ms5120,ms10240, infinity} +TimeAlignmentTimer ::= ENUMERATED {ms500, ms750, ms1280, ms1920, ms2560, ms5120, ms10240, infinity} BSR-Config ::= SEQUENCE { - -- FFS: other values for periodicBSR-Timer, "every PDU" value periodicBSR-Timer ENUMERATED { sf1, sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, sf128, sf160, sf320, sf640, sf1280, sf2560, infinity}, - retxBSR-Timer ENUMERATED { sf10, sf20, sf40, sf80, sf160, sf320, sf640, sf1280, sf2560, sf5120, sf10240}, - logicaChannelSR-DelayTimer ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} OPTIONAL + retxBSR-Timer ENUMERATED { sf10, sf20, sf40, sf80, sf160, sf320, sf640, sf1280, sf2560, sf5120, sf10240, spare5, spare4, + spare3, spare2, spare1}, + logicalChannelSR-DelayTimer ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} OPTIONAL -- Need R } @@ -932,37 +1623,54 @@ BSR-Config ::= SEQUENCE { MeasConfig ::= SEQUENCE { -- Measurement objects - measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, - measObjectToAddModList MeasObjectToAddModList OPTIONAL, + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need N + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need N -- Reporting configurations - reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, - reportConfigToAddModList ReportConfigToAddModList OPTIONAL, + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need N + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need N -- Measurement identities - measIdToRemoveList MeasIdToRemoveList OPTIONAL, - measIdToAddModList MeasIdToAddModList OPTIONAL, + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need N + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need N -- Other parameters - -- s-Measure config + --s-Measure config s-MeasureConfig CHOICE { - ssb-rsrp RSRP-Range, - csi-rsrp RSRP-Range - } OPTIONAL, + ssb-RSRP RSRP-Range, + csi-RSRP RSRP-Range + } OPTIONAL, -- Need M - quantityConfig QuantityConfig OPTIONAL, + quantityConfig QuantityConfig OPTIONAL, -- Need M - -- Placehold for measGapConfig - measGapConfig MeasGapConfig OPTIONAL + --Placehold for measGapConfig + measGapConfig MeasGapConfig OPTIONAL, -- Need M + ... } MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectId MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasId -ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxNrofReportConfigId)) OF ReportConfigId +ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId -- TAG-MEAS-CONFIG-STOP +--TAG-MEAS-GAP-CONFIG-START + +MeasGapConfig ::= SEQUENCE { + gapFR2 CHOICE {release NULL, setup GapConfig } OPTIONAL, + ... +} + +GapConfig ::= SEQUENCE { + gapOffset INTEGER (0..159), + mgl ENUMERATED {ms1dot5, ms3, ms3dot5, ms4, ms5dot5, ms6}, + mgrp ENUMERATED {ms20, ms40, ms80, ms160}, + mgta ENUMERATED {ms0, ms0dot25, ms0dot5}, + ... +} + +-- TAG-MEAS-GAP-CONFIG-STOP -- TAG-MEAS-ID-START MeasId ::= INTEGER (1..maxNrofMeasId) @@ -974,7 +1682,7 @@ MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasIdToAddMod MeasIdToAddMod ::= SEQUENCE { measId MeasId, - measObjectId MeasObjectId OPTIONAL, + measObjectId MeasObjectId, reportConfigId ReportConfigId } @@ -987,67 +1695,68 @@ MeasObjectId ::= INTEGER (1..maxNrofObjectId) -- TAG-MEAS-OBJECT-NR-START MeasObjectNR ::= SEQUENCE { - carrierFreq ARFCN-ValueNR, + ssbFrequency ARFCN-ValueNR OPTIONAL, + refFreqCSI-RS ARFCN-ValueNR OPTIONAL, --RS configuration (e.g. SMTC window, CSI-RS resource, etc.) - referenceSignalConfig ReferenceSignalConfig OPTIONAL, + referenceSignalConfig ReferenceSignalConfig, --Consolidation of L1 measurements per RS index - absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL, - absThreshCSI-RS-Consolidation ThresholdNR OPTIONAL, + absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL, -- Need R + absThreshCSI-RS-Consolidation ThresholdNR OPTIONAL, -- Need R --Config for cell measurement derivation - nroSS-BlocksToAverage INTEGER (2..maxNroSS-BlocksToAverage) OPTIONAL, - nroCSI-RS-ResourcesToAverage INTEGER (2..maxNroCSI-RS-ResourcesToAverage) OPTIONAL, + nrofSS-BlocksToAverage INTEGER (2..maxNrofSS-BlocksToAverage) OPTIONAL, -- Need R + nrofCSI-RS-ResourcesToAverage INTEGER (2..maxNrofCSI-RS-ResourcesToAverage) OPTIONAL, -- Need R -- Filter coefficients applicable to this measurement object - quantityConfigIndex INTEGER (1..maxQuantityConfigId), + quantityConfigIndex INTEGER (1..maxNrofQuantityConfig), - --Frequency-specific offsets (only for events A3, A6) + --Frequency-specific offsets offsetFreq Q-OffsetRangeList, -- Cell list - cellsToRemoveList CellIndexList OPTIONAL, - cellsToAddModList CellsToAddModList OPTIONAL, + cellsToRemoveList PCI-List OPTIONAL, -- Need N + cellsToAddModList CellsToAddModList OPTIONAL, -- Need N -- Black list - blackCellsToRemoveList CellIndexList OPTIONAL, - blackCellsToAddModList BlackCellsToAddModList OPTIONAL, + blackCellsToRemoveList PCI-RangeIndexList OPTIONAL, -- Need N + blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need N -- White list - whiteCellsToRemoveList CellIndexList OPTIONAL, - whiteCellsToAddModList WhiteCellsToAddModList OPTIONAL + whiteCellsToRemoveList PCI-RangeIndexList OPTIONAL, -- Need N + whiteCellsToAddModList WhiteCellsToAddModList OPTIONAL, -- Need N + ... } --- FFS / TODO: To be updated based on email discussion[99#31][NR] Additional information for SSB and CSI-RS config (Ericsson) -ReferenceSignalConfig::= SEQUENCE { +ReferenceSignalConfig::= SEQUENCE { - ssb-MeasurementTimingConfiguration SSB-MeasurementTimingConfiguration OPTIONAL, - ssbPresence CHOICE { - present SEQUENCE { - frequencyOffset NULL, -- WS modification: was TYPE_FFS! - subcarrierSpacing SubcarrierSpacing - }, - notPresent SEQUENCE { - -- FFS: How to inform the UE where else to find the SSB. FFS whether to indicate here a carrier or a cell ID or multiple cell IDs - } - }, + -- SSB configuration for mobility (nominal SSBs, timing configuration) + ssb-ConfigMobility SSB-ConfigMobility OPTIONAL, -- Need M + -- CSI-RS resources to be used for CSI-RS based RRM measurements + csi-rs-ResourceConfigMobility CHOICE {release NULL, setup CSI-RS-ResourceConfigMobility } OPTIONAL-- Need M - -- CSI-RS resources to be used for for CSI-RS based RRM measurements - csi-rs-ResourceConfig-Mobility CSI-RS-ResourceConfig-Mobility OPTIONAL, -- Need N - - -- Indicates whether the UE can utilize serving cell timing to derive the index of SS block transmitted by neighbour cell: - useServingCellTimingForSync BOOLEAN } -- A measurement timing configuration -SSB-MeasurementTimingConfiguration ::= SEQUENCE { +SSB-ConfigMobility::= SEQUENCE { + --Only the values 15, 30 or 60 kHz (<6GHz), 60 or 120 kHz (>6GHz) are applicable + subcarrierSpacing SubcarrierSpacing, + -- The set of SS blocks to be measured within the SMTC measurement duration. + -- Corresponds to L1 parameter 'SSB-measured' (see FFS_Spec, section FFS_Section) + -- When the field is absent the UE measures on all SS-blocks + -- FFS_CHECK: Is this IE placed correctly. + ssb-ToMeasure CHOICE {release NULL, setup SSB-ToMeasure } OPTIONAL, -- Need M + + -- Indicates whether the UE can utilize serving cell timing to derive the index of SS block transmitted by neighbour cell: + useServingCellTimingForSync BOOLEAN, + -- Primary measurement timing configuration. Applicable for intra- and inter-frequency measurements. smtc1 SEQUENCE { -- Periodicity and offset of the measurement window in which to receive SS/PBCH blocks. -- Periodicity and offset are given in number of subframes. - -- FFS_FIXME: This does not match the L1 parameter table! + -- FFS_FIXME: This does not match the L1 parameter table! They seem to intend an index to a hidden table in L1 specs. -- (see 38.213, section REF): periodicityAndOffset CHOICE { sf5 INTEGER (0..4), @@ -1059,72 +1768,103 @@ SSB-MeasurementTimingConfiguration ::= SEQUENCE { }, -- Duration of the measurement window in which to receive SS/PBCH blocks. It is given in number of subframes -- (see 38.213, section 4.1) - -- FFS: RAN1 discusses additional allowed durations: - duration ENUMERATED { sf1, sf5 }, - - -- The set of SS blocks to be measured within the SMTC measurement duration. - -- Corresponds to L1 parameter 'SSB-measured' (see FFS_Spec, section FFS_Section) - -- When the field is absent the UE measures on all SS-blocks - -- FFS_CHECK: Is this IE placed correctly. - ssb-ToMeasure CHOICE { - release NULL, - setup CHOICE { - -- bitmap for sub 3 GHz - shortBitmap BIT STRING (SIZE (4)), - -- bitmap for 3-6 GHz - mediumBitmap BIT STRING (SIZE (8)), - -- bitmap for above 6 GHz - longBitmap BIT STRING (SIZE (64)) - } - } OPTIONAL -- Need M + duration ENUMERATED { sf1, sf2, sf3, sf4, sf5 } }, -- Secondary measurement timing confguration for explicitly signalled PCIs. It uses the offset and duration from smtc1. -- It is supported only for intra-frequency measurements in RRC CONNECTED. smtc2 SEQUENCE { -- PCIs that are known to follow this SMTC. - pci-List SEQUENCE (SIZE (1..maxNrofPCIsPerSMTC)) OF PhysicalCellId OPTIONAL, + pci-List SEQUENCE (SIZE (1..maxNrofPCIsPerSMTC)) OF PhysCellId OPTIONAL, -- Need M -- Periodicity for the given PCIs. Timing offset and Duration as provided in smtc1. - periodicty NULL -- WS modification: was TYPE_FFS! - } OPTIONAL -- Cond IntraFreqConnected + periodicity ENUMERATED {sf5, sf10, sf20, sf40, sf80, sf160, spare2, spare1} + } OPTIONAL,-- Cond IntraFreqConnected + ss-RSSI-Measurement SEQUENCE { + measurementSlots CHOICE { + kHz15 BIT STRING (SIZE(1)), + kHz30 BIT STRING (SIZE(2)), + kHz60 BIT STRING (SIZE(4)), + kHz120 BIT STRING (SIZE(8)) + }, + endSymbol INTEGER(0..13) + } OPTIONAL } -CSI-RS-ResourceConfig-Mobility ::= SEQUENCE { +CSI-RS-ResourceConfigMobility ::= SEQUENCE { -- MO specific values -csi-rs-MeasurementBW SEQUENCE { - csi-rs-measurementBW-size ENUMERATED { size24, size48, size96, size192, size268}, - csi-rs-measurement-BW-start ENUMERATED {ffsTypeAndValue}, - associated-SSB ENUMERATED {ffsTypeAndValue}, - qcled-SSB BOOLEAN, - isServingCellMO BOOLEAN -}, - -- subcarrier spacing of CSI-RS. It can take the same values available also for the data channels and for SSB + isServingCellMO BOOLEAN, + -- Subcarrier spacing of CSI-RS. + -- Only the values 15, 30 or 60 kHz (<6GHz), 60 or 120 kHz (>6GHz) are applicable. + -- Corresponds to L1 parameter 'Numerology' (see 38.211, section FFS_Section) subcarrierSpacing SubcarrierSpacing, + -- List of cells + csi-RS-CellList-Mobility SEQUENCE (SIZE (1..maxNrofCSI-RS-CellsRRM)) OF CSI-RS-CellMobility + +} + +CSI-RS-CellMobility ::= SEQUENCE { + cellId PhysCellId, + + csi-rs-MeasurementBW SEQUENCE { + -- Allowed size of the measurement BW in PRBs + -- Corresponds to L1 parameter 'CSI-RS-measurementBW-size' (see FFS_Spec, section FFS_Section) + nrofPRBs ENUMERATED { size24, size48, size96, size192, size264}, + -- Starting PRB index of the measurement bandwidth + -- Corresponds to L1 parameter 'CSI-RS-measurement-BW-start' (see FFS_Spec, section FFS_Section) + -- FFS_Value: Upper edge of value range unclear in RAN1 + startPRB INTEGER(0..2169) + }, + + -- Frequency domain density for the 1-port CSI-RS for L3 mobility + -- Corresponds to L1 parameter 'Density' (see FFS_Spec, section FFS_Section) + density ENUMERATED {d1,d3} OPTIONAL, - -- List of resources + +-- List of resources csi-rs-ResourceList-Mobility SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesRRM)) OF CSI-RS-Resource-Mobility } -CSI-RS-Resource-Mobility ::= SEQUENCE { - csi-rs-ResourceId-RRM CSI-RS-ResourceId-RRM, - cellId PhysicalCellId, + +CSI-RS-Resource-Mobility ::= SEQUENCE { + csi-RS-Index CSI-RS-Index, -- Contains periodicity and slot offset for periodic/semi-persistent CSI-RS (see 38.211, section x.x.x.x)FFS_Ref - -- FFS: Whether ms80 and ms160 are supported slotConfig CHOICE { - ms5 INTEGER (0..4), - ms10 INTEGER (0..9), - ms20 INTEGER (0..19), - ms40 INTEGER (0..39), - ms80 INTEGER (0..79), - ms160 INTEGER (0..159) + ms4 INTEGER (0..31), + ms5 INTEGER (0..39), + ms10 INTEGER (0..79), + ms20 INTEGER (0..159), + ms40 INTEGER (0..319) }, - -- Resource Element mapping pattern for CSI-RS (see 38.211, section x.x.x.x) FFS_Ref - resourceElementMappingPattern NULL, -- WS modification: was TYPE_FFS! - -- FFS / TODO: ADD DESCRIPTION (see 38.211, section x.x.x.x) FFS_Ref - sequenceGenerationConfig NULL -- WS modification: was TYPE_FFS! + -- Each CSI-RS resource may be associated with one SSB. If such SSB is indicated, the NW also indicates whether the UE may assume + -- quasi-colocation of this SSB with this CSI-RS reosurce. + -- Corresponds to L1 parameter 'Associated-SSB' (see FFS_Spec, section FFS_Section) + + associatedSSB SEQUENCE { + ssb-Index SSB-Index, + -- The CSI-RS resource is either QCL’ed not QCL’ed with the associated SSB in spatial parameters + -- Corresponds to L1 parameter 'QCLed-SSB' (see FFS_Spec, section FFS_Section) + isQuasiColocated BOOLEAN + } OPTIONAL, -- Cond AssociatedSSB + + + -- Frequency domain allocation within a physical resource block in accordance with 38.211, section 7.4.1.5.3 including table 7.4.1.5.2-1. + -- The number of bits that may be set to one depend on the chosen row in that table. For the choice "other", the row can be determined from + -- the parmeters below and from the number of bits set to 1 in frequencyDomainAllocation. + frequencyDomainAllocation CHOICE { + row1 BIT STRING (SIZE (4)), + row2 BIT STRING (SIZE (12)) + }, + + + -- Time domain allocation within a physical resource block. The field indicates the first OFDM symbol in the PRB used for CSI-RS. + -- Parameter l0 in 38.211, section 7.4.1.5.3. Value 2 is supported only when DL-DMRS-typeA-pos equals 3. + firstOFDMSymbolInTimeDomain INTEGER (0..13), + -- Scrambling ID for CSI-RS(see 38.211, section 7.4.1.5.2) + sequenceGenerationConfig INTEGER (0..1023), + ... } -CSI-RS-ResourceId-RRM ::= INTEGER (0..maxNrofCSI-RS-ResourcesRRM-1) +CSI-RS-Index ::= INTEGER (0..maxNrofCSI-RS-ResourcesRRM-1) Q-OffsetRangeList ::= SEQUENCE { rsrpOffsetSSB Q-OffsetRange DEFAULT dB0, @@ -1135,33 +1875,42 @@ Q-OffsetRangeList ::= SEQUENCE { sinrOffsetCSI-RS Q-OffsetRange DEFAULT dB0 } +SSB-ToMeasure ::= CHOICE { + -- bitmap for sub 3 GHz + shortBitmap BIT STRING (SIZE (4)), + -- bitmap for 3-6 GHz + mediumBitmap BIT STRING (SIZE (8)), + -- bitmap for above 6 GHz + longBitmap BIT STRING (SIZE (64)) +} + + ThresholdNR ::= SEQUENCE{ - threshold-RSRP RSRP-Range OPTIONAL, - threshold-RSRQ RSRQ-Range OPTIONAL, - threshold-SINR SINR-Range OPTIONAL + thresholdRSRP RSRP-Range OPTIONAL, + thresholdRSRQ RSRQ-Range OPTIONAL, + thresholdSINR SINR-Range OPTIONAL } CellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellsToAddMod CellsToAddMod ::= SEQUENCE { - cellIndex INTEGER (1..maxNrofCellMeas), physCellId PhysCellId, cellIndividualOffset Q-OffsetRangeList } -BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF BlackCellsToAddMod +BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF BlackCellsToAddMod BlackCellsToAddMod ::= SEQUENCE { - cellIndex INTEGER (1..maxNrofCellMeas), - physCellIdRange PhysCellIdRange + pci-RangeIndex PCI-RangeIndex, + pci-Range PCI-Range } -WhiteCellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF WhiteCellsToAddMod +WhiteCellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF WhiteCellsToAddMod WhiteCellsToAddMod ::= SEQUENCE { - cellIndex INTEGER (1..maxNrofCellMeas), - physCellIdRange PhysCellIdRange + pci-RangeIndex PCI-RangeIndex, + pci-Range PCI-Range } -- TAG-MEAS-OBJECT-NR-STOP @@ -1173,7 +1922,7 @@ MeasObjectToAddMod ::= SEQUENCE { measObjectId MeasObjectId, measObject CHOICE { measObjectNR MeasObjectNR, - measObjectEUTRA MeasObjectEUTRA + ... } } @@ -1185,251 +1934,274 @@ MeasResults ::= SEQUENCE { measResultServingFreqList MeasResultServFreqList, measResultNeighCells CHOICE { measResultListNR MeasResultListNR, - measResultListEUTRA MeasResultListEUTRA, ... - } OPTIONAL + } OPTIONAL, + ... } -MeasResultServFreqList ::= SEQUENCE (SIZE (1..maxServCell)) OF MeasResultServFreq +MeasResultServFreqList ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServFreq MeasResultServFreq ::= SEQUENCE { - servFreqId ServCellIndex OPTIONAL, + servFreqId ServCellIndex, measResultServingCell MeasResultNR, - measResultBestNeighCell MeasResultNR } + measResultBestNeighCell MeasResultNR, + ... +} MeasResultListNR ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultNR MeasResultNR ::= SEQUENCE { physCellId PhysCellId OPTIONAL, --FFS: Details of cgi info - cgi-Info NULL, -- WS modification: was TYPE_FFS! + cgi-Info ENUMERATED {ffsTypeAndValue} OPTIONAL, measResult SEQUENCE { cellResults SEQUENCE{ - resultsSSBCell ResultsSSBCell OPTIONAL, - resultsCSI-RSCell ResultsCSI-RSCell OPTIONAL + resultsSSB-Cell MeasQuantityResults OPTIONAL, + resultsCSI-RS-Cell MeasQuantityResults OPTIONAL }, rsIndexResults SEQUENCE{ - resultsSSBIndexes ResultsPerSSBIndexList OPTIONAL, - resultsCSI-RSIndexes ResultsPerCSI-RSIndexList OPTIONAL + resultsSSB-Indexes ResultsPerSSB-IndexList OPTIONAL, + resultsCSI-RS-Indexes ResultsPerCSI-RS-IndexList OPTIONAL } OPTIONAL - } + }, + ... } -ResultsSSBCell ::= SEQUENCE { - ssb-Cellrsrp RSRP-Range OPTIONAL, - ssb-Cellrsrq RSRQ-Range OPTIONAL, - ssb-Cellsinr SINR-Range OPTIONAL -} -ResultsCSI-RSCell ::= SEQUENCE { - csi-rs-Cellrsrp RSRP-Range OPTIONAL, - csi-rs-Cellrsrq RSRQ-Range OPTIONAL, - csi-rs-Cellsinr SINR-Range OPTIONAL +MeasQuantityResults ::= SEQUENCE { + rsrp RSRP-Range OPTIONAL, + rsrq RSRQ-Range OPTIONAL, + sinr SINR-Range OPTIONAL } -ResultsPerSSBIndexList ::= SEQUENCE (SIZE (1..maxNroSSBs)) OF ResultsPerSSBIndex +ResultsPerSSB-IndexList::= SEQUENCE (SIZE (1..maxNrofSSBs)) OF ResultsPerSSB-Index -ResultsPerSSBIndex ::= SEQUENCE { +ResultsPerSSB-Index ::= SEQUENCE { ssb-Index SSB-Index, - ss-rsrp RSRP-Range OPTIONAL, - ss-rsrq RSRQ-Range OPTIONAL, - ss-sinr SINR-Range OPTIONAL + ssb-Results MeasQuantityResults OPTIONAL } -ResultsPerCSI-RSIndexList ::= SEQUENCE (SIZE (1..maxNroCSI-RS)) OF ResultsPerCSI-RSIndex +ResultsPerCSI-RS-IndexList::= SEQUENCE (SIZE (1..maxNrofCSI-RS)) OF ResultsPerCSI-RS-Index -ResultsPerCSI-RSIndex ::= SEQUENCE { - csi-rsIndex CSI-RSIndex, - csi-rsrp RSRP-Range OPTIONAL, - csi-rsrq RSRQ-Range OPTIONAL, - csi-sinr SINR-Range OPTIONAL +ResultsPerCSI-RS-Index ::= SEQUENCE { + csi-RS-Index CSI-RS-Index, + csi-RS-Results MeasQuantityResults OPTIONAL } -- TAG-MEAS-RESULTS-STOP --- TAG-PDCCH-CONFIG-START +-- TAG-MEAS-RESULT-SCG-FAILURE-START --- Downlink control channel related parameters -PDCCH-Config ::= SEQUENCE { - -- List of Control Resource Sets (CORESETs) to be used by the UE - controlResourceSetToAddModList SEQUENCE(SIZE (1..maxNrofControlResourceSets)) OF ControlResourceSet OPTIONAL, - controlResourceSetToReleaseList SEQUENCE(SIZE (1..maxNrofControlResourceSets)) OF ControlResourceId OPTIONAL, +MeasResultSCG-Failure ::= SEQUENCE { + measResultServFreqList MeasResultServFreqList2NR, + measResultNeighCells MeasResultList2NR, + ... +} - searchSpacesToAddModList SEQUENCE(SIZE (1..maxNrofSearchSpaces)) OF SearchSpace OPTIONAL, - searchSpacesToReleaseList SEQUENCE(SIZE (1..maxNrofSearchSpaces)) OF SearchSpaceId OPTIONAL, +MeasResultServFreqList2NR ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServFreq2NR +MeasResultServFreq2NR ::= SEQUENCE { + ssbFrequency ARFCN-ValueNR OPTIONAL, + refFreqCSI-RS ARFCN-ValueNR OPTIONAL, + measResultServingCell MeasResultNR, + measResultBestNeighCell MeasResultNR OPTIONAL +} - -- FFS: Is this timing information applicable to the entire PDCCH or could it be different per CORESET? - -- FFS: Is there a default timing (to be used at least until first reconfiguration). Are the fields optionally present? - timing SEQUENCE { - dl-assignment-to-DL-data NULL, -- WS modification: was TYPE_FFS! - ul-assignment-to-UL-data NULL, -- WS modification: was TYPE_FFS! - dl-data-to-UL-ACK NULL -- WS modification: was TYPE_FFS! - } OPTIONAL +MeasResultList2NR ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2NR +MeasResult2NR ::= SEQUENCE { + ssbFrequency ARFCN-ValueNR OPTIONAL, + refFreqCSI-RS ARFCN-ValueNR OPTIONAL, + measResultListNR MeasResultListNR } --- A time/frequency control resource set (CORESET) in which to search for downlink control information (see 38.213, section x.x.x.x)FFS_Ref -ControlResourceSet ::= SEQUENCE { - controlResourceSetId ControlResourceSetId, +-- TAG-MEAS-RESULT-SCG-FAILURE-STOP +-- TAG-MEASRESULT-CELL-LIST-SFTD-START - -- Frequency domain resources for the CORESET. The network ensures that the CORESET is within the BWP configured for a UE. (see 38.213, REF) - frequencyDomainResources NULL, -- WS modification: was TYPE_FFS! - -- Starting OFDM symbol for the CORESET (see 38.213, REF) - startSymbol INTEGER (0..maxCoReSetStartSymbol), - -- Contiguouse time duration of the CORESET in number of symbols see 38.213, section x.x.x.x)FFS_Ref - duration INTEGER (1..maxCoReSetDuration), - -- Resource Element Groups (REGs) can be bundled to create REG bundles. This parameter defines the size of such bundles. - -- (see 38.211, section 7.3.2.2) - reg-BundleSize ENUMERATED {n2, n3, n6}, - -- Mapping of Control Channel Elements (CCE) to Resource Element Groups (REG). (see 38.211, 38.213, FFS_REF) - cce-reg-MappingType ENUMERATED { interleaved, nonInterleaved }, - -- Precoder granularity in frequency domain (see 38.213, section FFS_REF) - precoderGranularity NULL, -- WS modification: was TYPE_FFS! - -- Corresponds to L1 parameter 'CORESET-interleaver-rows' (see 38.211, 38.213, section FFS_Section) - interleaverRows ENUMERATED {n2, n3, n6} OPTIONAL, - - -- Corresponds to L1 parameter 'CORESET-shift-index' (see 38.211, 38.213, section FFS_Section) - shiftIndex NULL, -- WS modification: was FFS_Value OPTIONAL, - - -- Reference to a configured TCI State providing QCL configuration/indication for PDCCH. - -- Corresponds to L1 parameter 'TCI-StateRefId' (see 38.211, 38.213, section FFS_Section) - tci-StateRefId NULL, -- WS modification: was FFS_Value OPTIONAL, +MeasResultCellListSFTD ::= SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultCellSFTD - -- PDCCH DMRS scrambling initalization. Corresponds to L1 parameter 'PDCCH-DMRS-Scrambling-ID' (see 38.214, section 5.1) - -- When the field is absent the UE applies the value TBD/FFS - pdcch-DMRS-ScramblingID NULL -- WS modification: was FFS_Value OPTIONAL +MeasResultCellSFTD ::= SEQUENCE { + physCellId PhysCellId, + sfn-OffsetResult INTEGER (0..1023), + frameBoundaryOffsetResult INTEGER (-30720..30719), + rsrp-Result RSRP-Range OPTIONAL } --- ID of a Control Resource Set. -ControlResourceSetId ::= INTEGER (0..maxNrofControlResourceSets-1) +-- TAG-MEASRESULT-CELL-LIST-SFTD-STOP +-- TAG-MULTIFREQUENCYBANDLISTNR-START --- A search space defines how/where to search for PDCCH candidates. A search space is associated with one Control Resource Set -SearchSpace ::= SEQUENCE { - searchSpaceId SearchSpaceId, +MultiFrequencyBandListNR ::= SEQUENCE (SIZE (1..maxNrofMultiBands)) OF FreqBandIndicatorNR - -- The CORESET applicable for this SearchSpace. - -- FFS: Value 0 identifies the common CORESET configured in MIB? - -- FFS: Values 1..maxNrofControlResourceSets-1 identify CORESETs configured by dedicated signalling? - controlResourceSetId ControlResourceSetId, +-- TAG-MULTIFREQUENCYBANDLISTNR-STOP +-- TAG-NZP-CSI-RS-RESOURCESET-START +NZP-CSI-RS-ResourceSet ::= SEQUENCE { + nzp-CSI-ResourceSetId NZP-CSI-RS-ResourceSetId, - -- Slots for PDCCH Monitoring configured as periodicity and offset. Corresponds to L1 parameters 'Montoring-periodicity-PDCCH-slot' and - -- 'Montoring-offset-PDCCH-slot' (see 38.213, section 10) - -- sl15, sl10, sl20 FFS - monitoringSlotPeriodicityAndOffset CHOICE { - sl1 NULL, - sl2 INTEGER (0..1), - sl5 INTEGER (0..4), - sl10 INTEGER (0..9), - sl20 INTEGER (0..19) - } OPTIONAL, + -- NZP-CSI-RS-Resources assocaited with this NZP-CSI-RS resource set. + -- Corresponds to L1 parameter 'CSI-RS-ResourceConfigList' (see 38.214, section 5.2) + -- For CSI, there are at most 8 NZP CSI RS resources per resource set + nzp-CSI-RS-Resources SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerSet)) OF NZP-CSI-RS-ResourceId, + + -- Indicates whether repetition is on/off. If set to set to 'OFF', the UE may not assume that the + -- NZP-CSI-RS resources within the resource set are transmitted with the same downlink spatial domain transmission filter + -- and with same NrofPorts in every symbol. + -- Corresponds to L1 parameter 'CSI-RS-ResourceRep' (see 38.214, sections 5.2.2.3.1 and 5.1.6.1.2) + -- Can only be configured for CSI-RS resource sets which are associated with CSI-ReportConfig with report of L1 RSRP or “no report” + repetition ENUMERATED { on, off } OPTIONAL, + + -- Offset X between the slot containing the DCI that triggers a set of aperiodic NZP CSI-RS resources and the slot in which the + -- CSI-RS resource set is transmitted. When the field is absent the UE applies the value 0. + -- Corresponds to L1 parameter 'Aperiodic-NZP-CSI-RS-TriggeringOffset' (see 38,214, section FFS_Section) + aperiodicTriggeringOffset INTEGER(0..4) OPTIONAL, -- Need S + + -- Indicates that the antenna port for all NZP-CSI-RS resources in the CSI-RS resource set is same. + -- Corresponds to L1 parameter 'TRS-Info' (see 38.214, section 5.2.2.3.1) + trs-Info ENUMERATED {true} OPTIONAL, + ... +} - -- Symbols for PDCCH monitoring in the slots configured for PDCCH monitoring (see monitoringSlotPeriodicityAndOffset). - -- The most significant (left) bit represents the first OFDM in a slot. The least significant (right) bit represents the last symbol. - -- Corresponds to L1 parameter 'Montoring-symbols-PDCCH-within-slot' (see 38.213, section 10) - monitoringSymbolsWithinSlot BIT STRING (SIZE (14)) OPTIONAL, +-- TAG-NZP-CSI-RS-RESOURCESET-STOP +-- TAG-NZP-CSI-RS-RESOURCESETID-START +NZP-CSI-RS-ResourceSetId ::= INTEGER (0..maxNrofNZP-CSI-RS-ResourceSets-1) - -- Number of candidates per aggregation level. Corresponds to L1 parameter 'Aggregation-level-1' to 'Aggregation-level-8' - -- (see 38.213, section 10) - nrofCandidates SEQUENCE { - aggregationLevel1 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}, - aggregationLevel2 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}, - aggregationLevel4 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}, - aggregationLevel8 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8} - }, +-- TAG-NZP-CSI-RS-RESOURCESETID-STOP +-- TAG-NZP-CSI-RS-RESOURCE-START +NZP-CSI-RS-Resource ::= SEQUENCE { + nzp-CSI-RS-ResourceId NZP-CSI-RS-ResourceId, + + -- OFDM symbol location(s) in a slot and subcarrier occupancy in a PRB of the CSI-RS resource + resourceMapping CSI-RS-ResourceMapping, + -- Power offset of NZP CSI-RS RE to PDSCH RE. Value in dB. Corresponds to L1 parameter Pc (see 38.214, sections 5.2.2.3.1 and 4.1) + powerControlOffset INTEGER(-8..15), + -- Power offset of NZP CSI-RS RE to SS RE. Value in dB. Corresponds to L1 parameter 'Pc_SS' (see 38.214, section 5.2.2.3.1) + powerControlOffsetSS ENUMERATED{db-3, db0, db3, db6} OPTIONAL, + -- Scrambling ID (see 38.214, section 5.2.2.3.1) + scramblingID ScramblingId, + + -- Periodicity and slot offset sl1 corresponds to a periodicity of 1 slot, sl2 to a periodicity of two slots, and so on. + -- The corresponding offset is also given in number of slots. Corresponds to L1 parameter 'CSI-RS-timeConfig' (see 38.214, section 5.2.2.3.1) + periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, --Cond PeriodicOrSemiPersistent + + -- For a target periodic CSI-RS, contains a reference to one TCI-State in TCI-States for providing the QCL source and + -- QCL type. For periodic CSI-RS, the source can be SSB or another periodic-CSI-RS. + -- Corresponds to L1 parameter 'QCL-Info-PeriodicCSI-RS' (see 38.214, section 5.2.2.3.1) + qcl-InfoPeriodicCSI-RS TCI-StateId OPTIONAL, --Cond Periodic + ... +} +-- TAG-NZP-CSI-RS-RESOURCE-STOP +-- TAG-NZP-CSI-RS-RESOURCEID-START +NZP-CSI-RS-ResourceId ::= INTEGER (0..maxNrofNZP-CSI-RS-Resources-1) +-- TAG-NZP-CSI-RS-RESOURCEID-STOP +-- TAG-P-MAX-START - -- Indicates whether this is a common search space (present) or a UE specific search space. - -- FFS: How many CSSs can the NW configure? And can a CSS only be in the common CORESET? - searchSpaceType CHOICE { - common SEQUENCE { - -- Monitoring of a group common PDCCH for at least SFI (Slot Format Indicator) - -- FFS_CHECK: Is this really part of the common search space? Or entirely separate? - sfi-PDCCH SFI-PDCCH, - -- Turn on monitoring of DL preemption DCI - -- FFS_CHECK: Is Preemp-DL needed at all? Can't this be derived from the presence of the following INT-RNTI field? - preemp-DL BOOLEAN, - -- RNTI used for indication pre-emption in DL. Also connected to monitoring of a Type2-PDCCH common search space. - -- (see 38.213, section 10) - -- FFS: What does the abbreviation stand for? Add a better description - -- FFS:_Verify that RNTI is still 16 bit. - int-RNTI BIT STRING (SIZE (16)), - -- Set selection for DL-preemption indication, the set indication two different manners the DL preemption DCI - -- is interpreteded by the UE. Corresponds to L1 parameter 'int-TF-unit' (see 38.213, section 10.1) - -- FFS: Clarify description. - int-TF ENUMERATED {set0, set1}, - -- Monitoring periodicity of DCI with INT-RNTI in number of slots. - -- Corresponds to L1 parameter 'INT-monitoring-periodicity' (see 38.213, section 11.2) - monitoringPeriodicity NULL OPTIONAL -- WS modification: was FFS_Value - }, - ue-Specific SEQUENCE { - -- FFS: Parameters that are applicable only for USS? - } - } OPTIONAL -- Need M +P-Max ::= INTEGER (-30..33) + +-- TAG-P-MAX-STOP +-- TAG-PCI-LIST-START + +PCI-List ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF PhysCellId + +-- TAG-PCI-LIST-STOP +-- TAG-PCI-RANGE-START + +PCI-Range ::= SEQUENCE { + start PhysCellId, + range ENUMERATED { + n4, n8, n12, n16, n24, n32, n48, n64, n84, + n96, n128, n168, n252, n504, n1008, + spare1} OPTIONAL -- Need Nss } -SearchSpaceId ::= INTEGER (1..maxNrofSearchSpaces) +-- TAG-PCI-RANGE-STOP +-- TAG-PCI-RANGE-INDEX-START --- Configuration of monitoring a Group-Common-PDCCH for Slot-Format-Indicators (SFI) -SFI-PDCCH ::= SEQUENCE { +PCI-RangeIndex ::= INTEGER (1..maxNrofPCI-Ranges) - -- Monitoring periodicity of SFI PDCCH in slots. Should be 8 values in total. RAN1 will decided the remainnig values, i.e. X1, X2, X3 - -- Corresponds to L1 parameter 'SFI-monitoring-periodicity' (see 38.213, section FFS_Section) - monitoringPeriodicity ENUMERATED {sl1, sl2, sl5, sl10, sl20, spare3, spare2, spare1} OPTIONAL, - -- Maps a specific cell to a given SFI value within the DCI message - -- Corresponds to L1 parameter 'SFI-cell-to-SFI' (see 38.213, section FFS_Section) - sfi-CellToSFI SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF CellToSFI OPTIONAL, +-- TAG-PCI-RANGE-INDEX-STOP +-- TAG-PCI-RANGE-INDEX-LIST-START - -- The number of PDCCH candidates for the configured aggregation level. - -- Corresponds to L1 parameter 'SFI-Num-PDCCH-cand' (see 38.213, section FFS_Section) - nrofPDCCH-Candidates ENUMERATED {n1, n2}, +PCI-RangeIndexList ::= SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeIndex - -- The aggregation level for the SFI-PDCCH. Corresponds to L1 parameter 'SFI-Aggregation-Level' (see 38.213, section FFS_Section) - aggregationLevel ENUMERATED {n1, n2, n4, n8}, +-- TAG-PCI-Range-INDEX-LIST-STOP +-- TAG-PDCCH-CONFIG-START - -- RNTI used for SFI on the given cell - -- Corresponds to L1 parameter 'SFI-RNTI' (see 38.213, section FFS_Section) - sfi-RNTI BIT STRING (SIZE (16)) OPTIONAL, +PDCCH-Config ::= SEQUENCE { + -- List of UE specifically configured Control Resource Sets (CORESETs) to be used by the UE. + -- The network configures at most 3 CORESETs per BWP per cell (including the initial CORESET). + controlResourceSetToAddModList SEQUENCE(SIZE (1..3)) OF ControlResourceSet OPTIONAL, + controlResourceSetToReleaseList SEQUENCE(SIZE (1..3)) OF ControlResourceSetId OPTIONAL, - -- Payload length of SFI DCI. Corresponds to L1 parameter 'SFI-DCI-payload-length' (see 38.213, section FFS_Section) - dci-PayloadLength NULL OPTIONAL, -- WS modification: was TYPE_FFS! + -- List of UE specifically configured Control Resource Sets (CORESETs). + -- The network configures at most 10 Search Spaces per BWP per cell (including the initial Search Space). + searchSpacesToAddModList SEQUENCE(SIZE (1..10)) OF SearchSpace OPTIONAL, + searchSpacesToReleaseList SEQUENCE(SIZE (1..10)) OF SearchSpaceId OPTIONAL, - -- Defines whether a specific CORESET is used or the CSS. Corresponds to L1 parameter 'SFI-SS' (see 38.213, section FFS_Section) - searchSpace NULL OPTIONAL, -- WS modification: was TYPE_FFS! + -- Configuration of downlink preemtption indications to be monitored in this cell. + -- Corresponds to L1 parameter 'Preemp-DL' (see 38.214, section 11.2) + -- FFS_RAN1: LS R1-1801281 indicates this is "Per Cell (but association with each configured BWP is needed)" => Unclear, keep on BWP for now. + downlinkPreemption CHOICE {release NULL, setup DownlinkPreemption } OPTIONAL, -- Need M - -- SFI value location within a DCI message, this fields gives the starting bit in the DCI message, assumption is that lenght is given RAN1 spec. - -- Corresponds to L1 parameter 'SFI-values' (see 38.213, section FFS_Section) - -- FFS_CHECK whether this field is placed correctly - sfi-PositionInDCI INTEGER (1..1) OPTIONAL -- WS modification: was MaxDCIpayload but it is undefined -} + -- Configuration of Slot-Format-Indicators to be monitored in this cell --- Mapping for a given cell to SFI value within DCI message. Corresponds to L1 parameter 'cell-to-SFI' (see 38.213, section FFS_Section) -CellToSFI ::= SEQUENCE { - -- FFS: Content and structure of this IE. + -- FFS_RAN1 discusses still whether this SFI payload configuration is BWP- or Cell-Specific. + slotFormatIndicator CHOICE {release NULL, setup SlotFormatIndicator } OPTIONAL, -- Need M + -- Enable and configure reception of group TPC commands for PUSCH + tpc-PUSCH CHOICE {release NULL, setup PUSCH-TPC-CommandConfig } OPTIONAL, -- Need M - -- A list with SlotFormatCombinations. Each SlotFormatCombination comprises of one or more SlotFormats (see 38.211, section 4.3.2) - slotFormatCombinations SEQUENCE (SIZE (1..maxNrofSlotFormatCombinations)) OF SlotFormatCombination OPTIONAL -} + -- Enable and configure reception of group TPC commands fpr PUCCH + tpc-PUCCH CHOICE {release NULL, setup PUCCH-TPC-CommandConfig } OPTIONAL, -- Cond PUCCH-CellOnly -SlotFormatCombination ::= SEQUENCE { - slotFormatCombinationId SlotFormatCombinationId - -- slotFormats SEQUENCE (SIZE (1..maxNrofSlotFormatsPerCombination)) WS modification: comment this wrong construct + ... } --- SFI index that is assoicated with a certian slot-format-combination --- Corresponds to L1 parameter 'SFI-index' (see 38.213, section FFS_Section) -SlotFormatCombinationId ::= INTEGER (0..maxNrofSlotFormatCombinations-1) +-- TAG-PDCCH-CONFIG-STOP +-- TAG-PDCCH-CONFIGCOMMON-START +PDCCH-ConfigCommon ::= SEQUENCE { --- TAG-PDCCH-CONFIG-STOP + -- A list of common control resource sets. Only CORESETs with ControlResourceSetId = 0 or 1 are allowed. The CORESET#0 + -- corresponds to the CORESET configured in MIB (see pdcch-ConfigSIB1) and is used to provide that information to the UE + -- by dedicated signalling during handover and (P)SCell addition. The CORESET#1 may be configured an used for RAR + -- (see ra-ControlResourceSet). + commonControlResourcesSets SEQUENCE (SIZE(1..2)) OF ControlResourceSet OPTIONAL, -- Need R + + -- A list of additional common search spaces. + commonSearchSpaces SEQUENCE (SIZE(1..4)) OF SearchSpace OPTIONAL, -- Need R + + -- ID of the search space for SIB1 message. + + -- Corresponds to L1 parameter 'rmsi-SearchSpace' (see 38.213, section 10) + searchSpaceSIB1 SearchSpaceId OPTIONAL, -- Need R + -- ID of the Search space for other system information, i.e., SIB2 and beyond. + -- Corresponds to L1 parameter 'osi-SearchSpace' (see 38.213, section 10) + -- If the field is absent, the monitoring occasions are derived as described in 38.213, section 10.1 and section 13. + searchSpaceOtherSystemInformation SearchSpaceId OPTIONAL, -- Need R + + -- ID of the Search space for paging. Corresponds to L1 parameter 'paging-SearchSpace' (see 38.213, section 10) + -- If the field is absent, the monitoring occasions are derived as described in 38.213, section 10.1 and section 13. + pagingSearchSpace SearchSpaceId OPTIONAL, -- Need R + + -- CORESET configured for random access. When the field is absent the UE uses the CORESET according to pdcch-ConfigSIB1 + -- which is associated with ControlResourceSetId = 0. + -- Corresponds to L1 parameter 'rach-coreset-configuration' (see 38.211?, section FFS_Section) + ra-ControlResourceSet ControlResourceSetId OPTIONAL, -- Need S + -- ID of the Search space for random access procedure. Corresponds to L1 parameter 'ra-SearchSpace' (see 38.214?, section FFS_Section) + -- If the field is absent, the monitoring occasions are derived as described in 38.213, section 10.1 and section 13. + ra-SearchSpace SearchSpaceId OPTIONAL, -- Need R + ... + +} + +-- TAG-PDCCH-CONFIGCOMMON-STOP -- TAG-PDCP-CONFIG-START PDCP-Config ::= SEQUENCE { drb SEQUENCE { discardTimer ENUMERATED {ms10, ms20, ms30, ms40, ms50, ms60, ms75, ms100, ms150, ms200, ms250, ms300, ms500, ms750, ms1500, infinity} OPTIONAL, -- Cond Setup - pdcp-SN-Size-UL ENUMERATED {len12bits, len18bits}, - pdcp-SN-Size-DL ENUMERATED {len12bits, len18bits}, + pdcp-SN-SizeUL ENUMERATED {len12bits, len18bits} OPTIONAL, -- Cond Setup2 + pdcp-SN-SizeDL ENUMERATED {len12bits, len18bits} OPTIONAL, -- Cond Setup2 headerCompression CHOICE { notUsed NULL, rohc SEQUENCE { @@ -1445,479 +2217,810 @@ PDCP-Config ::= SEQUENCE { profile0x0103 BOOLEAN, profile0x0104 BOOLEAN }, - uplinkOnlyROHC SEQUENCE { - maxCID INTEGER (1..16383) DEFAULT 15, - profiles SEQUENCE { - profile0x0006 BOOLEAN - } + drb-ContinueROHC BOOLEAN + }, + uplinkOnlyROHC SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0006 BOOLEAN }, + drb-ContinueROHC BOOLEAN + }, ... - } }, - - integrityProtection BOOLEAN, - - statusReportRequired BOOLEAN OPTIONAL -- Cond Rlc-AM - } OPTIONAL, -- Cond DRB + integrityProtection ENUMERATED { enabled } OPTIONAL, -- Cond ConnectedTo5GC + statusReportRequired ENUMERATED { true } OPTIONAL, -- Cond Rlc-AM + outOfOrderDelivery BOOLEAN + } OPTIONAL, -- Cond DRB -- FFS / TODO: Handle more than two secondary cell groups moreThanOneRLC SEQUENCE { primaryPath SEQUENCE { - cellGroup CellGroupId, - logicalChannel LogicalChannelIdentity + cellGroup CellGroupId OPTIONAL, -- Need R + logicalChannel LogicalChannelIdentity OPTIONAL -- Need R }, - ul-DataSplitThreshold CHOICE { - release NULL, - setup ENUMERATED { - b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, b25600, b51200, b102400, b204800, - b409600, b819200, b1228800, b1638400, b2457600, b3276800, b4096000, b4915200, b5734400, - b6553600, infinity, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1} - }, - ul-Duplication BOOLEAN - } OPTIONAL, -- Cond MoreThanOneRLC + ul-DataSplitThreshold UL-DataSplitThreshold OPTIONAL, -- Cond SplitBearer + pdcp-Duplication ENUMERATED { true } OPTIONAL -- Need R + } OPTIONAL, -- Cond MoreThanOneRLC t-Reordering ENUMERATED { - ms0, ms5, ms10, ms15, ms20, ms30, ms40, ms60, ms50, ms80, ms100, ms120, ms140, ms160, ms180, ms200, ms220, + ms0, ms1, ms2, ms4, ms5, ms8, ms10, ms15, ms20, ms30, ms40, ms50, ms60, ms80, ms100, ms120, ms140, ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300, ms500, ms750, ms1000, ms1250, ms1500, ms1750, ms2000, ms2250, ms2500, ms2750, - ms3000} OPTIONAL, -- Need R + ms3000, spare28, spare27, spare26, spare25, spare24, spare23, spare22, spare21, spare20, + spare19, spare18, spare17, spare16, spare15, spare14, spare13, spare12, spare11, spare10, spare09, + spare08, spare07, spare06, spare05, spare04, spare03, spare02, spare01 } OPTIONAL, -- Need S + - -- FFS: whether ms0 is the same like outOfOrderDelivery - -- FFS: new values for t-Reordering - outOfOrderDelivery BOOLEAN, ... } +UL-DataSplitThreshold ::= ENUMERATED { + b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, b25600, b51200, b102400, b204800, + b409600, b819200, b1228800, b1638400, b2457600, b3276800, b4096000, b4915200, b5734400, + b6553600, infinity, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1} + -- TAG-PDCP-CONFIG-STOP -- TAG-PDSCH-CONFIG-START PDSCH-Config ::= SEQUENCE { - -- Indicates whether to use code-block-group (CBG) based transmission (see 38.213, section x.x.x.x) FFS_Ref - -- FFS: Is this BOOLEAN parameter needed or can it be derived from the presence of the codeBlockGroupsPerTransportBlock? - codeBlockGroupTransmission BOOLEAN, - -- Maximum number of code-block-groups (CBGs) per TB. In case of multiple CW the maximum CBG is 4 (see 38.213, section 9.1.1) - maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, - -- Indicates whether CBGFI for CBG based (re)transmission in DL is enabled (true). (see FFS_Specification, section FFS_Section) - codeBlockGroupFlushIndicator BOOLEAN, + -- Identifer used to initalite data scrambling (c_init) for both PDSCH. + -- Corresponds to L1 parameter 'Data-scrambling-Identity' (see 38,214, section FFS_Section) + -- FFS:_Replace by tye ScramblingId used in other places? + dataScramblingIdentityPDSCH INTEGER (0..1007) OPTIONAL, - -- Selection of the DMRS type to be used for DL (see 38.211, section 7.4.1.1.1) - dmrs-Type ENUMERATED {type1, type2} OPTIONAL, -- Need R - -- Position for additional DM-RS in DL, see Table 7.4.1.1.2-4 in 38.211. - -- The four values represent the cases of 1+0, 1+1, 1+1+1. 1+1+1+1 non-adjacent OFDM symbols for DL. - -- CHECK: Listed in RAN1 table. But should this really be in dedicated signalling? - dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos2, pos3} OPTIONAL, -- Need R - -- DM-RS groups that are QCL:ed, i.e. group 1 (see 38.214, section 5.1) - -- CHECK: Clarify how to configure the DMRS groups and the relation to TCI. - dmrs-group1 NULL, -- WS modification: was TYPE_FFS! - -- DM-RS groups that are QCL:ed, i.e. group 2 (see 38.214, section 5.1) - dmrs-group2 NULL, -- WS modification: was TYPE_FFS! + -- DMRS configuration for PDSCH transmissions using PDSCH mapping type A (chosen dynamically via PDSCH-TimeDomainResourceAllocation). + dmrs-DownlinkForPDSCH-MappingTypeA CHOICE {release NULL, setup DMRS-DownlinkConfig } OPTIONAL, -- Need M + -- DMRS configuration for PDSCH transmissions using PDSCH mapping type B (chosen dynamically via PDSCH-TimeDomainResourceAllocation). + dmrs-DownlinkForPDSCH-MappingTypeB CHOICE {release NULL, setup DMRS-DownlinkConfig } OPTIONAL, -- Need M - -- Configures downlink PTRS . - -- If absent of released, the UE assumes that downlink PTRS are not present. See 38.211 section 7.4.1.2.2 - phaseTracking-RS CHOICE { - release NULL, - setup Downlink-PTRS-Config - } OPTIONAL, -- Need M - -- Contains Transmission Configuration Indicator (TCI) states for dynamically indicating (over DCI) a transmission configuration + -- A list of Transmission Configuration Indicator (TCI) states for dynamically indicating (over DCI) a transmission configuration -- which includes QCL-relationships between the DL RSs in one RS set and the PDSCH DMRS ports -- (see 38.214, section 5.1.4) - tci-States NULL, -- WS modification: was TYPE_FFS! - -- Reference Signal set within a TCI state, e.g., which RSs, which QCL parameters, etc. (see 38.214, section 5.1.4) - tci-rs-SetConfig NULL, -- WS modification: was TYPE_FFS! - -- If at least spatial QCL is configured/indicated, this field indicates if TCI field is present or not present in DL-related DCI. - -- When the field is absent the UE considers the TCI to be absent/disabled. - -- FFS_RAN1: details of the granularity of the configuration, e.g. per CORESET, per UE. - -- Corresponds to L1 parameter 'TCI-PresentInDCI' (see 38,213, section 5.1.5) - tci-PresentInDCI ENUMERATED {enabled} OPTIONAL, - -- Accounts for overhead from CSI-RS, CORESET, etc. FFS: Clarify value range and description. - -- Corresponds to L1 parameter 'Xoh-PDSCH' (see 38.214, section 5.1.3.2) - xOverhead ENUMERATED {n0, n6, n12, n18} OPTIONAL, -- WS modification: was FFS_Value, values retrieved from 38.214 - - -- Indexes to possible symbol allcoations (the indexes point to entries in a UE specific table) - -- Corresponds to L1 parameter 'PDSCH-symbol-allocation' (see 38.214, section 5.1.2.1) - pdsch-symbolAllocation NULL OPTIONAL, -- WS modification: was FFS_Value - -- Resources that the UE should rate match PDSCH around. - rateMatchResourcesPDSCH SEQUENCE { - -- Resources patterns which the UE should rate match PDSCH around. The UE rate matches around the union of all resources - -- indicated in the nexted bitmaps. Corresponds to L1 parameter 'rate-match-PDSCH-resource-set' (see 38.214, section 5.1.2.2.3) - -- FFS_ASN1: Consider replacing by AddMod/Release lists - rateMatchPatterns CHOICE { - release NULL, - setup SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern - } OPTIONAL, -- Need M - lte-CRS-ToMatchAround CHOICE { - release NULL, - setup SEQUENCE { - -- Number of LTE CRS antenna port to rate-match around. - -- Corresponds to L1 parameter 'rate-match-resources-numb-LTE-CRS-antenna-port' (see 38.214, section 5.1.4) - nrofCRS-Ports ENUMERATED {n1, n2, n4}, - -- Shifting value v-shift in LTE to rate match around LTE CRS - -- Corresponds to L1 parameter 'rate-match-resources-LTE-CRS-v-shift' (see 38.214, section 5.1.4) - v-Shift ENUMERATED {n0, n1, n2, n3, n4, n5} - } - } OPTIONAL -- Need M - }, + tci-StatesToAddModList SEQUENCE (SIZE(1..maxNrofTCI-States)) OF TCI-State OPTIONAL, -- Need N + tci-StatesToReleaseList SEQUENCE (SIZE(1..maxNrofTCI-States)) OF TCI-StateId OPTIONAL, -- Need N + + -- Interleaving unit configurable between 2 and 4 PRBs + -- Corresponds to L1 parameter 'VRB-to-PRB-interleaver' (see 38.211, section 6.3.1.6) + vrb-ToPRB-Interleaver ENUMERATED {n2, n4}, + + -- Configuration of resource allocation type 0 and resource allocation type 1 for non-fallback DCI + -- Corresponds to L1 parameter 'Resouce-allocation-config' (see 38.214, section 5.1.2) + resourceAllocation ENUMERATED { resourceAllocationType0, +resourceAllocationType1, +dynamicSwitch}, + + -- List of time-domain configurations for timing of DL assignment to DL data. If configured, the values provided herein + -- override the values received in corresponding PDSCH-ConfigCommon. + pdsch-AllocationList SEQUENCE (SIZE(1..maxNrofDL-Allocations)) OF PDSCH-TimeDomainResourceAllocation OPTIONAL, -- Need R + -- Number of repetitions for data. Corresponds to L1 parameter 'aggregation-factor-DL' (see 38.214, section FFS_Section) + -- When the field is absent the UE applies the value 1 + pdsch-AggregationFactor ENUMERATED { n2, n4, n8 } OPTIONAL, -- Need S + + -- Resources patterns which the UE should rate match PDSCH around. The UE rate matches around the union of all resources + -- indicated in the nexted bitmaps. Corresponds to L1 parameter 'Resource-set-BWP' (see 38.214, section 5.1.2.2.3) + -- FFS: RAN1 indicates that there should be a set of patterns per cell and one per BWP => Having both seems unnecessary. + + rateMatchPatternToAddModList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern OPTIONAL, -- Need N + rateMatchPatternToReleaseList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N + + -- The IDs of a first group of RateMatchPatterns defined in the rateMatchPatternToAddModList. + -- Corresponds to L1 parameter 'Resource-set-group-1'. (see 38.214, section FFS_Section) + rateMatchPatternGroup1 SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need R + -- The IDs of a second group of RateMatchPatterns defined in the rateMatchPatternToAddModList + -- Corresponds to L1 parameter 'Resource-set-group-2'. (see 38.214, section FFS_Section) + rateMatchPatternGroup2 SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need R + -- Selection between config 1 and config 2 for RBG size for PDSCH. Corresponds to L1 parameter 'RBG-size-PDSCH' (see 38.214, section 5.1.2.2.1) rbg-Size ENUMERATED {config1, config2}, -- Indicates which MCS table the UE shall use for PDSCH. Corresponds to L1 parameter 'MCS-Table-PDSCH' (see 38.214, section 5.1.3.1). - mcs-Table ENUMERATED {dl-64QAM, dl-256QAM}, + mcs-Table ENUMERATED {qam64, qam256}, -- Maximum number of code words that a single DCI may schedule. This changes the number of MCS/RV/NDI bits in the DCI message from 1 to 2. maxNrofCodeWordsScheduledByDCI ENUMERATED {n1, n2} OPTIONAL, -- Need R - -- The number of HARQ processes to be used on the PDSCH of a serving cell. - -- Corresponds to L1 parameter 'number-HARQ-process-PDSCH' (see 38.214, section REF) - nrofHARQ-processesForPDSCH NULL, -- WS modification: was TYPE_FFS! - - - -- HARQ-ACK codebook is configured to be either semi-static of dynamic. This is applicable to both CA and none CA operation - -- Corresponds to L1 parameter 'HARQ-ACK-codebook' (see 38.213, section FFS_Section) - harq-ACK-Codebook ENUMERATED {semiStatic, dynamic}, - - -- Bundle size the UE may assume. Corresponds to L1 paramter 'PDSCH-bundle-size' (see 38.211, section 7.3.1.5) - -- FFS: Better description, value range - pdsch-BundleSize NULL, -- WS modification: no type was present - -- If set to true, the network indicates the PRB bundle size dynamically via DCI. Corresponds to L1 parameter 'PRB_bundling' + -- Indicates the PRB bundle type and bundle size(s). If "dynamic" is chosen, the actual BundleSizeSet to use is indicated via DCI. + -- If a bundleSize(Set) value is absent, the UE applies the value n2. Corresponds to L1 parameter 'PRB_bundling' -- (see 38.214, section 5.1.2.3) - prbBundlingEnabled BOOLEAN, + prb-BundlingType CHOICE { + static SEQUENCE { + bundleSize ENUMERATED { n4, wideband } OPTIONAL -- Need S + }, + dynamic SEQUENCE { + bundleSizeSet1 ENUMERATED { n4, wideband, n2-wideband, n4-wideband } OPTIONAL, -- Need S + bundleSizeSet2 ENUMERATED { n4, wideband } OPTIONAL -- Need S + } + }, + + -- A list of Zero-Power (ZP) CSI-RS resources used for PDSCH rate-matching. + -- Corresponds to L1 parameter 'ZP-CSI-RS-ResourceConfigList' (see 38.214, section FFS_Section) + zp-CSI-RS-ResourceToAddModList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Resources)) OF ZP-CSI-RS-Resource OPTIONAL, -- Need N + zp-CSI-RS-ResourceToReleaseList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Resources)) OF ZP-CSI-RS-ResourceId OPTIONAL, -- Need M + + -- A list of sets. Each set contains a set-ID and the IDs of one or more ZP-CSI-RS-Resources (the actual resources are defined in the + -- zp-CSI-RS-ResourceToAddModList). The network triggers a set by indicating its set-ID (ZP-CSI-RS-ResourceSetId) in the DCI payload. + -- The resources referenced in these sets are confgiured with resourceType 'aperiodic'. + -- Corresponds to L1 parameter ' ZP-CSI-RS-ResourceSetConfigList' (see 38.214, section FFS_Section) + aperiodic-ZP-CSI-RS-ResourceSetsToAddModList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) OF ZP-CSI-RS-ResourceSet OPTIONAL, -- Need N + aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) OF ZP-CSI-RS-ResourceSetId OPTIONAL, -- Need N + + -- A list of sets. Each set contains a set-ID and the IDs of one or more ZP-CSI-RS-Resources (the actual resources are defined in the + -- zp-CSI-RS-ResourceToAddModList). The network triggers a set by indicating its set-ID (ZP-CSI-RS-ResourceSetId) in the MAC CE. + -- The resources referenced in these sets are confgiured with resourceType 'semi-persistent'. + -- Corresponds to L1 parameter 'SP-ZP-CSI-RS-Resource-List' (see 38.214, section 5.1.4_Section) + sp-ZP-CSI-RS-ResourceSetsToAddModList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) OF ZP-CSI-RS-ResourceSet OPTIONAL, -- Need N + sp-ZP-CSI-RS-ResourceSetsToReleaseList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) OF ZP-CSI-RS-ResourceSetId OPTIONAL, -- Need N ... } --- Parameters for configuration of downlink PTRS (see 38.211 section 7.4.1.2.2) -Downlink-PTRS-Config ::= SEQUENCE { - -- Presence and frequency density of DL PT-RS as a function of Scheduled BW (see 38.214, section 5.1) - -- FFS: To be Configured per BWP - frequencyDensity NULL, -- WS modification: was TYPE_FFS! - -- Presence and time density of DL PT-RS as a function of MCS (see 38.214, section 5.1) - -- FFS: To be Configured per BWP - timeDensity NULL, -- WS modification: was TYPE_FFS! - -- Indicates the number of DL PTRS ports. This is equal or smaller than the number of DMRS groups (related to PDSCH parameters - -- dmrs-group1 and dmrs-group2). Corresponds to L1 parameter 'DL-PTRS-ports' (see 38.214, section 5.1) - nrofPorts ENUMERATED {n1, n2}, - -- EPRE ratio between PTRS and PDSCH. Corresponds to L1 parameter 'DL-PTRS-EPRE-ratio' (see 38.214, section 5.1) - -- FFS: Whether there is one EPRE value per port (a comment in the L1 parameters hints that) - epre-Ratio NULL OPTIONAL, -- WS modification: was FFS_Value - -- Indicates the subcarrier offset for DL PTRS. Corresponds to L1 parameter 'DL-PTRS-RE-offset' (see 38.214, section 5.1) - resourceElementOffset NULL OPTIONAL -- WS modification: was FFS_Value + + + +-- TAG-PDSCH-CONFIG-STOP +-- TAG-PDSCH-CONFIGCOMMON-START + +PDSCH-ConfigCommon ::= SEQUENCE { + + -- List of time-domain configurations for timing of DL assignment to DL data + pdsch-AllocationList SEQUENCE (SIZE(1..maxNrofDL-Allocations)) OF PDSCH-TimeDomainResourceAllocation OPTIONAL, -- Need R + + ... } -RateMatchPattern ::= SEQUENCE { +-- TAG-PDSCH-CONFIGCOMMON-STOP +-- TAG-PDSCH-SERVINGCELLCONFIG-START - -- A resource block level bitmap in the frequency domain. It indicates the PRBs to which the symbolsInResourceBlock bitmap applies. - -- Corresponds to L1 parameter 'rate-match-PDSCH-bitmap1' (see 38.214, section FFS_Section) - -- FFS_ASN1: Consider multiple options with different number of bits (for narrower carriers) - resourceBlocks BIT STRING (SIZE (275)), +PDSCH-ServingCellConfig ::= SEQUENCE { + -- Enables and configures code-block-group (CBG) based transmission (see 38.213, section 9.1.1) + codeBlockGroupTransmission CHOICE {release NULL, setup PDSCH-CodeBlockGroupTransmission } OPTIONAL, -- Need M + -- Accounts for overhead from CSI-RS, CORESET, etc. If the field is absent, the UE applies value xOh0. + -- Corresponds to L1 parameter 'Xoh-PDSCH' (see 38.214, section 5.1.3.2) + xOverhead ENUMERATED { xOh6, xOh12, xOh18 } OPTIONAL, -- Need S + -- The number of HARQ processes to be used on the PDSCH of a serving cell. n2 corresponds to 2 HARQ processes, n4 to 4 HARQ processes + -- and so on. If the field is absent, the UE uses 8 HARQ processes. + -- Corresponds to L1 parameter 'number-HARQ-process-PDSCH' (see 38.214, section REF) + nrofHARQ-ProcessesForPDSCH ENUMERATED {n2, n4, n6, n10, n12, n16} OPTIONAL, -- Need S + -- The ID of the serving cell (of the same cell group) to use for PUCCH. + -- If the field is absent, the UE sends the HARQ feedback on the PUCCH of the SpCell of this cell group. + pucch-Cell ServCellIndex OPTIONAL , -- Cond SCellAddOnly + ... +} - -- A symbol level bitmap in time domain. It indicates (FFS: with a bit set to true) the symbols which the UE shall rate match around. - -- This pattern recurs (in time domain) with the configured periodicityAndOffset. - -- Corresponds to L1 parameter 'rate-match-PDSCH-bitmap2' (see 38.214, section FFS_Section) - symbolsInResourceBlock BIT STRING (SIZE (14)), +PDSCH-CodeBlockGroupTransmission ::= SEQUENCE { + -- Maximum number of code-block-groups (CBGs) per TB. In case of multiple CW the maximum CBG is 4 (see 38.213, section 9.1.1) + maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, + -- Indicates whether CBGFI for CBG based (re)transmission in DL is enabled (true). (see 38.212, section 7.3.1.2.2) + codeBlockGroupFlushIndicator BOOLEAN, + ... +} - -- A time domain repetition pattern. It determines the periodicity (FFS: And offset???) at which the symbolsInResourceBlock pattern recurs. - -- Absence of this field indicates the value n1, i.e., the symbolsInResourceBlock recurs every 14 symbols. - -- Corresponds to L1 parameter 'rate-match-PDSCH-bitmap3' (see 38.214, section FFS_Section) - -- FFS: Doesn't one require also an offset to configure from where the repetitions start? - periodicityAndOffset CHOICE { - n5 INTEGER (0..4), - n10 INTEGER (0..9), - n20 INTEGER (0..19), - n40 INTEGER (0..39) - } OPTIONAL -- Need R +-- TAG-PDSCH-SERVINGCELLCONFIG-STOP +-- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATION-START +PDSCH-TimeDomainResourceAllocation ::= SEQUENCE { + -- Corresponds to L1 parameter 'K0' (see 38.214, section FFS_Section) + -- When the field is absent the UE applies the value 0 + k0 INTEGER (1..3) OPTIONAL, -- Need S + -- PDSCH mapping type. Corresponds to L1 parameter 'Mapping-type' (see 38.214, section FFS_Section) + mappingType ENUMERATED {typeA, typeB}, + -- An index into a table/equation in RAN1 specs capturing valid combinations of start symbol and length (jointly encoded) + -- Corresponds to L1 parameter 'Index-start-len' (see 38.214, section FFS_Section) + startSymbolAndLength BIT STRING (SIZE (7)) } --- TAG-PDSCH-CONFIG-STOP +-- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATION-STOP -- TAG-PHYS-CELL-ID-START PhysCellId ::= INTEGER (0..1007) -- TAG-PHYS-CELL-ID-STOP +-- TAG-PRB-ID-START + +PRB-Id ::= INTEGER (0..maxNrofPhysicalResourceBlocks-1) + +-- TAG-PRB-ID-STOP +-- TAG-PTRS-DOWNLINKCONFIG-START + +PTRS-DownlinkConfig ::= SEQUENCE { + -- Presence and frequency density of DL PT-RS as a function of Scheduled BW + -- If the field is absent, the UE uses K_PT-RS = 2. + -- Corresponds to L1 parameter 'DL-PTRS-frequency-density-table' (see 38.214, section 5.1) + frequencyDensity SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S + -- Presence and time density of DL PT-RS as a function of MCS. The value 29 is only applicable for MCS Table 5.1.3.1-1 (38.214) + -- If the field is absent, the UE uses L_PT-RS = 1. + -- Corresponds to L1 parameter 'DL-PTRS-time-density-table' (see 38.214, section 5.1) + timeDensity SEQUENCE (SIZE (3)) OF INTEGER (0..29) OPTIONAL, -- Need S + -- EPRE ratio between PTRS and PDSCH. Value 0 correspond to the codepoint ”00” in table 4.1-2. Value 1 corresponds to codepoint ”01” + -- If the field is not provided, the UE applies value 0. Corresponds to L1 parameter 'DL-PTRS-EPRE-ratio' (see 38.214, section 4.1) + epre-RatioPort1 INTEGER (0..3) OPTIONAL, -- Need S + -- EPRE ratio between PTRS and PDSCH. Value 0 correspond to the codepoint ”00” in table 4.1-2. Value 1 corresponds to codepoint ”01”. + -- If the field is not provided, the UE applies value 0. Corresponds to L1 parameter 'DL-PTRS-EPRE-ratio' (see 38.214, section 4.1) + epre-RatioPort2 SEQUENCE (SIZE (1..2)) OF INTEGER (0..3) OPTIONAL, -- Cond TwoPorts + -- Indicates the subcarrier offset for DL PTRS. If the field is absent, the UE applies the value offset00. + -- Corresponds to L1 parameter 'DL-PTRS-RE-offset' (see 38.214, section 5.1.6.3) + resourceElementOffset ENUMERATED { offset01, offset10, offset11 } OPTIONAL, -- Need S + ... +} + +-- TAG-PTRS-DOWNLINKCONFIG-STOP +-- TAG-PTRS-UPLINKCONFIG-START + +PTRS-UplinkConfig ::= SEQUENCE { + + modeSpecificParameters CHOICE { + -- Configuration of UL PTRS for CP-OFDM + cp-OFDM SEQUENCE { + -- Presence and frequency density of UL PT-RS for CP-OFDM waveform as a function of scheduled BW + -- If the field is absent, the UE uses K_PT-RS = 2. + -- Corresponds to L1 parameter 'UL-PTRS-frequency-density-table' (see 38.214, section 6.1) + frequencyDensity SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S + -- Presence and time density of UL PT-RS for CP-OFDM waveform as a function of MCS + -- If the field is absent, the UE uses L_PT-RS = 1. + -- Corresponds to L1 parameter 'UL-PTRS-time-density-table' (see 38.214, section 6.1) + timeDensity SEQUENCE (SIZE (3)) OF INTEGER (0..29) OPTIONAL, -- Need S + -- The maximum number of UL PTRS ports for CP-OFDM. + -- Corresponds to L1 parameter 'UL-PTRS-ports' (see 38.214, section 6.2.3.1) + maxNrofPorts ENUMERATED {n1, n2}, + -- Indicates the subcarrier offset for UL PTRS for CP-OFDM. + -- Corresponds to L1 parameter 'UL-PTRS-RE-offset' (see 38.214, section 6.1) + resourceElementOffset ENUMERATED {offset01, offset10, offset11 } OPTIONAL, -- Need S + -- UL PTRS power boosting factor per PTRS port. Corresponds to L1 parameter 'UL-PTRS-power' (see 38.214, section 6.1, table 6.2.3-5) + ptrs-Power ENUMERATED {p00, p01, p10, p11} + }, + -- Configuration of UL PTRS for DFT-S-OFDM. + dft-S-OFDM SEQUENCE { + -- Sample density of PT-RS for DFT-s-OFDM, pre-DFT, indicating a set of thresholds T={NRBn,n=0,1,2,3,4}, + -- that indicates dependency between presence of PT-RS and scheduled BW and the values of X and K the UE should + -- use depending on the scheduled BW according to the table in 38.214 FFS_Section. + -- Corresponds to L1 parameter 'UL-PTRS-pre-DFT-density' (see 38.214, section 6.1, 6.2.3-3) + sampleDensity SEQUENCE (SIZE (5)) OF INTEGER (1..276), + -- Time density (OFDM symbol level) of PT-RS for DFT-s-OFDM. If the value is absent, the UE applies value d1. + -- Corresponds to L1 parameter 'UL-PTRS-time-density-transform-precoding' (see 38.214, section 6.1) + timeDensity ENUMERATED {d2} OPTIONAL -- Need S + } + } OPTIONAL, -- Cond M + ... +} + +-- TAG-PTRS-UPLINKCONFIG-STOP -- TAG-PUCCH-CONFIG-START PUCCH-Config ::= SEQUENCE { - -- PUCCH resource sets (see 38.213 9.2) - resourceSets SEQUENCE (SIZE (1..1)) OF PUCCH-ResourceSet OPTIONAL, -- WS modification: was FFS_Value - - format1 CHOICE { - release NULL, - setup SEQUENCE { - -- Enabling inter-slot frequency hopping when PUCCH Format 1 is repetead over multiple slots. - interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, - -- Number of slots with the same PUCCH F1. When the field is absent the UE applies the value n1. - -- Corresponds to L1 parameter 'PUCCH-F1-number-of-slots' (see 38.213, section 9.2) - -- FFS_Value: Undefined values y1-y3 in range! - nrofSlots ENUMERATED {n1,ny1,y2,y3} OPTIONAL - } } OPTIONAL, -- Need M - - format2 CHOICE { - release NULL, - setup SEQUENCE { - -- Maximum coding rate to determine how to feedback UCI on PUCCH Format 2. - -- Corresponds to L1 parameter 'PUCCH-F2-maximum-coderate' (see 38.213, section 9.2) - maxCodeRate INTEGER (0..7) OPTIONAL, -- WS modification: was FFS_Value, 38.214 suggests those values - -- Number of PRBs for PUCCH Format 2. Corresponds to L1 parameter 'PUCCH-F2-number-of-PRBs' (see 38.213, section 9.2) - -- FFS_Value range - nrofPRBs INTEGER(1..16) OPTIONAL, - -- Enabling simultaneous transmission of CSI and HARQ-ACK feedback with or without SR with PUCCH Format2 - -- Corresponds to L1 parameter 'PUCCH-F2-Simultaneous-HARQ-ACK-CSI' (see 38.213, section 9.2) - -- When the field is absent the UE applies the value OFF - simultaneousHARQ-ACK-CSI ENUMERATED {true} OPTIONAL -- Need R - } } OPTIONAL, -- Need M - - - format3 CHOICE { - release NULL, - setup SEQUENCE { - -- Enabling inter-slot frequency hopping when PUCCH Format 3 is repetead over multiple slots. - interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, - -- Enabling 2 DMRS symbols per hop of a PUCCH Format 3 if both hops are more than X symbols when FH is enabled. - -- Enabling 4 DMRS sybmols for a PUCCH Format 3 with more than 2X+1 symbols when FH is disabled. - -- Corresponds to L1 parameter 'PUCCH-F3-F4-additional-DMRS' (see 38.21X, section FFS_Section) - additionalDMRS ENUMERATED {true} OPTIONAL, -- Need R - -- Max coding rate to determine how to feedback UCI on PUCCH Format 3 - -- Corresponds to L1 parameter 'PUCCH-F3-maximum-coderate' (see 38.213, section 9.2) - maxCodeRate INTEGER (0..7) OPTIONAL, -- WS modification: was FFS_Value, 38.214 suggests those values - -- Number of slots with the same PUCCH F3. When the field is absent the UE applies the value n1. - -- Corresponds to L1 parameter 'PUCCH-F3-number-of-slots' (see 38.213, section 9.2) - -- FFS_Value: Undefined values y1-y3 in range! - nrofSlots ENUMERATED {n1,y1,y2,y3} OPTIONAL, - -- Enabling pi/2 BPSK for UCI symbols instead of QPSK for PUCCH. - -- Corresponds to L1 parameter 'PUCCH-PF3-PF4-pi/2PBSK' (see 38.21X, section FFS_Section) - pi2PBSK ENUMERATED {enabled} OPTIONAL - } } OPTIONAL, -- Need M - - format4 CHOICE { - release NULL, - setup SEQUENCE { - -- Enabling inter-slot frequency hopping when PUCCH Format 4 is repetead over multiple slots. - interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, - -- Enabling 2 DMRS symbols per hop of a PUCCH Format 4 if both hops are more than X symbols when FH is enabled. - -- Enabling 4 DMRS sybmols for a PUCCH Format 4 with more than 2X+1 symbols when FH is disabled. - -- Corresponds to L1 parameter 'PUCCH-F3-F4-additional-DMRS' (see 38.21X, section FFS_Section) - additionalDMRS ENUMERATED {true} OPTIONAL, -- Need R - -- Max coding rate to determine how to feedback UCI on PUCCH Format 4 - -- Corresponds to L1 parameter 'PUCCH-F4-maximum-coderate' (see 38.213, section 9.2) - maxCodeRate INTEGER (0..7) OPTIONAL, -- WS modification: was FFS_Value, 38.214 suggests those values - -- Number of slots with the same PUCCH F4. When the field is absent the UE applies the value n1. - -- Corresponds to L1 parameter 'PUCCH-F4-number-of-slots' (see 38.213, section 9.2) - -- FFS_Value: Undefined values y1-y3 in range! - nrofSlots ENUMERATED {n1,y1,y2,y3} OPTIONAL, - -- Enabling pi/2 BPSK for UCI symbols instead of QPSK for PUCCH. - -- Corresponds to L1 parameter 'PUCCH-PF3-PF4-pi/2PBSK' (see 38.21X, section FFS_Section) - pi2PBSK ENUMERATED {enabled} OPTIONAL - } } OPTIONAL, -- Need M - - schedulingRequestResources CHOICE { - release NULL, - setup SEQUENCE (SIZE (1..maxNrofSchedulingRequestResoruces)) OF SchedulingRequestResource-Config - } OPTIONAL, -- Need M - - -- RNTI used for PUCCH TPC. Corresponds to L1 parameter 'TPC-PUCCH-RNTI' (see 38.213, section 10). - tpc-PUCCH-RNTI BIT STRING (SIZE (16)) OPTIONAL -} - --- A set with one or more PUCCH resource configurations + -- Lists for adding and releasing PUCCH resource sets (see 38.213, section 9.2) + resourceSetToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSet OPTIONAL, -- Need N + resourceSetToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSetId OPTIONAL, -- Need N + + -- Lists for adding and releasing PUCCH resources applicable for the UL BWP and serving cell in which the PUCCH-Config + -- is defined. The resources defined herein are referred to from other parts of the configuration to determine which + -- resource the UE shall use for which report. + resourceToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-Resource OPTIONAL, -- Need N + resourceToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-ResourceId OPTIONAL, -- Need N + + -- Parameters that are common for all PUCCH resources of format 1 + format1 CHOICE {release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M + -- Parameters that are common for all PUCCH resources of format 2 + format2 CHOICE {release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M + -- Parameters that are common for all PUCCH resources of format 3 + format3 CHOICE {release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M + -- Parameters that are common for all PUCCH resources of format 4 + format4 CHOICE {release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M + + schedulingRequestResourceToAddModList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceConfig OPTIONAL, -- Need M + schedulingRequestResourceToReleaseList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceId OPTIONAL, -- Need M + + multi-CSI-PUCCH-ResourceList SEQUENCE (SIZE (1..2)) OF PUCCH-ResourceId OPTIONAL,-- Need M + + -- List of timiing for given PDSCH to the DL ACK. In this version of the specification only the values [0..8] are applicable. + -- Corresponds to L1 parameter 'Slot-timing-value-K1' (see 38.213, section FFS_Section) + dl-DataToUL-ACK SEQUENCE (SIZE (8)) OF INTEGER (0..15) OPTIONAL, -- Need M + + -- Configuration of the spatial relation between a reference RS and PUCCH. Reference RS can be SSB/CSI-RS/SRS. + -- If the list has more than one element, MAC-CE selects a single element (see 38.321, section FFS_Section). + -- Corresponds to L1 parameter 'PUCCH-SpatialRelationInfo' (see 38.213, section FFS_Section) + spatialRelationInfoToAddModList SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfo OPTIONAL, -- Need N + spatialRelationInfoToReleaseList SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfoId OPTIONAL, -- Need N + + pucch-PowerControl PUCCH-PowerControl OPTIONAL, -- Need M + ... +} + +PUCCH-FormatConfig ::= SEQUENCE { + -- Enabling inter-slot frequency hopping when PUCCH Format 1, 3 or 4 is repetead over multiple slots. + -- The field is not applicable for format 2. + interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, -- Need R + -- Enabling 2 DMRS symbols per hop of a PUCCH Format 3 or 4 if both hops are more than X symbols when FH is enabled (X=4). + -- Enabling 4 DMRS sybmols for a PUCCH Format 3 or 4 with more than 2X+1 symbols when FH is disabled (X=4). + -- Corresponds to L1 parameter 'PUCCH-F3-F4-additional-DMRS' (see 38.213, section 9.2.1) + -- The field is not applicable for format 1 and 2. + additionalDMRS ENUMERATED {true} OPTIONAL, -- Need R + -- Max coding rate to determine how to feedback UCI on PUCCH for format 2, 3 or 4 + -- Corresponds to L1 parameter 'PUCCH-F2-maximum-coderate', 'PUCCH-F3-maximum-coderate' and 'PUCCH-F4-maximum-coderate' + -- (see 38.213, section 9.2.5) + -- The field is not applicable for format 1. + maxCodeRate PUCCH-MaxCodeRate OPTIONAL, -- Need R + -- Number of slots with the same PUCCH F1, F3 or F4. When the field is absent the UE applies the value n1. + -- Corresponds to L1 parameter 'PUCCH-F1-number-of-slots', 'PUCCH-F3-number-of-slots' and 'PUCCH-F4-number-of-slots' + -- (see 38.213, section 9.2.6) + -- The field is not applicable for format 2. + nrofSlots ENUMERATED {n2,n4,n8} OPTIONAL, -- Need S + -- Enabling pi/2 BPSK for UCI symbols instead of QPSK for PUCCH. + -- Corresponds to L1 parameter 'PUCCH-PF3-PF4-pi/2PBSK' (see 38.213, section 9.2.5) + -- The field is not applicable for format 1 and 2. + pi2PBSK ENUMERATED {enabled} OPTIONAL, -- Need R + -- Enabling simultaneous transmission of CSI and HARQ-ACK feedback with or without SR with PUCCH Format 2, 3 or 4 + -- Corresponds to L1 parameter 'PUCCH-F2-Simultaneous-HARQ-ACK-CSI', 'PUCCH-F3-Simultaneous-HARQ-ACK-CSI' and + -- 'PUCCH-F4-Simultaneous-HARQ-ACK-CSI' (see 38.213, section 9.2.5) + -- When the field is absent the UE applies the value OFF + -- The field is not applicable for format 1. + simultaneousHARQ-ACK-CSI ENUMERATED {true} OPTIONAL -- Need R +} + +PUCCH-MaxCodeRate ::= ENUMERATED {zeroDot08, zeroDot15, zeroDot25, zeroDot35, zeroDot45, zeroDot60, zeroDot80} + +PUCCH-SpatialRelationInfo ::= SEQUENCE { + pucch-SpatialRelationInfoId PUCCH-SpatialRelationInfoId, + referenceSignal CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId, + srs SRS-ResourceId + }, + pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id, + p0-PUCCH-Id P0-PUCCH-Id, + closedLoopIndex ENUMERATED { i0, i1 } +} + +PUCCH-SpatialRelationInfoId ::= INTEGER (1..maxNrofSpatialRelationInfos) + +-- A set with one or more PUCCH resources PUCCH-ResourceSet ::= SEQUENCE { - -- FFS What a PUCCH resource set contains and how the PUCCH resources in a set link to DCIs codepoints. + pucch-ResourceSetId PUCCH-ResourceSetId, + + -- PUCCH resources of format0 and format1 are only allowed in the first PUCCH reosurce set, + -- i.e., in a PUCCH-ResourceSet with pucch-ResourceSetId = 0. This set may contain between 8 and 32 resources. + -- PUCCH resources of format2, format3 and format4 are only allowed in a PUCCH-ReosurceSet with pucch-ResourceSetId > 0. If present, these sets must contain 8 resources each. + -- The UE chooses a PUCCH-Resource from this list based on the 3-bit PUCCH resource indicator field in DCI as + -- speciied in 38.213, FFS_section. + -- Note that this list contains only a list of resource IDs. The actual resources are configured in PUCCH-Config. + resources SEQUENCE (SIZE (8..maxNrofPUCCH-ResourcesPerSet)) OF PUCCH-ResourceId, + + -- Maximum number of payload bits minus 1 that the UE may transmit using this PUCCH resource set. In a PUCCH occurrence, the UE + -- chooses the first of its PUCCH-ResourceSet which supports the number of bits that the UE wants to transmit. + -- The field is not present in the first set (Set0) since the maximum Size of Set0 is specified to be 3 bit. + -- The field is not present in the last configured set since the UE derives its maximum payload size as specified in 38.213. + -- This field can take integer values that are multiples of 4. Corresponds to L1 parameter 'N_2' or 'N_3' (see 38.213, section 9.2) + maxPayloadMinus1 INTEGER (4..256) OPTIONAL -- Need R +} + +PUCCH-ResourceSetId ::= INTEGER (0..maxNrofPUCCH-ResourceSets-1) + +PUCCH-Resource ::= SEQUENCE { + pucch-ResourceId PUCCH-ResourceId, + + startingPRB PRB-Id, + -- Corresponds to the L1 parameter 'PUCCH-frequency-hopping' (see 38.213, section 9.2) + intraSlotFrequencyHopping ENUMERATED { enabled } OPTIONAL, -- Need R + -- Index of starting PRB for second hop of PUCCH in case of FH. This value is appliable for intra-slot frequency hopping. + -- Corresponds to L1 parameter 'PUCCH-2nd-hop-PRB' (see 38.213, section 9.2) + secondHopPRB PRB-Id OPTIONAL, -- Need R + + -- Selection of the PUCCH format and format-specific parameters + format CHOICE { + format0 PUCCH-format0, -- Cond InFirstSetOnly + format1 PUCCH-format1, -- Cond InFirstSetOnly + format2 PUCCH-format2, -- Cond NotInFirstSet + format3 PUCCH-format3, -- Cond NotInFirstSet + format4 PUCCH-format4 -- Cond NotInFirstSet + } } +PUCCH-ResourceId ::= INTEGER (0..maxNrofPUCCH-Resources-1) + + -- A PUCCH Format 0 resource configuration (see 38.213, section 9.2) --- Corresponds to L1 parameter 'PUCCH-F0-resource-config' (see 38.213, section 9.2) -PUCCH-format0 ::= SEQUENCE { - startingSymbolIndex INTEGER(0..13), - nrofSymbols ENUMERATED {n1, n2}, - startingPRB INTEGER(0..maxNrofPhysicalResourceBlocks-1), - frequencyHopping BOOLEAN, - initialCyclicShift INTEGER(0..11) +-- Corresponds to L1 parameter 'PUCCH-format0' (see 38.213, section 9.2.1) +PUCCH-format0 ::= SEQUENCE { + initialCyclicShift INTEGER(0..11), + nrofSymbols INTEGER (1..2), + startingSymbolIndex INTEGER(0..13) } -- A PUCCH Format 1 resource configuration (see 38.213, section 9.2) --- Corresponds to L1 parameter 'PUCCH-F1-resource-config' (see 38.213, section 9.2) +-- Corresponds to L1 parameter 'PUCCH-format1' (see 38.213, section 9.2.1) PUCCH-format1 ::= SEQUENCE { - startingSymbolIndex INTEGER(0..10), - nrofSymbols INTEGER(4..14), - startingPRB INTEGER(0..maxNrofPhysicalResourceBlocks-1), - frequencyHopping BOOLEAN, initialCyclicShift INTEGER(0..11), + nrofSymbols INTEGER (4..14), + startingSymbolIndex INTEGER(0..10), timeDomainOCC INTEGER(0..6) } -- A PUCCH Format 2 resource configuration (see 38.213, section 9.2) --- Corresponds to L1 parameter 'PUCCH-F2-resource-config' (see 38.213, section 9.2) +-- Corresponds to L1 parameter 'PUCCH-format2onfig' (see 38.213, section 9.2.1) PUCCH-format2 ::= SEQUENCE { - startingSymbolIndex INTEGER(0..13), - nrofSymbols ENUMERATED {n1, n2}, - startingPRB INTEGER(0..maxNrofPhysicalResourceBlocks-1), - nrofPRBs PUCCH-F2-number-of-PRB, - frequencyHopping BOOLEAN + nrofPRBs INTEGER (1..16), + nrofSymbols INTEGER (1..2), + startingSymbolIndex INTEGER(0..13) } -- A PUCCH Format 3 resource configuration(see 38.213, section 9.2) --- Corresponds to L1 parameter 'PUCCH-F3-resource-config' (see 38.213, section 9.2) +-- Corresponds to L1 parameter 'PUCCH-format3' (see 38.213, section 9.2.1) PUCCH-format3 ::= SEQUENCE { - startingSymbolIndex INTEGER(0..10), - nrofSymbols INTEGER(4..14), - startingPRB INTEGER(0..maxNrofPhysicalResourceBlocks-1), - nrofPRBs ENUMERATED {n1,n2,n3,n4,n5,n6,n8,n9,n10,n12,n15,n16}, - frequencyHopping BOOLEAN + -- The supported values are 1,2,3,4,5,6,8,9,10,12,15 and 16 + nrofPRBs INTEGER (1..16), + nrofSymbols INTEGER (4..14), + startingSymbolIndex INTEGER(0..10) } -- A PUCCH Format 4 resource configuration (see 38.213, section 9.2) --- Corresponds to L1 parameter 'PUCCH-F4-resource-config' (see 38.213, section 9.2) +-- Corresponds to L1 parameter 'PUCCH-format4' (see 38.213, section 9.2.1) PUCCH-format4 ::= SEQUENCE { - startingSymbolIndex INTEGER(0..10), - nrofSymbols INTEGER(4..14), - startingPRB INTEGER(0..maxNrofPhysicalResourceBlocks-1), - frequencyHopping BOOLEAN, + nrofSymbols INTEGER (4..14), occ-Length ENUMERATED {n2,n4}, - occ-Index ENUMERATED {n0,n1,n2,n3} + occ-Index ENUMERATED {n0,n1,n2,n3}, + startingSymbolIndex INTEGER(0..10) } - -- TAG-PUCCH-CONFIG-STOP --- TAG-PUSCH-CONFIG-START +-- TAG-PUCCH-CONFIGCOMMON-START + +PUCCH-ConfigCommon ::= SEQUENCE { + -- An entry into a 16-row table where each row configures a set of cell-specific PUCCH resources/parameters. The UE uses + -- those PUCCH resources during initial access on the initial uplink BWP. Once the network provides a dedicated PUCCH-Config + -- for that bandwidth part the UE applies that one instead of the one provided in this field. + -- Corresponds to L1 parameter 'PUCCH-resource-common' (see 38.213, section 9.2) + pucch-ResourceCommon BIT STRING (SIZE (4)) OPTIONAL, -- Need R + + -- Configuration of group- and sequence hopping for all the PUCCH formats 0, 1, 3 and 4. "neither" implies neither group + -- or sequence hopping is enabled. "enable" enables group hopping and disables sequence hopping. "disable"” disables group + -- hopping and enables sequence hopping. Corresponds to L1 parameter 'PUCCH-GroupHopping' (see 38.211, section 6.4.1.3) + pucch-GroupHopping ENUMERATED { neither, enable, disable }, + -- Cell-Specific scrambling ID for group hoppping and sequence hopping if enabled. + -- Corresponds to L1 parameter 'HoppingID' (see 38.211, section 6.3.2.2) + hoppingId BIT STRING (SIZE (10)) OPTIONAL, -- Need R + + -- Power control parameter P0 for PUCCH transmissions. Value in dBm. Only even values (step size 2) allowed. + -- Corresponds to L1 parameter 'p0-nominal-pucch' (see 38.213, section 7.2) + p0-nominal INTEGER (-202..24) OPTIONAL, -- Need R -PUSCH-Config ::= SEQUENCE { - -- Indicates whether to use code-block-group (CBG) based transmission (see 38.214, section x.x.x.x) FFS_Ref - -- FFS: Is this BOOLEAN parameter needed or can it be derived from the presence of the codeBlockGroupsPerTransportBlock? - codeBlockGroupTransmission ENUMERATED {true} OPTIONAL, -- Need R - -- Maximum number of code-block-groups (CBGs) per TB (see 38.xxx, section x.x.x, FFS_Ref) - maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, + ... +} - -- Selection of the DMRS type to be used for UL (see section 38.211, section 6.4.1.1.2) - dmrs-Type ENUMERATED {type1, type2} OPTIONAL, -- Need R - -- Position for additional DM-RS in DL, see Table 7.4.1.1.2-4 in 38.211. - -- The four values represent the cases of 1+0, 1+1, 1+1+1. 1+1+1+1 non-adjacent OFDM symbols for DL. - dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos2, pos3} OPTIONAL, -- Need R +-- TAG-PUCCH-CONFIGCOMMON-STOP +-- TAG-PUCCH-POWERCONTROL-START +PUCCH-PowerControl ::= SEQUENCE { + + -- deltaF for PUCCH format 0 with 1dB step size (see 38.213, section 7.2) + deltaF-PUCCH-f0 INTEGER (-16..15) OPTIONAL, -- Need R + -- deltaF for PUCCH format 1 with 1dB step size (see 38.213, section 7.2) + deltaF-PUCCH-f1 INTEGER (-16..15) OPTIONAL, -- Need R + -- deltaF for PUCCH format 2 with 1dB step size (see 38.213, section 7.2) + deltaF-PUCCH-f2 INTEGER (-16..15) OPTIONAL, -- Need R + -- deltaF for PUCCH format 3 with 1dB step size (see 38.213, section 7.2) + deltaF-PUCCH-f3 INTEGER (-16..15) OPTIONAL, -- Need R + -- deltaF for PUCCH format 4 with 1dB step size (see 38.213, section 7.2) + deltaF-PUCCH-f4 INTEGER (-16..15) OPTIONAL, -- Need R + + -- A set with dedicated P0 values for PUCCH, i.e., {P01, P02,... }. Corresponds to L1 parameter 'p0-pucch-set' (see 38.213, section 7.2) + p0-Set SEQUENCE (SIZE (1..maxNrofPUCCH-P0-PerSet)) OF P0-PUCCH OPTIONAL, -- Need M + + -- A set of Reference Signals (e.g. a CSI-RS config or a SSblock) to be used for PUCCH pathloss estimation. + -- Up to maxNrofPUCCH-PathlossReference-RSs may be configured + -- FFS_CHECK: Is it possible not to configure it at all? What does the UE use then? Any SSB? + -- Corresponds to L1 parameter 'pucch-pathlossReference-rs-config' (see 38.213, section 7.2) + pathlossReferenceRSs SEQUENCE (SIZE (1..maxNrofPUCCH-PathlossReferenceRSs)) OF PUCCH-PathlossReferenceRS OPTIONAL, -- Need M + -- Number of PUCCH power control adjustment states maintained by the UE (i.e., g(i)). If the field is present (n2) the UE maintains + -- two power control states (i.e., g(i,0) and g(i,1)). Otherwise, it applies one (i.e., g(i,0)). + -- Corresponds to L1 parameter 'num-pucch-pcadjustment-states' (see 38.213, section 7.2) + twoPUCCH-PC-AdjustmentStates ENUMERATED {twoStates} OPTIONAL, -- Need R + ... +} - -- Configures uplink PTRS (see 38.211, section x.x.x.x) FFS_Ref - phaseTracking-RS CHOICE { - release NULL, - setup Uplink-PTRS-Config } OPTIONAL, -- Need M +-- P0 value for PUCCH. Corresponds to L1 parameter 'p0-pucch' (see 3,213, section 7.2) +P0-PUCCH ::= SEQUENCE { + p0-PUCCH-Id P0-PUCCH-Id, + -- P0 value for PUCCH with 1dB step size. + p0-PUCCH-Value INTEGER (-16..15) +} +P0-PUCCH-Id ::= INTEGER (1..8) +-- A reference signal (RS) configured as pathloss reference signal for PUCCH power control +-- Corresponds to L1 parameter 'pucch-pathlossReference-rs' (see 38.213, section 7.2) +PUCCH-PathlossReferenceRS ::= SEQUENCE { + pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id, + referenceSignal CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId + } +} +-- ID for a referemce signal (RS) configured as PUCCH pathloss reference +-- Corresponds to L1 parameter 'pucch-pathlossreference-index' (see 38.213, section 7.2) +-- FFS_CHECK: Is this ID used anywhere except inside the PUCCH-PathlossReference-RS itself? If not, remove. +PUCCH-PathlossReferenceRS-Id ::= INTEGER (0..maxNrofPUCCH-PathlossReferenceRSs-1) - -- If enabled, UE applies TPC commands via accumulation. If not enabled, UE applies the TPC command without accumulation. - -- (see 38.213, section 7) - -- FFS: Collect all power control parameters in a common section or keep them per channel? - tpcAccumulation ENUMERATED { enabled } OPTIONAL, -- Need R +-- TAG-PUCCH-POWERCONTROL-STOP +-- TAG-PUCCH-TPC-COMMANDCONFIG-START + +PUCCH-TPC-CommandConfig ::= SEQUENCE { + -- An index determining the position of the first bit of TPC command (applicable to the SpCell) inside the DCI format 2-2 payload. + tpc-IndexPCell INTEGER (1..15) OPTIONAL, -- Cond PUCCH-SCell + -- An index determining the position of the first bit of TPC command (applicable to the PUCCH-SCell) inside the DCI format 2-2 payload. + tpc-IndexPUCCH-SCell INTEGER (1..15) OPTIONAL, -- Cond PUCCH-SCellOnly + ... +} - -- RNTI used for PUSCH TPC - -- Corresponds to L1 parameter 'TPC-PUSCH-RNTI' (see 38.213, section 10) - tcp-PUSCH-RNTI BIT STRING (SIZE (16)) OPTIONAL, +-- TAG-PUCCH-TPC-COMMANDCONFIG-STOP +-- TAG-PUSCH-CONFIG-START + +PUSCH-Config ::= SEQUENCE { + -- Identifer used to initalite data scrambling (c_init) for both PUSCH. + -- Corresponds to L1 parameter 'Data-scrambling-Identity' (see 38,214, section FFS_Section) + dataScramblingIdentityPUSCH INTEGER (0..1007) OPTIONAL, -- Need M + -- Whether UE uses codebook based or non-codebook based transmission. Corresponds to L1 parameter 'ulTxConfig' (see 38.214, section 6.1.1) + txConfig ENUMERATED {codebook, nonCodebook}, + + -- DMRS configuration for PUSCH transmissions using PUSCH mapping type A (chosen dynamically via PUSCH-TimeDomainResourceAllocation). + dmrs-UplinkForPUSCH-MappingTypeA CHOICE {release NULL, setup DMRS-UplinkConfig } OPTIONAL, -- Need M + -- DMRS configuration for PUSCH transmissions using PUSCH mapping type B (chosen dynamically via PUSCH-TimeDomainResourceAllocation) + dmrs-UplinkForPUSCH-MappingTypeB CHOICE {release NULL, setup DMRS-UplinkConfig } OPTIONAL, -- Need M + + pusch-PowerControl PUSCH-PowerControl OPTIONAL, -- Need M -- Configured one of two supported frequency hopping mode. If not configured frequency hopping is not configured -- Corresponds to L1 parameter 'Frequency-hopping-PUSCH' (see 38.214, section 6) -- When the field is absent the UE applies the value Not configured - frequencyHopping ENUMERATED {mode1, mode2}, - -- Configure either LBRM or FBRM for PUSCH. FBRM = Full buffer rate-matchingLBRM = Limited buffer rate-matching - -- Corresponds to L1 parameter 'LBRM-FBRM-selection' (see 38.212, section 5.4.2) - rateMatching ENUMERATED {fullBufferRM, limitedBufferRM}, - -- Resources that the UE should rate match PUSCH around (see 38.214, section REF) - rateMatchResources NULL, -- WS modification: was TYPE_FFS! - -- Configuration of DCI code points that determine PUSCH resource allocations. - -- Corresponds to L1 parameter 'PUSCH-symbol-allocation' (see 38.214, section 6.1.2.1) - symbolAllocationIndexs NULL OPTIONAL, -- WS modification: was FFS_Value + frequencyHopping ENUMERATED {mode1, mode2} OPTIONAL, -- Need S + -- Set of frequency hopping offsets used when frequency hopping is enabled for granted transmission (not msg3) and type 2 + -- Corresponds to L1 parameter 'Frequency-hopping-offsets-set' (see 38.214, section 6.3) + frequencyHoppingOffsetLists SEQUENCE (SIZE (1..4)) OF INTEGER (1.. maxNrofPhysicalResourceBlocks-1) OPTIONAL, -- Need M + -- Configuration of resource allocation type 0 and resource allocation type 1 for non-fallback DCI + -- Corresponds to L1 parameter 'Resouce-allocation-config' (see 38.214, section 6.1.2) + resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch}, + + -- List of time domain allocations for timing of UL assignment to UL data. If configured, the values provided herein + -- override the values received in corresponding PUSCH-ConfigCommon. + pusch-AllocationList SEQUENCE (SIZE(1..maxNrofUL-Allocations)) OF PUSCH-TimeDomainResourceAllocation OPTIONAL, -- Need R, + -- Number of repetitions for data. Corresponds to L1 parameter 'aggregation-factor-UL' (see 38.214, section FFS_Section) + -- When the field is absent the UE applies the value 1. + pusch-AggregationFactor ENUMERATED { n2, n4, n8 } OPTIONAL, -- Need S -- Indicates which MCS table the UE shall use for PUSCH without transform precoder -- Corresponds to L1 parameter 'MCS-Table-PUSCH' (see 38.214, section 6.1.4) -- When the field is absent the UE applies the value 64QAM - mcs-Table ENUMERATED {ul-64QAM, ul-256QAM}, + mcs-Table ENUMERATED {qam256} OPTIONAL, -- Need S -- Indicates which MCS table the UE shall use for PUSCH with transform precoding -- Corresponds to L1 parameter 'MCS-Table-PUSCH-transform-precoding' (see 38.214, section 6.1.4) -- When the field is absent the UE applies the value 64QAM - mcs-TableTransformPrecoder ENUMERATED {ul-64QAM, ul-256QAM}, - -- The UE specifically selection of transformer precoder for PUSCH. When the field is absent the UE applies the value msg3-tp. + mcs-TableTransformPrecoder ENUMERATED { qam256} OPTIONAL, -- Need S + -- The UE specific selection of transformer precoder for PUSCH. When the field is absent the UE applies the value msg3-tp. -- Corresponds to L1 parameter 'PUSCH-tp' (see 38.211, section 6.3.1.4) - transformPrecoder ENUMERATED {enabled} OPTIONAL, - - -- Selection between config 1 and config 2 for RBG size for PUSCH. Corresponds to L1 parameter 'RBG-size-PUSCH' (see 38.214, section 6.1.2.2.1) - rbg-Size ENUMERATED {config1, config2}, + transformPrecoder ENUMERATED {enabled, disabled} OPTIONAL, -- Need S + -- Subset of PMIs addressed by TPMI, where PMIs are those supported by UEs with maximum coherence capabilities + -- Corresponds to L1 parameter 'ULCodebookSubset' (see 38.211, section 6.3.1.5) + codebookSubset ENUMERATED {fullyAndPartialAndNonCoherent, partialAndNonCoherent, nonCoherent}, + -- Subset of PMIs addressed by TRIs from 1 to ULmaxRank. Corresponds to L1 parameter 'ULmaxRank' (see 38.211, section 6.3.1.5) + maxRank INTEGER (1..4), + + -- Selection between config 1 and config 2 for RBG size for PUSCH. When the field is absent the UE applies the value config1. + -- Corresponds to L1 parameter 'RBG-size-PUSCH' (see 38.214, section 6.1.2.2.1) + rbg-Size ENUMERATED { config2} OPTIONAL, -- Need S + + -- Selection between and configuration of dynamic and semi-static beta-offset. + -- If the field is absent or released, the UE applies the value 'semiStatic' and the BetaOffsets according to + -- FFS [BetaOffsets and/or section 9.x.x). + -- Corresponds to L1 parameter 'UCI-on-PUSCH' (see 38.213, section 9.3) + uci-OnPUSCH CHOICE {release NULL, setup UCI-OnPUSCH} OPTIONAL, -- Need M + -- Interleaving unit configurable between 2 and 4 PRBs + -- Corresponds to L1 parameter 'VRB-to-PRB-interleaver' (see 38.211, section 6.3.1.6) + vrb-ToPRB-Interleaver ENUMERATED {n2, n4}, + ... +} - -- Select between and configuration of dynamic and semi-static beta-offset - -- Corresponds to L1 parameter 'UCI-on-PUSCH' (see 38.214, section 9.3) - uci-on-PUSCH CHOICE { - release NULL, - setup CHOICE { - dynamic SEQUENCE (SIZE (1..4)) OF BetaOffsets, +UCI-OnPUSCH ::= SEQUENCE { + betaOffsets CHOICE { + dynamic SEQUENCE (SIZE (4)) OF BetaOffsets, semiStatic BetaOffsets - } } OPTIONAL, -- Need M + } OPTIONAL, -- Need M + -- Indicates a scaling factor to limit the number of resource elements assigned to UCI on PUSCH. + -- Value f0p5 corresponds to 0.5, value f0p65 corresponds to 0.65, and so on. + -- Corresponds to L1 parameter 'uci-on-pusch-scaling' (see 38.212, section 6.3) + scaling ENUMERATED { f0p5, f0p65, f0p8, f1 } +} - -- Accounts for overhead from CSI-RS, CORESET, etc. FFS: Clarify value range and description. - -- Corresponds to L1 parameter 'Xoh-PDSCH' (see 38.214, section 5.1.3.2) - xOverhead ENUMERATED {n0, n6, n12, n18} OPTIONAL, -- WS modification: was FFS_Value, values retrieved from 38.214 - - ... -} - --- Configuration of Uplink Phase-Tracking-Reference-Signals (PTRS) --- FFS: Is it possible to configure PTRS for CP-OFDM and DFT-S OFDM simultaneously or just one. If the latter, replace below by a CHOICE. -Uplink-PTRS-Config ::= SEQUENCE { - -- Configuration of UL PTRS for CP-OFDM - cp-OFDM CHOICE { - release NULL, - setup SEQUENCE { - -- Presence and frequency density of UL PT-RS for CP-OFDM waveform as a function of scheduled BW (see 38.214, section 6.1) - -- FFS: Configuration is supposed to be per BWP according to RAN1 - frequencyDensity NULL, -- WS modification: was TYPE_FFS! - -- Presence and time density of UL PT-RS for CP-OFDM waveform as a function of MCS (see 38.214, section 6.1) - -- FFS: Configuration is supposed to be per BWP according to RAN1 - timeDensity NULL, -- WS modification: was TYPE_FFS! - -- Indicator related to the number of UL PTRS ports for CP-OFDM. Details to be further decided. - -- Corresponds to L1 parameter 'UL-PTRS-ports' (see 38.214, section 6.1) - nrofPorts ENUMERATED {n1, n2}, - -- Indicates the subcarrier offset for UL PTRS for CP-OFDM. Corresponds to L1 parameter 'UL-PTRS-RE-offset' (see 38.214, section 6.1) - resourceElementOffset NULL OPTIONAL -- WS modification: was FFS_Value - } - } OPTIONAL, -- Cond M - -- Configuration of UL PTRS for DFT-S-OFDM. - dft-S-OFDM CHOICE { - release NULL, - setup SEQUENCE { - -- Sample density of PT-RS for DFT-s-OFDM, pre-DFT, indicating a set of thresholds T={NRBn,n=0,1,2,3,4}, - -- that indicates dependency between presence of PT-RS and scheduled BW and the values of X and K the UE should - -- use depending on the scheduled BW according to the table in 38.214 FFS_Section. - -- FFS: Configuration is supposed to be per BWP according to RAN1 - -- Corresponds to L1 parameter 'UL-PTRS-pre-DFT-density' (see 38.214, section 6.1) - sampleDensity NULL OPTIONAL, -- WS modification: was FFS_Value - -- Time density (OFDM symbol level) of PT-RS for DFT-s-OFDM - -- Corresponds to L1 parameter 'UL-PTRS-time-density-transform-precoding' (see 38.214, section 6.1) - timeDensity ENUMERATED {d1, d2} OPTIONAL, - -- PTRS sequence for DFT-s-OFDM. Corresponds to L1 parameter 'UL-PTRS-sequence-transform-precoding' (see 38.214, section 6.1) - sequence NULL OPTIONAL -- WS modification: was FFS_Value - } - } OPTIONAL -- Cond M +-- TAG-PUSCH-CONFIG-STOP +-- TAG-PUSCH-CONFIGCOMMON-START + +PUSCH-ConfigCommon ::= SEQUENCE { + -- Sequence-group hopping can be enabled or disabled by means of this cell-specific parameter. + -- Corresponds to L1 parameter 'Group-hopping-enabled-Transform-precoding' (see 38.211, section FFS_Section) + -- This field is Cell specific + groupHoppingEnabledTransformPrecoding ENUMERATED {enabled} OPTIONAL, -- Need R + + -- List of time domain allocations for timing of UL assignment to UL data + pusch-AllocationList SEQUENCE (SIZE(1..maxNrofUL-Allocations)) OF PUSCH-TimeDomainResourceAllocation OPTIONAL, -- Need R + + -- ------------------------ + -- Power control parameters + + -- Power offset between msg3 and RACH preamble transmission in steps of 1dB. + -- Corresponds to L1 parameter 'Delta-preamble-msg3' (see 38.213, section 7.1) + msg3-DeltaPreamble INTEGER (-1..6) OPTIONAL, -- Need R + + -- P0 value for PUSCH with grant (except msg3). Value in dBm. Only even values (step size 2) allowed. + -- Corresponds to L1 parameter 'p0-nominal-pusch-withgrant' (see 38.213, section 7.1) + -- This field is cell specific + p0-NominalWithGrant INTEGER (-202..24) OPTIONAL, -- Need R + ... +} + +-- TAG-PUSCH-CONFIGCOMMON-STOP +-- TAG-PUSCH-POWERCONTROL-START + +PUSCH-PowerControl ::= SEQUENCE { + + -- If enabled, UE applies TPC commands via accumulation. If not enabled, UE applies the TPC command without accumulation. + -- If absent, TPC accumulation is enabled. Corresponds to L1 parameter 'Accumulation-enabled' (see 38.213, section 7.1) + tpc-Accumulation ENUMERATED { disabled } OPTIONAL, -- Need R + + -- Dedicated alpha value for msg3 PUSCH. Corresponds to L1 parameter 'alpha-ue-pusch-msg3' (see 38.213, section 7.1) + -- When the field is absent the UE applies the value 1. + msg3-Alpha Alpha OPTIONAL, -- Need S + + -- P0 value for UL grant-free/SPS based PUSCH. Value in dBm. Only even values (step size 2) allowed. + -- Corresponds to L1 parameter 'p0-nominal-pusch-withoutgrant' (see 38.213, section 7.1) + p0-NominalWithoutGrant INTEGER (-202..24) OPTIONAL, -- Need M, + -- configuration {p0-pusch,alpha} sets for PUSCH (except msg3), i.e., { {p0,alpha,index1}, {p0,alpha,index2},...}. + -- Corresponds to L1 parameter 'p0-push-alpha-setconfig' (see 38,213, section 7.1) + p0-AlphaSets SEQUENCE (SIZE (1..maxNrofP0-PUSCH-AlphaSets)) OF P0-PUSCH-AlphaSet OPTIONAL, -- Need M, + + -- A set of Reference Signals (e.g. a CSI-RS config or a SSblock) to be used for PUSCH path loss estimation. + -- Up to maxNrofPUSCH-PathlossReferenceRSs may be configured when 'PUSCH beam indication' is present (FFS: in DCI???). + -- Otherwise, there may be only one entry. + -- Corresponds to L1 parameter 'pusch-pathlossReference-rs-config' (see 38.213, section 7.1) + pathlossReferenceRSToAddModList SEQUENCE (SIZE (1..maxNrofPUSCH-PathlossReferenceRSs)) OF PUSCH-PathlossReferenceRS + OPTIONAL, -- Need N + pathlossReferenceRSToReleaseList SEQUENCE (SIZE (1..maxNrofPUSCH-PathlossReferenceRSs)) OF PUSCH-PathlossReferenceRS-Id + OPTIONAL, -- Need N + + -- Number of PUSCH power control adjustment states maintained by the UE (i.e., fc(i)). If the field is present (n2) the UE maintains + -- two power control states (i.e., fc(i,1) and fc(i,2)). Otherwise, it applies one (i.e., fc(i,1)). + -- Corresponds to L1 parameter 'num-pusch-pcadjustment-states' (see 38.213, section 7.1) + twoPUSCH-PC-AdjustmentStates ENUMERATED {twoStates} OPTIONAL, -- Need S + + -- Indicates whether to apply dela MCS. When the field is absent, the UE applies Ks = 0 in delta_TFC formula for PUSCH. + -- Corresponds to L1 parameter 'deltaMCS-Enabled' (see 38.213, section 7.1) + deltaMCS ENUMERATED {enabled} OPTIONAL, -- Need S + + -- A list of SRI-PUSCH-PowerControl elements among which one is selected by the SRI field in DCI. + -- Corresponds to L1 parameter 'SRI-PUSCHPowerControl-mapping' (see 38.213, section 7.1) + sri-PUSCH-MappingToAddModList SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControl OPTIONAL, -- Need M + sri-PUSCH-MappingToReleaseList SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControlId OPTIONAL -- Need M +} + +-- A set of p0-pusch and alpha used for PUSCH with grant. 'PUSCH beam indication' (if present) gives the index of the set to +-- be used for a particular PUSCH transmission. +-- FFS_CHECK: Is the ”PUSCH beam indication” in DCI which schedules the PUSCH? If so, clarify in field description +-- Corresponds to L1 parameter 'p0-pusch-alpha-set' (see 38.213, section 7.1) +P0-PUSCH-AlphaSet ::= SEQUENCE { + p0-PUSCH-AlphaSetId P0-PUSCH-AlphaSetId, + -- P0 value for PUSCH with grant (except msg3) in steps of 1dB. Corresponds to L1 parameter 'p0-pusch' (see 38,213, section 7.1) + p0 INTEGER (-16..15) OPTIONAL, + -- alpha value for PUSCH with grant (except msg3) (see 38.213, section 7.1) + -- When the field is absent the UE applies the value 1 + alpha Alpha OPTIONAL -- Need S +} + +-- ID for a P0-PUSCH-AlphaSet. Corresponds to L1 parameter 'p0alphasetindex' (see 38.213, section 7.1) +P0-PUSCH-AlphaSetId ::= INTEGER (0..maxNrofP0-PUSCH-AlphaSets-1) + +-- A reference signal (RS) configured as pathloss reference signal for PUSCH power control +-- Corresponds to L1 parameter 'pusch-pathlossReference-rs' (see 38.213, section 7.1) +PUSCH-PathlossReferenceRS ::= SEQUENCE { + pusch-PathlossReferenceRS-Id PUSCH-PathlossReferenceRS-Id, + referenceSignal CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId + } } +-- ID for a referemce signal (RS) configured as PUSCH pathloss reference +-- Corresponds to L1 parameter 'pathlossreference-index' (see 38.213, section 7.1) +-- FFS_CHECK: Is this ID used anywhere except inside the PUSCH-PathlossReference-RS itself? +PUSCH-PathlossReferenceRS-Id ::= INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1) + + +-- A set of PUSCH power control parameters associated with one SRS-ResourceIndex (SRI) +SRI-PUSCH-PowerControl ::= SEQUENCE { + -- The ID of this SRI-PUSCH-PowerControl configuration. It is used as the codepoint (payload) in the SRI DCI field. + sri-PUSCH-PowerControlId SRI-PUSCH-PowerControlId, + -- The ID of PUSCH-PathlossReferenceRS as configured in the pathlossReferenceRSToAddModList in PUSCH-PowerControl. + sri-PUSCH-PathlossReferenceRS-Id PUSCH-PathlossReferenceRS-Id, + -- The ID of a P0-PUSCH-AlphaSet as configured in p0-AlphaSets in PUSCH-PowerControl. + sri-P0-PUSCH-AlphaSetId P0-PUSCH-AlphaSetId, + -- The index of the closed power control loop associated with this SRI-PUSCH-PowerControl + sri-PUSCH-ClosedLoopIndex ENUMERATED { i0, i1 } +} + +SRI-PUSCH-PowerControlId ::= INTEGER (0..maxNrofSRI-PUSCH-Mappings-1) + -- A set of beta-offset values BetaOffsets ::= SEQUENCE { -- Up to 2 bits HARQ-ACK. Corresponds to L1 parameter 'betaOffset-ACK-Index-1' (see 38.213, section 9.3) -- When the field is absent the UE applies the value 11 - betaOffsetACK-Index1 INTEGER(0..31) OPTIONAL, -- Need M + betaOffsetACK-Index1 INTEGER(0..31) OPTIONAL, -- Need S -- Up to 11 bits HARQ-ACK. Corresponds to L1 parameter 'betaOffset-ACK-Index-2' (see 38.213, section 9.3) -- When the field is absent the UE applies the value 11 - betaOffsetACK-Index2 INTEGER(0..31) OPTIONAL, -- Need M + betaOffsetACK-Index2 INTEGER(0..31) OPTIONAL, -- Need S -- Above 11 bits HARQ-ACK. Corresponds to L1 parameter 'betaOffset-ACK-Index-3' (see 38.213, section 9.3) -- When the field is absent the UE applies the value 11 - betaOffsetACK-Index3 INTEGER(0..31) OPTIONAL, -- Need M + betaOffsetACK-Index3 INTEGER(0..31) OPTIONAL, -- Need S -- Up to 11 bits of CSI part 1 bits. Corresponds to L1 parameter 'betaOffset-CSI-part-1-Index-1' (see 38.213, section 9.3) -- When the field is absent the UE applies the value 13 - betaOffsetCSI-part1-Index1 INTEGER(0..31) OPTIONAL, -- Need M + betaOffsetCSI-Part1-Index1 INTEGER(0..31) OPTIONAL, -- Need S -- Above 11 bits of CSI part 1 bits. Corresponds to L1 parameter 'betaOffset-CSI-part-1-Index-2' (see 38.213, section 9.3) -- When the field is absent the UE applies the value 13 - betaOffsetCSI-part1-Index2 INTEGER(0..31) OPTIONAL, -- Need M + betaOffsetCSI-Part1-Index2 INTEGER(0..31) OPTIONAL, -- Need S -- Up to 11 bits of CSI part 2 bits. Corresponds to L1 parameter 'betaOffset-CSI-part-2-Index-1' (see 38.213, section 9.3) -- When the field is absent the UE applies the value 13 - betaOffsetCSI-part2-Index1 INTEGER(0..31) OPTIONAL, -- Need M + betaOffsetCSI-Part2-Index1 INTEGER(0..31) OPTIONAL, -- Need S -- Above 11 bits of CSI part 2 bits. Corresponds to L1 parameter 'betaOffset-CSI-part-2-Index-2' (see 38.213, section 9.3) -- When the field is absent the UE applies the value 13 - betaOffsetCSI-part2-Index2 INTEGER(0..31) OPTIONAL -- Need M + betaOffsetCSI-Part2-Index2 INTEGER(0..31) OPTIONAL -- Need S } --- TAG-PUSCH-CONFIG-STOP +-- TAG-PUSCH-POWERCONTROL-STOP +-- TAG-PUSCH-SERVINGCELLCONFIG-START + +PUSCH-ServingCellConfig ::= SEQUENCE { + -- Enables and configures code-block-group (CBG) based transmission (see 38.214, section FFS_Section) + codeBlockGroupTransmission CHOICE {release NULL, setup PUSCH-CodeBlockGroupGransmission } OPTIONAL, -- Need M + -- Enables LBRM (Limited buffer rate-matching). When the field is absent the UE applies FBRM (Full buffer rate-matchingLBRM). + -- Corresponds to L1 parameter 'LBRM-FBRM-selection' (see 38.212, section 5.4.2) + rateMatching ENUMERATED {limitedBufferRM} OPTIONAL, -- Need S + -- Accounts for overhead from CSI-RS, CORESET, etc. If the field is absent, the UE applies the value 'xoh0'. + -- Corresponds to L1 parameter 'Xoh-PUSCH' (see 38.214, section 5.1.3.2) + xOverhead ENUMERATED {xoh6, xoh12, xoh18} OPTIONAL, -- Need S + ... +} + +PUSCH-CodeBlockGroupGransmission ::= SEQUENCE { + -- Maximum number of code-block-groups (CBGs) per TB (see 38.xxx, section x.x.x, FFS_Ref) + -- For 2 codewords, only the values { n2, n4 } are valid. + maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, + ... +} + +-- TAG-PUSCH-SERVINGCELLCONFIG-STOP +-- TAG-PUSCH-TIMEDOMAINRESOURCEALLOCATION-START + +PUSCH-TimeDomainResourceAllocation ::= SEQUENCE { + -- Corresponds to L1 parameter 'K2' (see 38.214, section FFS_Section) + -- When the field is absent the UE applies the value 01 when PUSCH SCS is 15/30KHz; 2 when PUSCH SCS is 60KHz and 3 when PUSCH SCS is 120KHz. + k2 INTEGER (0..7) OPTIONAL, -- Need S + -- Mapping type. Corresponds to L1 parameter 'Mapping-type' (see 38.214, section FFS_Section) + mappingType ENUMERATED {typeA, typeB}, + -- An index into a table/equation in RAN1 specs capturing valid combinations of start symbol and length (jointly encoded) + -- Corresponds to L1 parameter 'Index-start-len' (see 38.214, section FFS_Section) + startSymbolAndLength BIT STRING (SIZE (7)) +} + +-- TAG-PUSCH-TIMEDOMAINRESOURCEALLOCATION-STOP +-- TAG-PUSCH-TPC-COMMANDCONFIG-START + +PUSCH-TPC-CommandConfig ::= SEQUENCE { + -- An index determining the position of the first bit of TPC command inside the DCI format 2-2 payload. + tpc-Index INTEGER (1..15) OPTIONAL, -- Cond SUL + -- An index determining the position of the first bit of TPC command inside the DCI format 2-2 payload. + tpc-IndexSUL INTEGER (1..15) OPTIONAL, -- Cond SUL-Only + -- The serving cell to which the acquired power control commands are applicable. If the value is absent, the UE applies the + -- TPC commands to the serving cell on which the command has been received. + targetCell ServCellIndex OPTIONAL, -- Need S + ... +} + +-- TAG-PUSCH-TPC-COMMANDCONFIG-STOP Q-OffsetRange ::= ENUMERATED { dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, @@ -1927,154 +3030,188 @@ Q-OffsetRange ::= ENUMERATED { dB20, dB22, dB24} -- TAG-QUANTITY-CONFIG-START --- WS modification: missing QUantityConfig definiton start; let's add a fake one -QuantityConfig ::= SEQUENCE { - quantityConfigRSindex QuantityConfigRS OPTIONAL + + +QuantityConfig ::= SEQUENCE { + quantityConfigNR-List QuantityConfigNR-List OPTIONAL, -- Need M + ... +} + +QuantityConfigNR-List::= SEQUENCE (SIZE (1..maxNrofQuantityConfig)) OF QuantityConfigNR + +QuantityConfigNR::= SEQUENCE { + quantityConfigCell QuantityConfigRS, + quantityConfigRS-Index QuantityConfigRS OPTIONAL -- Need M } QuantityConfigRS ::= SEQUENCE { - -- SS Block based - ssbFilterCoefficientRSRP FilterCoefficient OPTIONAL, -- WS modification: was DEFAULT_FFS! - ssbFilterCoefficientRSRQ FilterCoefficient OPTIONAL, -- WS modification: was DEFAULT_FFS! - ssbFilterCoefficientRS-SINR FilterCoefficient OPTIONAL, -- WS modification: was DEFAULT_FFS! + -- SS Block based L3 filter configurations: + ssb-FilterConfig FilterConfig, - -- CSI-RS based - csi-rsFilterCoefficientRSRP FilterCoefficient OPTIONAL, -- WS modification: was DEFAULT_FFS! - csi-rsFilterCoefficientRSRQ FilterCoefficient OPTIONAL, -- WS modification: was DEFAULT_FFS! - csi-rsFilterCoefficientRS-SINR FilterCoefficient OPTIONAL -- WS modification: was DEFAULT_FFS! + -- CSI-RS basedL3 filter configurations: + cs-RS-FilterConfig FilterConfig +} + +FilterConfig ::= SEQUENCE { + filterCoefficientRSRP FilterCoefficient DEFAULT fc4, + filterCoefficientRSRQ FilterCoefficient DEFAULT fc4, + filterCoefficientRS-SINR FilterCoefficient DEFAULT fc4 } -- TAG-QUANTITY-CONFIG-STOP -- TAG-RACH-CONFIG-COMMON-START RACH-ConfigCommon ::= SEQUENCE { - - -- FFS: whether any of the parameter(s) in the L1 TP should be within CBRA-SSB-ResourceList - groupBconfigured SEQUENCE { - -- FFS: ra-Msg3SizeGroupA values - ra-Msg3SizeGroupA ENUMERATED {b56, b144, b208, b256, b282, b480, b640, b800, b1000, spare7, spare6, spare5, + -- Generic RACH parameters + rach-ConfigGeneric RACH-ConfigGeneric, + + -- Total number of preambles used for contention based and contention free random access, excluding + -- preambles used for other purposes (e.g. for SI request). If the field is absent, the UE may use all 64 preambles for RA. + totalNumberOfRA-Preambles INTEGER (1..63) OPTIONAL, -- Need S + + -- Number of SSBs per RACH occasion (L1 parameter 'SSB-per-rach-occasion') and the number of Contention Based preambles per SSB + -- (L1 parameter 'CB-preambles-per-SSB'). By multiplying the two values, the UE determines the total number of CB preambles. + ssb-perRACH-OccasionAndCB-PreamblesPerSSB CHOICE { + oneEighth ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64}, + oneFourth ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64}, + oneHalf ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64}, + one ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64}, + two ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32}, + four INTEGER (1..16), + eight INTEGER (1..8), + sixteen INTEGER (1..4) + } OPTIONAL, -- Need M + + groupBconfigured SEQUENCE { + -- Transport Blocks size threshold in bit below which the UE shall use a contention based RA premable + -- of group A. (see 38.321, section 5.1.2) + ra-Msg3SizeGroupA ENUMERATED {b56, b144, b208, b256, b282, b480, b640, b800, b1000, spare7, spare6, spare5, spare4, spare3, spare2, spare1}, - -- FFS: Need and definition of messagePowerOffsetGroupB - messagePowerOffsetGroupB ENUMERATED { minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18} - } OPTIONAL, - - cbra-SSB-ResourceList CBRA-SSB-ResourceList, - - ra-ContentionResolutionTimer ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64}, - - -- Msg1 (RA preamble): UE may select the SS block and corresponding PRACH resource for path-loss estimation and (re)transmission + -- Threshold for preamble selection. Value in dB. Value minusinfinity corresponds to –infinity. + -- Value dB0 corresponds to 0 dB, dB5 corresponds to 5 dB and so on. (see FFS_Spec, section FFS_Section) + messagePowerOffsetGroupB ENUMERATED { minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18}, + -- The number of CB preambles per SSB in group A. This determines implicitly the number of CB preambles per SSB available in group B. + -- (see 38.321, section 5.1.1) + numberOfRA-PreamblesGroupA INTEGER (1..64) + } OPTIONAL, -- Need R + + -- The initial value for the contention resolution timer (see 38.321, section 5.1.5) + ra-ContentionResolutionTimer ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64}, + + -- UE may select the SS block and corresponding PRACH resource for path-loss estimation and (re)transmission -- based on SS blocks that satisfy the threshold (see 38.213, section REF) - ssb-Threshold NULL OPTIONAL, -- WS modification: was TYPE_FFS! - -- FFS: Provide proper description + rsrp-ThresholdSSB RSRP-Range OPTIONAL, -- Need R + -- UE may select the SS block and corresponding PRACH resource for path-loss estimation and (re)transmission on the SUL carrier + -- based on SS blocks that satisfy the threshold -- Corresponds to L1 parameter 'SUL-RSRP-Threshold' (see FFS_Spec, section FFS_Section) - sul-RSRP-Threshold NULL OPTIONAL, -- WS modification: was TYPE_FFS! + rsrp-ThresholdSSB-SUL RSRP-Range OPTIONAL, -- Need R - -- PRACH configuration index. Corresponds to L1 parameter 'PRACHConfigurationIndex' (see 38.211, section 6.3.3.2) - prach-ConfigurationIndex INTEGER (0..255) OPTIONAL, -- PRACH root sequence index. Corresponds to L1 parameter 'PRACHRootSequenceIndex' (see 38.211, section 6.3.3.1). -- The value range depends on whether L=839 or L=139 prach-RootSequenceIndex CHOICE { l839 INTEGER (0..837), l139 INTEGER (0..137) - } OPTIONAL, + }, - -- N-CS configuration, see Table 6.3.3.1-3 in 38.211 - zeroCorrelationZoneConfig INTEGER(0..15), - -- Configuration of restricted sets, see 38.211 6.3.3.1 - -- CHECK: RAN1 value said "restrictedTypeA". Does it mean "restrictedToTypeA"? If not, what else? - restrictedSetConfig ENUMERATED {unrestricted, restrictedToTypeA, restrictedToTypeB}, - -- (see 38.213, section 7.4) - preambleReceivedTargetPower ENUMERATED { - dBm-120, dBm-118, dBm-116, dBm-114, dBm-112, dBm-110, dBm-108, dBm-106, dBm-104, dBm-102, dBm-100, - dBm-98, dBm-96, dBm-94,dBm-92, dBm-90, dBm-88, dBm-86, dBm-84,dBm-82, dBm-80, dBm-78, dBm-76, - dBm-74, dBm-72, dBm-70, dBm-68, dBm-66, dBm-64, dBm-62, dBm-60, dBm-58, dBm-56, dBm-54, dBm-52, dBm-50, dBm-48, dBm-46, dBm-44, dBm-42, dBm-42, dBm-40, dBm-38, dBm-36, dBm-34, dBm-32, dBm-30, dBm-28, dBm-26, dBm-24, dBm-22, dBm-20, dBm-18, dBm-16, dBm-14, dBm-12, dBm-10, dBm-8, dBm-6, dBm-4, dBm-2, dBm-0, dBm2, dBm4, dBm6 } OPTIONAL, - -- Power ramping steps for PRACH (see 38.321, FFS_section) - powerRampingStep ENUMERATED {dB0, dB2, dB4, dB6} OPTIONAL, -- Need R - - -- CHECK: PreambleTransMax parameter usage (parameter was not provided by RAN1 and not yet discussed in RAN2) - preambleTransMax ENUMERATED {n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200}, - - - -- Msg2 (RAR) window length. Corresponds to L1 parameter 'msg2-scs' (see 38.213, section 8.1) - ra-ResponseWindow NULL, -- Subcarrier spacing for msg2 for contention-free RA procedure for handover. WS modification: was TYPE_FFS! - -- Corresponds to L1 parameter 'msg2-scs' (see 38.321?, section FFS_Section) - msg2-SubcarrierSpacing SubcarrierSpacing, - -- CORESET configured for random access. When the field is absent the UE uses the CORESET according to pdcchConfigSIB1 - -- Corresponds to L1 parameter 'rach-coreset-configuration' (see 38.211?, section FFS_Section) - rach-ControlResourceSet NULL OPTIONAL, -- WS modification: was FFS_Value + -- Subcarrier spacing of PRACH. Only the values 15 or 30 kHz (<6GHz), 60 or 120 kHz (>6GHz) are applicable. + -- Corresponds to L1 parameter 'prach-Msg1SubcarrierSpacing' (see 38.211, section FFS_Section) + msg1-SubcarrierSpacing SubcarrierSpacing, - -- Subcarrier spacing for Msg3. Corresponds to L1 parameter 'msg3-scs' (see 38.213, section 8.1) - msg3-SubcarrierSpacing SubcarrierSpacing, + -- Configuration of an unrestricted set or one of two types of restricted sets, see 38.211 6.3.3.1 + restrictedSetConfig ENUMERATED {unrestrictedSet, restrictedSetTypeA, restrictedSetTypeB}, -- Indicates to a UE whether transform precoding is enabled for Msg3 transmission. -- Corresponds to L1 parameter 'msg3-tp' (see 38.213, section 8.1) - msg3-transformPrecoding ENUMERATED {true} OPTIONAL -- Need R -} - -CBRA-SSB-ResourceList ::= SEQUENCE (SIZE(1..maxRAssbResources)) OF CBRA-SSB-Resource -CBRA-SSB-Resource ::= SEQUENCE { - ssb SSB-ID, - startIndexRA-PreambleGroupA PreambleStartIndex, - numberofRA-PreamblesGroupA NumberOfRA-Preambles, - numberOfRA-Preambles NumberOfRA-Preambles, - - -- PRACH configuration for SSB configuration (i.e. time and frequency location) - -- FFS / TODO: Type Definition for RA-Resources. - ra-Resources RA-Resources + msg3-transformPrecoding ENUMERATED {enabled} OPTIONAL, -- Need R + ... } -PreambleStartIndex ::= INTEGER (0..maxRA-PreambleIndex) -NumberofRA-Preambles ::= INTEGER (1.. maxNrOfRA-PreamblesPerSSB) - -- TAG-RACH-CONFIG-COMMON-STOP +-- TAG-RACH-CONFIG-GENERIC-START + +RACH-ConfigGeneric ::= SEQUENCE { + -- PRACH configuration index. Corresponds to L1 parameter 'PRACHConfigurationIndex' (see 38.211, section 6.3.3.2) + prach-ConfigurationIndex INTEGER (0..255), + -- The number of PRACH transmission occasions FDMed in one time instance. + -- Corresponds to L1 parameter 'prach-FDM' (see 38.211, section FFS_Section) + msg1-FDM ENUMERATED {one, two, four, eight}, + -- Offset of lowest PRACH transmission occasion in frequency domain with respective to PRB 0. + -- The value is configured so that the corresponding RACH resource is entirely within the bandwidth of the UL BWP. + -- Corresponds to L1 parameter 'prach-frequency-start' (see 38,211, section FFS_Section) + msg1-FrequencyStart INTEGER (0..maxNrofPhysicalResourceBlocks-1), + -- N-CS configuration, see Table 6.3.3.1-3 in 38.211 + zeroCorrelationZoneConfig INTEGER(0..15), + -- The target power level at the network receiver side (see 38.213, section 7.4, 38.321, section 5.1.2, 5.1.3) + -- Only multiples of 2 dBm may be chosen (e.g. -200, -198, ...). + -- FFS-Value: Actual values to be updated based on input from RAN4 (see LS in R2-1800004 and R4-1803466). + preambleReceivedTargetPower INTEGER (-200..-74), + -- Max number of RA preamble transmission perfomed before declaring a failure (see 38.321, section 5.1.4, 5.1.5) + preambleTransMax ENUMERATED {n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200}, + -- Power ramping steps for PRACH (see 38.321,5.1.3) + powerRampingStep ENUMERATED {dB0, dB2, dB4, dB6}, + -- Msg2 (RAR) window length in number of slots. The network configures a value lower than or euqal to 10 ms (see 38.321, section 5.1.4) + ra-ResponseWindow ENUMERATED {sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80} +} + +-- TAG-RACH-CONFIG-GENERIC-STOP -- TAG-RACH-CONFIG-DEDICATED-START --- FFS: resources for msg1-based on-demand SI request --- FFS: resources for beam failure recovery request +-- FFS_Standlone: resources for msg1-based on-demand SI request RACH-ConfigDedicated ::= SEQUENCE { - -- Resources for handover to the cell + -- Resources for contention free random access to a given target cell cfra-Resources CFRA-Resources, - -- Subcarrier spacing for msg2 for contention-free RA procedure for handover - rar-SubcarrierSpacing SubcarrierSpacing + ... } --- FFS_CHECK: Isn't it sufficient to have just one list and the CHOICE inside the list element (around the ssb/csirs)? CFRA-Resources ::= CHOICE { - cfra-ssb-ResourceList SEQUENCE (SIZE(1..maxRAssbResources)) OF CFRA-SSB-Resource, - cfra-csirs-ResourceList SEQUENCE (SIZE(1..maxRAcsirsResources)) OF CFRA-CSIRS-Resource + ssb SEQUENCE { + ssb-ResourceList SEQUENCE (SIZE(1..maxRA-SSB-Resources)) OF CFRA-SSB-Resource, + -- Explicitly signalled PRACH Mask Index for RA Resource selection in TS 36.321. The mask is valid for all SSB + -- resources signalled in ssb-ResourceList + ra-ssb-OccasionMaskIndex INTEGER (0..15) + }, + csirs SEQUENCE { + csirs-ResourceList SEQUENCE (SIZE(1..maxRA-CSIRS-Resources)) OF CFRA-CSIRS-Resource, + cfra-csirs-DedicatedRACH-Threshold RSRP-Range + } } CFRA-SSB-Resource ::= SEQUENCE { - ssb SSB-ID, - ra-PreambleIndex INTEGER (0..0), -- WS modification: was FFS_XX - -- PRACH configuration for SSB configuration (i.e. time and frequency location) - ra-Resources RA-Resources -- Definition FFS + -- The ID of an SSB transmitted by this serving cell. + ssb SSB-Index, + -- The preamble index that the UE shall use when performing CF-RA upon selecting the candidate beams identified by this SSB. + ra-PreambleIndex INTEGER (0..63), + ... } CFRA-CSIRS-Resource ::= SEQUENCE { - csirs CSIRS-ID, -- FFS where the CSI-RS are defined (e.g. MO) - ra-PreambleIndex INTEGER (0..0), -- WS modification: was FFS_XX - -- PRACH configuration for CSIRS configuration (i.e. time and frequency location) - ra-Resources RA-Resources -- Definition FFS + -- The ID of a CSI-RS resource defined in the measurement object associated with this serving cell. + csi-RS CSI-RS-Index, + -- RA occasions that the UE shall use when performing CF-RA upon selecting the candidate beam identified by this CSI-RS. + ra-OccasionList SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS)) OF INTEGER (0..maxRA-Occasions-1), + -- The RA preamble index to use in the RA occasions assoicated with this CSI-RS. + ra-PreambleIndex INTEGER (0..63), + ... } -- TAG-RACH-CONFIG-DEDICATED-STOP -- TAG-RADIO-BEARER-CONFIG-START RadioBearerConfig ::= SEQUENCE { - srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Need M - srb-ToReleaseList INTEGER (3) OPTIONAL, -- Need M - drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Need M - drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need M - securityConfig SecurityConfig OPTIONAL -- Cond KeyChange + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Need N + srb3-ToRelease ENUMERATED{true} OPTIONAL, -- Need N + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Need N + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need N + securityConfig SecurityConfig OPTIONAL, -- Cond M + ... } SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod SRB-ToAddMod ::= SEQUENCE { srb-Identity SRB-Identity, - -- may only be set if the cell groups of all linked logical channels are reset or released - reestablishPDCP ENUMERATED{true} OPTIONAL, -- Cond KeyChange + reestablishPDCP ENUMERATED{true} OPTIONAL, -- Need N + discardOnPDCP ENUMERATED{true} OPTIONAL, -- Need N pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP ... } @@ -2084,16 +3221,16 @@ DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod DRB-ToAddMod ::= SEQUENCE { cnAssociation CHOICE { -- The EPS bearer ID determines the EPS bearer when NR connects to EPC using EN-DC - eps-BearerIdentity INTEGER (0..15), -- Cond EPS-DRB-Setup + eps-BearerIdentity INTEGER (0..15), -- EPS-DRB-Setup -- The SDAP configuration determines how to map QoS flows to DRBs when NR connects to the 5GC - sdap-Config SDAP-Config -- Cond NGC - }, + sdap-Config SDAP-Config -- 5GC + } OPTIONAL, -- Cond DRBSetup drb-Identity DRB-Identity, -- may only be set if the cell groups of all linked logical channels are reset or released - reestablishPDCP ENUMERATED{true} OPTIONAL, -- Cond HO - recoverPDCP ENUMERATED{true} OPTIONAL, -- Need N - pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + reestablishPDCP ENUMERATED{true} OPTIONAL, -- Need N + recoverPDCP ENUMERATED{true} OPTIONAL, -- Need N + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP ... } @@ -2101,15 +3238,125 @@ DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity SecurityConfig ::= SEQUENCE { - securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Need M - keyToUse ENUMERATED{keNB, s-KgNB} OPTIONAL, -- Need M + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond RBTermChange + keyToUse ENUMERATED{keNB, s-KgNB} OPTIONAL, -- Cond RBTermChange ... } -- TAG-RADIO-BEARER-CONFIG-STOP +-- TAG-RADIOLINKMONITORINGCONFIG-START + +RadioLinkMonitoringConfig ::= SEQUENCE { + -- A list of reference signals for detecting beam failure and/or cell level radio link failure (RLF). + -- The network configures at most two detectionResources per BWP for the purpose "beamFailure" or "both". + -- If no RSs are provided for the purpose of beam failure detection, the UE performs beam monitoring based on the activated TCI-State + -- for PDCCH. However, if the activated TCI state refers to an aperiodic or semi-persistent CSI-RS, the gNB configures the failure + -- detection resources explicitly (FFS_RAN1: TBC by RAN1). + -- If no RSs are provided in this list at all (neither for Cell- nor for Beam-RLM), the UE performs also Cell-RLM based + -- on the activated TCI-State of PDCCH (FFS_RAN1: TBC by RAN1). + -- When the network reconfigures this field, the UE resets on-going RLF timers and counters. + failureDetectionResources SEQUENCE (SIZE(1..maxNrofFailureDetectionResources)) OF RadioLinkMonitoringRS OPTIONAL, -- Need M + -- This field determines after how many beam failure events the UE triggers beam failure recovery (see 38.321, section 5.17). + -- Value n1 corresponds to 1 beam failure instance, n2 corresponds to 2 beam failure instances and so on. + -- When the network reconfigures this field, the UE resets on-going RLF timers and counters. + -- If the field is absent, the UE does not trigger beam failure recovery. + beamFailureInstanceMaxCount ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10} OPTIONAL, -- Need S + -- Timer for beam failure detection (see 38.321, section FFS_Section). See also the BeamFailureRecoveryConfig IE. + -- Value in number of "periods of Beam Failure Detection" Reference Signal. Value pbfd1 corresponds to 1 period of Beam Failure + -- Detection Reference Signal, value pbfd2 corresponds to 2 periods of Beam Failure Detection Reference Signal and so on. + -- When the network reconfigures this field, the UE resets on-going RLF timers and counters. + beamFailureDetectionTimer ENUMERATED {pbfd1, pbfd2, pbfd3, pbfd4, pbfd5, pbfd6, pbfd8, pbfd10} OPTIONAL, -- Need R + ... +} + +RadioLinkMonitoringRS ::= SEQUENCE { + -- Determines whether the UE shall monitor the associated reference signal for the purpose of cell- and/or beam failure detection. + purpose ENUMERATED {beamFailure, rlf, both}, + -- A reference signal that the UE shall use for radio link monitoring. The network provides an ssb-Index only if + -- the purpose is set to rlf. + detectionResource CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId + }, + ... +} + +-- TAG-RADIOLINKMONITORINGCONFIG-STOP +-- TAG-RATEMATCHPATTERN-START +RateMatchPattern ::= SEQUENCE { + rateMatchPatternId RateMatchPatternId, + + patternType CHOICE { + bitmaps SEQUENCE { + -- A resource block level bitmap in the frequency domain. It indicates the PRBs to which the symbolsInResourceBlock bitmap applies. + -- Corresponds to L1 parameter 'rate-match-PDSCH-bitmap1' (see 38.214, section FFS_Section) + -- FFS_ASN1: Consider multiple options with different number of bits (for narrower carriers) + resourceBlocks BIT STRING (SIZE (275)), + + -- A symbol level bitmap in time domain. It indicates (FFS: with a bit set to true) the symbols which the UE shall rate match around. + -- This pattern recurs (in time domain) with the configured periodicityAndOffset. + -- Corresponds to L1 parameter 'rate-match-PDSCH-bitmap2' (see 38.214, section FFS_Section) + -- FFS: Why not split it into two BIT STRINGs of 14 bit each? + symbolsInResourceBlock CHOICE { + oneSlot BIT STRING (SIZE (14)), + twoSlots BIT STRING (SIZE (28)) + }, + + -- A time domain repetition pattern. at which the symbolsInResourceBlock + -- pattern recurs. This slot pattern repeats itself continuously. Absence of this field indicates the value n1, i.e., the + -- symbolsInResourceBlock recurs every 14 symbols. + -- Corresponds to L1 parameter 'rate-match-PDSCH-bitmap3' (see 38.214, section FFS_Section) + periodicityAndPattern CHOICE { + n2 BIT STRING (SIZE (2)), + n4 BIT STRING (SIZE (4)), + n5 BIT STRING (SIZE (5)), + n8 BIT STRING (SIZE (8)), + n10 BIT STRING (SIZE (10)), + n20 BIT STRING (SIZE (20)), + n40 BIT STRING (SIZE (40)) + } OPTIONAL, -- Need S + ... + }, + -- This ControlResourceSet us used as a PDSCH rate matching pattern, i.e., PDSCH reception rate matches around it. + controlResourceSet ControlResourceSetId + }, + -- The SubcarrierSpacing for this resource pattern. If the field is absent, the UE applies the SCS of the associcated BWP. + -- The value kHz15 corresponds to µ=0, kHz30 to µ=1, and so on. Only the values 15 or 30 kHz (<6GHz), 60 or 120 kHz (>6GHz) are + -- applicable. Corresponds to L1 parameter 'resource-pattern-scs' (see 38.214, section FFS_Section) + subcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond CellLevel + -- FFS_Description, FFS_Section + mode ENUMERATED { dynamic, semiStatic }, + ... +} + +-- TAG-RATEMATCHPATTERN-STOP +-- TAG-RATEMATCHPATTERNID-START + +RateMatchPatternId ::= INTEGER (0..maxNrofRateMatchPatterns-1) + +-- TAG-RATEMATCHPATTERNID-STOP +-- TAG-RATEMATCHPATTERNLTE-CRS-START + +RateMatchPatternLTE-CRS ::= SEQUENCE { + -- Center of the LTE carrier. Corresponds to L1 parameter 'center-subcarrier-location' (see 38.214, section 5.1.4) + carrierFreqDL INTEGER (0..16383), + -- BW of the LTE carrier in numbewr of PRBs. Corresponds to L1 parameter 'BW' (see 38.214, section 5.1.4) + carrierBandwidthDL ENUMERATED {n6, n15, n25, n50, n75, n100, spare2, spare1}, + -- LTE MBSFN subframe configuration. Corresponds to L1 parameter 'MBSFN-subframconfig' (see 38.214, section 5.1.4) + -- FFS_ASN1: Import the LTE MBSFN-SubframeConfigList + mbsfn-SubframeConfigList EUTRA-MBSFN-SubframeConfigList OPTIONAL, -- Need M + -- Number of LTE CRS antenna port to rate-match around. + -- Corresponds to L1 parameter 'rate-match-resources-numb-LTE-CRS-antenna-port' (see 38.214, section 5.1.4) + nrofCRS-Ports ENUMERATED {n1, n2, n4}, + -- Shifting value v-shift in LTE to rate match around LTE CRS + -- Corresponds to L1 parameter 'rate-match-resources-LTE-CRS-v-shift' (see 38.214, section 5.1.4) + v-Shift ENUMERATED {n0, n1, n2, n3, n4, n5} +} + +-- TAG-RATEMATCHPATTERNLTE-CRS-STOP -- TAG-REPORT-CONFIG-ID-START -ReportConfigId ::= INTEGER (1..maxNrofReportConfigId) +ReportConfigId ::= INTEGER (1..maxReportConfigId) -- TAG-REPORT-CONFIG-ID-STOP -- TAG-REPORT-CONFIG-START @@ -2118,12 +3365,13 @@ ReportConfigNR ::= SEQUENCE { reportType CHOICE { periodical PeriodicalReportConfig, eventTriggered EventTriggerConfig, - reportCGI NULL, -- WS modification: was Type_FFS! +-- reportCGI is to be completed before the end of Rel-15. + reportCGI ENUMERATED {ffsTypeAndValue}, ... } } --- FFS / TODO: Consider separating trgger configuration (trigger, periodic, ...) from report congiguration. +-- FFS / TODO: Consider separating trgger configuration (trigger, periodic, ...) from report configuration. -- Current structure allows easier definiton of new events and new report types e.g. CGI, etc. EventTriggerConfig::= SEQUENCE { eventId CHOICE { @@ -2144,14 +3392,14 @@ EventTriggerConfig::= SEQUENCE { reportOnLeave BOOLEAN, hysteresis Hysteresis, timeToTrigger TimeToTrigger, - useWhiteCellList BOOLEAN OPTIONAL + useWhiteCellList BOOLEAN }, eventA4 SEQUENCE { a4-Threshold MeasTriggerQuantity, reportOnLeave BOOLEAN, hysteresis Hysteresis, timeToTrigger TimeToTrigger, - useWhiteCellList BOOLEAN OPTIONAL + useWhiteCellList BOOLEAN }, eventA5 SEQUENCE { a5-Threshold1 MeasTriggerQuantity, @@ -2159,67 +3407,74 @@ EventTriggerConfig::= SEQUENCE { reportOnLeave BOOLEAN, hysteresis Hysteresis, timeToTrigger TimeToTrigger, - useWhiteCellList BOOLEAN OPTIONAL + useWhiteCellList BOOLEAN }, eventA6 SEQUENCE { a6-Offset MeasTriggerQuantityOffset, reportOnLeave BOOLEAN, hysteresis Hysteresis, timeToTrigger TimeToTrigger, - useWhiteCellList BOOLEAN OPTIONAL - } + useWhiteCellList BOOLEAN + }, + ... }, - rsType ENUMERATED {ss, csi-rs}, + rsType NR-RS-Type, -- Common reporting config (at least to periodical and eventTriggered) reportInterval ReportInterval, - reportAmount ENUMERATED {ffs}, -- WS modification: was FFS! + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, -- Cell reporting configuration reportQuantityCell MeasReportQuantity, maxReportCells INTEGER (1..maxCellReport), -- RS index reporting configuration - reportQuantityRsIndexes MeasReportQuantity OPTIONAL, - maxNroIndexesToReport INTEGER (1..maxNroIndexesToReport) OPTIONAL, - onlyReportBeamIds BOOLEAN OPTIONAL, - + reportQuantityRsIndexes MeasReportQuantity OPTIONAL, -- Need M + maxNrofRSIndexesToReport INTEGER (1..maxNrofIndexesToReport) OPTIONAL, -- Need M + includeBeamMeasurements BOOLEAN, -- If configured the UE includes the best neighbour cells per serving frequency - reportAddNeighMeas NULL -- WS modification: was TYPE_FFS! + reportAddNeighMeas ENUMERATED {setup} OPTIONAL, -- Need R + ... + } PeriodicalReportConfig ::= SEQUENCE { - rsType ENUMERATED {ssb, csi-rs}, + rsType NR-RS-Type, -- Common reporting config (at least to periodical and eventTriggered) reportInterval ReportInterval, - reportAmount ENUMERATED {ffs}, -- WS modification: was FFS! + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, -- Cell reporting configuration reportQuantityCell MeasReportQuantity, maxReportCells INTEGER (1..maxCellReport), -- RS index reporting configuration - reportQuantityRsIndexes MeasReportQuantity OPTIONAL, - maxNroRsIndexesToReport INTEGER (1..maxNroIndexesToReport) OPTIONAL, - onlyReportBeamIds BOOLEAN OPTIONAL + reportQuantityRsIndexes MeasReportQuantity OPTIONAL, -- Need R + maxNrofRsIndexesToReport INTEGER (1..maxNrofIndexesToReport) OPTIONAL, -- Need R + includeBeamMeasurements BOOLEAN, + useWhiteCellList BOOLEAN, + ... + } -MeasTriggerQuantity::= CHOICE { - rsrp RSRPRange, - rsrq RSRQRange, - sinr SINRRange +NR-RS-Type ::= ENUMERATED {ssb, csi-rs} + +MeasTriggerQuantity ::= CHOICE { + rsrp RSRP-Range, + rsrq RSRQ-Range, + sinr SINR-Range } -MeasTriggerQuantityOffset::= CHOICE { - rsrp INTEGER (0), -- WS modification: was FFS! - rsrq INTEGER (0), -- WS modification: was FFS! - sinr INTEGER (0) -- WS modification: was FFS! +MeasTriggerQuantityOffset ::= CHOICE { + rsrp INTEGER (-30..30), + rsrq INTEGER (-30..30), + sinr INTEGER (-30..30) } -MeasReportQuantity::= SEQUENCE { +MeasReportQuantity ::= SEQUENCE { rsrp BOOLEAN, rsrq BOOLEAN, sinr BOOLEAN @@ -2235,11 +3490,15 @@ ReportConfigToAddMod ::= SEQUENCE { reportConfigId ReportConfigId, reportConfig CHOICE { reportConfigNR ReportConfigNR, - reportConfigEUTRA ReportConfigEUTRA + ... } } -- TAG- REPORT-CONFIG-TO-ADD-MOD-LIST-STOP + +ReportInterval ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, ms20480, ms40960, min1, + min6, min12, min30 } + -- TAG-RLC-CONFIG-START RLC-Config ::= CHOICE { @@ -2261,7 +3520,7 @@ RLC-Config ::= CHOICE { } UL-AM-RLC ::= SEQUENCE { - sn-FieldLength SN-FieldLength-AM, + sn-FieldLength SN-FieldLengthAM, t-PollRetransmit T-PollRetransmit, pollPDU PollPDU, pollByte PollByte, @@ -2269,17 +3528,17 @@ UL-AM-RLC ::= SEQUENCE { } DL-AM-RLC ::= SEQUENCE { - sn-FieldLength SN-FieldLength-AM, + sn-FieldLength SN-FieldLengthAM, t-Reassembly T-Reassembly, t-StatusProhibit T-StatusProhibit } UL-UM-RLC ::= SEQUENCE { - sn-FieldLength SN-FieldLength-UM + sn-FieldLength SN-FieldLengthUM } DL-UM-RLC ::= SEQUENCE { - sn-FieldLength SN-FieldLength-UM, + sn-FieldLength SN-FieldLengthUM, t-Reassembly T-Reassembly } @@ -2333,66 +3592,258 @@ T-StatusProhibit ::= ENUMERATED { ms350, ms400, ms450, ms500, ms800, ms1000, ms1200, ms1600, ms2000, ms2400, spare2, spare1} -SN-FieldLength-UM ::= ENUMERATED {size6, size12} -SN-FieldLength-AM ::= ENUMERATED {size12, size18} +SN-FieldLengthUM ::= ENUMERATED {size6, size12} +SN-FieldLengthAM ::= ENUMERATED {size12, size18} -- TAG-RLC-CONFIG-STOP -- TAG-RLF-TIMERS-AND-CONSTANTS-START -RLF-TimersAndConstants ::= SEQUENCE { - -- FFS / TODO: Add RRC parameters such as timers and constants. +RLF-TimersAndConstants ::= SEQUENCE { + t310 ENUMERATED {ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, ms4000, ms6000}, + n310 ENUMERATED {n1, n2, n3, n4, n6, n8, n10, n20}, + n311 ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10}, + ... } -- TAG-RLF-TIMERS-AND-CONSTANTS-STOP +-- TAG-RNTI-VALUE-START + +RNTI-Value ::= INTEGER (0..65535) + +-- TAG-RNTI-VALUE-STOP +-- TAG-RSRP-RANGE-START + +RSRP-Range ::= INTEGER(0..124) + +-- TAG-RSRP-RANGE-STOP +-- TAG-RSRQ-RANGE-START + +RSRQ-Range ::= INTEGER(0..127) + +-- TAG-RSRQ-RANGE-STOP -- TAG-SCELL-INDEX-START --- FFS: Value range and usage across Cell Groups (shared value range or separate value range). RAN1 indicated 16 serving cells per CG. +-- The value range is shared across the Cell Groups SCellIndex ::= INTEGER (1..31) --- TAG-SCELLINDEX-STOP +-- TAG-SCELL-INDEX-STOP -- TAG-SCHEDULING-REQUEST-CONFIG-START SchedulingRequestConfig ::= SEQUENCE { schedulingRequestToAddModList SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF SchedulingRequestToAddMod OPTIONAL, -- Need N - schedulingRequestToReleaseList SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF SchedulingRequestId OPTIONAL -- Need N + schedulingRequestToReleaseList SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF SchedulingRequestId OPTIONAL -- Need N } SchedulingRequestToAddMod ::= SEQUENCE { - schedulingRequestID SchedulingRequestId, + sr-ConfigIndex SchedulingRequestId, - sr-prohibitTimer ENUMERATED {ms1, ms2, ms4, ms8, ms16, ms32, ms64, ms128}, + sr-ProhibitTimer ENUMERATED {ms1, ms2, ms4, ms8, ms16, ms32, ms64, ms128} OPTIONAL, -- Need S sr-TransMax ENUMERATED { n4, n8, n16, n32, n64, spare3, spare2, spare1} } --- FFS_TODO: provide resources for each SchedulingRequestID in ServingCellConfigDedicated (TBD whether directly, in PUCCH-Config, in each BWP) +SchedulingRequestId ::= INTEGER (0..7) + +-- FFS_TODO: provide resources for each SchedulingRequestID in ServingCellConfig (TBD whether directly, in PUCCH-Config, in each BWP) -- TAG-SCHEDULING-REQUEST-CONFIG-STOP +-- TAG-SCHEDULING-REQUEST-RESOURCE-CONFIG-START + +SchedulingRequestResourceConfig ::= SEQUENCE { + schedulingRequestResourceId SchedulingRequestResourceId, + -- The ID of the SchedulingRequestConfig that uses this scheduling request resource. + schedulingRequestID SchedulingRequestId, + -- SR periodicity and offset in number of slots. Corresponds to L1 parameter 'SR-periodicity' and 'SR-offset' (see 38.213, section 9.2.2) + -- The following periodicities may be configured depending on the chosen subcarrier spacing: + -- SCS = 15 kHz: 2sym, 7sym, 1sl, 2sl, 4sl, 5sl, 8sl, 10sl, 16sl, 20sl, 40sl, 80sl + -- SCS = 30 kHz: 2sym, 7sym, 1sl, 2sl, 4sl, 8sl, 10sl, 16sl, 20sl, 40sl, 80sl, 160sl + -- SCS = 60 kHz: 2sym, 7sym/6sym, 1sl, 2sl, 4sl, 8sl, 16sl, 20sl, 40sl, 80sl, 160sl, 320sl + -- SCS = 120 kHz: 2sym, 7sym, 1sl, 2sl, 4sl, 8sl, 16sl, 40sl, 80sl, 160sl, 320sl, sl640 + -- sym6or7 corresponds to 6 symbols if extended cyclic prefix and a SCS of 60 kHz are configured, otherwise it corresponds to 7 symbols. + -- For periodicities sym2, sym7 and sl1 the UE assumes an offset of 0 slots. + periodicityAndOffset CHOICE { + sym2 NULL, + sym6or7 NULL, + sl1 NULL, -- Recurs in every slot + sl2 INTEGER (0..1), + sl4 INTEGER (0..3), + sl5 INTEGER (0..4), + sl8 INTEGER (0..7), + sl10 INTEGER (0..9), + sl16 INTEGER (0..15), + sl20 INTEGER (0..19), + sl40 INTEGER (0..39), + sl80 INTEGER (0..79), + sl160 INTEGER (0..159), + sl320 INTEGER (0..319), + sl640 INTEGER (0..639) + } OPTIONAL, -- Need M + -- ID of the PUCCH resource in which the UE shall send the scheduling request. The + -- actual PUCCH-Resource is configured in PUCCH-Config of the same UL BWP and serving cell as this SchedulingRequestResourceConfig. + -- The network configures a PUCCH-Resource of PUCCH-format0 or PUCCH-format1 + -- (other formats not supported). Corresponds to L1 parameter 'SR-resource' (see 38.213, section 9.2.2) + resource PUCCH-ResourceId OPTIONAL -- Need M +} + +-- TAG-SCHEDULING-REQUEST-RESOURCE-CONFIG-STOP +-- TAG-SCHEDULINGREQUESTRESOURCEID-START + +SchedulingRequestResourceId ::= INTEGER (1..maxNrofSR-Resources) + +-- TAG-SCHEDULINGREQUESTRESOURCEID-STOP +-- TAG-SCRAMBLING-ID-START + +ScramblingId ::= INTEGER (0..1023) + +-- TAG-SCRAMBLING-ID-STOP +-- TAG-SCS-SPECIFIC-CARRIER-START + +SCS-SpecificCarrier ::= SEQUENCE { + -- Offset in frequency domain between Point A (lowest subcarrier of common RB 0) and the lowest usable subcarrier on this carrier + -- in number of PRBs (using the subcarrierSpacing defined for this carrier). The maximum value corresponds to 275*8-1. + -- Corresponds to L1 parameter 'offset-pointA-low-scs' (see 38.211, section FFS_Section) + offsetToCarrier INTEGER (0..2199), + -- Subcarrier spacing of this carrier. It is used to convert the offsetToCarrier into an actual frequency. + -- Only the values 15 or 30 kHz (<6GHz), 60 or 120 kHz (>6GHz) are applicable. + -- Corresponds to L1 parameter 'ref-scs' (see 38.211, section FFS_Section) + subcarrierSpacing SubcarrierSpacing, + -- Corresponds to L1 parameter k0 (see 38.211, section 5.3.1). n-6 corresponds to value -6, n0 corresponds to value 0 and n6 corresponds + -- to value +6. + k0 ENUMERATED {n-6, n0, n6}, + -- Width of this carrier in number of PRBs (using the subcarrierSpacing defined for this carrier) + -- Corresponds to L1 parameter 'BW' (see 38.211, section FFS_Section) + carrierBandwidth INTEGER (1..maxNrofPhysicalResourceBlocks), + ... +} + +-- TAG-SCS-SPECIFIC-CARRIER-STOP -- TAG-SDAP-CONFIG-START SDAP-Config ::= SEQUENCE { - -- FFS / TODO: Definition of PDUsessionID to be added - pduSession PDUsessionID, + pdu-Session PDU-SessionID, -- FFS: separate configuration for UL and DL - sdap-Header-DL ENUMERATED {present, absent}, - sdap-Header-UL ENUMERATED {present, absent}, + sdap-HeaderDL ENUMERATED {present, absent}, + sdap-HeaderUL ENUMERATED {present, absent}, defaultDRB BOOLEAN, - reflectiveQoS BOOLEAN, -- It is FFS whether this field is needed - -- FFS: Is the simple list sufficient? Replace by add/mod/release list? Or bitmap? - mappedQoSflows SEQUENCE (SIZE (0..maxNrofQFIs)) OF QFI OPTIONAL, -- Need N + -- A list of QoS-Flow-IDs that the UE shall map to the DRB of this SDAP-Config. + mappedQoS-FlowsToAdd SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI OPTIONAL, -- Need N + -- A list of QoS-Flow-IDs that the UE shall no longer map to the DRB of this SDAP-Config. + mappedQoS-FlowsToRelease SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI OPTIONAL, -- Need N ... } - QFI ::= INTEGER (0..maxQFI) +PDU-SessionID ::= INTEGER (0..255) + -- TAG-SDAP-CONFIG-STOP +-- TAG-SEARCHSPACE-START + +SearchSpace ::= SEQUENCE { + -- Identity of the search space. SearchSpaceId = 0 identifies the SearchSpace configured via PBCH (MIB) or ServingCellConfigCommon. + -- The searchSpaceId is unique among the BWPs of a Serving Cell. + searchSpaceId SearchSpaceId, + + -- The CORESET applicable for this SearchSpace. + -- Value 0 identifies the common CORESET configured in MIB and in ServingCellConfigCommon + -- Values 1..maxNrofControlResourceSets-1 identify CORESETs configured by dedicated signalling + controlResourceSetId ControlResourceSetId OPTIONAL, -- Cond SetupOnly + + -- Slots for PDCCH Monitoring configured as periodicity and offset. Corresponds to L1 parameters 'Montoring-periodicity-PDCCH-slot' and + -- 'Montoring-offset-PDCCH-slot' (see 38.213, section 10) + monitoringSlotPeriodicityAndOffset CHOICE { + sl1 NULL, + sl2 INTEGER (0..1), + sl4 INTEGER (0..3), + sl5 INTEGER (0..4), + sl8 INTEGER (0..7), + sl10 INTEGER (0..9), + sl16 INTEGER (0..15), + sl20 INTEGER (0..19) + } OPTIONAL, -- Cond Setup + + -- Symbols for PDCCH monitoring in the slots configured for PDCCH monitoring (see monitoringSlotPeriodicityAndOffset). + -- The most significant (left) bit represents the first OFDM in a slot. The least significant (right) bit represents the last symbol. + -- Corresponds to L1 parameter 'Montoring-symbols-PDCCH-within-slot' (see 38.213, section 10) + monitoringSymbolsWithinSlot BIT STRING (SIZE (14)) OPTIONAL, -- Cond Setup + + -- Number of PDCCH candidates per aggregation level. Corresponds to L1 parameter 'Aggregation-level-1' to 'Aggregation-level-8'. + -- The number of candidates and aggregation levels configured here applies to all formats unless a particular value is specified or + -- a format-specific value is provided (see inside searchSpaceType). + -- (see 38.213, section 10) + nrofCandidates SEQUENCE { + aggregationLevel1 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}, + aggregationLevel2 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}, + aggregationLevel4 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}, + aggregationLevel8 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}, + aggregationLevel16 ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8} + } OPTIONAL, -- Cond Setup + + -- Indicates whether this is a common search space (present) or a UE specific search space as well as DCI formats to monitor for. + searchSpaceType CHOICE { + -- Configures this search space as common search space (CSS) and DCI formats to monitor. + common SEQUENCE { + -- If configured, the UE monitors the DCI formats 0_0 and 1_0 with CRC scrambled by C-RNTI, CS-RNTI (if configured), + -- SP-CSI-RNTI (if configured), RA-RNTI, TC-RNTI, P-RNTI, SI-RNTI + dci-Format0-0-AndFormat1-0 SEQUENCE { + ... + } OPTIONAL, -- Need R + -- If configured, UE monitors the DCI format format 2_0 with CRC scrambled by SFI-RNTI + dci-Format2-0 SEQUENCE { + -- The number of PDCCH candidates specifically for format 2-0 for the configured aggregation level. + -- If an aggregation level is absent, the UE does not search for any candidates with that aggregation level. + -- Corresponds to L1 parameters 'SFI-Num-PDCCH-cand' and 'SFI-Aggregation-Level' (see 38.213, section 11.1.1). + nrofCandidates-SFI SEQUENCE { + aggregationLevel1 ENUMERATED {n1, n2} OPTIONAL, -- Need R + aggregationLevel2 ENUMERATED {n1, n2} OPTIONAL, -- Need R + aggregationLevel4 ENUMERATED {n1, n2} OPTIONAL, -- Need R + aggregationLevel8 ENUMERATED {n1, n2} OPTIONAL, -- Need R + aggregationLevel16 ENUMERATED {n1, n2} OPTIONAL -- Need R + }, + ... + } OPTIONAL, -- Need R + -- If configured, UE monitors the DCI format format 2_1 with CRC scrambled by INT-RNTI + dci-Format2-1 SEQUENCE { + ... + } OPTIONAL, -- Need R + -- If configured, UE monitors the DCI format 2_2 with CRC scrambled by TPC-PUSCH-RNTI or TPC-PUCCH-RNTI + dci-Format2-2 SEQUENCE { + ... + } OPTIONAL, -- Need R + -- If configured, UE monitors the DCI format 2_3 with CRC scrambled by TPC-SRS-RNTI + dci-Format2-3 SEQUENCE { + -- Monitoring periodicity of SRS PDCCH in number of slots for DCI format 2-3. + -- Corresponds to L1 parameter 'SRS-monitoring-periodicity' (see 38.212, 38.213, section 7.3.1, 11.3) + monitoringPeriodicity ENUMERATED {n1, n2, n4, n5, n8, n10, n16, n20 } OPTIONAL, -- Cond Setup + + -- The number of PDCCH candidates for DCI format 2-3 for the configured aggregation level. + -- Corresponds to L1 parameter 'SRS-Num-PDCCH-cand' (see 38.212, 38.213, section 7.3.1, 11.3) + nrofPDCCH-Candidates ENUMERATED {n1, n2}, + ... + } OPTIONAL -- Need R + }, + -- Configures this search space as UE specific search space (USS). The UE monitors the DCI format with CRC scrambled + -- by C-RNTI, CS-RNTI (if configured), TC-RNTI (if a certain condition is met), and SP-CSI-RNTI (if configured) + ue-Specific SEQUENCE { + -- Indicates whether the UE monitors in this USS for DCI formats 0-0 and 1-0 or for formats 0-1 and 1-1. + dci-Formats ENUMERATED {formats0-0-And-1-0, formats0-1-And-1-1}, + ... + } + } OPTIONAL -- Cond Setup +} +-- TAG-SEARCHSPACE-STOP +-- TAG-SEARCHSPACEID-START + +SearchSpaceId ::= INTEGER (0..maxNrofSearchSpaces-1) + +-- TAG-SEARCHSPACEID-STOP +-- TAG-SECURITY-ALGORITHM-CONFIG-START SecurityAlgorithmConfig ::= SEQUENCE { cipheringAlgorithm CipheringAlgorithm, - integrityProtAlgorithm IntegrityProtAlgorithm - + integrityProtAlgorithm IntegrityProtAlgorithm OPTIONAL, -- Need R + ... } IntegrityProtAlgorithm ::= ENUMERATED { @@ -2403,269 +3854,327 @@ CipheringAlgorithm ::= ENUMERATED { nea0, nea1, nea2, nea3, spare4, spare3, spare2, spare1, ...} +-- TAG-SECURITY-ALGORITHM-CONFIG-STOP -- TAG-SERV-CELL-INDEX-START -ServCellIndex ::= INTEGER (0..16) +ServCellIndex ::= INTEGER (0..maxNrofServingCells-1) -- TAG-SERV-CELL-INDEX-STOP --- TAG-SERVING-CELL-CONFIG-COMMON-START +-- TAG-SERVING-CELL-CONFIG-START -ServingCellConfigCommon ::= SEQUENCE { +ServingCellConfig ::= SEQUENCE { + -- L1 parameters: - -- Parameters identifying the target cell (reconfiguration with sync, SCell addition, PSCell addition) - -- FFS: Need to indicate initial BWP here? - -- FFS: Update the following based on input from RAN1 and RAN4 - physCellId PhysCellId OPTIONAL, -- Cond HOAndSCellAdd, - frequencyInfoDL SEQUENCE { - carrierFreqDL ARFCN-ValueNR, - carrierBandwidthDL CarrierBandwidthNR - } OPTIONAL, -- Cond InterFreqHOAndSCellAdd - frequencyInfoUL FrequencyInfoUL OPTIONAL, -- Cond InterFreqHOAndUplinkSCellAdd + tdd-UL-DL-ConfigurationDedicated TDD-UL-DL-ConfigDedicated OPTIONAL, -- Cond TDD - -- FFS: How to indicate the FrequencyInfoUL for the SUL - supplementaryUplink SEQUENCE { - frequencyInfoUL FrequencyInfoUL - -- FFS: Add additional (selection) criteria determining when/whether the UE shall use the SUL frequency - } OPTIONAL, -- Cond SUL + -- The dedicated (UE-specific) configuration for the initial downlink bandwidth-part. + initialDownlinkBWP BWP-DownlinkDedicated OPTIONAL, -- Cond ServCellAdd + -- List of additional downlink bandwidth parts to be released. (see 38.211, 38.213, section 12). + downlinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N + -- List of additional downlink bandwidth parts to be added or modified. (see 38.211, 38.213, section 12). + downlinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Downlink OPTIONAL, -- Need N - -- Subcarrier spacing for SIB1, Msg.2/4 for initial access and SI-messages. - -- Values 15, and 30 kHz are applicable for carrier frequencies <6GHz; Values 60 and 120 kHz are applicable for carrier frequencies >6GHz - subcarrierSpacingCommon SubcarrierSpacing, + -- If configured for an SpCell, this field contains the ID of the DL BWP to be activated upon performing the reconfiguration + -- in which it is received. If the field is absent, the RRC reconfiguration does not impose a BWP switch (corresponds to L1 + -- parameter 'active-BWP-DL-Pcell'). + -- If configured for an SCell, this field contains the ID of the downlink bandwidth part to be used upon MAC-activation of an SCell. + -- If not provided, the UE uses the default BWP. + -- The initial bandwidth part is referred to by BWP-Id = 0. + firstActiveDownlinkBWP-Id BWP-Id OPTIONAL, -- Need R - -- The frequency domain offset between SSB and the overall resource block grid in number of subcarriers. - -- Absence of the field indicates that no offset if applied (offset = 0). See 38.211, section 7.4.3.1) - ssb-subcarrier-offset INTEGER (1..11) OPTIONAL, + -- The duration in ms after which the UE falls back to the default Bandwidth Part. (see 38.321, section 5.15) + -- The value 0.5 ms is only applicable for carriers >6 GHz. + -- When the network releases the timer configuration, the UE stops the timer without swithching to the default BWP. + bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40,ms50, ms60, ms80, + ms100, ms200, ms300, ms500, ms750, ms1280, ms1920, ms2560, spare10, spare9, + spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 } OPTIONAL, -- Need R - -- Indicates the time domain positions of the transmitted SS-blocks in an SS-burst. - -- Corresponds to L1 parameter 'SSB-Transmitted' (see 38.213, section 4.1) - -- FFS_CECHK: Is the NW required to provide always a valid bitmap? If not, we cannot use "need M" - ssb-PositionsInBurst CHOICE { - -- bitmap for sub 3 GHz - shortBitmap BIT STRING (SIZE (4)), - -- bitmap for 3-6 GHz - mediumBitmap BIT STRING (SIZE (8)), - -- bitmap for above 6 GHz - longBitmap BIT STRING (SIZE (64)) - } OPTIONAL, -- Need M, + -- Corresponds to L1 parameter 'default-DL-BWP'. The initial bandwidth part is referred to by BWP-Id = 0. + -- ID of the downlink bandwidth part to be used upon expiry of txxx. + -- This field is UE specific. When the field is absent the UE uses the the initial BWP as default BWP. + -- (see 38.211, 38.213, section 12 and 38.321, section 5.15) + defaultDownlinkBWP-Id BWP-Id OPTIONAL, -- Need M - -- The SSB periodicity in msec for the rate matching purpose (see 38.211, section [7.4.3.1]) - ssb-periodicityServingCell ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160 } OPTIONAL, + uplinkConfig UplinkConfig OPTIONAL, -- Cond ServCellAdd-UL + supplementaryUplink UplinkConfig OPTIONAL, -- Cond ServCellAdd-SUL - -- CHECK: This field is usually in MIB. Assuming that the UE does not need to acquire MIB before sending RA to target cell, this parameter - -- should also be here - -- Position of (first) DL DM-RS (see 38.211, section 7.4.1.1.1) - dmrs-TypeA-Position ENUMERATED {pos2, pos3}, + -- PDSCH releated parameters that are not BWP-specific. + pdsch-ServingCellConfig CHOICE {release NULL, setup PDSCH-ServingCellConfig } OPTIONAL, -- Need M + csi-MeasConfig CHOICE {release NULL, setup CSI-MeasConfig } OPTIONAL, -- Need M - -- Subcarrier spacing of SSB. Used only for non-initial access (e.g. SCells, PCell of SCG). - -- If the field is absent the UE shall assume the default value of the band. - -- FFS in RAN1: Possibility to have several default values? May the field be absent in that case? - subcarrierSpacingSSB SubcarrierSpacingSSB OPTIONAL, -- Need R + -- Includes parameters for configuration of carrier based SRS switching + -- Corresponds to L1 parameter 'SRS-CarrierSwitching' (see 38,214, section FFS_Section) + carrierSwitching CHOICE {release NULL, setup SRS-CarrierSwitching } OPTIONAL, -- Need M + -- MAC parameters: + sCellDeactivationTimer ENUMERATED {ms20, ms40, ms80, ms160, ms200, ms240, ms320, ms400, ms480, ms520, ms640, + ms720, ms840, ms1280, spare2,spare1} OPTIONAL, -- Cond ServingCellWithoutPUCCH - tdd-UL-DL-configurationCommon SEQUENCE { - -- Periodicity of the DL-UL pattern. Corresponds to L1 parameter 'DL-UL-transmission-periodicity' (see 38.211, section FFS_Section) - dl-UL-TransmissionPeriodicity ENUMERATED {ms0dot5, ms1, ms2, ms5, ms10} OPTIONAL, + -- Indicates whether this SCell is cross-carrier scheduled by another serving cell. + crossCarrierSchedulingConfig CrossCarrierSchedulingConfig OPTIONAL, -- Need M - -- Number of consecutive full DL slots at the beginning of each DL-UL pattern. - -- Corresponds to L1 parameter 'number-of-DL-slots' (see 38.211, section FFS_Section) - -- FFS_Value: Verify that 160 is correct (maximum number of slots within the longest period (10 ms) and the largest subcarrier spacing. - nrofDownlinkSlots INTEGER (0..160) OPTIONAL, + -- Timing Advance Group ID, as specified in TS 38.321 [3], which this cell belongs to. + tag-Id TAG-Id, + -- Enables the "UE beam lock function (UBF)", which disable changes to the UE beamforming configuration when in NR_RRC_CONNECTED. + -- FFS: Parameter added preliminary based on RAN4 LS in R4-1711823. Decide where to place it (maybe ServingCellConfigCommon or + -- in a BeamManagement IE??) + ue-BeamLockFunction ENUMERATED {enabled} OPTIONAL, -- Need R - -- Number of consecutive DL symbols in the beginning of the slot following the last full DL slot (as derived from nrofDownlinkSlots). - -- Corresponds to L1 parameter 'number-of-DL-symbols-common' (see 38.211, section FFS_Section). - nrofDownlinkSymbols INTEGER (0..maxSymbolIndex) OPTIONAL, + -- Indicates whether UE shall apply as pathloss reference either the downlink of PCell or of SCell that corresponds with this uplink + -- (see 38.213, section 7) + pathlossReferenceLinking ENUMERATED {pCell, sCell} OPTIONAL -- Cond SCellOnly +} - -- Number of consecutive full UL slots at the end of each DL-UL pattern. - -- Corresponds to L1 parameter 'number-of-UL-slots' (see 38.211, section FFS_Section) - -- FFS_Value: Verify that 160 is correct (maximum number of slots within the longest period (10 ms) and the largest subcarrier spacing. - nrofUplinkSlots INTEGER (0..160) OPTIONAL, +UplinkConfig ::= SEQUENCE { + -- Configuration of UL BWPs (including BWP-specific parameters: - -- Number of consecutive UL symbols in the end of the slot preceding the first full UL slot (as derived from nrofUplinkSlots). - -- Corresponds to L1 parameter 'number-of-UL-symbols-common' (see 38.211, section FFS_Section) - nrofUplinkSymbols INTEGER (0..maxSymbolIndex) OPTIONAL - } OPTIONAL, -- Cond TDD + -- The dedicated (UE-specific) configuration for the initial uplink bandwidth-part. + initialUplinkBWP BWP-UplinkDedicated OPTIONAL, -- Cond ServCellAdd - -- TX power that the NW used for SSB transmission. The UE uses it to estimate the RA preamble TX power. - -- CHECK: Value range and step size (table says [-60...50]) (see 38.213, section 7.4) - ss-PBCH-BlockPower INTEGER (-60..50), + -- The additional bandwidth parts for uplink. In case of TDD uplink- and downlink BWP with the same bandwidthPartId are considered + -- as a BWP pair and must have the same center frequency. + uplinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N + uplinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Uplink OPTIONAL, -- Need N - -- Parameters that are also conveyed via system information (SIB1) but which are provided here to accelerate handover - -- and to avoid that UEs need to read system information from SCells. - rach-ConfigCommon RACH-ConfigCommon + -- If configured for an SpCell, this field contains the ID of the DL BWP to be activated upon performing the reconfiguration + -- in which it is received. If the field is absent, the RRC reconfiguration does not impose a BWP switch (corresponds to + -- L1 parameter 'active-BWP-UL-Pcell'). + -- If configured for an SCell, this field contains the ID of the uplink bandwidth part to be used upon MAC-activation of an SCell. + -- If not provided, the UE uses the FFS: default BWP. + -- The initial bandwidth part is referred to by BandiwdthPartId = 0. + firstActiveUplinkBWP-Id BWP-Id OPTIONAL, -- Need R - -- ===================================== - -- FFS which of the following are needed - -- - -- BandwidthPart-Confi - -- ControlResourceSet - -- SearchSpace - -- or include pdcchConfigSIB1 instead of BWP, CORESET and SearchSpace? - -- bcch-Config BCCH-Config, - -- pcch-Config PCCH-Config, - -- prach-Config PRACH-ConfigSIB, - -- pdsch-ConfigCommon PDSCH-ConfigCommon, - -- pusch-ConfigCommon PUSCH-ConfigCommon, - -- pucch-ConfigCommon PUCCH-ConfigCommon, - -- soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon, - -- uplinkPowerControlCommon UplinkPowerControlCommon, + -- Configuration that is common across the UL BWPs: + -- PUSCH related parameters that are not BWP-specific. + pusch-ServingCellConfig CHOICE {release NULL, setup PUSCH-ServingCellConfig } OPTIONAL, -- Need M + ... } --- TAG-SERVING-CELL-CONFIG-COMMON-STOP --- TAG-SERVING-CELL-CONFIG-DEDICATED-START +-- TAG-SERVING-CELL-CONFIG-STOP +-- TAG-SERVING-CELL-CONFIG-COMMON-START -ServingCellConfigDedicated ::= SEQUENCE { - -- L1 parameters: +ServingCellConfigCommon ::= SEQUENCE { + physCellId PhysCellId OPTIONAL, -- Cond HOAndServCellAdd, + frequencyInfoDL FrequencyInfoDL OPTIONAL, -- Cond InterFreqHOAndServCellAdd + -- The initial downlink BWP configuration for a SpCell (PCell of MCG or SCG). + initialDownlinkBWP BWP-DownlinkCommon OPTIONAL, -- Cond ServCellAdd - tdd-UL-DL-configurationDedicated SEQUENCE { - -- The slotSpecificConfiguration allows overriding UL/DL allocations provided in tdd-UL-DL-configurationCommon. - -- FFS_ASN1: Consider making this an AddMod/Release list - -- FFS_ASN1: Replace absolute numbers by variables... once RAN1 confirms. - slotSpecificConfigurations SEQUENCE (SIZE(0..160)) OF SEQUENCE { - -- Identifies a slot within a dl-UL-TransmissionPeriodicity (given in tdd-UL-DL-configurationCommon) - slotIndex INTEGER (0..160), + uplinkConfigCommon UplinkConfigCommon OPTIONAL, -- Cond ServCellAdd-UL + supplementaryUplinkConfig UplinkConfigCommon OPTIONAL, -- Cond ServCellAdd-SUL - -- FFS_ASN1: Consider a choice structure with options [allDownlink, allUplink, explicit] where the following two fields are provided - -- only in case of "explicit". - -- Number of consecutive DL symbols in the beginning of the slot identified by slotIndex - -- Corresponds to L1 parameter 'number-of-DL-symbols-dedicated' (see 38.211, section FFS_Section) - nrofDownlinkSymbols INTEGER (0..maxSymbolIndex) OPTIONAL, + -- Indicates the time domain positions of the transmitted SS-blocks in an SS-burst. The first/ leftmost bit corresponds to SS/PBCH + -- block index 0, the second bit corresponds to SS/PBCH block index 1, and so on. Value 0 in the bitmap indicates that the + -- corresponding SS/PBCH block is not transmitted while value 1 indicates that the corresponding SS/PBCH block is transmitted. + -- Corresponds to L1 parameter 'SSB-Transmitted' (see 38.213, section 4.1) + ssb-PositionsInBurst CHOICE { + -- bitmap for sub 3 GHz + shortBitmap BIT STRING (SIZE (4)), + -- bitmap for 3-6 GHz + mediumBitmap BIT STRING (SIZE (8)), + -- bitmap for above 6 GHz + longBitmap BIT STRING (SIZE (64)) + } OPTIONAL, -- Need R, + -- The SSB periodicity in msec for the rate matching purpose. If the field is absent, the UE applies the value ms5. + -- (see 38.211, section [7.4.3.1]) + ssb-periodicityServingCell ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, spare2, spare1 } OPTIONAL, -- Need S + -- Position of (first) DL DM-RS (see 38.211, section 7.4.1.1.1) + dmrs-TypeA-Position ENUMERATED {pos2, pos3}, - -- Number of consecutive UL symbols in the end of the slot identified by slotIndex - -- Corresponds to L1 parameter 'number-of-UL-symbols-dedicated' (see 38.211, section FFS_Section) - nrofUplinkSymbols INTEGER (0..maxSymbolIndex) OPTIONAL - } OPTIONAL -- Need M - } OPTIONAL, -- Cond TDD + -- Parameters to determine an LTE CRS pattern that the UE shall rate match around. + lte-CRS-ToMatchAround CHOICE {release NULL, setup RateMatchPatternLTE-CRS } OPTIONAL, -- Need M - bandwidthParts BandwidthParts OPTIONAL, + -- Resources patterns which the UE should rate match PDSCH around. The UE rate matches around the union of all resources + -- indicated in the nested bitmaps. Rate match patterns defined here on cell level apply only to PDSCH of the same numerology. + -- Corresponds to L1 parameter 'Resource-set-cekk' (see 38.214, section 5.1.2.2.3) + rateMatchPatternToAddModList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern OPTIONAL, -- Need N + rateMatchPatternToReleaseList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N - -- Identifer used to initalite data scrambling (c_init) for both PDSCH and PUSCH. - -- Corresponds to L1 parameter 'Data-scrambling-Identity' (see 38,214, section FFS_Section) - dataScramblingIdentity NULL OPTIONAL, -- WS modification: was FFS_Value + -- Subcarrier spacing of SSB. Used only for non-initial access (e.g. SCells, PCell of SCG). + -- If the field is absent the UE shall assume the default value of the band. + -- Only the values 15 or 30 kHz (<6GHz), 120 or 240 kHz (>6GHz) are applicable. + subcarrierSpacing SubcarrierSpacing OPTIONAL, -- Need S + -- A cell-specific TDD UL/DL configuration. Corresponds to L1 parameter 'UL-DL-configuration-common' (see 38.213, section 11.1) + tdd-UL-DL-ConfigurationCommon TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD + -- A second cell-specific TDD UL/DL configuration. When tdd-UL-DL-ConfigurationCommon2 is configured, the cell specific DL/UL + -- pattern is a concatenation of the pattern specified in tdd-UL-DL-ConfigurationCommon and the pattern specified in + -- tdd-UL-DL-ConfigurationCommon2. Corresponds to L1 parameter 'UL-DL-configuration-common-Set2' (see 38.211, section 11.1) + tdd-UL-DL-ConfigurationCommon2 TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD + -- TX power that the NW used for SSB transmission. The UE uses it to estimate the RA preamble TX power. + -- (see 38.213, section 7.4) + ss-PBCH-BlockPower INTEGER (-60..50), + ... +} - pdcch-Config PDCCH-Config OPTIONAL, - pdsch-Config PDSCH-Config OPTIONAL, +UplinkConfigCommon ::= SEQUENCE { + -- Absolute uplink frequency configuration and subcarrier specific virtual carriers. + frequencyInfoUL FrequencyInfoUL OPTIONAL, -- Cond InterFreqHOAndServCellAdd + -- The initial uplink BWP configuration for a SpCell (PCell of MCG or SCG). Corresponds to L1 parameter 'initial-UL-BWP'. + -- (see 38.331, section FFS_Section). + initialUplinkBWP BWP-UplinkCommon OPTIONAL -- Cond ServCellAdd +} - -- FFS in RAN1: Tracking Reference Signals configuration: TRS-Config? - csi-MeasConfig CSI-MeasConfig OPTIONAL, +-- TAG-SERVING-CELL-CONFIG-COMMON-STOP +-- TAG-SINR-RANGE-START - pucch-Config PUCCH-Config OPTIONAL, - pusch-Config PUSCH-Config OPTIONAL, - srs-Config SRS-Config OPTIONAL, +SINR-Range ::= INTEGER(0..127) - -- MAC parameters: - -- FFS: Is it per BWP? +-- TAG-SINR-RANGE-STOP +-- TAG-SLOTFORMATCOMBINATIONSPERCELL-START +-- The SlotFormatCombinations applicable for one serving cell. Corresponds to L1 parameter 'cell-to-SFI' (see 38.213, section 11.1.1) +SlotFormatCombinationsPerCell ::= SEQUENCE { + -- The ID of the serving cell for which the slotFormatCombinations are applicable + servingCellId ServCellIndex, - -- FFS: Resources for scheduling request (per BWP) + -- Reference subcarrier spacing for this Slot Format Combination. Corresponds to L1 parameter 'SFI-scs' (see 38.213, section FFS_Section) + subcarrierSpacing SubcarrierSpacing, + -- Reference subcarrier spacing for a Slot Format Combination on an FDD or SUL cell. + -- Corresponds to L1 parameter 'SFI-scs2' (see 38.213, section FFS_Section). + -- For FDD, subcarrierSpacing (SFI-scs) is the reference SCS for DL BWP and subcarrierSpacing2 (SFI-scs2) is the reference SCS for UL BWP. + -- For SUL, subcarrierSpacing (SFI-scs) is the reference SCS for non-SUL carrier and subcarrierSpacing2 (SFI-scs2) is the reference + -- SCS for SUL carrier. + subcarrierSpacing2 SubcarrierSpacing OPTIONAL, -- Need R - sps-Config SPS-Config OPTIONAL, - - -- Indicates whether this SCell is cross-carrier scheduled by another serving cell. - -- FFS: How to indicate whether CIF is present in the DCIs of the PCell? Should the CrossCarrierSchedulingConfig be included - -- and set to own so that the field "cif-Presence" can be set? - crossCarrierSchedulingConfig CrossCarrierSchedulingConfig OPTIONAL, -- Cond SCell + -- A list with SlotFormatCombinations. Each SlotFormatCombination comprises of one or more SlotFormats (see 38.211, section 4.3.2) + -- FFS_CHECK: RAN1 indicates that the combinations could be of two different types... but they don't specify the second + slotFormatCombinations SEQUENCE (SIZE (1..maxNrofSlotFormatCombinationsPerSet)) OF SlotFormatCombination OPTIONAL, - -- Timing Advance Group ID, as specified in TS 38.321 [3], which this cell belongs to. - tag-Id TAG-Id, - -- Enables the "UE beam lock function (UBF)", which disable changes to the UE beamforming configuration when in NR_RRC_CONNECTED. - -- FFS: Parameter added preliminary based on RAN4 LS in R4-1711823. Decide where to place it (maybe ServingCellConfigCommon or - -- in a BeamManagement IE??) - ue-BeamLockFunction ENUMERATED {enabled} OPTIONAL, + -- The (starting) position (bit) of the slotFormatCombinationId (SFI-Index) for this serving cell (servingCellId) within the DCI payload. + -- Corresponds to L1 parameter 'SFI-values' (see 38.213, section FFS_Section) + positionInDCI INTEGER(0..maxSFI-DCI-PayloadSize-1) OPTIONAL, + ... +} - -- Indicates whether UE shall apply as pathloss reference either the downlink of PCell or of SCell that corresponds with this uplink - -- (see 38.213, section 7) - pathlossReferenceLinking ENUMERATED {pCell, sCell} OPTIONAL -- Cond SCell +SlotFormatCombination ::= SEQUENCE { + -- This ID is used in the DCI payload to dynamically select this SlotFormatCombination. + -- Corresponds to L1 parameter 'SFI-index' (see 38.213, section FFS_Section) + slotFormatCombinationId SlotFormatCombinationId, + -- Slot formats that occur in consecutive slots in time domain order as listed here. The the slot formats are + -- defined in 38.211, table 4.3.2-3 and numbered with 0..255. + slotFormats SEQUENCE (SIZE (1..maxNrofSlotFormatsPerCombination)) OF INTEGER (0..255) } --- TAG-SERVING-CELL-CONFIG-DEDICATED-STOP --- TAG-SRB-IDENTITY-START +-- SFI index that is assoicated with a certian slot-format-combination +-- Corresponds to L1 parameter 'SFI-index' (see 38.213, section FFS_Section) +SlotFormatCombinationId ::= INTEGER (0..maxNrofSlotFormatCombinationsPerSet-1) -SRB-Identity ::= INTEGER (1..3) +-- TAG-SLOTFORMATCOMBINATIONSPERCELL-STOP +-- TAG-SLOTFORMATINDICATOR-START --- TAG-SRB-IDENTITY-STOP +SlotFormatIndicator ::= SEQUENCE { + -- RNTI used for SFI on the given cell + -- Corresponds to L1 parameter 'SFI-RNTI' (see 38.213, section 11.1.1) + sfi-RNTI RNTI-Value, + + -- Total length of the DCI payload scrambled with SFI-RNTI. + -- Corresponds to L1 parameter 'SFI-DCI-payload-length' (see 38.213, section 11.1.1) + dci-PayloadSize INTEGER (1..maxSFI-DCI-PayloadSize), + + -- A list of SlotFormatCombinations for the UE's serving cells. + -- Corresponds to L1 parameter 'SFI-cell-to-SFI' (see 38.213, section 11.1.1) + slotFormatCombToAddModList SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF SlotFormatCombinationsPerCell OPTIONAL, -- Need N + slotFormatCombToReleaseList SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex OPTIONAL, -- Need N + ... +} + +-- TAG-SLOTFORMATINDICATOR-STOP -- TAG-SPS-CONFIG-START --- SPS may be configured on the PCell as well as on SCells. But it shall not be configured for more than +-- Downlink SPS may be configured on the PCell as well as on SCells. But it shall not be configured for more than -- one serving cell of a cell group at once. SPS-Config ::= SEQUENCE { - -- FFS: Same SPS for UL and DL (like in LTE)? See also naming FFS above. - -- sps-RNTI BIT STRING (SIZE (16)) OPTIONAL, - - -- FSS / TODO: ADD DL SPS! - - -- UL SPS configuration - -- FFS CHECK: Add possibility to release UL SPS - uplink SEQUENCE { periodicity NULL, -- WS modification: was TYPE_FFS! - powerControl NULL, -- WS modification: was TYPE_FFS! - - -- Enable transformer precoder for type1 and type2. Absence indicates that it is disabled. - -- Corresponds to L1 parameter 'UL-TWG-tp' (see 38.214, section FFS_Section) - transformPrecoder ENUMERATED {enabled} OPTIONAL, - -- The number of HARQ processes configured. It applies for both Type 1 and Type 2 - -- Corresponds to L1 parameter 'UL-TWG-numbHARQproc' (see 38.214, section FFS_Section) - nrofHARQ-processes INTEGER(1..1) OPTIONAL, -- WS modification: was FFS_Value - - -- If repetitions is used, this field indicates the redundancy version (RV) sequence to use. - -- Corresponds to L1 parameter 'UL-TWG-RV-rep' (see 38.214, section FFS_Section) - repK-RV ENUMERATED {s1-0231, s2-0303, s3-0000} OPTIONAL, - -- Periodicity for UL transmission without UL grant for type 1 and type 2 - -- Corresponds to L1 parameter 'UL-TWG-periodicity' (see 38.321, section FFS_Section) - -- The following periodicities are supported depending on the configured subcarrier spacing [ms]: - -- 15kHz: 2 symbols, 7 symbols, 1, 2, 5, 10, 20, 32, 40, 64, 80, 128, 160, 320, 640 - -- 30kHz: 2 symbols, 7 symbols, 0.5, 1, 2, 5, 10, 20, 32, 40, 64, 80, 128, 160, 320, 640 - -- 60kHz: 2 symbols, 7 symbols (6 symbols for ECP), 0.25,0.5,1,2,5,10,20,32, 40, 64, 80, 128, 160, 320, 640 - -- 120kHz: 2 symbols, 7 symbols, 0.125,0.25,0.5,1,2,5,10,20, 32, 40, 64, 80, 128, 160, 320, 640 OPTIONAL, - -- 2 symbols, 7 symbols, 0.125,0.25,0.5,1,2,5,10,20, 32, 40, 64, 80, 128, 160, 320, 640 - priodicity ENUMERATED {sym2, sym7, ms0dot125, ms0dot25, ms0dot5, ms1, ms2, ms5, ms10, ms20, - ms32, ms40, ms64, ms80, ms128, ms160, ms320, ms640} OPTIONAL, - - - -- UL-SPS transmission with fully RRC-configured UL grant (Type1) (see 38.214, section x.x.x.x). FFS_Ref - -- If not provided or set to release, use UL-SPS transmission with UL grant configured by DCI addressed to SPS-RNTI (Type2). - rrcConfiguredUplinkGrant CHOICE { - setup SEQUENCE { - -- FFS: Merge the following two into one. Possibly don't use "periodicity" for rrcConfiguredUplinkGrant - timeDomainOffset NULL, -- WS modification: was TYPE_FFS! - timeDomainAllocation NULL, -- WS modification: was TYPE_FFS! - frequencyDomainAllocation NULL, -- WS modification: was TYPE_FFS! - -- UE-specific DMRS configuration: - dmrs NULL, -- WS modification: was TYPE_FFS! - mcsAndTBS NULL, -- WS modification: was TYPE_FFS! - -- The number or repetitions of K: - repK NULL }, -- WS modification: was TYPE_FFS! - release NULL - } OPTIONAL -- Need M - } OPTIONAL -- Need M + -- Periodicity for DL SPS + -- Corresponds to L1 parameter 'semiPersistSchedIntervalDL' (see 38.214 and 38.321, section FFS_Section) + -- FFS-Value: Support also shorter periodicities for DL? + periodicity ENUMERATED {ms10, ms20, ms32, ms40, ms64, ms80, ms128, ms160, ms320, ms640, + spare6, spare5, spare4, spare3, spare2, spare1}, + -- Number of configured HARQ processes for SPS DL. Corresponds to L1 parameter 'numberOfConfSPS-Processes' (see 38.214, section FFS_Section) + nrofHARQ-Processes INTEGER (1..8), + -- HARQ resource for PUCCH for DL SPS. The network configures the resource either as format0 or format1. (see 38.214, section FFS_Section) + n1PUCCH-AN PUCCH-Resource OPTIONAL -- Need M } -- TAG-SPS-CONFIG-STOP +-- TAG-SRB-IDENTITY-START + +SRB-Identity ::= INTEGER (1..3) + +-- TAG-SRB-IDENTITY-STOP -- TAG-SRS-CONFIG-START --- SRS configuration allowing to add and remove sets of SRS resources SRS-Config ::= SEQUENCE { - srs-ResourceSetToReleaseList SEQUENCE (SIZE(0..maxNrofSRS-ResourceSets)) OF SRS-ResourceSetId OPTIONAL, -- Need M - srs-ResourceSetToAddModList SEQUENCE (SIZE(0..maxNrofSRS-ResourceSets)) OF SRS-ResourceSet OPTIONAL, -- Need M + srs-ResourceSetToReleaseList SEQUENCE (SIZE(0..maxNrofSRS-ResourceSets)) OF SRS-ResourceSetId OPTIONAL, -- Need N + srs-ResourceSetToAddModList SEQUENCE (SIZE(0..maxNrofSRS-ResourceSets)) OF SRS-ResourceSet OPTIONAL, -- Need N - srs-ResourceToReleaseList SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-ResourceId OPTIONAL, -- Need M - srs-ResourceToAddModList SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-Resource OPTIONAL, -- Need M + srs-ResourceToReleaseList SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-ResourceId OPTIONAL, -- Need N + srs-ResourceToAddModList SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-Resource OPTIONAL, -- Need N - -- RNTI used for SRS TPC. Corresponds to L1 parameter 'TPC-SRS-RNTI' (see 38.213, section 10) - tpc-SRS-RNTI BIT STRING (SIZE (16)) OPTIONAL + -- If absent, UE applies TPC commands via accumulation. If disabled, UE applies the TPC command without accumulation + -- (this applies to SRS when a separate closed loop is configured for SRS) + -- Corresponds to L1 parameter 'Accumulation-enabled-srs' (see 38,213, section 7.3) + tpc-Accumulation ENUMERATED {disabled} OPTIONAL, -- Need S + ... } --- A set of SRS resources SRS-ResourceSet ::= SEQUENCE { + -- The ID of this resource set. It is unique in the context of the BWP in which the parent SRS-Config is defined. srs-ResourceSetId SRS-ResourceSetId, - srs-ResourcesIds SEQUENCE (SIZE(1..maxNrofSRS-ResourcesPerSet)) OF SRS-ResourceId, + -- The IDs of the SRS-Reosurces used in this SRS-ResourceSet + srs-ResourceIdList SEQUENCE (SIZE(1..maxNrofSRS-ResourcesPerSet)) OF SRS-ResourceId OPTIONAL, -- Cond Setup - -- The DCI "code point" upon which the UE shall transmit SRS according to this SRS resource set configuration. - -- FFS: Verify definition and usage. - -- Corresponds to L1 parameter 'AperiodicSRS-ResourceTrigger' (see 38.214, section FFS_Section) - aperiodicSRS-ResourceTrigger NULL -- WS modification: was TYPE_FFS! + resourceType CHOICE { + aperiodic SEQUENCE { + -- The DCI "code point" upon which the UE shall transmit SRS according to this SRS resource set configuration. + -- Corresponds to L1 parameter 'AperiodicSRS-ResourceTrigger' (see 38.214, section 6.1.1.2) + aperiodicSRS-ResourceTrigger INTEGER (0..maxNrofSRS-TriggerStates-1), + -- ID of CSI-RS resource associated with this SRS resource set. (see 38.214, section 6.1.1.2) + csi-RS NZP-CSI-RS-ResourceId, + -- An offset in number of slots between the triggering DCI and the actual transmission of this SRS-ResourceSet. + -- If the field is absent the UE applies no offset (value 0) + slotOffset INTEGER (1..8) OPTIONAL, -- Need S + ... + }, + semi-persistent SEQUENCE { + -- ID of CSI-RS resource associated with this SRS resource set in non-codebook based operation. + -- Corresponds to L1 parameter 'SRS-AssocCSIRS' (see 38.214, section 6.2.1) + associatedCSI-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond nonCodebook + ... + }, + periodic SEQUENCE { + -- ID of CSI-RS resource associated with this SRS resource set in non-codebook based operation. + -- Corresponds to L1 parameter 'SRS-AssocCSIRS' (see 38.214, section 6.2.1) + associatedCSI-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond nonCodebook + ... + } + }, + -- Indicates if the SRS resource set is used for beam management vs. used for either codebook based or non-codebook based transmission. + -- Corresponds to L1 parameter 'SRS-SetUse' (see 38.214, section 6.2.1) + -- FFS_CHECK: Isn't codebook/noncodebook already known from the ulTxConfig in the SRS-Config? If so, isn't the only distinction + -- in the set between BeamManagement, AtennaSwitching and "Other”? Or what happens if SRS-Config=Codebook but a Set=NonCodebook? + usage ENUMERATED {beamManagement, codebook, nonCodebook, antennaSwitching}, + + -- alpha value for SRS power control. Corresponds to L1 parameter 'alpha-srs' (see 38.213, section 7.3) + -- When the field is absent the UE applies the value 1 + alpha Alpha OPTIONAL, -- Need S + -- P0 value for SRS power control. The value is in dBm. Only even values (step size 2) are allowed. + -- Corresponds to L1 parameter 'p0-srs' (see 38.213, section 7.3) + p0 INTEGER (-202..24) OPTIONAL, -- Cond Setup + -- A reference signal (e.g. a CSI-RS config or a SSblock) to be used for SRS path loss estimation. + -- Corresponds to L1 parameter 'srs-pathlossReference-rs-config' (see 38.213, section 7.3) + pathlossReferenceRS CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId + } OPTIONAL, -- Need M + -- Indicates whether hsrs,c(i) = fc(i,1) or hsrs,c(i) = fc(i,2) (if twoPUSCH-PC-AdjustmentStates are configured) + -- or serarate close loop is configured for SRS. This parameter is applicable only for Uls on which UE also transmits PUSCH. + -- If absent or release, the UE applies the value sameAs-Fci1 + -- Corresponds to L1 parameter 'srs-pcadjustment-state-config' (see 38.213, section 7.3) + srs-PowerControlAdjustmentStates ENUMERATED { sameAsFci2, separateClosedLoop} OPTIONAL, -- Need S + ... } SRS-ResourceSetId ::= INTEGER (0..maxNrofSRS-ResourceSets-1) @@ -2673,205 +4182,1071 @@ SRS-ResourceSetId ::= INTEGER (0..maxNrofSRS-ResourceSets-1) SRS-Resource ::= SEQUENCE { srs-ResourceId SRS-ResourceId, nrofSRS-Ports ENUMERATED {port1, ports2, ports4}, - -- Comb value (2 or 4) and comb offset. Corresponds to L1 parameter 'SRS-TransmissionComb' (see 38.214, section 6.2.1) - transmissionComb ENUMERATED {n2, n4}, - -- OFDM symbol location of the SRS resource within a slot including number of OFDM symbols (1, 2, or 4 per SRS resource) - -- Corresponds to L1 parameter 'SRS-ResourceMapping' (see 38.214, section 6.2.1) - resourceMapping NULL, -- WS modification: was TYPE_FFS! + -- The PTRS port index for this SRS resource for non-codebook based UL MIMO. This is only applicable when the corresponding + -- PTRS-UplinkConfig is set to CP-OFDM. The ptrs-PortIndex configured here must be smaller than or equal to the maxNnrofPorts + -- configured in the PTRS-UplinkConfig. + -- Corresponds to L1 parameter 'UL-PTRS-SRS-mapping-non-CB' (see 38.214, section 6.1) + ptrs-PortIndex ENUMERATED {n0, n1 } OPTIONAL, -- Need R + -- Comb value (2 or 4) and comb offset (0..combValue-1). Corresponds to L1 parameter 'SRS-TransmissionComb' (see 38.214, section 6.2.1) + transmissionComb CHOICE { + n2 SEQUENCE { + combOffset-n2 INTEGER (0..1), + -- Cyclic shift configuration. Corresponds to L1 parameter 'SRS-CyclicShiftConfig' (see 38.214, section 6.2.1) + cyclicShift-n2 INTEGER (0..7) + }, + n4 SEQUENCE { + combOffset-n4 INTEGER (0..3), + -- Cyclic shift configuration. Corresponds to L1 parameter 'SRS-CyclicShiftConfig' (see 38.214, section 6.2.1) + cyclicShift-n4 INTEGER (0..11) + } + }, + -- OFDM symbol location of the SRS resource within a slot including number of OFDM symbols (N = 1, 2 or 4 per SRS resource), + -- startPosition (SRSSymbolStartPosition = 0..5; "0" refers to the last symbol, "1" refers to the second last symbol) and + -- RepetitionFactor (r = 1, 2 or 4). + -- Corresponds to L1 parameter 'SRS-ResourceMapping' (see 38.214, section 6.2.1 and 38.211, section 6.4.1.4). + -- FFS: Apparently, RAN1 considers replacing these three fields by a table in RAN1 specs and a corresponding index in ASN.1?! + resourceMapping SEQUENCE { + startPosition INTEGER (0..5), + nrofSymbols ENUMERATED {n1, n2, n4}, + repetitionFactor ENUMERATED {n1, n2, n4} + }, -- Parameter(s) defining frequency domain position and configurable shift to align SRS allocation to 4 PRB grid. -- Corresponds to L1 parameter 'SRS-FreqDomainPosition' (see 38.214, section 6.2.1) - freqDomainPosition NULL OPTIONAL, -- WS modification: was FFS_Value - -- Includes parameters capturing SRS frequency hopping + freqDomainPosition INTEGER (0..67), + freqDomainShift INTEGER (0..268), + -- Includes parameters capturing SRS frequency hopping -- Corresponds to L1 parameter 'SRS-FreqHopping' (see 38.214, section 6.2.1) - freqHopping INTEGER (0..63), -- WS modification: was TYPE_FFS!, 38.211 suggests this range - -- Parameter(s) for configuring group or sequence hopping including hopping sequence initialization + freqHopping SEQUENCE { + c-SRS INTEGER (0..63), + b-SRS INTEGER (0..3), + b-hop INTEGER (0..3) + }, + -- Parameter(s) for configuring group or sequence hopping -- Corresponds to L1 parameter 'SRS-GroupSequenceHopping' (see 38.211, section FFS_Section) - groupOrSequenceHopping INTEGER (0..2) OPTIONAL, -- WS modification: was FFS_Value, 38.211 suggests this range - -- Time domain behavior of SRS resource configuration - -- Corresponds to L1 parameter 'SRS-ResourceConfigType' (see 38.214, section 6.2.1) + groupOrSequenceHopping ENUMERATED { neither, groupHopping, sequenceHopping }, + -- Time domain behavior of SRS resource configuration. + -- Corresponds to L1 parameter 'SRS-ResourceConfigType' (see 38.214, section 6.2.1). + -- For codebook based uplink transmission, the network configures SRS resources in the same resource set with the same + -- time domain behavior on periodic, aperiodic and semi-persistent SRS. -- FFS: Add configuration parameters for the different SRS resource types? resourceType CHOICE { aperiodic SEQUENCE { + ... }, semi-persistent SEQUENCE { + -- Periodicity and slot offset for for this SRS resource. All values in "number of slots". + -- sl1 corresponds to a periodicity of 1 slot, value sl2 corresponds to a periodicity of 2 slots, and so on. + -- For each periodicity the corresponding offset is given in number of slots. For periodicity sl1 the offset is 0 slots. + -- Corresponds to L1 parameter 'SRS-SlotConfig' (see 38.214, section 6.2.1) + periodicityAndOffset-sp SRS-PeriodicityAndOffset, + ... }, periodic SEQUENCE { + -- Periodicity and slot offset for for this SRS resource. All values in "number of slots" + -- sl1 corresponds to a periodicity of 1 slot, value sl2 corresponds to a periodicity of 2 slots, and so on. + -- For each periodicity the corresponding offset is given in number of slots. For periodicity sl1 the offset is 0 slots. + -- Corresponds to L1 parameter 'SRS-SlotConfig' (see 38.214, section 6.2.1) + periodicityAndOffset-p SRS-PeriodicityAndOffset, + ... } - } OPTIONAL, -- Need M - -- Periodicity and slot offset for periodic/semi-persistent SRS - -- Corresponds to L1 parameter 'SRS-SlotConfig' (see 38.214, section 6.2.1) - -- FFS_Value: RAN1 discusses whether more values for other subcarrier spacings are needed. - periodicityAndOffset CHOICE { - sl2 INTEGER(0..1), - sl5 INTEGER(0..4), - sl10 INTEGER(0..9), - sl20 INTEGER(0..19), - sl40 INTEGER(0..39), - sl80 INTEGER(0..79), - sl160 INTEGER(0..159), - sl320 INTEGER(0..319) }, - -- Sequence ID. Corresponds to L1 parameter 'SRS-SequenceId' (see 38.214, section 6.2.1) - sequenceId NULL, -- WS modification: was TYPE_FFS! - -- SRS antenna switching. Corresponds to L1 parameter 'SRS-AntSwitching' (see 38.211, section 6.2.1) - antennaSwitching NULL, -- WS modification: was TYPE_FFS! - -- Includes parameters for configuration of carrier based SRS switching - -- Corresponds to L1 parameter 'SRS-CarrierSwitching' (see 38,214, section FFS_Section) - carrierSwitching NULL OPTIONAL, -- WS modification: was FFS_Value - -- Parameter(s) definiing cyclic shift configuration. Corresponds to L1 parameter 'SRS-CyclicShiftConfig' (see 38.214, section 6.2.1) - cyclicShift INTEGER (0..12) OPTIONAL, -- WS modification: was FFS_Value but 38.211 suggests this range + -- Sequence ID used to initialize psedo random group and sequence hopping. + -- Corresponds to L1 parameter 'SRS-SequenceId' (see 38.214, section 6.2.1) + sequenceId BIT STRING (SIZE (10)), + -- Configuration of the spatial relation between a reference RS and the target SRS. Reference RS can be SSB/CSI-RS/SRS -- Corresponds to L1 parameter 'SRS-SpatialRelationInfo' (see 38.214, section 6.2.1) - spatialRelationInfo ENUMERATED {ssb-pbch, csi-rs, srs} OPTIONAL -- WS modification: was FFS_Value, 38.214 suggests those values + spatialRelationInfo CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId, + srs SRS-ResourceId + } OPTIONAL, -- Need R + ... } SRS-ResourceId ::= INTEGER (0..maxNrofSRS-Resources-1) +SRS-PeriodicityAndOffset ::= CHOICE { + sl1 NULL, + sl2 INTEGER(0..1), + sl4 INTEGER(0..3), + sl5 INTEGER(0..4), + sl8 INTEGER(0..7), + sl10 INTEGER(0..9), + sl16 INTEGER(0..15), + sl20 INTEGER(0..19), + sl32 INTEGER(0..31), + sl40 INTEGER(0..39), + sl64 INTEGER(0..63), + sl80 INTEGER(0..79), + sl160 INTEGER(0..159), + sl320 INTEGER(0..319), + sl640 INTEGER(0..639), + sl1280 INTEGER(0..1279), + sl2560 INTEGER(0..2559) +} + -- TAG-SRS-CONFIG-STOP --- TAG-SUBCARRIER-SPACING-START +-- TAG-SRS-CARRIERSWITCHING-START +SRS-CarrierSwitching ::= SEQUENCE { + + -- Indicates the serving cell whose UL transmission may be interrupted during SRS transmission on a PUSCH-less cell. + -- During SRS transmission on a PUSCH-less cell, the UE may temporarily suspend the UL transmission on a serving cell with PUSCH + -- in the same CG to allow the PUSCH-less cell to transmit SRS. (see 38.214, section 6.2.1.3) + srs-SwitchFromServCellIndex INTEGER (0..31) OPTIONAL, -- Cond Setup + + -- Network configures the UE with either typeA-SRS-TPC-PDCCH-Group or typeB-SRS-TPC-PDCCH-Group, if any. + srs-TPC-PDCCH-Group CHOICE { + -- Type A trigger configuration for SRS transmission on a PUSCH-less SCell. + -- Corresponds to L1 parameter 'typeA-SRS-TPC-PDCCH-Group' (see 38.212, 38.213, section 7.3.1, 11.3) + typeA SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config, + -- Type B trigger configuration for SRS transmission on a PUSCH-less SCell. + -- Corresponds to L1 parameter 'typeB-SRS-TPC-PDCCH-Config' (see 38.212, 38.213, section 7.3.1, 11.3) + typeB SRS-TPC-PDCCH-Config + } OPTIONAL, -- Cond Setup + + -- Maps a specific cell to a given SFI value within the DCI message + -- Corresponds to L1 parameter 'SRS-cell-to-SFI' (see 38.212, 38.213, section 7.3.1, 11.3) + srs-CellToSFI SEQUENCE (SIZE (1..maxNrofServingCells)) OF SlotFormatCombinationsPerCell OPTIONAL, -- Cond Setup + + -- A set of serving cells for monitoring PDCCH conveying SRS DCI format with CRC scrambled by TPC-SRS-RNTI + -- Corresponds to L1 parameter 'SRS-monitoring-cells' (see 38.212, 38.213, section 7.3.1, 11.3) + monitoringCells SEQUENCE (SIZE (1..maxNrofServingCells)) OF ServCellIndex OPTIONAL, -- Cond Setup + ... +} --- Check value range! Currently used for subcarrierSpacingCommon (SIB1, Msg2, Msg4 --- FFS: Replace this 2-bit field by a 1-bit field: ENUMERATED {sc1, sc2}. Then define that sc1 = 15 kHz and sc2 = 30 kHz --- when carrier frequency < 6 GHz and sc1 = 60 kHz and sc2 = 120 kHz when carrier frequency is > 6GHz? -SubcarrierSpacing ::= ENUMERATED {kHz15, kHz30, kHz60, kHz120} +-- One trigger configuration for SRS-Carrier Switching. (see 38.212, 38.213, section 7.3.1, 11.3) +SRS-TPC-PDCCH-Config ::= SEQUENCE { + -- The starting bit position of a block within the group DCI with SRS request fields (optional) and TPC commands + -- for a PUSCH-less SCell. (see 38.212, 38.213, section 7.3.1, 11.3) + startingBitOfFormat2-3 INTEGER (1..31) OPTIONAL, -- Cond Setup + -- The type of a field within the group DCI with SRS request fields (optional) for a PUSCH-less SCell, + -- which indicates how many bits in the field are for SRS request (0 or 1/2). + -- Note that for Type A, there is a common SRS request field for all SCells in the set, but each SCell has its + -- own TPC command bits. See TS 38.212. Network configures this field with the same value for all PUSCH-less SCells. + -- (see 38.212, 38.213, section 7.3.1, 11.3) + fieldTypeFormat2-3 INTEGER (0..1) OPTIONAL, -- Cond Setup + -- A list of paris of [cc-SetIndex; cc-IndexInOneCC-Set] (see 38.212, 38.213, section 7.3.1, 11.3) + -- FFS: Improve description. What is a "CC"? Where is a CC-Set defined? ... + srs-CC-SetIndexlist SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex OPTIONAL -- Cond Setup +} --- 15 or 30 kHz (<6GHz), 120 and 240 kHz (>6GHz). -SubcarrierSpacingSSB ::= ENUMERATED {kHz15, kHz30, kHz120, kHz240} +SRS-CC-SetIndex ::= SEQUENCE { + -- Indicates the CC set index for Type A associated (see 38.212, 38.213, section 7.3.1, 11.3) + cc-SetIndex INTEGER (0..3) OPTIONAL, -- Cond Setup + -- Indicates the CC index in one CC set for Type A (see 38.212, 38.213, section 7.3.1, 11.3) + cc-IndexInOneCC-Set INTEGER (0..7) OPTIONAL -- Cond Setup +} + +-- TAG-SRS-CARRIERSWITCHING-STOP +-- TAG-SSB-INDEX-START + +SSB-Index ::= INTEGER (0..63) + +-- TAG-SSB-INDEX-STOP +-- TAG-SUBCARRIER-SPACING-START + +-- The subcarrier spacing supported in NR. Restrictions applicable for certain frequencies, channels or signals are clarified +-- in the fields that use this IE. +SubcarrierSpacing ::= ENUMERATED {kHz15, kHz30, kHz60, kHz120, kHz240, spare3, spare2, spare1} -SubcarrierSpacingRACH ::= NULL -- WS modification: was TYPE_FFS! -- TAG-SUBCARRIER-SPACING-STOP +-- TAG-TCI-STATE-START + +TCI-State ::= SEQUENCE { + tci-StateId TCI-StateId, + qcl-Type1 QCL-Info, + qcl-Type2 QCL-Info OPTIONAL, -- Need R + nrofPTRS-Ports ENUMERATED {n1, n2} OPTIONAL, -- Need R + ... +} + +QCL-Info ::= SEQUENCE { + + -- The carrier which the RS is located in. If the field is absent, it applies to the serving cell in which the TCI-State is configured + cell ServCellIndex OPTIONAL, -- Need R + + -- The DL BWP which the RS is located in. + bwp-Id BWP-Id OPTIONAL, -- Cond CSI-RS-Indicated + -- Cond NZP-CSI-RS-Indicated: mandatory if csi-rs or csi-RS-for-tracking is included, absent otherwise + referenceSignal CHOICE { + csi-rs NZP-CSI-RS-ResourceId, + ssb SSB-Index, + -- A set of CSI-RS resources for tracking + csi-RS-for-tracking NZP-CSI-RS-ResourceSetId + }, + qcl-Type ENUMERATED {typeA, typeB, typeC, typeD}, + ... +} + +-- TAG-TCI-STATE-STOP +-- TAG-TCI-STATEID-START + +TCI-StateId ::= INTEGER (0..maxNrofTCI-States-1) + +-- TAG-TCI-STATEID-STOP +-- TAG-TDD-UL-DL-CONFIG-START + +TDD-UL-DL-ConfigCommon ::= SEQUENCE { + -- Reference SCS used to determine the time domain boundaries in the UL-DL pattern which must be common across all subcarrier specific + -- virtual carriers, i.e., independent of the actual subcarrier spacing using for data transmission. + -- Only the values 15 or 30 kHz (<6GHz), 60 or 120 kHz (>6GHz) are applicable. + -- Corresponds to L1 parameter 'reference-SCS' (see 38.211, section FFS_Section) + referenceSubcarrierSpacing SubcarrierSpacing OPTIONAL, + -- Periodicity of the DL-UL pattern. Corresponds to L1 parameter 'DL-UL-transmission-periodicity' (see 38.211, section FFS_Section) + dl-UL-TransmissionPeriodicity ENUMERATED {ms0p5, ms0p625, ms1, ms1p25, ms2, ms2p5, ms5, ms10} OPTIONAL, + + -- Number of consecutive full DL slots at the beginning of each DL-UL pattern. + -- Corresponds to L1 parameter 'number-of-DL-slots' (see 38.211, Table 4.3.2-1) + nrofDownlinkSlots INTEGER (0..maxNrofSlots) OPTIONAL, + + -- Number of consecutive DL symbols in the beginning of the slot following the last full DL slot (as derived from nrofDownlinkSlots). + -- If the field is absent or released, there is no partial-downlink slot. + -- Corresponds to L1 parameter 'number-of-DL-symbols-common' (see 38.211, section FFS_Section). + nrofDownlinkSymbols INTEGER (0..maxNrofSymbols-1) OPTIONAL, -- Need R + + -- Number of consecutive full UL slots at the end of each DL-UL pattern. + -- Corresponds to L1 parameter 'number-of-UL-slots' (see 38.211, Table 4.3.2-1) + nrofUplinkSlots INTEGER (0..maxNrofSlots) OPTIONAL, + + -- Number of consecutive UL symbols in the end of the slot preceding the first full UL slot (as derived from nrofUplinkSlots). + -- If the field is absent or released, there is no partial-uplink slot. + -- Corresponds to L1 parameter 'number-of-UL-symbols-common' (see 38.211, section FFS_Section) + nrofUplinkSymbols INTEGER (0..maxNrofSymbols-1) OPTIONAL -- Need R +} + +TDD-UL-DL-ConfigDedicated ::= SEQUENCE { + -- The slotSpecificConfiguration allows overriding UL/DL allocations provided in tdd-UL-DL-configurationCommon. + -- FFS_ASN1: Consider making this an AddMod/Release list + -- FFS_ASN1: Replace absolute numbers by variables... once RAN1 confirms. + -- FFS_CHECK: This list will grow very large if used for many slots. + slotSpecificConfigurationsToAddModList SEQUENCE (SIZE (1..maxNrofSlots)) OF TDD-UL-DL-SlotConfig OPTIONAL, -- Need N + slotSpecificConfigurationsToreleaseList SEQUENCE (SIZE (1..maxNrofSlots)) OF TDD-UL-DL-SlotIndex OPTIONAL -- Need N +} + +TDD-UL-DL-SlotConfig ::= SEQUENCE { + -- Identifies a slot within a dl-UL-TransmissionPeriodicity (given in tdd-UL-DL-configurationCommon) + slotIndex TDD-UL-DL-SlotIndex, + + -- The direction (downlink or uplink) for the symbols in this slot. "allDownlink" indicates that all symbols in this slot are used + -- for downlink; "allUplink" indicates that all symbols in this slot are used for uplink; "explicit" indicates explicitly how many symbols + -- in the beginning and end of this slot are allocated to downlink and uplink, respectively. + symbols CHOICE { + allDownlink NULL, + allUplink NULL, + explicit SEQUENCE { + -- Number of consecutive DL symbols in the beginning of the slot identified by slotIndex. + -- If the field is absent the UE assumes that there are no leading DL symbols. + -- Corresponds to L1 parameter 'number-of-DL-symbols-dedicated' (see 38.211, section FFS_Section) + nrofDownlinkSymbols INTEGER (1..maxNrofSymbols-1) OPTIONAL, -- Need S + + -- Number of consecutive UL symbols in the end of the slot identified by slotIndex. + -- If the field is absent the UE assumes that there are no trailing UL symbols. + -- Corresponds to L1 parameter 'number-of-UL-symbols-dedicated' (see 38.211, section FFS_Section) + nrofUplinkSymbols INTEGER (1..maxNrofSymbols-1) OPTIONAL -- Need S + } + } +} + +TDD-UL-DL-SlotIndex ::= INTEGER (0..maxNrofSlots-1) + +-- TAG-TDD-UL-DL-CONFIG-STOP + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + +-- TAG-ZP-CSI-RS-RESOURCE-START + +ZP-CSI-RS-Resource ::= SEQUENCE { + -- ZP CSI-RS resource configuration ID + -- Corresponds to L1 parameter 'ZP-CSI-RS-ResourceConfigId' (see 38.214, section 5.1.4.2) + zp-CSI-RS-ResourceId ZP-CSI-RS-ResourceId, + -- OFDM symbol and subcarrier occupancy of the ZP-CSI-RS resource within a slot + resourceMapping CSI-RS-ResourceMapping, + -- Periodicity and slot offset for periodic/semi-persistent ZP-CSI-RS + -- Corresponds to L1 parameter 'ZP-CSI-RS-timeConfig' (see 38.214, section 5.1.4.2) + periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, --Cond PeriodicOrSemiPersistent + + ... +} + +ZP-CSI-RS-ResourceId ::= INTEGER (0..maxNrofZP-CSI-RS-Resources-1) + +-- TAG-ZP-CSI-RS-RESOURCE-STOP +-- TAG-ZP-CSI-RS-RESOURCESET-START + +ZP-CSI-RS-ResourceSet ::= SEQUENCE { + zp-CSI-RS-ResourceSetId ZP-CSI-RS-ResourceSetId, + -- The list of ZP-CSI-RS-ResourceId identifying the ZP-CSI-RS-Resource elements belonging to this set. + zp-CSI-RS-ResourceIdList SEQUENCE (SIZE(1..maxNrofZP-CSI-RS-ResourcesPerSet)) OF ZP-CSI-RS-ResourceId, + -- Time domain behavior of ZP-CSI-RS resource configuration. + -- Corresponds to L1 parameter 'ZP-CSI-RS-ResourceConfigType' (see 38.214, section 5.1.4.2) + resourceType ENUMERATED {aperiodic, semiPersistent, periodic}, + ... +} + +-- TAG-ZP-CSI-RS-RESOURCESET-STOP +-- TAG-ZP-CSI-RS-RESOURCESETID-START + +ZP-CSI-RS-ResourceSetId ::= INTEGER (0..maxNrofZP-CSI-RS-ResourceSets-1) + +-- TAG-ZP-CSI-RS-RESOURCESETID-STOP +-- TAG-BANDCOMBINATIONLIST-START BandCombinationList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination BandCombination ::= SEQUENCE { - -- FFS How to decouple DL and UL - -- FFS How to address NC CA in relation to carrier separation - -- intraBandSimultaneousTxRx will be added with FFS (per UE or per band combination) - -- multipleTimingAdvance will be added with FFS (per UE or per band combination) - -- singleTx will be included per band combination - -- scalingFactor will be included per band per band combination + bandAndDL-ParametersList BandAndDL-ParametersList, + bandCombinationsUL BIT STRING (SIZE (1.. maxBandComb)), + bandCombinationParametersList SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationParameters OPTIONAL } +BandAndDL-ParametersList ::= SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandAndDL-Parameters -RAT-Type ::= ENUMERATED {nr, mrdc, spare1, ...} +BandAndDL-Parameters ::= CHOICE { + bandAndDL-ParametersEUTRA BandAndDL-ParametersEUTRA, + bandAndDL-ParametersNR BandAndDL-ParametersNR +} +BandCombinationParameters ::= SEQUENCE { + ca-ParametersNR CA-ParametersNR OPTIONAL, + mrdc-Parameters MRDC-Parameters OPTIONAL +} --- FFS utra, geran-cs, geran-ps and cdma2000-1XRTT +CA-ParametersNR ::= SEQUENCE { + multipleTimingAdvances ENUMERATED {supported} OPTIONAL, +-- R4 2-5: Simultaneous reception and transmission for inter band CA (TDD-TDD or TDD-FDD) + simultaneousRxTxInterBandCA ENUMERATED {supported} OPTIONAL, +-- BCS related to R4 2-1 and Updated CA BW class in R4-1803374 + supportedBandwidthCombinationSet BIT STRING (SIZE (1..32)) OPTIONAL +} -UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0.. maxRAT-CapabilityContainers)) OF UE-CapabilityRAT-Container +MRDC-Parameters ::= SEQUENCE { + singleUL-Transmission ENUMERATED {supported} OPTIONAL, +-- R4 1-10: Support of EN-DC with LTE-NR coexistence in UL sharing from UE perspective + ul-SharingEUTRA-NR ENUMERATED {supported} OPTIONAL, +-- R4 1-11: Switching time between LTE UL and NR UL for EN-DC with LTE-NR coexistence in UL sharing from UE perspective + ul-SwitchingTimeEUTRA-NR ENUMERATED {type1, type2} OPTIONAL, +-- R4 2-4: Simultaneous reception and transmission for inter-band EN-DC (TDD-TDD or TDD-FDD) + simultaneousRxTxInterBandENDC ENUMERATED {supported} OPTIONAL, +-- R4 2-6: Asynchronous FDD-FDD intra-band EN-DC + asyncIntraBandENDC ENUMERATED {supported} OPTIONAL, + basebandProcesingCombinationMRDC BasebandProcessingCombinationMRDC +} -UE-CapabilityRAT-Container ::= SEQUENCE { - rat-Type RAT-Type, - ueCapabilityRAT-Container OCTET STRING +BandAndDL-ParametersEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicatorEUTRA, + ca-BandwidthClassDL-EUTRA CA-BandwidthClassEUTRA OPTIONAL, + intraBandContiguousCC-InfoDL-EUTRA-List SEQUENCE (SIZE (1.. maxNrofServingCellsEUTRA)) OF IntraBandContiguousCC-InfoDL-EUTRA OPTIONAL } +BandAndDL-ParametersNR ::= SEQUENCE { + bandNR FreqBandIndicatorNR, + ca-BandwidthClassDL CA-BandwidthClassNR OPTIONAL, +-- R4 2-3: Non-contiguous intra-band CA frequency separation class for FR2 as in the RAN4 LS R4-1803363 + intraBandFreqSeparationDL FreqSeparationClass OPTIONAL, + intraBandContiguousCC-InfoDL-List SEQUENCE (SIZE (1.. maxNrofServingCells)) OF IntraBandContiguousCC-InfoDL OPTIONAL +} -UE-MRDC-Capability ::= SEQUENCE { - measParameters-MRDC MeasParameters-MRDC, - rf-Parameters-MRDC RF-Parameters-MRDC, - phyLayerParameters-MRDC PhyLayerParameters-MRDC - -- FFS on other parameters +IntraBandContiguousCC-InfoDL ::= SEQUENCE { +-- Related to RAN4 LS R2-1804078 + maxNumberMIMO-LayersPDSCH MIMO-LayersDL OPTIONAL } -RF-Parameters-MRDC ::= SEQUENCE { - supportedBandCombination BandCombinationList - -- FFS on other parameters +IntraBandContiguousCC-InfoDL-EUTRA ::= SEQUENCE { +-- Related to RAN4 LS R2-1804078 + mimo-CapabilityDL ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL } -PhyLayerParameters-MRDC ::= SEQUENCE { - supportedBasebandProcessingCombination-MRDC BasebandProcessingCombination-MRDC - -- FFS if supportedBasebandProcessingCombination-MRDC is included here or BandCombinationList - -- FFS on other parameters +-- TAG-BANDCOMBINATIONLIST-STOP +-- TAG-BANDCOMBINATIONPARAMETERSULLIST-START + +BandCombinationParametersUL-List ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationParametersUL + +BandCombinationParametersUL ::= SEQUENCE (SIZE (1.. maxSimultaneousBands)) OF BandParametersUL + +BandParametersUL ::= CHOICE { + bandParametersUL-EUTRA BandParametersUL-EUTRA, + bandParametersUL-NR BandParametersUL-NR } -BasebandProcessingCombination-MRDC ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF LinkedBasebandProcessingCombination +BandParametersUL-EUTRA ::= SEQUENCE { + ca-BandwidthClassUL-EUTRA CA-BandwidthClassEUTRA OPTIONAL, + intraBandContiguousCC-InfoUL-EUTRA-List SEQUENCE (SIZE (1.. maxNrofServingCellsEUTRA)) OF IntraBandContiguousCC-InfoUL-EUTRA OPTIONAL +} -LinkedBasebandProcessingCombination ::= SEQUENCE { - basebandProcessingCombinationIndex BasebandProcessingCombinationIndex, - basebandProcessingCombinationLinkedIndex SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandProcessingCombinationIndex +BandParametersUL-NR ::= SEQUENCE { + ca-BandwidthClassUL CA-BandwidthClassNR OPTIONAL, +-- R4 2-3: Non-contiguous intra-band CA frequency separation class for FR2 as in the RAN4 LS R4-1803363 + intraBandFreqSeparationUL FreqSeparationClass OPTIONAL, + intraBandContiguousCC-InfoUL-List SEQUENCE (SIZE (1.. maxNrofServingCells)) OF IntraBandContiguousCC-InfoUL OPTIONAL } -BasebandProcessingCombinationIndex ::= INTEGER (1..maxBasebandProcComb) +IntraBandContiguousCC-InfoUL ::= SEQUENCE { +-- Related to RAN4 LS R2-1804078 + maxNumberMIMO-LayersCB-PUSCH MIMO-LayersUL OPTIONAL, + maxNumberMIMO-LayersNonCB-PUSCH MIMO-LayersUL OPTIONAL +} -MeasParameters-MRDC ::= SEQUENCE { - intraCarrierConcurrentMeas ENUMERATED {supported} OPTIONAL, - independentGapConfig ENUMERATED {supported} OPTIONAL, - sstd-MeasType1 ENUMERATED {supported} OPTIONAL +IntraBandContiguousCC-InfoUL-EUTRA ::= SEQUENCE { +-- Related to RAN4 LS R2-1804078 + mimo-CapabilityUL ENUMERATED {twoLayers, fourLayers} OPTIONAL } -UE-NR-Capability ::= SEQUENCE { - pdcp-Parameters PDCP-Parameters, - rlc-Parameters RLC-Parameters, -- FFS OPTIONAL - mac-Parameters MAC-Parameters, -- FFS OPTIONAL - phyLayerParameters PhyLayerParameters, - rf-Parameters RF-Parameters, - nonCriticalExtension SEQUENCE {} OPTIONAL +-- TAG-BANDCOMBINATIONPARAMETERSULLIST-STOP +-- TAG-BASEBANDCOMBINATIONPARAMETERSULLIST-START + +BasebandCombinationParametersUL-List ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandCombinationParametersUL + +BasebandCombinationParametersUL ::= SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BasebandParametersPerBandUL + +BasebandParametersPerBandUL ::= SEQUENCE { + ca-BandwidthClassUL CA-BandwidthClassNR, + freqRange ENUMERATED {fr1, fr2}, + basebandParametersPerCC-UL SEQUENCE (SIZE (1.. maxNrofServingCells)) OF BasebandParametersPerCC-UL } -PhyLayerParameters ::= SEQUENCE { - supportedBasebandProcessingCombination SupportedBasebandProcessingCombination - -- FFS on other parameters +BasebandParametersPerCC-UL ::= SEQUENCE { +-- R4 2-2: Simultaneous reception or transmission with same or different numerologies in CA +-- It is expressed by the combination of SCS whether simultaneous RxTx is supported or not. + supportedSubcarrierSpacingUL SubcarrierSpacing, +-- Accoding to the RAN4 LS R4-1803563, maximum Bandwidth supported per CC is added in BPC +-- FFS how to work together with BCS and max BW for each CC to be defined for each CA band combination in the RAN4 spec. + supportedBandwidthUL CHOICE { + fr1 ENUMERATED {mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100}, + fr2 ENUMERATED {mhz50, mhz100, mhz200, mhz400} + }, + -- R2-1800012. To be confirmed by RAN1 + scalingFactor0dot75 ENUMERATED {supported} OPTIONAL, +-- R1 2-14: Codebook based PUSCH MIMO transmission. Absence of this field implies that CB-based PUSCH is not supported. + maxNumberMIMO-LayersCB-PUSCH MIMO-LayersUL OPTIONAL, +-- R1 2-15: Non-codebook based PUSCH MIMO transmission. Absence of this field implies that Non-CB-based PUSCH is not supported. + maxNumberMIMO-LayersNonCB-PUSCH MIMO-LayersUL OPTIONAL, +-- Accoding to the RAN4 LS R4-1803563, modulation order is added per CC granularity in BPC +-- FFS whether all of modulation order specified in the spec need to be signalled. +-- FFS how to address the requirements agreed by RAN4, e.g. mandaotry w/o capabiltiy for 64QAM. mandaotry with capabiltiy for DL 256QAM in FR1. + supportedModulationOrderUL ModulationOrder OPTIONAL, +-- R1 2-53: SRS resources + supportedSRS-Resources SRS-Resources OPTIONAL, +-- R1 2-55: SRS Tx switch + srs-TxSwitch SRS-TxSwitch OPTIONAL, +-- R1 2-57: Support low latency CSI feedback + lowLatencyCSI-Feedback ENUMERATED {supported} OPTIONAL, +-- R1 5-12 & 5-12a: Up to 2/7 PUSCHs per slot for different TBs + pusch-DifferentTB-PerSlot SEQUENCE { + scs-15kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-30kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-60kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-120kHz ENUMERATED {upto2, upto7} OPTIONAL + } OPTIONAL, +-- R1 6-7: Two PUCCH group + twoPUCCH-Group ENUMERATED {supported} OPTIONAL, +-- R1 6-8: Different numerology across PUCCH groups + diffNumerologyAcrossPUCCH-Group ENUMERATED {supported} OPTIONAL, +-- R1 6-9: Different numerologies across carriers within the same PUCCH group + diffNumerologyWithinPUCCH-Group ENUMERATED {supported} OPTIONAL, +-- R1 6-10: Cross carrier scheduling + crossCarrierScheduling ENUMERATED {supported} OPTIONAL, +-- R1 6-11: Number of supported TAGs + supportedNumberTAG ENUMERATED {n2, n3, n4} OPTIONAL, +-- R1 6-18: Supplemental uplink with dynamic switch + dynamicSwitchSUL ENUMERATED {supported} OPTIONAL, +-- R1 6-19: Simultaneous transmission of SRS on an SUL/non-SUL carrier and PUSCH/PUCCH/SRS/PRACH on the other UL carrier in the same cell +-- Details on the channel/signal combination are to be described in TS 38.306 + simultaneousTxSUL-NonSUL ENUMERATED {supported} OPTIONAL, +-- R1 6-22: UL search space sharing for CA + searchSpaceSharingCA-UL ENUMERATED {supported} OPTIONAL +} + +-- TAG-BASEBANDCOMBINATIONPARAMETERSULLIST-STOP +-- TAG-BASEBANDPROCESSINGCOMBINATIONMRDC-START + +BasebandProcessingCombinationMRDC ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandProcessingCombinationLink + +BasebandProcessingCombinationLink ::= SEQUENCE { + basebandProcessingCombinationIndexMN BasebandProcessingCombinationIndex, + basebandProcessingCombinationLinkedIndexSN SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandProcessingCombinationIndex } -RF-Parameters ::= SEQUENCE { - supportedBandListNR SupportedBandListNR, - supportedBandCombination BandCombinationList, - intraBandAsyncFDD ENUMERATED {supported} OPTIONAL - -- FFS Whether intraBandAsyncFDD is included per UE or per band combination +BasebandProcessingCombinationIndex ::= INTEGER (1..maxBasebandProcComb) + +-- TAG-BASEBANDPROCESSINGCOMBINATIONMRDC-STOP +-- TAG-CA-BANDWIDTHCLASSNR-START + +-- Updated based on R4-1803374 +CA-BandwidthClassNR ::= ENUMERATED {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, ...} + +-- TAG-CA-BANDWIDTHCLASSNR-STOP +-- TAG-CA-BANDWIDTHCLASSEUTRA-START + +CA-BandwidthClassEUTRA ::= ENUMERATED {a, b, c, d, e, f, ...} + +-- TAG-CA-BANDWIDTHCLASSEUTRA-STOP +-- TAG-FREQ-BAND-INDICATOR-EUTRA-START + +FreqBandIndicatorEUTRA ::= INTEGER (1..maxBandsEUTRA) + +-- TAG-FREQ-BAND-INDICATOR-EUTRA-STOP +-- TAG-FREQBANDLIST-START + +FreqBandList ::= SEQUENCE (SIZE (1..maxBandsMRDC)) OF FreqBandInformation + +FreqBandInformation ::= CHOICE { + bandEUTRA FreqBandIndicatorEUTRA, + bandNR FreqBandIndicatorNR } -SupportedBandListNR ::= SEQUENCE (SIZE (1..maxBands)) OF BandNR +-- TAG-FREQBANDLIST-STOP +-- TAG-FREQSEPARATIONCLASS-START + +FreqSeparationClass ::= ENUMERATED {c1, c2, c3, ...} + +-- TAG-FREQSEPARATIONCLASS-STOP +-- TAG-MIMO-LAYERS-START + +MIMO-LayersDL ::= ENUMERATED {twoLayers, fourLayers, eightLayers} + +MIMO-LayersUL ::= ENUMERATED {oneLayer, twoLayers, fourLayers} + +-- TAG-MIMO-LAYERS-STOP +-- TAG-MODULATION-ORDER-START + +ModulationOrder ::= ENUMERATED {bpsk-halfpi, bpsk, qpsk, qam16, qam64, qam256} -SupportedBandCombination ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination +-- TAG-MODULATION-ORDER-STOP +-- TAG-RAT-TYPE-START + +RAT-Type ::= ENUMERATED {nr, eutra-nr, spare2, spare1, ...} + +-- TAG-RAT-TYPE-STOP +-- TAG-SUPPORTEDBASEBANDPROCESSINGCOMBINATION-START SupportedBasebandProcessingCombination ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandProcessingCombination BasebandProcessingCombination ::= SEQUENCE { - basebandParametersPerBand SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BasebandParametersPerBand - -- FFS on other parameters + basebandParametersDL SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BasebandParametersPerBandDL, + basebandParametersUL BIT STRING (SIZE (1..maxBasebandProcComb))} + +BasebandParametersPerBandDL ::= SEQUENCE { + ca-BandwidthClassDL CA-BandwidthClassNR, + freqRange ENUMERATED {fr1, fr2}, + basebandParametersPerCC-DL SEQUENCE (SIZE (1.. maxNrofServingCells)) OF BasebandParametersPerCC-DL +} + +BasebandParametersPerCC-DL ::= SEQUENCE { +-- R4 2-2: Simultaneous reception or transmission with same or different numerologies in CA +-- It is expressed by the combination of SCS whether simultaneous RxTx is supported or not. + supportedSubcarrierSpacingDL SubcarrierSpacing, +-- Accoding to the RAN4 LS R4-1803563, maximum Bandwidth supported per CC is added in BPC +-- FFS how to work together with BCS and max BW for each CC to be defined for each CA band combination in the RAN4 spec. + supportedBandwidthDL CHOICE { + fr1 ENUMERATED {mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100}, + fr2 ENUMERATED {mhz50, mhz100, mhz200, mhz400} + }, +-- R2-1800012. To be confirmed by RAN1 + scalingFactor0dot75 ENUMERATED {supported} OPTIONAL, +-- R1 2-2: PDSCH beam switching + timeDurationForQCL SEQUENCE { + scs-60kHz ENUMERATED {s7, s14, s28} OPTIONAL, + sch-120kHz ENUMERATED {s14, s28} OPTIONAL + } OPTIONAL, +-- R1 1-10: Support of SCell without SS/PBCH block + scellWithoutSSB ENUMERATED {supported} OPTIONAL, +-- R1 1-11: Support of CSI-RS RRM measurement for SCell without SS/PBCH block + csi-RS-MeasSCellWithoutSSB ENUMERATED {supported} OPTIONAL, +-- R1 2-3: PDSCH MIMO layers. Absence of this field implies support of one layer. + maxNumberMIMO-LayersPDSCH MIMO-LayersDL OPTIONAL, +-- Accoding to the RAN4 LS R4-1803563, modulation order is added per CC granularity in BPC +-- FFS whether all of modulation order specified in the spec need to be signalled. +-- FFS how to address the requirements agreed by RAN4, e.g. mandaotry w/o capabiltiy for 64QAM. mandaotry with capabiltiy for DL 256QAM in FR1. + supportedModulationOrderDL ModulationOrder OPTIONAL, +-- R1 2-15a: Association between CSI-RS and SRS + srs-AssocCSI-RS ENUMERATED {supported} OPTIONAL, +-- R1 3-1a: For type 1 CSS with dedicated RRC configuration and for type 3 CSS, UE specific SS, CORESET resource allocation of 6RB bit-map and duration 3 OFDM symbols for FR2 + type1-3-CSS ENUMERATED {supported} OPTIONAL, +-- R1 3-5 & 3-5a: For type 1 with dedicated RRC configuration, type 3, and UE-SS,, monitoring occasion can be any OFDM symbol(s) of a slot for Case 2 (with a DCI gap) + pdcchMonitoringAnyOccasions ENUMERATED {withoutDCI-gap, withDCI-gap} OPTIONAL, +-- R1 5-1a: UE specific RRC configure UL/DL assignment + ue-SpecificUL-DL-Assignment ENUMERATED {supported} OPTIONAL, +-- R1 5-11 & 5-11a: Up to 2/7 unicast PDSCHs per slot for different TBs + pdsch-DifferentTB-PerSlot SEQUENCE { + scs-15kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-30kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-60kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-120kHz ENUMERATED {upto2, upto7} OPTIONAL + } OPTIONAL, +-- R1 6-10: Cross carrier scheduling + crossCarrierScheduling ENUMERATED {supported} OPTIONAL, +-- R1 6-21: DL search space sharing for CA + searchSpaceSharingCA-DL ENUMERATED {supported} OPTIONAL +} + +-- TAG-SUPPORTEDBASEBANDPROCESSINGCOMBINATION-STOP +-- TAG-UE-CAPABILITY-RAT-CONTAINER-LIST-START + +UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0.. maxRAT-CapabilityContainers)) OF UE-CapabilityRAT-Container + +UE-CapabilityRAT-Container ::= SEQUENCE { + rat-Type RAT-Type, + ue-CapabilityRAT-Container OCTET STRING } -BasebandParametersPerBand ::= SEQUENCE { - ca-BandwidthClassDL CA-BandwidthClass, - ca-BandwidthClassUL CA-BandwidthClass, - basebandParametersPerCC SEQUENCE (SIZE (1..maxServCell)) OF BasebandParametersPerCC, - supportedBWPerCC BWPerCC - -- FFS on the need (e.g. if ca-BandwidthClass is sufficient to cover BWPerCC) - -- FFS on other parameters +-- TAG-UE-CAPABILITY-RAT-CONTAINER-LIST-STOP +-- TAG-UE-MRDC-CAPABILITY-START + +UE-MRDC-Capability ::= SEQUENCE { + measParametersMRDC MeasParametersMRDC OPTIONAL, + rf-ParametersMRDC RF-ParametersMRDC, + phy-ParametersMRDC Phy-ParametersMRDC OPTIONAL, + generalParametersMRDC GeneralParametersMRDC-XDD-Diff OPTIONAL, + fdd-Add-UE-MRDC-Capabilities UE-MRDC-CapabilityAddXDD-Mode OPTIONAL, + tdd-Add-UE-MRDC-Capabilities UE-MRDC-CapabilityAddXDD-Mode OPTIONAL, + fr1-Add-UE-MRDC-Capabilities UE-MRDC-CapabilityAddFRX-Mode OPTIONAL, + fr2-Add-UE-MRDC-Capabilities UE-MRDC-CapabilityAddFRX-Mode OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } -BasebandParametersPerCC ::= SEQUENCE { - supportedMIMO-CapabilityDL MIMO-Capability OPTIONAL, - supportedMIMO-CapabilityUL MIMO-Capability OPTIONAL, - modulationOrder ModulationOrder, - subCarrierSpacing SubCarrierSpacing - -- FFS if modulationOrder and subCarrierSpacing are included per Band or per CC - -- FFS on other parameters +UE-MRDC-CapabilityAddXDD-Mode ::= SEQUENCE { + phy-ParametersMRDC-XDD-Diff Phy-ParametersMRDC-XDD-Diff OPTIONAL, + measParametersMRDC-XDD-Diff MeasParametersMRDC-XDD-Diff OPTIONAL, + generalParametersMRDC-XDD-Diff GeneralParametersMRDC-XDD-Diff OPTIONAL } -BandNR ::= SEQUENCE { - bandNR FreqBandIndicatorNR, - supportedMIMO-CapabilityDL MIMO-Capability OPTIONAL, - supportedMIMO-CapabilityUL MIMO-Capability OPTIONAL - -- FFS on other parameters +UE-MRDC-CapabilityAddFRX-Mode ::= SEQUENCE { + phy-ParametersMRDC-FRX-Diff Phy-ParametersMRDC-FRX-Diff OPTIONAL, + measParametersMRDC-FRX-Diff MeasParametersMRDC-FRX-Diff +} + +RF-ParametersMRDC ::= SEQUENCE { + supportedBandCombination BandCombinationList, + bandCombinationParametersUL-List BandCombinationParametersUL-List +} + +Phy-ParametersMRDC ::= SEQUENCE { + phy-ParametersMRDC-XDD-Diff Phy-ParametersMRDC-XDD-Diff OPTIONAL, + phy-ParametersMRDC-FRX-Diff Phy-ParametersMRDC-FRX-Diff OPTIONAL +} + +Phy-ParametersMRDC-XDD-Diff ::= SEQUENCE { +-- R1 8-1: Dynamic power sharing for LTE-NR DC + dynamicPowerSharing ENUMERATED {supported} OPTIONAL, +-- R1 6-13 & 8-2: Case 1 Single Tx UL LTE-NR DC + tdm-Pattern ENUMERATED {supported} OPTIONAL +} +Phy-ParametersMRDC-FRX-Diff ::= SEQUENCE { +-- R1 8-1: Dynamic power sharing for LTE-NR DC + dynamicPowerSharing ENUMERATED {supported} OPTIONAL, +-- R1 6-13 & 8-2: Case 1 Single Tx UL LTE-NR DC + tdm-Pattern ENUMERATED {supported} OPTIONAL +} + +MeasParametersMRDC ::= SEQUENCE { + measParametersMRDC-Common MeasParametersMRDC-Common, + measParametersMRDC-XDD-Diff MeasParametersMRDC-XDD-Diff OPTIONAL, + measParametersMRDC-FRX-Diff MeasParametersMRDC-FRX-Diff +} + +MeasParametersMRDC-Common ::= SEQUENCE { +-- R4 3-1: Independent measurement gap configurations for FR1 and FR2 + independentGapConfig ENUMERATED {supported} OPTIONAL +} + +MeasParametersMRDC-XDD-Diff ::= SEQUENCE { + sftd-MeasPSCell ENUMERATED {supported} OPTIONAL, + sftd-MeasNR-Cell ENUMERATED {supported} OPTIONAL +} + +MeasParametersMRDC-FRX-Diff ::= SEQUENCE { +-- R4 3-2: Simultaneous reception of data and SS block with different numerologies when UE conducts the serving cell measurement or intra-frequency measurement + simultaneousRxDataSSB-DiffNumerology ENUMERATED {supported} OPTIONAL +} + +GeneralParametersMRDC-XDD-Diff ::= SEQUENCE { + splitSRB-WithOneUL-Path ENUMERATED {supported} OPTIONAL, + splitDRB-withUL-Both-MCG-SCG ENUMERATED {supported} OPTIONAL, + srb3 ENUMERATED {supported} OPTIONAL } -CA-BandwidthClass ::= ENUMERATED {a, b, c, d, e, f, ...} +-- TAG-UE-MRDC-CAPABILITY-STOP +-- TAG-UE-NR-CAPABILITY-START -MIMO-Capability ::= SEQUENCE { - -- FFS on the parameters +UE-NR-Capability ::= SEQUENCE { + pdcp-Parameters PDCP-Parameters, + rlc-Parameters RLC-Parameters OPTIONAL, + mac-Parameters MAC-Parameters OPTIONAL, + phy-Parameters Phy-Parameters, + rf-Parameters RF-Parameters, + measParameters MeasParameters OPTIONAL, + fdd-Add-UE-NR-Capabilities UE-NR-CapabilityAddXDD-Mode OPTIONAL, + tdd-Add-UE-NR-Capabilities UE-NR-CapabilityAddXDD-Mode OPTIONAL, + fr1-Add-UE-NR-Capabilities UE-NR-CapabilityAddFRX-Mode OPTIONAL, + fr2-Add-UE-NR-Capabilities UE-NR-CapabilityAddFRX-Mode OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } -ModulationOrder ::= SEQUENCE { - -- FFS on the parameters +UE-NR-CapabilityAddXDD-Mode ::= SEQUENCE { + phy-ParametersXDD-Diff Phy-ParametersXDD-Diff OPTIONAL, + mac-ParametersXDD-Diff MAC-ParametersXDD-Diff OPTIONAL, + measParametersXDD-Diff MeasParametersXDD-Diff OPTIONAL +} + +UE-NR-CapabilityAddFRX-Mode ::= SEQUENCE { + phy-ParametersFRX-Diff Phy-ParametersFRX-Diff OPTIONAL, + measParametersFRX-Diff MeasParametersFRX-Diff OPTIONAL +} + +Phy-Parameters ::= SEQUENCE { + phy-ParametersCommon Phy-ParametersCommon OPTIONAL, + phy-ParametersXDD-Diff Phy-ParametersXDD-Diff OPTIONAL, + phy-ParametersFRX-Diff Phy-ParametersFRX-Diff OPTIONAL, + phy-ParametersFR1 Phy-ParametersFR1 OPTIONAL, + phy-ParametersFR2 Phy-ParametersFR2 OPTIONAL, + supportedBasebandProcessingCombination SupportedBasebandProcessingCombination, + basebandCombinationParametersUL-List BasebandCombinationParametersUL-List +} + +Phy-ParametersCommon ::= SEQUENCE { +-- R1 1-9: CSI-RS based CFRA for HO + csi-RS-CFRA-ForHO ENUMERATED {supported} OPTIONAL, +-- R1 2-11: Downlink dynamic PRB bundling (DL) + dynamicPRB-BundlingDL ENUMERATED {supported} OPTIONAL, +-- R1 2-32a: Semi-persistent CSI report on PUCCH + sp-CSI-ReportPUCCH ENUMERATED {supported} OPTIONAL, +-- R1 2-32b: Semi-persistent CSI report on PUSCH + sp-CSI-ReportPUSCH ENUMERATED {supported} OPTIONAL, +-- R1 2-34: NZP-CSI-RS based interference measurement + nzp-CSI-RS-IntefMgmt ENUMERATED {supported} OPTIONAL, +-- R1 2-42: Support Type II SP-CSI feedback on long PUCCH + type2-SP-CSI-Feedback-LongPUCCH ENUMERATED {supported} OPTIONAL, +-- R1 3-3: More than one CORESET per BWP (in addition to CORESET #0) + multipleCORESET ENUMERATED {supported} OPTIONAL, +-- R1 3-6: Dynamic SFI monitoring and dynamic UL/DL determination + dynamicSFI ENUMERATED {supported} OPTIONAL, +-- R1 3-7: Precoder-granularity of CORESET size + precoderGranularityCORESET ENUMERATED {supported} OPTIONAL, +-- R1 4-10: Dynamic HARQ-ACK codebook + dynamicHARQ-ACK-Codebook ENUMERATED {supported} OPTIONAL, +-- R1 4-11: Semi-static HARQ-ACK codebook + semiStaticHARQ-ACK-Codebook ENUMERATED {supported} OPTIONAL, +-- R1 4-12: HARQ-ACK spatial bundling for PUCCH or PUSCH per PUCCH group + spatialBundlingHARQ-ACK ENUMERATED {supported} OPTIONAL, +-- R1 4-21: Dynamic beta-offset configuration and indication for HARQ-ACK and/or CSI + dynamicBetaOffsetInd-HARQ-ACK-CSI ENUMERATED {supported} OPTIONAL, +-- R1 4-23: Repetitions for PUCCH format 1, 3,and 4 over multiple slots with K = 1, 2, 4, 8 + pucch-Repetition-F1-3-4 ENUMERATED {supported} OPTIONAL, +-- R1 5-2: RA type 0 for PUSCH + ra-Type0-PUSCH ENUMERATED {supported} OPTIONAL, +-- R1 5-3: Dynamic switching between RA type 0 and RA type 1 for PDSCH + dynamicSwitchRA-Type0-1-PDSCH ENUMERATED {supported} OPTIONAL, +-- R1 5-4: Dynamic switching between RA type 0 andRA type 1 for PUSCH + dynamicSwitchRA-Type0-1-PUSCH ENUMERATED {supported} OPTIONAL, +-- R1 5-6: PDSCH mapping type A with less than 7 OFDM symbols + pdsch-MappingTypeA ENUMERATED {supported} OPTIONAL, +-- R1 5-6a: PDSCH mapping type B + pdsch-MappingTypeB ENUMERATED {supported} OPTIONAL, +-- R1 5-7: Interleaving for VRB-to-PRB mapping for PDSCH + interleavingVRB-ToPRB-PDSCH ENUMERATED {supported} OPTIONAL, +-- R1 5-8: Interleaving for VRB-to-PRB mapping for PUSCH + interleavingVRB-ToPRB-PUSCH ENUMERATED {supported} OPTIONAL, +-- R1 5-10: Inter-slot frequency hopping for PUSCH + interSlotFreqHopping-PUSCH ENUMERATED {supported} OPTIONAL, +-- R1 5-13: Type 1 configured PUSCH repetitions within a slot + type1-PUSCH-RepetitionOneSlot ENUMERATED {supported} OPTIONAL, +-- R1 5-14: Type 1 configured PUSCH repetitions over multiple slots + type1-PUSCH-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, +-- R1 5-15: Type 2 configured PUSCH repetitions within a slot + type2-PUSCH-RepetitionOneSlot ENUMERATED {supported} OPTIONAL, +-- R1 5-16: Type 2 configured PUSCH repetitions over multiple slots + type2-PUSCH-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, +-- R1 5-17: PUSCH repetitions over multiple slots + pusch-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, +-- R1 5-17a: PDSCH repetitions over multiple slots + pdsch-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, +-- R1 5-18: DL SPS + downlinkSPS ENUMERATED {supported} OPTIONAL, +-- R1 5-19: Type 1 Configured UL grant + configuredUL-GrantType1 ENUMERATED {supported} OPTIONAL, +-- R1 5-20: Type 2 Configured UL grant + configuredUL-GrantType2 ENUMERATED {supported} OPTIONAL, +-- R1 5-21: Pre-emption indication for DL + pre-EmptIndication-DL ENUMERATED {supported} OPTIONAL, +-- R1 5-22 & 5-25: CBG-based re-transmission for DL/UL using CBGTI + cbg-TransIndication BIT STRING (SIZE (2)) OPTIONAL, +-- R1 5-23: CBGFI for CBG-based re-transmission for DL + cbg-FlushIndication-DL ENUMERATED {supported} OPTIONAL, +-- R1 5-24: Dynamic HARQ-ACK codebook using sub-codebooks for CBG-based re-transmission for DL + dynamicHARQ-ACK-CodeB-CBG-Retx-DL ENUMERATED {supported} OPTIONAL, +-- R1 5-26: Semi-static rate-matching resource set configuration for DL + rateMatchingResrcSetSemi-Static ENUMERATED {supported} OPTIONAL, +-- R1 5-27: Dynamic rate-matching resource set configuration for DL + rateMatchingResrcSetDynamic ENUMERATED {supported} OPTIONAL, +-- R1 5-28: Rate-matching around LTE CRS + rateMatchingLTE-CRS ENUMERATED {supported} OPTIONAL, +-- R4 1-8: BWP switching delay + bwp-SwitchingDelay ENUMERATED {type1, type2} OPTIONAL +} + +Phy-ParametersXDD-Diff ::= SEQUENCE { +-- R1 4-2: 2 PUCCH of format 0 or 2 in consecutive symbols + twoPUCCH-F0-2-ConsecSymbols ENUMERATED {supported} OPTIONAL, +-- R1 8-7: UL power control with 2 PUSCH closed loops + twoDifferentTPC-Loop-PUSCH ENUMERATED {supported} OPTIONAL, +-- R1 8-8: UL power control with 2 PUCCH closed loops + twoDifferentTPC-Loop-PUCCH ENUMERATED {supported} OPTIONAL +} + +Phy-ParametersFRX-Diff ::= SEQUENCE { +-- R1 2-6 & 2-16b: Support 1+2 DMRS (DL/UL) + oneFL-DMRS-TwoAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL, +-- R1 2-7 & 2-18: Supported 2 symbols front-loaded DMRS(DL/UL) + twoFL-DMRS BIT STRING (SIZE (2)) OPTIONAL, +-- R1 2-8 & 2-18a: Supported 2 symbols front-loaded +2 symbols additional DMRS(DL/UL) + twoFL-DMRS-TwoAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL, +-- R1 2-9 & 2-19: Support 1+3 DMRS (DL/UL) + oneFL-DMRS-ThreeAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL, +-- R1 2-10: Support DMRS type (DL) + supportedDMRS-TypeDL ENUMERATED {type1, type2} OPTIONAL, +-- R1 2-17: Support DMRS type (UL) + supportedDMRS-TypeUL ENUMERATED {type1, type2} OPTIONAL, +-- R1 2-37: Support Semi-open loop CSI + semiOpenLoopCSI ENUMERATED {supported} OPTIONAL, +-- R1 2-38: CSI report without PMI + csi-ReportWithoutPMI ENUMERATED {supported} OPTIONAL, +-- R1 2-39: CSI report with CRI + csi-ReportWithCRI ENUMERATED {supported} OPTIONAL, +-- R1 2-39a: CSI report without CQI + csi-ReportWithoutCQI ENUMERATED {supported} OPTIONAL, +-- R1 2-44 & 2-47: 1 port of DL/UL PTRS + onePortsPTRS BIT STRING (SIZE (2)) OPTIONAL, +-- R1 4-2: 2 PUCCH of format 0 or 2 in consecutive symbols + twoPUCCH-F0-2-ConsecSymbols ENUMERATED {supported} OPTIONAL, +-- R1 4-3: PUCCH format 2 over 1 – 2 OFDM symbols once per slot with FH + pucch-F2-WithFH ENUMERATED {supported} OPTIONAL, +-- R1 4-4: PUCCH format 3 over 4 – 14 OFDM symbols once per slot with FH + pucch-F3-WithFH ENUMERATED {supported} OPTIONAL, +-- R1 4-5: PUCCH format 4 over 4 – 14 OFDM symbols once per slot with FH + pucch-F4-WithFH ENUMERATED {supported} OPTIONAL, +-- R1 4-6: Non-frequency hopping for PUCCH formats 0 and 2 + freqHoppingPUCCH-F0-2 ENUMERATED {notSupported} OPTIONAL, +-- R1 4-7: Non-frequency hopping for PUCCH format 1, 3, and 4 + freqHoppingPUCCH-F1-3-4 ENUMERATED {notSupported} OPTIONAL, +-- R1 4-19: SR/HARQ-ACK/CSI multiplexing once per slot using a PUCCH (or piggybacked on a PUSCH) + mux-SR-HARQ-ACK-CSI-PUCCH ENUMERATED {supported} OPTIONAL, +-- R1 4-20: UCI code-block segmentation + uci-CodeBlockSegmentation ENUMERATED {supported} OPTIONAL, +-- R1 4-22: 1 long PUCCH format and 1 short PUCCH format in the same slot + onePUCCH-LongAndShortFormat ENUMERATED {supported} OPTIONAL, +-- R1 4-22a: 2 PUCCH transmissions in the same slot which are not covered by 4-22 and 4-2 + twoPUCCH-AnyOthersInSlot ENUMERATED {supported} OPTIONAL, +-- R1 5-9: Intra-slot frequency-hopping for PUSCH except for PUSCH scheduled by Type 1 before RRC connection + intraSlotFreqHopping-PUSCH ENUMERATED {supported} OPTIONAL, +-- R1 5-29: LBRM for PUSCH + pusch-LBRM ENUMERATED {supported} OPTIONAL, +-- R1 6-5a: PDCCH blind detection capability for CA + pdcch-BlindDetectionCA ENUMERATED {supported} OPTIONAL, +-- R1 8-3: TPC-PUSCH-RNTI + tpc-PUSCH-RNTI ENUMERATED {supported} OPTIONAL, +-- R1 8-4: TPC-PUCCH-RNTI + tpc-PUCCH-RNTI ENUMERATED {supported} OPTIONAL, +-- R1 8-5: TPC-SRS-RNTI + tpc-SRS-RNTI ENUMERATED {supported} OPTIONAL, +-- R1 8-6: Absolute TPC command mode + absoluteTPC-Command ENUMERATED {supported} OPTIONAL, +-- R1 8-7: UL power control with 2 PUSCH closed loops + twoDifferentTPC-Loop-PUSCH ENUMERATED {supported} OPTIONAL, +-- R1 8-8: UL power control with 2 PUCCH closed loops + twoDifferentTPC-Loop-PUCCH ENUMERATED {supported} OPTIONAL, +-- R4 1-6: pi/2-BPSK for PUSCH + pusch-HalfPi-BPSK ENUMERATED {supported} OPTIONAL, +-- R4 1-7: pi/2-BPSK for PUCCH format 3/4 + pucch-F3-4-HalfPi-BPSK ENUMERATED {supported} OPTIONAL, +-- R4 1-9: 1-symbol GP in unpaired spectrum + oneSymbolGP-TDD ENUMERATED {supported} OPTIONAL, +-- R4 2-7: Almost contiguous UL CP-OFDM + almostContiguousCP-OFDM-UL ENUMERATED {supported} OPTIONAL +} + +Phy-ParametersFR1 ::= SEQUENCE { +-- R1 3-2: Unicast PDCCH monitoring following Case 1-2 + pdcchMonitoringSingleOccasion ENUMERATED {supported} OPTIONAL, +-- R4 1-1: 60kHz of subcarrier spacing for FR1 + scs-60kHz ENUMERATED {supported} OPTIONAL, +-- R4 1-4: 256QAM for PDSCH in FR1 + pdsch-256QAM-FR1 ENUMERATED {supported} OPTIONAL +} + +Phy-ParametersFR2 ::= SEQUENCE { +-- R4 2-8: PA calibration gap + calibrationGapPA ENUMERATED {supported} OPTIONAL } -SubCarrierSpacing ::= SEQUENCE { - -- FFS on the parameters +RF-Parameters ::= SEQUENCE { + supportedBandListNR SupportedBandListNR, + supportedBandCombination BandCombinationList, + bandCombinationParametersUL-List BandCombinationParametersUL-List +} + +SupportedBandListNR ::= SEQUENCE (SIZE (1..maxBands)) OF BandNR + +BandNR ::= SEQUENCE { + bandNR FreqBandIndicatorNR, +-- Modified MPR behaviour as in RAN4 LS R2-1804077, which is needed for NSA as well as SA + modifiedMPR-Behaviour BIT STRING (SIZE (8)) OPTIONAL, +-- R4 2-1: Maximum channel bandwidth supported in each band for DL and UL separately and for each SCS that UE supports within a single CC +-- RAN4 agreed that 400 MHz is optional for FR2. The other values defined for FR1/fR2 in TS 38.101 are mandatory w/o capability bit. + maxChannelBW-PerCC ENUMERATED {mhz400} OPTIONAL, + mimo-ParametersPerBand MIMO-ParametersPerBand OPTIONAL, +-- R1 0-10: Extended CP + extendedCP ENUMERATED {supported} OPTIONAL, +-- R1 0-13: Phase coherence across non-contiguous UL symbols in slot in the transmission of one channel + phaseCoherenceUL ENUMERATED {supported} OPTIONAL, +-- R1 1-10: Support of SCell without SS/PBCH block + scellWithoutSSB ENUMERATED {supported} OPTIONAL, +-- R1 1-11: Support of CSI-RS RRM measurement for SCell without SS/PBCH block + csi-RS-MeasSCellWithoutSSB ENUMERATED {supported} OPTIONAL, +-- R1 2-15a: Association between CSI-RS and SRS + srs-AssocCSI-RS ENUMERATED {supported} OPTIONAL, +-- R1 3-1a: For type 1 CSS with dedicated RRC configuration and for type 3 CSS, UE specific SS, CORESET resource allocation of 6RB bit-map and duration 3 OFDM symbols for FR2 + type1-3-CSS ENUMERATED {supported} OPTIONAL, +-- R1 3-4: More than one TCI state configurations per CORESET + multipleTCI ENUMERATED {supported} OPTIONAL, +-- R1 3-5 & 3-5a: For type 1 with dedicated RRC configuration, type 3, and UE-SS,, monitoring occasion can be any OFDM symbol(s) of a slot for Case 2 (with a DCI gap) + pdcchMonitoringAnyOccasions ENUMERATED {withoutDCI-gap, withDCI-gap} OPTIONAL, +-- R1 5-1a: UE specific RRC configure UL/DL assignment + ue-SpecificUL-DL-Assignment ENUMERATED {supported} OPTIONAL, +-- R1 5-11 & 5-11a: Up to 2/7 unicast PDSCHs per slot for different TBs + pdsch-DifferentTB-PerSlot SEQUENCE { + scs-15kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-30kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-60kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-120kHz ENUMERATED {upto2, upto7} OPTIONAL + } OPTIONAL, +-- R1 5-12 & 5-12a: Up to 2/7 PUSCHs per slot for different TBs + pusch-DifferentTB-PerSlot SEQUENCE { + scs-15kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-30kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-60kHz ENUMERATED {upto2, upto7} OPTIONAL, + scs-120kHz ENUMERATED {upto2, upto7} OPTIONAL + } OPTIONAL, +-- R1 6-2 & 6-3: Type A/B BWP adaptation (up to 2/4 BWPs) with same numerology + bwp-SameNumerology ENUMERATED {upto2, upto4} OPTIONAL, +-- R1 6-4: BWP adaptation (up to 4 BWPs) with different numerologies + bwp-DiffNumerology ENUMERATED {upto4} OPTIONAL, +-- R1 6-7: Two PUCCH group + twoPUCCH-Group ENUMERATED {supported} OPTIONAL, +-- R1 6-8: Different numerology across PUCCH groups + diffNumerologyAcrossPUCCH-Group ENUMERATED {supported} OPTIONAL, +-- R1 6-9: Different numerologies across carriers within the same PUCCH group + diffNumerologyWithinPUCCH-Group ENUMERATED {supported} OPTIONAL, +-- R1 6-10: Cross carrier scheduling + crossCarrierScheduling ENUMERATED {supported} OPTIONAL, +-- R1 6-11: Number of supported TAGs + supportedNumberTAG ENUMERATED {n2, n3, n4} OPTIONAL, +-- R1 6-19: Simultaneous transmission of SRS on an SUL/non-SUL carrier and PUSCH/PUCCH/SRS/PRACH on the other UL carrier in the same cell +-- Details on the channel/signal combination are to be described in TS 38.306 + simultaneousTxSUL-NonSUL ENUMERATED {supported} OPTIONAL, +-- R1 6-21: DL search space sharing for CA + searchSpaceSharingCA-DL ENUMERATED {supported} OPTIONAL, +-- R1 6-22: UL search space sharing for CA + searchSpaceSharingCA-UL ENUMERATED {supported} OPTIONAL, +-- R4 1-4: 256QAM for PDSCH in FR2 + pdsch-256QAM-FR2 ENUMERATED {supported} OPTIONAL, +-- R4 1-5: 256QAM for PUSCH + pusch-256QAM ENUMERATED {supported} OPTIONAL +} + +MIMO-ParametersPerBand ::= SEQUENCE { +-- R1 2-2: PDSCH beam switching + timeDurationForQCL SEQUENCE { + scs-60kHz ENUMERATED {s7, s14, s28} OPTIONAL, + sch-120kHz ENUMERATED {s14, s28} OPTIONAL + } OPTIONAL, +-- R1 2-3: PDSCH MIMO layers. Absence of this field implies support of one layer. + maxNumberMIMO-LayersPDSCH MIMO-LayersDL OPTIONAL, +-- R1 2-14: Codebook based PUSCH MIMO transmission. Absence of this field implies that CB-based PUSCH is not supported. + maxNumberMIMO-LayersCB-PUSCH MIMO-LayersUL OPTIONAL, +-- R1 2-15: Non-codebook based PUSCH MIMO transmission. Absence of this field implies that Non-CB-based PUSCH is not supported. + maxNumberMIMO-LayersNonCB-PUSCH MIMO-LayersUL OPTIONAL, +-- R1 2-4: TCI states for PDSCH + maxNumberConfiguredTCIstates ENUMERATED {n4, n8, n16, n32, n64} OPTIONAL, + maxNumberActiveTCI-PerCC ENUMERATED {n1, n2, n4, n8} OPTIONAL, +-- R1 2-13: PUSCH transmission coherence + pusch-TransCoherence ENUMERATED {nonCoherent, partialNonCoherent, fullCoherent} OPTIONAL, +-- R1 2-20: Beam correspondence + beamCorrespondence ENUMERATED {supported} OPTIONAL, +-- R1 2-21: Periodic beam report on PUCCH + periodicBeamReport ENUMERATED {supported} OPTIONAL, +-- R1 2-22: Aperiodic beam report on PUSCH + aperiodicBeamReport ENUMERATED {supported} OPTIONAL, +-- R1 2-23: Semi-persistent beam report on PUCCH + sp-BeamReportPUCCH ENUMERATED {supported} OPTIONAL, +-- R1 2-23a: Semi-persistent beam report on PUSCH + sp-BeamReportPUSCH ENUMERATED {supported} OPTIONAL, +-- R1 2-24: SSB/CSI-RS for beam management + beamManagementSSB-CSI-RS BeamManagementSSB-CSI-RS OPTIONAL, +-- R1 2-26: Receiving beam selection using CSI-RS resource repetition "ON" + maxNumberRxBeam INTEGER (2..8) OPTIONAL, +-- R1 2-27: Beam switching (including SSB and CSI-RS) + maxNumberRxTxBeamSwitchDL SEQUENCE { + scs-15kHz ENUMERATED {n4, n7, n14} OPTIONAL, + scs-30kHz ENUMERATED {n4, n7, n14} OPTIONAL, + scs-60kHz ENUMERATED {n4, n7, n14} OPTIONAL, + scs-120kHz ENUMERATED {n4, n7, n14} OPTIONAL, + scs-240kHz ENUMERATED {n4, n7, n14} OPTIONAL + } OPTIONAL, +-- R1 2-29: Non-group based beam reporting + maxNumberNonGroupBeamReporting ENUMERATED {n1, n2, n4} OPTIONAL, +-- R1 2-29a: Group based beam reporting + groupBeamReporting ENUMERATED {supported} OPTIONAL, +-- R1 2-30: UL beam management + uplinkBeamManagement SEQUENCE { + maxNumberSRS-ResourcePerSet ENUMERATED {n8, n16, n32}, + maxNumberSRS-ResourceSet INTEGER (1..8) + } OPTIONAL, +-- R1 2-31: Beam failure recovery + maxNumberCSI-RS-BFR INTEGER (1..64) OPTIONAL, + maxNumberSSB-BFR INTEGER (1..64) OPTIONAL, + maxNumberCSI-RS-SSB-BFR INTEGER (1..256) OPTIONAL, +-- R1 2-45 & 2-48: 2 ports of DL/UL PTRS + twoPortsPTRS BIT STRING (SIZE (2)) OPTIONAL, +-- R1 2-53: SRS resources + supportedSRS-Resources SRS-Resources OPTIONAL, +-- R1 2-55: SRS Tx switch + srs-TxSwitch SRS-TxSwitch OPTIONAL, +-- R1 2-54a: Simultaneous SRS Tx + maxNumberSimultaneousSRS-PerCC INTEGER (1..4) OPTIONAL, +-- R1 2-57: Support low latency CSI feedback + lowLatencyCSI-Feedback ENUMERATED {supported} OPTIONAL +} + +-- R1 2-24: SSB/CSI-RS for beam management +BeamManagementSSB-CSI-RS ::= SEQUENCE { + maxNumberSSB-CSI-RS-ResourceOneTx ENUMERATED {n8, n16, n32, n64}, + maxNumberSSB-CSI-RS-ResourceTwoTx ENUMERATED {n0, n4, n8, n16, n32, n64}, + supportedCSI-RS-Density ENUMERATED {one, three, oneAndThree} +} + +-- R1 2-53: SRS resources +SRS-Resources ::= SEQUENCE { + maxNumberAperiodicSRS-PerBWP ENUMERATED {n1, n2, n4, n8, n16}, + maxNumberAperiodicSRS-PerBWP-PerSlot INTEGER (1..6), + maxNumberPeriodicSRS-PerBWP ENUMERATED {n1, n2, n4, n8, n16}, + maxNumberPeriodicSRS-PerBWP-PerSlot INTEGER (1..6), + maxNumberSemiPersitentSRS-PerBWP ENUMERATED {n0, n1, n2, n4, n8, n16}, + maxNumberSP-SRS-PerBWP-PerSlot INTEGER (0..6), + maxNumberSRS-Ports-PerResource ENUMERATED {n1, n2, n4} +} +-- R1 2-55: SRS Tx switch +SRS-TxSwitch ::= SEQUENCE { + supportedSRS-TxPortSwitch ENUMERATED {t1r2, t1r4, t2r4, t1r4-t2r4}, + txSwitchImpactToRx ENUMERATED {true} OPTIONAL } PDCP-Parameters ::= SEQUENCE { - dataRateDRB-IP ENUMERATED {kbps64, spare6, spare5, spare4, spare3, spare2, spare1, spare0} OPTIONAL, supportedROHC-Profiles SEQUENCE { profile0x0000 BOOLEAN, profile0x0001 BOOLEAN, @@ -2888,176 +5263,221 @@ PDCP-Parameters ::= SEQUENCE { uplinkOnlyROHC-Profiles ENUMERATED {supported} OPTIONAL, continueROHC-Context ENUMERATED {supported} OPTIONAL, outOfOrderDelivery ENUMERATED {supported} OPTIONAL, - shortSN ENUMERATED {supported} OPTIONAL, - volteOverNR-PDCP ENUMERATED {supported} OPTIONAL + shortSN ENUMERATED {supported} OPTIONAL } RLC-Parameters ::= SEQUENCE { - amWithShortSN ENUMERATED {supported} OPTIONAL, - umWithShortSN ENUMERATED {supported} OPTIONAL, - umWIthLongSN ENUMERATED {supported} OPTIONAL + am-WithShortSN ENUMERATED {supported} OPTIONAL, + um-WithShortSN ENUMERATED {supported} OPTIONAL, + um-WIthLongSN ENUMERATED {supported} OPTIONAL } MAC-Parameters ::= SEQUENCE { + mac-ParametersCommon MAC-ParametersCommon OPTIONAL, + mac-ParametersXDD-Diff MAC-ParametersXDD-Diff OPTIONAL +} + +MAC-ParametersCommon ::= SEQUENCE { lcp-Restriction ENUMERATED {supported} OPTIONAL, +-- R1 4-24: PUCCH-spatialrelationinfo indication by a MAC CE per PUCCH resource + pucch-SpatialRelInfoMAC-CE ENUMERATED {supported} OPTIONAL +} + +MAC-ParametersXDD-Diff ::= SEQUENCE { skipUplinkTxDynamic ENUMERATED {supported} OPTIONAL, logicalChannelSR-DelayTimer ENUMERATED {supported} OPTIONAL, longDRX-Cycle ENUMERATED {supported} OPTIONAL, shortDRX-Cycle ENUMERATED {supported} OPTIONAL, - numberOfSR-Configurations ENUMERATED {n2, n3, n4,...} OPTIONAL, -- FFS value range - numberOfConfiguredGrantConfigurations ENUMERATED {n2, n3, n4,...} OPTIONAL -- FFS value range + multipleSR-Configurations ENUMERATED {supported} OPTIONAL, + -- If supported UE supports 8 SR configurations, otherwise 1 SR config is supported. + -- Confirmation is needed whether to align the number to what the configuration signalling can support. + multipleConfiguredGrantConfigurations ENUMERATED {supported} OPTIONAL + -- If supported UE supports 16 configured grant configurations, otherwise 1 ConfiguredGrant config is supported. + -- Confirmation is needed whether to align the number to what the configuration signalling can support, and to consider whether the 16 refers + -- to the configurations or the active ones only (as they are within the BWP). +} + +MeasParameters ::= SEQUENCE { + measParametersXDD-Diff MeasParametersXDD-Diff OPTIONAL, + measParametersFRX-Diff MeasParametersFRX-Diff OPTIONAL +} + +MeasParametersXDD-Diff ::= SEQUENCE { + intraAndInterF-MeasAndReport ENUMERATED {supported} OPTIONAL, + eventA-MeasAndReport ENUMERATED {supported} OPTIONAL + -- Confirmation is needed on the need of capability/IOT signaling in LTE for support of the additional measurement gap configurations. +} + +MeasParametersFRX-Diff ::= SEQUENCE { +-- R1 1-3: SSB based SINR measurement + ss-SINR-Meas ENUMERATED {supported} OPTIONAL, +-- R1 1-5: CSI-RS based RRM measurement with associated SS-block + csi-RSRP-AndRSRQ-MeasWithSSB ENUMERATED {supported} OPTIONAL, +-- R1 1-5a: CSI-RS based RRM measurement without associated SS-block + csi-RSRP-AndRSRQ-MeasWithoutSSB ENUMERATED {supported} OPTIONAL, +-- R1 1-6: CSI-RS based SINR measurement + csi-SINR-Meas ENUMERATED {supported} OPTIONAL, +-- R1 1-7: CSI-RS based RLM + csi-RS-RLM ENUMERATED {supported} OPTIONAL } -- TAG-UE-NR-CAPABILITY-STOP +-- TAG-RRC-TRANSACTIONIDENTIFIER-START + +RRC-TransactionIdentifier ::= INTEGER (0..3) + +-- TAG-RRC-TRANSACTIONIDENTIFIER-STOP -- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-START -maxBandComb INTEGER ::= 1 -- Maximum number of DL band combinations; WS modification: was FFS -maxBasebandProcComb INTEGER ::= 1 -- Maximum number of base band processing combinations; WS modification: was FFS -maxNrofSCells INTEGER ::= 15 -- Max number of secondary serving cells per cell group -maxNrofCellMeas INTEGER ::= 1 -- Maximum number of entries in each of the cell lists in a measurement object; WS modification: was FFS -maxNroSS-BlocksToAverage INTEGER ::= 2 -- Max number for the (max) number of SS blocks to average to determine cell measurement; WS modification: was FFS -maxNroCSI-RS-ResourcesToAverage INTEGER ::= 2 -- Max number for the (max) number of CSI-RS to average to determine cell measurement; WS modification: was FFS -maxNrofSR-CongigPerCellGroup INTEGER ::= 8 -- Maximum number of SR configurations per cell group +maxBandComb INTEGER ::= 65536 -- Maximum number of DL band combinations +maxBasebandProcComb INTEGER ::= 65536 -- Maximum number of baseband processing combinations +maxNrofServingCells INTEGER ::= 32 -- Max number of serving cells (SpCell + SCells) per cell group +maxNrofServingCells-1 INTEGER ::= 31 -- Max number of serving cells (SpCell + SCells) per cell group minus 1 +maxNrofAggregatedCellsPerCellGroup INTEGER ::= 16 +maxNrofSCells INTEGER ::= 31 -- Max number of secondary serving cells per cell group +maxNrofCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the cell lists in a measurement object +maxNrofSS-BlocksToAverage INTEGER ::= 16 -- Max number for the (max) number of SS blocks to average to determine cell + -- measurement +maxNrofCSI-RS-ResourcesToAverage INTEGER ::= 16 -- Max number for the (max) number of CSI-RS to average to determine cell + -- measurement +maxNrofDL-Allocations INTEGER ::= 16 -- Maximum number of PDSCH time domain resource allocations + +maxNrofSR-ConfigPerCellGroup INTEGER ::= 8 -- Maximum number of SR configurations per cell group maxLCG-ID INTEGER ::= 7 -- Maximum value of LCG ID -macLC-ID INTEGER ::= 64 -- Maximum value of Logical Channel ID; WS modification: was FFS, 38.221 suggests 64 +maxLC-ID INTEGER ::= 32 -- Maximum value of Logical Channel ID maxNrofTAGs INTEGER ::= 4 -- Maximum number of Timing Advance Groups maxNrofTAGs-1 INTEGER ::= 3 -- Maximum number of Timing Advance Groups minus 1 -maxNrofBandwidthParts INTEGER ::= 4 -- Maximum number of BWPs per serving cell -maxNrofBandwidthParts-1 INTEGER ::= 3 -- Maximum number of BWPs per serving cell minus 1 - -maxSymbolIndex INTEGER ::= 13 -- Maximum index identifying a symbol within a slot (14 symbols, indexed from 0..13) +maxNrofBWPs INTEGER ::= 4 -- Maximum number of BWPs per serving cell +maxNrofSymbols-1 INTEGER ::= 13 -- Maximum index identifying a symbol within a slot (14 symbols, indexed from 0..13) +maxNrofSlots INTEGER ::= 320 -- Maximum number of slots in a 10 ms period +maxNrofSlots-1 INTEGER ::= 319 -- Maximum number of slots in a 10 ms period minus 1 maxNrofPhysicalResourceBlocks INTEGER ::= 275 -- Maximum number of PRBs maxNrofPhysicalResourceBlocks-1 INTEGER ::= 274 -- Maximum number of PRBs -maxNrofPhysicalResourceBlocksTimes4 INTEGER ::= 1100 -- Maximum number of PRBs (used to reference PRBs in another subcarrier spacing) - -maxNrofControlResourceSets INTEGER ::= 2 -- Max number of CoReSets configurable on a serving cell; WS modification: was FFS -maxNrofControlResourceSets-1 INTEGER ::= 1 -- Max number of CoReSets configurable on a serving cell minus 1; WS modification: was FFS -maxCoReSetStartSymbol INTEGER ::= 0 -- Highest possible start symbol for a control resource set; WS modification: was FFS +maxNrofControlResourceSets INTEGER ::= 12 -- Max number of CoReSets configurable on a serving cell +maxNrofControlResourceSets-1 INTEGER ::= 11 -- Max number of CoReSets configurable on a serving cell minus 1 maxCoReSetDuration INTEGER ::= 3 -- Max number of OFDM symbols in a control resource set -maxNrofSearchSpacesPerCoReSet INTEGER ::= 0 -- Max number of search spaces configurable per Control Resource Set; WS modification: was FFS - -maxNrofRateMatchPatterns INTEGER ::= 1 -- Max number of rate matching patterns that may be configured; WS modification: was FFS -maxNrofRateMatchPatterns-1 INTEGER ::= 0 -- Max number of rate matching patterns that may be configured minus 1; WS modification: was FFS -maxNrofCSI-Reports INTEGER ::= 1 -- Maximum number of report configurations; WS modification: was FFS -maxNrofCSI-Reports-1 INTEGER ::= 0 -- Maximum number of report configurations minus 1; WS modification: was FFS -maxNrofCSI-ResourceConfigurations INTEGER ::= 1 -- Maximum number of resource configurations; WS modification: was FFS -maxNrofCSI-ResourceConfigurations-1 INTEGER ::= 0 -- Maximum number of resource configurations minus 1; WS modification: was FFS -maxNrofCSI-ResourceSets INTEGER ::= 1 -- Maximum number of resource sets per resource configuration; WS modification: was FFS -maxNrofCSI-ResourceSets-1 INTEGER ::= 0 -- Maximum number of resource sets per resource configuration minus 1; WS modification: was FFS -maxNrofNZP-CSI-RS-Resources INTEGER ::= 1 -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources; WS modification: was FFS -maxNrofNZP-CSI-RS-Resources-1 INTEGER ::= 0 -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources minus 1; WS modification: was FFS -maxNrofZP-CSI-RS-Resources INTEGER ::= 1 -- Maximum number of Zero-Power (NZP) CSI-RS resources; WS modification: was FFS -maxNrofZP-CSI-RS-Resources-1 INTEGER ::= 0 -- Maximum number of Zero-Power (NZP) CSI-RS resources minus 1; WS modification: was FFS -maxNrofCSI-IM-Resources INTEGER ::= 1 -- Maximum number of CSI-IM resources. See CSI-IM-ResourceMax in 38.214. WS modification: was FFS -maxNrofCSI-IM-Resources-1 INTEGER ::= 0 -- Maximum number of CSI-IM resources minus 1. See CSI-IM-ResourceMax in 38.214. WS modification: was FFS -maxNrofSSB-Resources INTEGER ::= 64 -- Maximum number of SSB resources in a resource set +maxNrofSearchSpaces INTEGER ::= 40 -- Max number of Search Spaces +maxNrofSearchSpaces-1 INTEGER ::= 39 -- Max number of Search Spaces minus 1 +maxSFI-DCI-PayloadSize INTEGER ::= 128 -- Max number payload of a DCI scrambled with SFI-RNTI +maxSFI-DCI-PayloadSize-1 INTEGER ::= 127 -- Max number payload of a DCI scrambled with SFI-RNTI minus 1 +maxINT-DCI-PayloadSize INTEGER ::= 126 -- Max number payload of a DCI scrambled with INT-RNTI +maxINT-DCI-PayloadSize-1 INTEGER ::= 125 -- Max number payload of a DCI scrambled with INT-RNTI minus 1 +maxNrofRateMatchPatterns INTEGER ::= 4 -- Max number of rate matching patterns that may be configured +maxNrofRateMatchPatterns-1 INTEGER ::= 3 -- Max number of rate matching patterns that may be configured minus 1 + +maxNrofCSI-ReportConfigurations INTEGER ::= 48 -- Maximum number of report configurations +maxNrofCSI-ReportConfigurations-1 INTEGER ::= 47 -- Maximum number of report configurations minus 1 + +maxNrofCSI-ResourceConfigurations INTEGER ::= 112 -- Maximum number of resource configurations +maxNrofCSI-ResourceConfigurations-1 INTEGER ::= 111 -- Maximum number of resource configurations minus 1 + +maxNrofAP-CSI-RS-ResourcesPerSet INTEGER ::= 16 +maxNrOfCSI-AperiodicTriggers INTEGER ::= 128 -- Maximum number of triggers for aperiodic CSI reporting +maxNrofReportConfigPerAperiodicTrigger INTEGER ::= 16 -- Maximum number of report configurations per trigger state for aperiodic reporting + +maxNrofNZP-CSI-RS-Resources INTEGER ::= 192 -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources +maxNrofNZP-CSI-RS-Resources-1 INTEGER ::= 191 -- Maximum number of Non-Zero-Power (NZP) CSI-RS resources minus 1 +maxNrofNZP-CSI-RS-ResourcesPerSet INTEGER ::= 64 -- Maximum number of NZP CSI-RS resources per resource set +maxNrofNZP-CSI-RS-ResourceSetsPerConfig INTEGER ::= 16 -- Maximum number of resource sets per resource configuration + +maxNrofZP-CSI-RS-Resources INTEGER ::= 32 -- Maximum number of Zero-Power (NZP) CSI-RS resources +maxNrofZP-CSI-RS-Resources-1 INTEGER ::= 31 -- Maximum number of Zero-Power (NZP) CSI-RS resources minus 1 +maxNrofZP-CSI-RS-ResourceSets-1 INTEGER ::= 16 +maxNrofZP-CSI-RS-ResourcesPerSet INTEGER ::= 16 +maxNrofZP-CSI-RS-Sets INTEGER ::= 16 + +maxNrofCSI-IM-Resources INTEGER ::= 32 -- Maximum number of CSI-IM resources. See CSI-IM-ResourceMax in 38.214. +maxNrofCSI-IM-Resources-1 INTEGER ::= 31 -- Maximum number of CSI-IM resources minus 1. See CSI-IM-ResourceMax in 38.214. +maxNrofCSI-IM-ResourcesPerSet INTEGER ::= 8 -- Maximum number of CSI-IM resources per set. See CSI-IM-ResourcePerSetMax in 38.214 +maxNrofCSI-IM-ResourceSetsPerConfig INTEGER ::= 16 -- Maximum number of CSI IM resource sets per resource configuration + maxNrofSSB-Resources-1 INTEGER ::= 63 -- Maximum number of SSB resources in a resource set minus 1 -maxNrofCSI-RS-ResourcesPerSet INTEGER ::= 8 -- Maximum number of CSI-RS resources per resource set -maxNrofCSI-MeasId INTEGER ::= 1 -- Maximum number of link configurations; WS modification: was FFS -maxNrofCSI-MeasId-1 INTEGER ::= 0 -- Maximum number of link configurations minus 1; WS modification: was FFS -maxNrofCSI-RS-ResourcesRRM INTEGER ::= 1 -- Maximum number of CSI-RS resources for an RRM measurement object; WS modification: was FFS -maxNrofCSI-RS-ResourcesRRM-1 INTEGER ::= 0 -- Maximum number of CSI-RS resources for an RRM measurement object minus 1; WS modification: was FFS - -maxNrofObjectId INTEGER ::= 1 -- Maximum number of configured measurement objects; WS modification: was FFS -maxNrOfRA-PreamblesPerSSB INTEGER ::= 1 -- Maximum number of Random Access Preamble value per SSB; WS modification: was FFS -maxNrofReportConfigId INTEGER ::= 1 -- Maximum number of reporting configurations; WS modification: was FFS -maxNrofMeasId INTEGER ::= 1 -- Maximum number of configured measurements; WS modification: was FFS -maxNroQuantityConfig INTEGER ::= 2 -- Maximum number of quantity configurations - -maxNrofSRS-ResourceSets INTEGER ::= 1 -- Maximum number of SRS resource sets. WS modification: was FFS -maxNrofSRS-ResourceSets-1 INTEGER ::= 0 -- Maximum number of SRS resource sets minus 1. WS modification: was FFS -maxNrofSRS-Resources INTEGER ::= 1 -- Maximum number of SRS resources in an SRS resource set. WS modification: was FFS -maxNrofSRS-Resources-1 INTEGER ::= 0 -- Maximum number of SRS resources in an SRS resource set minus 1. WS modification: was FFS -maxRA-PreambleIndex INTEGER ::= 0 -- Maxximum value of Random Access Preamble Index; WS modification: was FFS -maxRAT-CapabilityContainers INTEGER ::= 3 -- Maximum number of interworking RAT containers (incl NR and MRDC); WS modification: was FFS -maxServCell INTEGER ::= 1 -- Maximum number of serving cells; WS modification: was FFS -maxSimultaneousBands INTEGER ::= 1 -- Maximum number of simultaneously aggregated bands; WS modification: was FFS +maxNrofCSI-SSB-ResourcePerSet INTEGER ::= 64 +maxNrofCSI-SSB-ResourceSetsPerConfig INTEGER ::= 1 -- Maximum number of CSI SSB resource sets per resource configuration + +maxNrofFailureDetectionResources INTEGER ::= 10 -- Maximum number of failure detection resources + +maxNrofObjectId INTEGER ::= 64 -- Maximum number of measurement objects +maxNrofPCI-Ranges INTEGER ::= 8 -- Maximum number of PCI ranges +maxNrofCSI-RS-ResourcesRRM INTEGER ::= 96 -- Maximum number of CSI-RS resources for an RRM measurement object +maxNrofCSI-RS-ResourcesRRM-1 INTEGER ::= 95 -- Maximum number of CSI-RS resources for an RRM measurement object minus 1 +maxNrofMeasId INTEGER ::= 64 -- Maximum number of configured measurements +maxNrofQuantityConfig INTEGER ::= 2 -- Maximum number of quantity configurations +maxNrofCSI-RS-CellsRRM INTEGER ::= 96 -- Maximum number of FFS + +maxNrofSRS-ResourceSets INTEGER ::= 16 -- Maximum number of SRS resource sets in a BWP. +maxNrofSRS-ResourceSets-1 INTEGER ::= 15 -- Maximum number of SRS resource sets in a BWP minus 1. +maxNrofSRS-Resources INTEGER ::= 64 -- Maximum number of SRS resources in an SRS resource set. +maxNrofSRS-Resources-1 INTEGER ::= 63 -- Maximum number of SRS resources in an SRS resource set minus 1. +maxNrofSRS-TriggerStates-1 INTEGER ::= 3 -- Maximum number of SRS trigger states minus 1, i.e., the largest code point. +maxRAT-CapabilityContainers INTEGER ::= 8 -- Maximum number of interworking RAT containers (incl NR and MRDC) +maxSimultaneousBands INTEGER ::= 32 -- Maximum number of simultaneously aggregated bands + + +maxNrofSlotFormatCombinationsPerCell INTEGER ::= 16 -- Maximum number of +maxNrofSlotFormatCombinationsPerSet INTEGER ::= 4096 -- Maximum number of Slot Format Combinations in a SF-Set. +maxNrofSlotFormatCombinationsPerSet-1 INTEGER ::= 4095 -- Maximum number of Slot Format Combinations in a SF-Set minus 1. +maxNrofPUCCH-Resources INTEGER ::= 128 +maxNrofPUCCH-Resources-1 INTEGER ::= 127 +maxNrofPUCCH-ResourceSets INTEGER ::= 4 -- Maximum number of PUCCH Resource Sets +maxNrofPUCCH-ResourceSets-1 INTEGER ::= 3 -- Maximum number of PUCCH Resource Sets minus 1. +maxNrofPUCCH-ResourcesPerSet INTEGER ::= 32 -- Maximum number of PUCCH Resources per PUCCH-ResourceSet +maxNrofPUCCH-ResourcesPerSet-1 INTEGER ::= 31 -- Maximum number of PUCCH Resources per PUCCH-ResourceSet minus 1. +maxNrofPUCCH-P0-PerSet INTEGER ::= 8 -- Maximum number of P0-pucch present in a p0-pucch set +maxNrofPUCCH-PathlossReferenceRSs INTEGER ::= 4 -- Maximum number of RSs used as pathloss reference for PUCCH power control. +maxNrofPUCCH-PathlossReferenceRSs-1 INTEGER ::= 3 -- Maximum number of RSs used as pathloss reference for PUCCH power control minus 1. + +maxNrofP0-PUSCH-AlphaSets INTEGER ::= 30 -- Maximum number of P0-pusch-alpha-sets (see 38,213, section 7.1) +maxNrofP0-PUSCH-AlphaSets-1 INTEGER ::= 29 -- Maximum number of P0-pusch-alpha-sets minus 1 (see 38,213, section 7.1) +maxNrofPUSCH-PathlossReferenceRSs INTEGER ::= 4 -- Maximum number of RSs used as pathloss reference for PUSCH power control. +maxNrofPUSCH-PathlossReferenceRSs-1 INTEGER ::= 3 -- Maximum number of RSs used as pathloss reference for PUSCH power control minus 1. + +maxBands INTEGER ::= 1024 -- Maximum number of supported bands in UE capability. +maxBandsMRDC INTEGER ::= 1280 +maxBandsEUTRA INTEGER ::= 256 +maxCellPrep INTEGER ::= 32 +maxCellReport INTEGER ::= 8 +maxDRB INTEGER ::= 29 -- Maximum number of DRBs (that can be added in DRB-ToAddModLIst). +maxFreq INTEGER ::= 8 -- Max number of non-serving frequencies in MeasResultSCG-Failure. +maxNrofCSI-RS INTEGER ::= 64 +maxNrofCandidateBeams INTEGER ::= 16 -- Max number of PRACH-ResourceDedicatedBFR that in BFR config. +maxNrofPCIsPerSMTC INTEGER ::= 64 -- Maximun number of PCIs per SMTC. +maxNrofQFIs INTEGER ::= 64 +maxNrofSR-Resources INTEGER ::= 8 -- Maximum number of SR resources per BWP in a cell. +maxNrofSlotFormatsPerCombination INTEGER ::= 256 +maxNrofSpatialRelationInfos INTEGER ::= 8 +maxNrofSRS-ResourcesPerSet INTEGER ::= 16 +maxNrofIndexesToReport INTEGER ::= 32 +maxNrofSSBs INTEGER ::= 64 -- Maximum number of SSB resources in a resource set. +maxNrofSSBs-1 INTEGER ::= 63 -- Maximum number of SSB resources in a resource set minus 1. + +maxNrofTCI-StatesPDCCH INTEGER ::= 64 +maxNrofTCI-States INTEGER ::= 64 -- Maximum number of TCI states. +maxNrofTCI-States-1 INTEGER ::= 63 -- Maximum number of TCI states minus 1. +maxNrofUL-Allocations INTEGER ::= 16 -- Maximum number of PUSCH time domain resource allocations. +maxQFI INTEGER ::= 63 +maxRA-CSIRS-Resources INTEGER ::= 96 +maxRA-OccasionsPerCSIRS INTEGER ::= 64 -- Maximum number of RA occasions for one CSI-RS +maxRA-Occasions-1 INTEGER ::= 511 -- Maximum number of RA occasions in the system +maxRA-SSB-Resources INTEGER ::= 64 +maxSCSs INTEGER ::= 5 +maxSecondaryCellGroups INTEGER ::= 3 +maxNrofServingCellsEUTRA INTEGER ::= 32 +maxMBSFN-Allocations INTEGER ::= 8 +maxNrofMultiBands INTEGER ::= 8 +maxCellSFTD INTEGER ::= 3 -- Maximum number of cells for SFTD reporting +maxReportConfigId INTEGER ::= 64 + +maxNrofSRI-PUSCH-Mappings INTEGER ::= 16 +maxNrofSRI-PUSCH-Mappings-1 INTEGER ::= 15 + +-- Editor’s Note: Targeted for completion in June 2018. Not used in EN-DC drop. +CellIdentity ::= ENUMERATED {ffsTypeAndValue} +ShortMAC-I ::= ENUMERATED {ffsTypeAndValue} -- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-STOP --- WS modification: fake definitions for missing entries in ASN.1 -AdditionalSpectrumEmission ::= INTEGER (1..32) -ARFCN-ValueNR ::= INTEGER -BandwidthParts ::= BandwidthPart -BSR-Configuration ::= BSR-Config -BWPerCC ::= CA-BandwidthClass -CarrierBandwidthNR ::= ENUMERATED {ffs} -ControlResourceId ::= ControlResourceSetId -CSI-RS-ConfigurationId ::= INTEGER -CSI-RSIndex ::= INTEGER -CSIRS-ID ::= INTEGER -FilterCoefficient ::= ENUMERATED { - fc0, fc1, fc2, fc3, fc4, fc5, - fc6, fc7, fc8, fc9, fc11, fc13, - fc15, fc17, fc19, spare1, ...} -FreqBandIndicatorNR ::= INTEGER -Hysteresis ::= INTEGER (0..30) -maxBands INTEGER ::= 256 -maxCellReport INTEGER ::= 8 -maxDRB INTEGER ::= 29 -maxFreq INTEGER ::= 1 -maxLCid INTEGER ::= 32 -maxLCH INTEGER ::= 8 -maxQFI INTEGER ::= 0 -maxNrofAggregatedCellsPerCellGroup INTEGER ::= 1 -maxNrofCSI-ReportConfig-1 INTEGER ::= 0 -maxNrofPCIsPerSMTC INTEGER ::= 1 -maxNrofQFIs INTEGER ::= 1 -maxNrofSchedulingRequestResoruces INTEGER ::= 64 -maxNrofSearchSpaces INTEGER ::= 1 -maxNrofSlotFormatCombinations INTEGER ::= 1 -maxNrofSlotFormatCombinations-1 INTEGER ::= 1 -maxNrofSR-ConfigPerCellGroup INTEGER ::= 1 -maxNrofSRS-ResourcesPerSet INTEGER ::= 1 -maxNroCSI-RS INTEGER ::= 1 -maxNroIndexesToReport INTEGER ::= 1 -maxNroSSBs INTEGER ::= 8 -maxQuantityConfigId INTEGER ::= 1 -maxRAcsirsResources INTEGER ::= 1 -maxRAssbResources INTEGER ::= 1 -maxReportConfigId INTEGER ::= 1 -maxSCellGroups INTEGER ::= 1 -MeasGapConfig ::= SEQUENCE {} -MeasObjectEUTRA ::= SEQUENCE {} -MeasResultListEUTRA ::= SEQUENCE {} -NumberOfRA-Preambles ::= NumberofRA-Preambles -P-Max ::= INTEGER (-30..33) -PDUsessionID ::= INTEGER -PhysicalCellId ::= PhysCellId -PhysCellIdRange ::= SEQUENCE { - start PhysCellId, - range ENUMERATED { - n4, n8, n12, n16, n24, n32, n48, n64, n84, - n96, n128, n168, n252, n504, spare2, - spare1} OPTIONAL -- Need OP -} -PUCCH-F2-number-of-PRB ::= INTEGER -UECapabilityInformation ::= OCTET STRING -RadioBearerConfiguration ::= RadioBearerConfig -RA-Resources ::= SEQUENCE {} -ReportInterval ::= ENUMERATED { - ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, - min1, min6, min12, min30, min60, spare3, spare2, spare1} -ReportConfigEUTRA ::= SEQUENCE {} -RRC-TransactionIdentifier ::= INTEGER (0..3) -RSRP-Range ::= INTEGER (0..97) -RSRPRange ::= RSRP-Range -RSRQ-Range ::= INTEGER (0..34) -RSRQRange ::= RSRQ-Range -SchedulingRequestId ::= INTEGER -SchedulingRequestResource-Config ::= SEQUENCE{} -ShortMAC-I ::= BIT STRING (SIZE (16)) -SINR-Range ::= INTEGER (0..127) -SINRRange ::= SINR-Range -SSB-ID ::= INTEGER (1..7) -SSB-Index ::= INTEGER (1..7) -TAG-Configuration ::= TAG-Config -TimeToTrigger ::= ENUMERATED { - ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, - ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, - ms5120} - END diff --git a/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn b/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn new file mode 100644 index 0000000000..f0fff4f239 --- /dev/null +++ b/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn @@ -0,0 +1,59 @@ +-- 3GPP TS 38.331 V15.1.0 (2018-03) + +NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + MeasId, + MeasIdToAddModList, + MeasObjectToAddModList, + PhysCellId, + ReportConfigToAddModList, + RSRP-Range, + QuantityConfig, + maxNrofCellMeas, + maxNrofMeasId +FROM NR-RRC-Definitions; + +-- TAG-VAR-MEAS-CONFIG-START + +VarMeasConfig ::= SEQUENCE { + -- Measurement identities + measIdList MeasIdToAddModList OPTIONAL, + -- Measurement objects + measObjectList MeasObjectToAddModList OPTIONAL, + -- Reporting configurations + reportConfigList ReportConfigToAddModList OPTIONAL, + -- Other parameters + quantityConfig QuantityConfig OPTIONAL, + + s-MeasureConfig CHOICE { + ssb-RSRP RSRP-Range, + csi-RSRP RSRP-Range + } OPTIONAL + +} + +-- TAG-VAR-MEAS-CONFIG-STOP +-- TAG-VAR-MEAS-REPORT-START + +VarMeasReportList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF VarMeasReport + +VarMeasReport ::= SEQUENCE { + -- List of measurement that have been triggered + measId MeasId, + cellsTriggeredList CellsTriggeredList OPTIONAL, + numberOfReportsSent INTEGER +} + +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CHOICE { + physCellId PhysCellId, +-- Not needed for EN-DC. + physCellIdEUTRA ENUMERATED {ffsTypeAndValue} + } + + +-- TAG-VAR-MEAS-REPORT-STOP + +END diff --git a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf index 1b54023833..b1576fcda7 100644 --- a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf +++ b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf @@ -8,32 +8,41 @@ UNALIGNED #.END #.USE_VALS_EXT -DRX-Config/setup/drx-onDurationTimer -DRX-Config/setup/drx-InactivityTimer -DRX-Config/setup/drx-RetransmissionTimerDL -DRX-Config/setup/drx-RetransmissionTimerUL -DRX-Config/setup/drx-LongCycleStartOffset -DRX-Config/setup/shortDRX/drx-ShortCycle -DRX-Config/setup/drx-SlotOffset -PDCP-Config/moreThanOneRLC/ul-DataSplitThreshold/setup +CA-BandwidthClassNR +ConfiguredGrantConfig/configuredGrantTimer +ConfiguredGrantConfig/periodicity +DRX-Config/drx-onDurationTimer/milliSeconds +DRX-Config/drx-InactivityTimer +DRX-Config/drx-RetransmissionTimerDL +DRX-Config/drx-RetransmissionTimerUL +DRX-Config/drx-LongCycleStartOffset +DRX-Config/shortDRX/drx-ShortCycle +DRX-Config/drx-SlotOffset +DRX-Info/drx-LongCycleStartOffset +DRX-Info/shortDRX/drx-ShortCycle PDCP-Config/t-Reordering PollByte PollPDU Q-OffsetRange -RACH-ConfigCommon/preambleReceivedTargetPower -SPS-Config/uplink/priodicity +ServingCellConfig/bwp-InactivityTimer +SPS-Config/periodicity +SRS-PeriodicityAndOffset T-PollRetransmit T-Reassembly T-StatusProhibit +UL-DataSplitThreshold #.EXPORTS CellGroupConfig_PDU +CG-ConfigInfo_PDU +ConfigRestrictInfoSCG_PDU +FreqBandList_PDU MeasResults_PDU MIB_PDU -SCG-ConfigInfo_PDU RadioBearerConfig_PDU RRCReconfiguration_PDU RRCReconfigurationComplete_PDU +SIB1_PDU UL-DCCH-Message_PDU UE-MRDC-Capability_PDU UE-NR-Capability_PDU @@ -41,13 +50,16 @@ UE-NR-Capability_PDU #.PDU BCCH-BCH-Message @bcch.bch CellGroupConfig +CG-ConfigInfo +ConfigRestrictInfoSCG DL-DCCH-Message @dl.dcch +FreqBandList MIB MeasResults RadioBearerConfig RRCReconfiguration RRCReconfigurationComplete -SCG-ConfigInfo +SIB1 UE-MRDC-Capability UE-NR-Capability UL-DCCH-Message @ul.dcch @@ -55,46 +67,33 @@ UL-DCCH-Message @ul.dcch #.OMIT_ASSIGNMENT AS-Context -BandwidthPart-Config -BeamManagement +CellIdentity +CellsTriggeredList +CG-Config +CG-Config-IEs ConfigRestrictModReqSCG -ControlResourceIndex -CSI-IM-ResourceConfig -CSI-IM-ResourceConfigId -FailureReportSCG-ToOtherRAT +GSCN-ValueNR HandoverCommand -HandoverCommand-r15-IEs +HandoverCommand-IEs HandoverPreparationInformation -HandoverPreparationInformation-r15-IEs -MeasResult2NR -MeasResultList2NR -MeasResultServFreq2NR -MeasResultServFreqList2NR -PUCCH-F2-number-of-PRB -PUCCH-format0 -PUCCH-format1 -PUCCH-format2 -PUCCH-format3 -PUCCH-format4 -RAT-Type +HandoverPreparationInformation-IEs +MeasConfigSN +MeasTiming +MeasTimingList +MeasurementTimingConfiguration +MeasurementTimingConfiguration-IEs ReestabNCellInfo ReestabNCellInfoList RRM-Config -SIB1 -SCG-Config -SCG-Config-r15-IEs ShortMAC-I -SubcarrierSpacingRACH -SupportedBandCombination -UE-CapabilityRAT-Container -UE-CapabilityRAT-ContainerList -ZP-CSI-RS-Resource -ZP-CSI-RS-ResourceId +VarMeasConfig +VarMeasReportList +VarMeasReport #.NO_EMIT ONLY_VALS #.MAKE_ENUM -#RAT-Type TYPE_PREFIX +RAT-Type TYPE_PREFIX #.FN_HDR BCCH-BCH-Message proto_item *ti; @@ -139,46 +138,33 @@ ZP-CSI-RS-ResourceId #.FN_HDR RRCReconfigurationComplete col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration Complete"); -# #.FN_BODY UE-CapabilityRAT-Container -# /* Initialise to invalid value */ -# private_data_set_rat_type(actx, 0xFF); -# %(DEFAULT_BODY)s - -# #.FN_BODY RAT-Type VAL_PTR = &rat_type -# guint32 rat_type; -# %(DEFAULT_BODY)s -# private_data_set_rat_type(actx, (guint8)rat_type); - -# #.FN_BODY UE-CapabilityRAT-Container/ueCapabilityRAT-Container VAL_PTR = &ue_cap_tvb -# tvbuff_t *ue_cap_tvb=NULL; -# %(DEFAULT_BODY)s - -# #.FN_FTR UE-CapabilityRAT-Container/ueCapabilityRAT-Container -# if (ue_cap_tvb) { -# proto_tree *subtree; -# -# subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_UE_CapabilityRAT_Container); -# switch(private_data_get_rat_type(actx)){ -# case RAT_Type_nr: -# /* eutra */ -# dissect_nr_rrc_UE_NR_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); -# break; -# case RAT_Type_mrdc: -# /* utra */ -# dissect_nr_rrc_UE_MRDC_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); -# break; -# default: -# break; -# } -# } - -#.FN_BODY UECapabilityInformation VAL_PTR = ¶meter_tvb - tvbuff_t *parameter_tvb; - proto_tree *subtree; +#.FN_BODY UE-CapabilityRAT-Container + /* Initialise to invalid value */ + private_data_set_rat_type(actx, 0xFF); +%(DEFAULT_BODY)s + +#.FN_BODY RAT-Type VAL_PTR = &rat_type + guint32 rat_type; +%(DEFAULT_BODY)s + private_data_set_rat_type(actx, (guint8)rat_type); +#.FN_BODY UE-CapabilityRAT-Container/ue-CapabilityRAT-Container VAL_PTR = &ue_cap_tvb + tvbuff_t *ue_cap_tvb=NULL; %(DEFAULT_BODY)s - if (parameter_tvb) { - subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_UECapabilityInformation); - dissect_lte_rrc_UECapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); +#.FN_FTR UE-CapabilityRAT-Container/ue-CapabilityRAT-Container + if (ue_cap_tvb) { + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_UE_CapabilityRAT_Container); + switch(private_data_get_rat_type(actx)){ + case RAT_Type_nr: + dissect_nr_rrc_UE_NR_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); + break; + case RAT_Type_eutra_nr: + dissect_nr_rrc_UE_MRDC_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); + break; + default: + break; + } } diff --git a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c index e5bcde6e66..0dea113896 100644 --- a/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c +++ b/epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c @@ -1,7 +1,7 @@ /* packet-nr-rrc-template.c * NR; * Radio Resource Control (RRC) protocol specification - * (3GPP TS 38.331 V15.0.0 Release 15) packet dissection + * (3GPP TS 38.331 V15.1.0 Release 15) packet dissection * Copyright 2018, Pascal Quantin * * Wireshark - Network traffic analyzer @@ -43,7 +43,6 @@ static gint ett_nr_rrc = -1; #include "packet-nr-rrc-ett.c" static gint ett_nr_rrc_UECapabilityInformation = -1; -#if 0 typedef struct { guint8 rat_type; } nr_rrc_private_data_t; @@ -68,7 +67,6 @@ 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 #include "packet-nr-rrc-fn.c" diff --git a/epan/dissectors/asn1/x2ap/x2ap.cnf b/epan/dissectors/asn1/x2ap/x2ap.cnf index ed6290bcba..a33ee9ad1c 100644 --- a/epan/dissectors/asn1/x2ap/x2ap.cnf +++ b/epan/dissectors/asn1/x2ap/x2ap.cnf @@ -255,7 +255,7 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC x2ap_data->triggering_message == successful_outcome)) { dissect_nr_rrc_RRCReconfigurationComplete_PDU(parameter_tvb, actx->pinfo, subtree, NULL); } else { - dissect_nr_rrc_SCG_ConfigInfo_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + dissect_nr_rrc_CG_ConfigInfo_PDU(parameter_tvb, actx->pinfo, subtree, NULL); } #.FN_BODY SgNBtoMeNBContainer VAL_PTR = ¶meter_tvb @@ -265,7 +265,7 @@ Port-Number TYPE = FT_UINT16 DISPLAY = BASE_DEC if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_SgNBtoMeNBContainer); - dissect_nr_rrc_SCG_ConfigInfo_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + dissect_nr_rrc_CG_ConfigInfo_PDU(parameter_tvb, actx->pinfo, subtree, NULL); #.FN_HDR MCGSplitSRB/rrcContainer struct x2ap_private_data *x2ap_data = x2ap_get_private_data(actx->pinfo); diff --git a/epan/dissectors/packet-f1ap.c b/epan/dissectors/packet-f1ap.c index 432dbadeaa..278dbd2464 100644 --- a/epan/dissectors/packet-f1ap.c +++ b/epan/dissectors/packet-f1ap.c @@ -338,6 +338,7 @@ static gint ett_f1ap = -1; static gint ett_f1ap_ResourceCoordinationTransferContainer = -1; static gint ett_f1ap_PLMN_Identity = -1; static gint ett_f1ap_MIB_message = -1; +static gint ett_f1ap_SIB1_message = -1; static gint ett_f1ap_SCG_Config_Info = -1; static gint ett_f1ap_CellGroupConfig = -1; static gint ett_f1ap_TransportLayerAddress = -1; @@ -430,7 +431,7 @@ static gint ett_f1ap_SuccessfulOutcome = -1; static gint ett_f1ap_UnsuccessfulOutcome = -1; /*--- End of included file: packet-f1ap-ett.c ---*/ -#line 54 "./asn1/f1ap/packet-f1ap-template.c" +#line 55 "./asn1/f1ap/packet-f1ap-template.c" enum{ INITIATING_MESSAGE, @@ -1146,7 +1147,7 @@ dissect_f1ap_SCG_Config_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx if (param_tvb) { proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SCG_Config_Info); - dissect_nr_rrc_SCG_ConfigInfo_PDU(param_tvb, actx->pinfo, subtree, NULL); + dissect_nr_rrc_CG_ConfigInfo_PDU(param_tvb, actx->pinfo, subtree, NULL); } @@ -1443,8 +1444,17 @@ dissect_f1ap_MIB_message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_f1ap_SIB1_message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 432 "./asn1/f1ap/f1ap.cnf" + tvbuff_t *param_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, NULL); + NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); + + if (param_tvb) { + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_f1ap_SIB1_message); + dissect_nr_rrc_SIB1_PDU(param_tvb, actx->pinfo, subtree, NULL); + } + + return offset; } @@ -1506,7 +1516,6 @@ dissect_f1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t - return offset; } @@ -1707,7 +1716,7 @@ static const per_sequence_t Reset_sequence[] = { static int dissect_f1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 433 "./asn1/f1ap/f1ap.cnf" +#line 440 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Reset"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -1775,7 +1784,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = { static int dissect_f1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 435 "./asn1/f1ap/f1ap.cnf" +#line 442 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -1806,7 +1815,7 @@ static const per_sequence_t ErrorIndication_sequence[] = { static int dissect_f1ap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 475 "./asn1/f1ap/f1ap.cnf" +#line 482 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -1823,7 +1832,7 @@ static const per_sequence_t F1SetupRequest_sequence[] = { static int dissect_f1ap_F1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 437 "./asn1/f1ap/f1ap.cnf" +#line 444 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -1864,7 +1873,7 @@ static const per_sequence_t F1SetupResponse_sequence[] = { static int dissect_f1ap_F1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 439 "./asn1/f1ap/f1ap.cnf" +#line 446 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -1895,7 +1904,7 @@ static const per_sequence_t F1SetupFailure_sequence[] = { static int dissect_f1ap_F1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 441 "./asn1/f1ap/f1ap.cnf" +#line 448 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "F1SetupFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -1912,7 +1921,7 @@ static const per_sequence_t GNBDUConfigurationUpdate_sequence[] = { static int dissect_f1ap_GNBDUConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 443 "./asn1/f1ap/f1ap.cnf" +#line 450 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdate"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -1971,7 +1980,7 @@ static const per_sequence_t GNBDUConfigurationUpdateAcknowledge_sequence[] = { static int dissect_f1ap_GNBDUConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 445 "./asn1/f1ap/f1ap.cnf" +#line 452 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdateAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -1988,7 +1997,7 @@ static const per_sequence_t GNBDUConfigurationUpdateFailure_sequence[] = { static int dissect_f1ap_GNBDUConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 447 "./asn1/f1ap/f1ap.cnf" +#line 454 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBDUConfigurationUpdateFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2005,7 +2014,7 @@ static const per_sequence_t GNBCUConfigurationUpdate_sequence[] = { static int dissect_f1ap_GNBCUConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 449 "./asn1/f1ap/f1ap.cnf" +#line 456 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdate"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2036,7 +2045,7 @@ static const per_sequence_t GNBCUConfigurationUpdateAcknowledge_sequence[] = { static int dissect_f1ap_GNBCUConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 451 "./asn1/f1ap/f1ap.cnf" +#line 458 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdateAcknowledge"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2067,7 +2076,7 @@ static const per_sequence_t GNBCUConfigurationUpdateFailure_sequence[] = { static int dissect_f1ap_GNBCUConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 453 "./asn1/f1ap/f1ap.cnf" +#line 460 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "GNBCUConfigurationUpdateFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2084,7 +2093,7 @@ static const per_sequence_t UEContextSetupRequest_sequence[] = { static int dissect_f1ap_UEContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 455 "./asn1/f1ap/f1ap.cnf" +#line 462 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2208,7 +2217,7 @@ static const per_sequence_t UEContextSetupResponse_sequence[] = { static int dissect_f1ap_UEContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 457 "./asn1/f1ap/f1ap.cnf" +#line 464 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2295,7 +2304,7 @@ static const per_sequence_t UEContextSetupFailure_sequence[] = { static int dissect_f1ap_UEContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 459 "./asn1/f1ap/f1ap.cnf" +#line 466 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextSetupFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2312,7 +2321,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = { static int dissect_f1ap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 477 "./asn1/f1ap/f1ap.cnf" +#line 484 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2329,7 +2338,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = { static int dissect_f1ap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 461 "./asn1/f1ap/f1ap.cnf" +#line 468 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseCommand"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2346,7 +2355,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = { static int dissect_f1ap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 463 "./asn1/f1ap/f1ap.cnf" +#line 470 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextReleaseComplete"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2363,7 +2372,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = { static int dissect_f1ap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 465 "./asn1/f1ap/f1ap.cnf" +#line 472 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequest"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2422,7 +2431,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = { static int dissect_f1ap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 467 "./asn1/f1ap/f1ap.cnf" +#line 474 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationResponse"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2467,7 +2476,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = { static int dissect_f1ap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 469 "./asn1/f1ap/f1ap.cnf" +#line 476 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationFailure"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2484,7 +2493,7 @@ static const per_sequence_t UEContextModificationRequired_sequence[] = { static int dissect_f1ap_UEContextModificationRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 471 "./asn1/f1ap/f1ap.cnf" +#line 478 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationRequired"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2543,7 +2552,7 @@ static const per_sequence_t UEContextModificationConfirm_sequence[] = { static int dissect_f1ap_UEContextModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 473 "./asn1/f1ap/f1ap.cnf" +#line 480 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextModificationConfirm"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2574,7 +2583,7 @@ static const per_sequence_t DLRRCMessageTransfer_sequence[] = { static int dissect_f1ap_DLRRCMessageTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 479 "./asn1/f1ap/f1ap.cnf" +#line 486 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DLRRCMessageTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2591,7 +2600,7 @@ static const per_sequence_t ULRRCMessageTransfer_sequence[] = { static int dissect_f1ap_ULRRCMessageTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 481 "./asn1/f1ap/f1ap.cnf" +#line 488 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ULRRCMessageTransfer"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2608,7 +2617,7 @@ static const per_sequence_t PrivateMessage_sequence[] = { static int dissect_f1ap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 483 "./asn1/f1ap/f1ap.cnf" +#line 490 "./asn1/f1ap/f1ap.cnf" col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -3349,7 +3358,7 @@ static int dissect_F1AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto /*--- End of included file: packet-f1ap-fn.c ---*/ -#line 104 "./asn1/f1ap/packet-f1ap-template.c" +#line 105 "./asn1/f1ap/packet-f1ap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { @@ -4139,7 +4148,7 @@ void proto_register_f1ap(void) { "UnsuccessfulOutcome_value", HFILL }}, /*--- End of included file: packet-f1ap-hfarr.c ---*/ -#line 185 "./asn1/f1ap/packet-f1ap-template.c" +#line 186 "./asn1/f1ap/packet-f1ap-template.c" }; /* List of subtrees */ @@ -4148,6 +4157,7 @@ void proto_register_f1ap(void) { &ett_f1ap_ResourceCoordinationTransferContainer, &ett_f1ap_PLMN_Identity, &ett_f1ap_MIB_message, + &ett_f1ap_SIB1_message, &ett_f1ap_SCG_Config_Info, &ett_f1ap_CellGroupConfig, &ett_f1ap_TransportLayerAddress, @@ -4240,7 +4250,7 @@ void proto_register_f1ap(void) { &ett_f1ap_UnsuccessfulOutcome, /*--- End of included file: packet-f1ap-ettarr.c ---*/ -#line 197 "./asn1/f1ap/packet-f1ap-template.c" +#line 199 "./asn1/f1ap/packet-f1ap-template.c" }; /* Register protocol */ @@ -4354,7 +4364,7 @@ proto_reg_handoff_f1ap(void) /*--- End of included file: packet-f1ap-dis-tab.c ---*/ -#line 222 "./asn1/f1ap/packet-f1ap-template.c" +#line 224 "./asn1/f1ap/packet-f1ap-template.c" } /* diff --git a/epan/dissectors/packet-lte-rrc.c b/epan/dissectors/packet-lte-rrc.c index e830cab0cf..76fbb7d458 100644 --- a/epan/dissectors/packet-lte-rrc.c +++ b/epan/dissectors/packet-lte-rrc.c @@ -294,7 +294,7 @@ static int hf_lte_rrc_DL_DCCH_Message_PDU = -1; /* DL_DCCH_Message */ static int hf_lte_rrc_UL_CCCH_Message_PDU = -1; /* UL_CCCH_Message */ static int hf_lte_rrc_UL_DCCH_Message_PDU = -1; /* UL_DCCH_Message */ static int hf_lte_rrc_SC_MCCH_Message_r13_PDU = -1; /* SC_MCCH_Message_r13 */ -static int hf_lte_rrc_lte_rrc_UECapabilityInformation_PDU = -1; /* UECapabilityInformation */ +static int hf_lte_rrc_UECapabilityInformation_PDU = -1; /* UECapabilityInformation */ static int hf_lte_rrc_lte_rrc_RLF_Report_r9_PDU = -1; /* RLF_Report_r9 */ static int hf_lte_rrc_lte_rrc_RLF_Report_v9e0_PDU = -1; /* RLF_Report_v9e0 */ static int hf_lte_rrc_lte_rrc_UE_EUTRA_Capability_PDU = -1; /* UE_EUTRA_Capability */ @@ -1492,7 +1492,7 @@ static int hf_lte_rrc_requestReducedIntNonContComb_r13 = -1; /* T_requestReduce static int hf_lte_rrc_nonCriticalExtension_162 = -1; /* UECapabilityEnquiry_v1430_IEs */ static int hf_lte_rrc_requestDiffFallbackCombList_r14 = -1; /* BandCombinationList_r14 */ static int hf_lte_rrc_nonCriticalExtension_163 = -1; /* UECapabilityEnquiry_v1510_IEs */ -static int hf_lte_rrc_requestedFreqBandsNR_MRDC_r15 = -1; /* OCTET_STRING */ +static int hf_lte_rrc_requestedFreqBandsNR_MRDC_r15 = -1; /* T_requestedFreqBandsNR_MRDC_r15 */ static int hf_lte_rrc_nonCriticalExtension_164 = -1; /* T_nonCriticalExtension_55 */ static int hf_lte_rrc_UE_CapabilityRequest_item = -1; /* RAT_Type */ static int hf_lte_rrc_criticalExtensions_46 = -1; /* T_criticalExtensions_46 */ @@ -8951,6 +8951,7 @@ static gint ett_lte_rrc_sourceRB_ConfigNR_r15 = -1; static gint ett_lte_rrc_sourceRB_ConfigSN_NR_r15 = -1; static gint ett_lte_rrc_sourceOtherConfigSN_NR_r15 = -1; static gint ett_lte_rrc_sourceContextENDC_r15 = -1; +static gint ett_lte_rrc_requestedFreqBandsNR_MRDC_r15 = -1; static expert_field ei_lte_rrc_number_pages_le15 = EI_INIT; static expert_field ei_lte_rrc_si_info_value_changed = EI_INIT; @@ -9005,6 +9006,7 @@ static const fragment_items lte_rrc_sib12_frag_items = { /* Forward declarations */ static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +static int dissect_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); static const true_false_string lte_rrc_eutra_cap_feat_group_ind_1_val = { "Intra-subframe freq hopping for PUSCH scheduled by UL grant; DCI format 3a; Aperiodic CQI/PMI/RI report on PUSCH: Mode 2-0 & 2-2 - Supported", @@ -39681,7 +39683,7 @@ dissect_lte_rrc_T_sourceContextENDC_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ if (scg_config_info_tvb) { proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_sourceContextENDC_r15); - dissect_nr_rrc_SCG_ConfigInfo_PDU(scg_config_info_tvb, actx->pinfo, subtree, NULL); + dissect_nr_rrc_ConfigRestrictInfoSCG_PDU(scg_config_info_tvb, actx->pinfo, subtree, NULL); } @@ -43883,7 +43885,7 @@ dissect_lte_rrc_PowerCoordinationInfo_r12(tvbuff_t *tvb _U_, int offset _U_, asn static int dissect_lte_rrc_T_eutra_CapabilityInfo_r12(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_containing_pdu_new(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, dissect_lte_rrc_UECapabilityInformation_PDU); + NO_BOUND, NO_BOUND, FALSE, dissect_UECapabilityInformation_PDU); return offset; } @@ -44554,7 +44556,7 @@ dissect_lte_rrc_UEPagingCoverageInformation(tvbuff_t *tvb _U_, int offset _U_, a static int dissect_lte_rrc_T_ue_RadioAccessCapabilityInfo(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_containing_pdu_new(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, dissect_lte_rrc_UECapabilityInformation_PDU); + NO_BOUND, NO_BOUND, FALSE, dissect_UECapabilityInformation_PDU); return offset; } @@ -55639,6 +55641,23 @@ dissect_lte_rrc_BandCombinationList_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ } + +static int +dissect_lte_rrc_T_requestedFreqBandsNR_MRDC_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *freq_band_list_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, &freq_band_list_tvb); + + if (freq_band_list_tvb) { + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_requestedFreqBandsNR_MRDC_r15); + dissect_nr_rrc_FreqBandList_PDU(freq_band_list_tvb, actx->pinfo, subtree, NULL); + } + + + return offset; +} + + static const per_sequence_t T_nonCriticalExtension_55_sequence[] = { { NULL, 0, 0, NULL } }; @@ -55653,7 +55672,7 @@ dissect_lte_rrc_T_nonCriticalExtension_55(tvbuff_t *tvb _U_, int offset _U_, asn static const per_sequence_t UECapabilityEnquiry_v1510_IEs_sequence[] = { - { &hf_lte_rrc_requestedFreqBandsNR_MRDC_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_OCTET_STRING }, + { &hf_lte_rrc_requestedFreqBandsNR_MRDC_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_requestedFreqBandsNR_MRDC_r15 }, { &hf_lte_rrc_nonCriticalExtension_164, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lte_rrc_T_nonCriticalExtension_55 }, { NULL, 0, 0, NULL } }; @@ -88167,11 +88186,11 @@ static int dissect_SC_MCCH_Message_r13_PDU(tvbuff_t *tvb _U_, packet_info *pinfo offset += 7; offset >>= 3; return offset; } -int dissect_lte_rrc_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { +static int dissect_UECapabilityInformation_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_lte_rrc_UECapabilityInformation(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_lte_rrc_UECapabilityInformation_PDU); + offset = dissect_lte_rrc_UECapabilityInformation(tvb, offset, &asn1_ctx, tree, hf_lte_rrc_UECapabilityInformation_PDU); offset += 7; offset >>= 3; return offset; } @@ -88522,7 +88541,7 @@ static int dissect_UE_RadioPagingInfo_NB_r13_PDU(tvbuff_t *tvb _U_, packet_info /*--- End of included file: packet-lte-rrc-fn.c ---*/ -#line 3082 "./asn1/lte-rrc/packet-lte-rrc-template.c" +#line 3084 "./asn1/lte-rrc/packet-lte-rrc-template.c" static int dissect_lte_rrc_DL_CCCH(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) @@ -88957,7 +88976,7 @@ void proto_register_lte_rrc(void) { { "SC-MCCH-Message-r13", "lte-rrc.SC_MCCH_Message_r13_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_lte_rrc_lte_rrc_UECapabilityInformation_PDU, + { &hf_lte_rrc_UECapabilityInformation_PDU, { "UECapabilityInformation", "lte-rrc.UECapabilityInformation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, @@ -93752,7 +93771,7 @@ void proto_register_lte_rrc(void) { { &hf_lte_rrc_requestedFreqBandsNR_MRDC_r15, { "requestedFreqBandsNR-MRDC-r15", "lte-rrc.requestedFreqBandsNR_MRDC_r15", FT_BYTES, BASE_NONE, NULL, 0, - "OCTET_STRING", HFILL }}, + NULL, HFILL }}, { &hf_lte_rrc_nonCriticalExtension_164, { "nonCriticalExtension", "lte-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, @@ -111939,7 +111958,7 @@ void proto_register_lte_rrc(void) { "CarrierFreq_NB_r13", HFILL }}, /*--- End of included file: packet-lte-rrc-hfarr.c ---*/ -#line 3442 "./asn1/lte-rrc/packet-lte-rrc-template.c" +#line 3444 "./asn1/lte-rrc/packet-lte-rrc-template.c" { &hf_lte_rrc_eutra_cap_feat_group_ind_1, { "Indicator 1", "lte-rrc.eutra_cap_feat_group_ind_1", @@ -115353,7 +115372,7 @@ void proto_register_lte_rrc(void) { &ett_lte_rrc_PCI_ARFCN_NB_r14, /*--- End of included file: packet-lte-rrc-ettarr.c ---*/ -#line 4169 "./asn1/lte-rrc/packet-lte-rrc-template.c" +#line 4171 "./asn1/lte-rrc/packet-lte-rrc-template.c" &ett_lte_rrc_featureGroupIndicators, &ett_lte_rrc_featureGroupIndRel9Add, @@ -115388,7 +115407,8 @@ void proto_register_lte_rrc(void) { &ett_lte_rrc_sourceRB_ConfigNR_r15, &ett_lte_rrc_sourceRB_ConfigSN_NR_r15, &ett_lte_rrc_sourceOtherConfigSN_NR_r15, - &ett_lte_rrc_sourceContextENDC_r15 + &ett_lte_rrc_sourceContextENDC_r15, + &ett_lte_rrc_requestedFreqBandsNR_MRDC_r15 }; static ei_register_info ei[] = { @@ -115458,7 +115478,7 @@ void proto_register_lte_rrc(void) { register_dissector("lte-rrc.ul.ccch", dissect_UL_CCCH_Message_PDU, proto_lte_rrc); register_dissector("lte-rrc.ul.dcch", dissect_UL_DCCH_Message_PDU, proto_lte_rrc); register_dissector("lte-rrc.sc.mcch", dissect_SC_MCCH_Message_r13_PDU, proto_lte_rrc); - register_dissector("lte-rrc.ue_cap_info", dissect_lte_rrc_UECapabilityInformation_PDU, proto_lte_rrc); + register_dissector("lte-rrc.ue_cap_info", dissect_UECapabilityInformation_PDU, proto_lte_rrc); register_dissector("lte-rrc.ue_eutra_cap", dissect_lte_rrc_UE_EUTRA_Capability_PDU, proto_lte_rrc); register_dissector("lte-rrc.sbcch.sl.bch", dissect_SBCCH_SL_BCH_Message_PDU, proto_lte_rrc); register_dissector("lte-rrc.sbcch.sl.bch.v2x", dissect_SBCCH_SL_BCH_Message_V2X_r14_PDU, proto_lte_rrc); @@ -115475,7 +115495,7 @@ void proto_register_lte_rrc(void) { /*--- End of included file: packet-lte-rrc-dis-reg.c ---*/ -#line 4257 "./asn1/lte-rrc/packet-lte-rrc-template.c" +#line 4260 "./asn1/lte-rrc/packet-lte-rrc-template.c" lte_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal); lte_rrc_system_info_value_changed_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal); diff --git a/epan/dissectors/packet-lte-rrc.h b/epan/dissectors/packet-lte-rrc.h index cccbc26114..6ffd79a327 100644 --- a/epan/dissectors/packet-lte-rrc.h +++ b/epan/dissectors/packet-lte-rrc.h @@ -28,7 +28,6 @@ int dissect_lte_rrc_HandoverCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U int dissect_lte_rrc_HandoverPreparationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_lte_rrc_SCG_ConfigInfo_r12_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_lte_rrc_UEPagingCoverageInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); -int dissect_lte_rrc_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_lte_rrc_RLF_Report_r9_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_lte_rrc_RLF_Report_v9e0_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_lte_rrc_UE_EUTRA_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); diff --git a/epan/dissectors/packet-nr-rrc.c b/epan/dissectors/packet-nr-rrc.c index 320f1c2fb8..944b4741ad 100644 --- a/epan/dissectors/packet-nr-rrc.c +++ b/epan/dissectors/packet-nr-rrc.c @@ -1,7 +1,7 @@ /* 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 */ +/* asn2wrs.py -L -p nr-rrc -c ./nr-rrc.cnf -s ./packet-nr-rrc-template -D . -O ../.. NR-InterNodeDefinitions.asn NR-RRC-Definitions.asn NR-UE-Variables.asn */ /* Input file: packet-nr-rrc-template.c */ @@ -9,7 +9,7 @@ /* packet-nr-rrc-template.c * NR; * Radio Resource Control (RRC) protocol specification - * (3GPP TS 38.331 V15.0.0 Release 15) packet dissection + * (3GPP TS 38.331 V15.1.0 Release 15) packet dissection * Copyright 2018, Pascal Quantin * * Wireshark - Network traffic analyzer @@ -43,90 +43,144 @@ void proto_reg_handoff_nr_rrc(void); /*--- 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 maxMeasFreqsMN 32 +#define maxNrofNZP_CSI_RS_ResourceSets 64 +#define maxNrofNZP_CSI_RS_ResourceSets_1 63 +#define maxNrofCSI_SSB_ResourceSets 64 +#define maxNrofCSI_SSB_ResourceSets_1 63 +#define maxNrofCSI_IM_ResourceSets 64 +#define maxNrofCSI_IM_ResourceSets_1 63 +#define maxNrofNZP_CSI_RS_ResourcesPerConfig 128 +#define maxNrOfSemiPersistentPUSCH_Triggers 64 +#define maxBandComb 65536 +#define maxBasebandProcComb 65536 +#define maxNrofServingCells 32 +#define maxNrofServingCells_1 31 +#define maxNrofAggregatedCellsPerCellGroup 16 +#define maxNrofSCells 31 +#define maxNrofCellMeas 32 +#define maxNrofSS_BlocksToAverage 16 +#define maxNrofCSI_RS_ResourcesToAverage 16 +#define maxNrofDL_Allocations 16 +#define maxNrofSR_ConfigPerCellGroup 8 #define maxLCG_ID 7 -#define macLC_ID 64 +#define maxLC_ID 32 #define maxNrofTAGs 4 #define maxNrofTAGs_1 3 -#define maxNrofBandwidthParts 4 -#define maxNrofBandwidthParts_1 3 -#define maxSymbolIndex 13 +#define maxNrofBWPs 4 +#define maxNrofSymbols_1 13 +#define maxNrofSlots 320 +#define maxNrofSlots_1 319 #define maxNrofPhysicalResourceBlocks 275 #define maxNrofPhysicalResourceBlocks_1 274 -#define maxNrofPhysicalResourceBlocksTimes4 1100 -#define maxNrofControlResourceSets 2 -#define maxNrofControlResourceSets_1 1 -#define maxCoReSetStartSymbol 0 +#define maxNrofControlResourceSets 12 +#define maxNrofControlResourceSets_1 11 #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 maxNrofSearchSpaces 40 +#define maxNrofSearchSpaces_1 39 +#define maxSFI_DCI_PayloadSize 128 +#define maxSFI_DCI_PayloadSize_1 127 +#define maxINT_DCI_PayloadSize 126 +#define maxINT_DCI_PayloadSize_1 125 +#define maxNrofRateMatchPatterns 4 +#define maxNrofRateMatchPatterns_1 3 +#define maxNrofCSI_ReportConfigurations 48 +#define maxNrofCSI_ReportConfigurations_1 47 +#define maxNrofCSI_ResourceConfigurations 112 +#define maxNrofCSI_ResourceConfigurations_1 111 +#define maxNrofAP_CSI_RS_ResourcesPerSet 16 +#define maxNrOfCSI_AperiodicTriggers 128 +#define maxNrofReportConfigPerAperiodicTrigger 16 +#define maxNrofNZP_CSI_RS_Resources 192 +#define maxNrofNZP_CSI_RS_Resources_1 191 +#define maxNrofNZP_CSI_RS_ResourcesPerSet 64 +#define maxNrofNZP_CSI_RS_ResourceSetsPerConfig 16 +#define maxNrofZP_CSI_RS_Resources 32 +#define maxNrofZP_CSI_RS_Resources_1 31 +#define maxNrofZP_CSI_RS_ResourceSets_1 16 +#define maxNrofZP_CSI_RS_ResourcesPerSet 16 +#define maxNrofZP_CSI_RS_Sets 16 +#define maxNrofCSI_IM_Resources 32 +#define maxNrofCSI_IM_Resources_1 31 +#define maxNrofCSI_IM_ResourcesPerSet 8 +#define maxNrofCSI_IM_ResourceSetsPerConfig 16 #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 maxNrofCSI_SSB_ResourcePerSet 64 +#define maxNrofCSI_SSB_ResourceSetsPerConfig 1 +#define maxNrofFailureDetectionResources 10 +#define maxNrofObjectId 64 +#define maxNrofPCI_Ranges 8 +#define maxNrofCSI_RS_ResourcesRRM 96 +#define maxNrofCSI_RS_ResourcesRRM_1 95 +#define maxNrofMeasId 64 +#define maxNrofQuantityConfig 2 +#define maxNrofCSI_RS_CellsRRM 96 +#define maxNrofSRS_ResourceSets 16 +#define maxNrofSRS_ResourceSets_1 15 +#define maxNrofSRS_Resources 64 +#define maxNrofSRS_Resources_1 63 +#define maxNrofSRS_TriggerStates_1 3 +#define maxRAT_CapabilityContainers 8 +#define maxSimultaneousBands 32 +#define maxNrofSlotFormatCombinationsPerCell 16 +#define maxNrofSlotFormatCombinationsPerSet 4096 +#define maxNrofSlotFormatCombinationsPerSet_1 4095 +#define maxNrofPUCCH_Resources 128 +#define maxNrofPUCCH_Resources_1 127 +#define maxNrofPUCCH_ResourceSets 4 +#define maxNrofPUCCH_ResourceSets_1 3 +#define maxNrofPUCCH_ResourcesPerSet 32 +#define maxNrofPUCCH_ResourcesPerSet_1 31 +#define maxNrofPUCCH_P0_PerSet 8 +#define maxNrofPUCCH_PathlossReferenceRSs 4 +#define maxNrofPUCCH_PathlossReferenceRSs_1 3 +#define maxNrofP0_PUSCH_AlphaSets 30 +#define maxNrofP0_PUSCH_AlphaSets_1 29 +#define maxNrofPUSCH_PathlossReferenceRSs 4 +#define maxNrofPUSCH_PathlossReferenceRSs_1 3 +#define maxBands 1024 +#define maxBandsMRDC 1280 +#define maxBandsEUTRA 256 +#define maxCellPrep 32 #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 +#define maxFreq 8 +#define maxNrofCSI_RS 64 +#define maxNrofCandidateBeams 16 +#define maxNrofPCIsPerSMTC 64 +#define maxNrofQFIs 64 +#define maxNrofSR_Resources 8 +#define maxNrofSlotFormatsPerCombination 256 +#define maxNrofSpatialRelationInfos 8 +#define maxNrofSRS_ResourcesPerSet 16 +#define maxNrofIndexesToReport 32 +#define maxNrofSSBs 64 +#define maxNrofSSBs_1 63 +#define maxNrofTCI_StatesPDCCH 64 +#define maxNrofTCI_States 64 +#define maxNrofTCI_States_1 63 +#define maxNrofUL_Allocations 16 +#define maxQFI 63 +#define maxRA_CSIRS_Resources 96 +#define maxRA_OccasionsPerCSIRS 64 +#define maxRA_Occasions_1 511 +#define maxRA_SSB_Resources 64 +#define maxSCSs 5 +#define maxSecondaryCellGroups 3 +#define maxNrofServingCellsEUTRA 32 +#define maxMBSFN_Allocations 8 +#define maxNrofMultiBands 8 +#define maxCellSFTD 3 +#define maxReportConfigId 64 +#define maxNrofSRI_PUSCH_Mappings 16 +#define maxNrofSRI_PUSCH_Mappings_1 15 + +typedef enum _RAT_Type_enum { + RAT_Type_nr = 0, + RAT_Type_eutra_nr = 1, + RAT_Type_spare2 = 2, + RAT_Type_spare1 = 3 +} RAT_Type_enum; /*--- End of included file: packet-nr-rrc-val.h ---*/ #line 36 "./asn1/nr-rrc/packet-nr-rrc-template.c" @@ -136,53 +190,98 @@ 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_nr_rrc_SCG_ConfigInfo_PDU = -1; /* SCG_ConfigInfo */ +static int hf_nr_rrc_nr_rrc_CG_ConfigInfo_PDU = -1; /* CG_ConfigInfo */ +static int hf_nr_rrc_nr_rrc_ConfigRestrictInfoSCG_PDU = -1; /* ConfigRestrictInfoSCG */ 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_nr_rrc_UL_DCCH_Message_PDU = -1; /* UL_DCCH_Message */ static int hf_nr_rrc_nr_rrc_MIB_PDU = -1; /* MIB */ static int hf_nr_rrc_nr_rrc_RRCReconfiguration_PDU = -1; /* RRCReconfiguration */ static int hf_nr_rrc_nr_rrc_RRCReconfigurationComplete_PDU = -1; /* RRCReconfigurationComplete */ +static int hf_nr_rrc_nr_rrc_SIB1_PDU = -1; /* SIB1 */ static int hf_nr_rrc_nr_rrc_CellGroupConfig_PDU = -1; /* CellGroupConfig */ static int hf_nr_rrc_nr_rrc_MeasResults_PDU = -1; /* MeasResults */ static int hf_nr_rrc_nr_rrc_RadioBearerConfig_PDU = -1; /* RadioBearerConfig */ +static int hf_nr_rrc_nr_rrc_FreqBandList_PDU = -1; /* FreqBandList */ static int hf_nr_rrc_nr_rrc_UE_MRDC_Capability_PDU = -1; /* UE_MRDC_Capability */ static int hf_nr_rrc_nr_rrc_UE_NR_Capability_PDU = -1; /* UE_NR_Capability */ -static int hf_nr_rrc_UECapabilityInformation_PDU = -1; /* UECapabilityInformation */ -static int hf_nr_rrc_RadioBearerConfiguration_PDU = -1; /* RadioBearerConfiguration */ +static int hf_nr_rrc_UE_CapabilityRAT_ContainerList_PDU = -1; /* UE_CapabilityRAT_ContainerList */ +static int hf_nr_rrc_CandidateCellInfoList_PDU = -1; /* CandidateCellInfoList */ +static int hf_nr_rrc_MeasResultSCG_Failure_PDU = -1; /* MeasResultSCG_Failure */ +static int hf_nr_rrc_measuredFrequency = -1; /* ARFCN_ValueNR */ static int hf_nr_rrc_criticalExtensions = -1; /* T_criticalExtensions */ static int hf_nr_rrc_c1 = -1; /* T_c1 */ -static int hf_nr_rrc_scg_ConfigInfo_r15 = -1; /* SCG_ConfigInfo_r15_IEs */ +static int hf_nr_rrc_cg_ConfigInfo = -1; /* CG_ConfigInfo_IEs */ 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_criticalExtensionsFuture = -1; /* T_criticalExtensionsFuture */ -static int hf_nr_rrc_eutra_CapabilityInfo = -1; /* T_eutra_CapabilityInfo */ -static int hf_nr_rrc_candidateCellInfoList = -1; /* CandidateCellInfoList */ -static int hf_nr_rrc_measResultSSTD = -1; /* MeasResultSSTD */ +static int hf_nr_rrc_ue_CapabilityInfo = -1; /* T_ue_CapabilityInfo */ +static int hf_nr_rrc_candidateCellInfoListMN = -1; /* CandidateCellInfoList */ +static int hf_nr_rrc_candidateCellInfoListSN = -1; /* T_candidateCellInfoListSN */ +static int hf_nr_rrc_measResultCellListSFTD = -1; /* MeasResultCellListSFTD */ +static int hf_nr_rrc_scgFailureInfo = -1; /* T_scgFailureInfo */ +static int hf_nr_rrc_failureType = -1; /* T_failureType */ +static int hf_nr_rrc_measResultSCG = -1; /* T_measResultSCG */ static int hf_nr_rrc_configRestrictInfo = -1; /* ConfigRestrictInfoSCG */ static int hf_nr_rrc_drx_InfoMCG = -1; /* DRX_Info */ +static int hf_nr_rrc_measConfigMN = -1; /* MeasConfigMN */ static int hf_nr_rrc_sourceConfigSCG = -1; /* T_sourceConfigSCG */ -static int hf_nr_rrc_p_maxFR1 = -1; /* P_Max */ +static int hf_nr_rrc_scg_RB_Config = -1; /* T_scg_RB_Config */ static int hf_nr_rrc_mcg_RB_Config = -1; /* T_mcg_RB_Config */ static int hf_nr_rrc_nonCriticalExtension = -1; /* T_nonCriticalExtension */ -static int hf_nr_rrc_restrictedBandCombinationNR = -1; /* INTEGER */ -static int hf_nr_rrc_restrictedBasebandCombinationNR_NR = -1; /* T_restrictedBasebandCombinationNR_NR */ -static int hf_nr_rrc_restrictedBasebandCombinationNR_NR_item = -1; /* INTEGER */ -static int hf_nr_rrc_maxMeasFreqsSCG_NR = -1; /* INTEGER */ -static int hf_nr_rrc_cycle = -1; /* INTEGER */ -static int hf_nr_rrc_offset = -1; /* INTEGER */ +static int hf_nr_rrc_allowedBC_ListMRDC = -1; /* BandCombinationIndexList */ +static int hf_nr_rrc_allowedBPC_ListMRDC = -1; /* BPC_IndexList */ +static int hf_nr_rrc_powerCoordination_FR1 = -1; /* T_powerCoordination_FR1 */ +static int hf_nr_rrc_p_maxNR = -1; /* P_Max */ +static int hf_nr_rrc_p_maxEUTRA = -1; /* P_Max */ +static int hf_nr_rrc_servCellIndexRangeSCG = -1; /* T_servCellIndexRangeSCG */ +static int hf_nr_rrc_lowBound = -1; /* ServCellIndex */ +static int hf_nr_rrc_upBound = -1; /* ServCellIndex */ +static int hf_nr_rrc_maxMeasFreqsSCG_NR = -1; /* INTEGER_1_maxMeasFreqsMN */ +static int hf_nr_rrc_BandCombinationIndexList_item = -1; /* BandCombinationIndex */ +static int hf_nr_rrc_BPC_IndexList_item = -1; /* BPC_Index */ +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_measuredFrequenciesMN = -1; /* SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo */ +static int hf_nr_rrc_measuredFrequenciesMN_item = -1; /* NR_FreqInfo */ +static int hf_nr_rrc_measGapConfigFR1 = -1; /* GapConfig */ +static int hf_nr_rrc_gapPurpose = -1; /* T_gapPurpose */ static int hf_nr_rrc_CandidateCellInfoList_item = -1; /* CandidateCellInfo */ static int hf_nr_rrc_cellIdentification = -1; /* T_cellIdentification */ static int hf_nr_rrc_physCellId = -1; /* PhysCellId */ static int hf_nr_rrc_dl_CarrierFreq = -1; /* ARFCN_ValueNR */ -static int hf_nr_rrc_measResultCell = -1; /* T_measResultCell */ -static int hf_nr_rrc_rsrpResultCell = -1; /* RSRP_Range */ -static int hf_nr_rrc_rsrqResultCell = -1; /* RSRQ_Range */ -static int hf_nr_rrc_candidateRS_IndexList = -1; /* CandidateRS_IndexInfoList */ -static int hf_nr_rrc_CandidateRS_IndexInfoList_item = -1; /* CandidateRS_IndexInfo */ +static int hf_nr_rrc_measResultCell = -1; /* MeasQuantityResults */ +static int hf_nr_rrc_candidateRS_IndexListSSB = -1; /* CandidateRS_IndexInfoListSSB */ +static int hf_nr_rrc_candidateRS_IndexListCSI_RS = -1; /* CandidateRS_IndexInfoListCSI_RS */ +static int hf_nr_rrc_CandidateRS_IndexInfoListSSB_item = -1; /* CandidateRS_IndexInfoSSB */ static int hf_nr_rrc_ssb_Index = -1; /* SSB_Index */ -static int hf_nr_rrc_measResultSSB = -1; /* T_measResultSSB */ +static int hf_nr_rrc_measResultSSB = -1; /* MeasQuantityResults */ +static int hf_nr_rrc_CandidateRS_IndexInfoListCSI_RS_item = -1; /* CandidateRS_IndexInfoCSI_RS */ +static int hf_nr_rrc_csi_RS_Index = -1; /* CSI_RS_Index */ +static int hf_nr_rrc_measResultCSI_RS = -1; /* MeasQuantityResults */ 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 */ @@ -207,237 +306,524 @@ static int hf_nr_rrc_c1_02 = -1; /* T_c1_02 */ 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_systemFrameNumber = -1; /* BIT_STRING_SIZE_6 */ +static int hf_nr_rrc_subCarrierSpacingCommon = -1; /* T_subCarrierSpacingCommon */ +static int hf_nr_rrc_ssb_SubcarrierOffset = -1; /* INTEGER_0_15 */ 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_pdcch_ConfigSIB1 = -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_spare = -1; /* BIT_STRING_SIZE_1 */ static int hf_nr_rrc_criticalExtensions_01 = -1; /* T_criticalExtensions_01 */ static int hf_nr_rrc_measurementReport_01 = -1; /* MeasurementReport_IEs */ static int hf_nr_rrc_criticalExtensionsFuture_01 = -1; /* T_criticalExtensionsFuture_01 */ static int hf_nr_rrc_measResults = -1; /* MeasResults */ +static int hf_nr_rrc_lateNonCriticalExtension = -1; /* OCTET_STRING */ +static int hf_nr_rrc_nonCriticalExtension_01 = -1; /* T_nonCriticalExtension_01 */ static int hf_nr_rrc_rrc_TransactionIdentifier = -1; /* RRC_TransactionIdentifier */ static int hf_nr_rrc_criticalExtensions_02 = -1; /* T_criticalExtensions_02 */ static int hf_nr_rrc_rrcReconfiguration_01 = -1; /* RRCReconfiguration_IEs */ static int hf_nr_rrc_criticalExtensionsFuture_02 = -1; /* T_criticalExtensionsFuture_02 */ 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_secondaryCellGroup = -1; /* T_secondaryCellGroup */ static int hf_nr_rrc_measConfig = -1; /* MeasConfig */ -static int hf_nr_rrc_lateNonCriticalExtension = -1; /* OCTET_STRING */ -static int hf_nr_rrc_nonCriticalExtension_01 = -1; /* T_nonCriticalExtension_01 */ +static int hf_nr_rrc_nonCriticalExtension_02 = -1; /* T_nonCriticalExtension_02 */ static int hf_nr_rrc_criticalExtensions_03 = -1; /* T_criticalExtensions_03 */ static int hf_nr_rrc_rrcReconfigurationComplete_01 = -1; /* RRCReconfigurationComplete_IEs */ static int hf_nr_rrc_criticalExtensionsFuture_03 = -1; /* T_criticalExtensionsFuture_03 */ -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_nonCriticalExtension_03 = -1; /* T_nonCriticalExtension_03 */ +static int hf_nr_rrc_frequencyOffsetSSB = -1; /* T_frequencyOffsetSSB */ +static int hf_nr_rrc_ssb_PositionsInBurst = -1; /* T_ssb_PositionsInBurst */ +static int hf_nr_rrc_inOneGroup = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_groupPresence = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_ssb_PeriodicityServingCell = -1; /* T_ssb_PeriodicityServingCell */ +static int hf_nr_rrc_ss_PBCH_BlockPower = -1; /* INTEGER_M60_50 */ +static int hf_nr_rrc_uplinkConfigCommon = -1; /* UplinkConfigCommon */ +static int hf_nr_rrc_supplementaryUplink = -1; /* T_supplementaryUplink */ +static int hf_nr_rrc_tdd_UL_DL_Configuration = -1; /* TDD_UL_DL_ConfigCommon */ +static int hf_nr_rrc_tdd_UL_DL_configurationCommon2 = -1; /* TDD_UL_DL_ConfigCommon */ +static int hf_nr_rrc_pdcch_ConfigCommon = -1; /* PDCCH_ConfigCommon */ +static int hf_nr_rrc_pucch_ConfigCommon = -1; /* PUCCH_ConfigCommon */ +static int hf_nr_rrc_nonCriticalExtension_04 = -1; /* T_nonCriticalExtension_04 */ +static int hf_nr_rrc_locationAndBandwidth = -1; /* INTEGER_0_37949 */ +static int hf_nr_rrc_subcarrierSpacing = -1; /* 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_bwp_Id = -1; /* BWP_Id */ +static int hf_nr_rrc_bwp_Common = -1; /* BWP_UplinkCommon */ +static int hf_nr_rrc_bwp_Dedicated = -1; /* BWP_UplinkDedicated */ +static int hf_nr_rrc_genericParameters = -1; /* BWP */ +static int hf_nr_rrc_rach_ConfigCommon = -1; /* T_rach_ConfigCommon */ +static int hf_nr_rrc_release = -1; /* NULL */ +static int hf_nr_rrc_setup = -1; /* RACH_ConfigCommon */ +static int hf_nr_rrc_pusch_ConfigCommon = -1; /* T_pusch_ConfigCommon */ +static int hf_nr_rrc_setup_01 = -1; /* PUSCH_ConfigCommon */ +static int hf_nr_rrc_pucch_ConfigCommon_01 = -1; /* T_pucch_ConfigCommon */ +static int hf_nr_rrc_setup_02 = -1; /* PUCCH_ConfigCommon */ +static int hf_nr_rrc_pucch_Config = -1; /* T_pucch_Config */ +static int hf_nr_rrc_setup_03 = -1; /* PUCCH_Config */ +static int hf_nr_rrc_pusch_Config = -1; /* T_pusch_Config */ +static int hf_nr_rrc_setup_04 = -1; /* PUSCH_Config */ +static int hf_nr_rrc_configuredGrantConfig = -1; /* T_configuredGrantConfig */ +static int hf_nr_rrc_setup_05 = -1; /* ConfiguredGrantConfig */ +static int hf_nr_rrc_srs_Config = -1; /* T_srs_Config */ +static int hf_nr_rrc_setup_06 = -1; /* SRS_Config */ +static int hf_nr_rrc_beamFailureRecoveryConfig = -1; /* T_beamFailureRecoveryConfig */ +static int hf_nr_rrc_setup_07 = -1; /* BeamFailureRecoveryConfig */ +static int hf_nr_rrc_bwp_Common_01 = -1; /* BWP_DownlinkCommon */ +static int hf_nr_rrc_bwp_Dedicated_01 = -1; /* BWP_DownlinkDedicated */ +static int hf_nr_rrc_pdcch_ConfigCommon_01 = -1; /* T_pdcch_ConfigCommon */ +static int hf_nr_rrc_setup_08 = -1; /* PDCCH_ConfigCommon */ +static int hf_nr_rrc_pdsch_ConfigCommon = -1; /* T_pdsch_ConfigCommon */ +static int hf_nr_rrc_setup_09 = -1; /* PDSCH_ConfigCommon */ +static int hf_nr_rrc_pdcch_Config = -1; /* T_pdcch_Config */ +static int hf_nr_rrc_setup_10 = -1; /* PDCCH_Config */ +static int hf_nr_rrc_pdsch_Config = -1; /* T_pdsch_Config */ +static int hf_nr_rrc_setup_11 = -1; /* PDSCH_Config */ +static int hf_nr_rrc_sps_Config = -1; /* T_sps_Config */ +static int hf_nr_rrc_setup_12 = -1; /* SPS_Config */ +static int hf_nr_rrc_radioLinkMonitoringConfig = -1; /* T_radioLinkMonitoringConfig */ +static int hf_nr_rrc_setup_13 = -1; /* RadioLinkMonitoringConfig */ +static int hf_nr_rrc_rootSequenceIndex_BFR = -1; /* INTEGER_0_137 */ +static int hf_nr_rrc_rach_ConfigBFR = -1; /* RACH_ConfigGeneric */ +static int hf_nr_rrc_candidateBeamThreshold = -1; /* RSRP_Range */ +static int hf_nr_rrc_candidateBeamRSList = -1; /* SEQUENCE_SIZE_1_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR */ +static int hf_nr_rrc_candidateBeamRSList_item = -1; /* PRACH_ResourceDedicatedBFR */ +static int hf_nr_rrc_ra_ssb_OccasionMaskIndex = -1; /* INTEGER_0_15 */ +static int hf_nr_rrc_recoveryControlResourceSetId = -1; /* ControlResourceSetId */ +static int hf_nr_rrc_recoverySearchSpaceId = -1; /* SearchSpaceId */ +static int hf_nr_rrc_ssb = -1; /* BFR_SSB_Resource */ +static int hf_nr_rrc_csi_RS = -1; /* BFR_CSIRS_Resource */ +static int hf_nr_rrc_ssb_01 = -1; /* SSB_Index */ +static int hf_nr_rrc_ra_PreambleIndex = -1; /* INTEGER_0_63 */ +static int hf_nr_rrc_csi_RS_01 = -1; /* NZP_CSI_RS_ResourceId */ 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_BearerToAddModList = -1; /* SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_Bearer_Config */ +static int hf_nr_rrc_rlc_BearerToAddModList_item = -1; /* RLC_Bearer_Config */ +static int hf_nr_rrc_rlc_BearerToReleaseList = -1; /* SEQUENCE_SIZE_1_maxLC_ID_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_physicalCellGroupConfig = -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_sCellToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig */ +static int hf_nr_rrc_sCellToAddModList_item = -1; /* SCellConfig */ +static int hf_nr_rrc_sCellToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex */ +static int hf_nr_rrc_sCellToReleaseList_item = -1; /* SCellIndex */ static int hf_nr_rrc_logicalChannelIdentity = -1; /* LogicalChannelIdentity */ -static int hf_nr_rrc_servedRadioBearer = -1; /* INTEGER_1_32 */ +static int hf_nr_rrc_servedRadioBearer = -1; /* T_servedRadioBearer */ +static int hf_nr_rrc_srb_Identity = -1; /* SRB_Identity */ +static int hf_nr_rrc_drb_Identity = -1; /* DRB_Identity */ 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_harq_ACK_SpatialBundlingPUCCH = -1; /* T_harq_ACK_SpatialBundlingPUCCH */ +static int hf_nr_rrc_harq_ACK_SpatialBundlingPUSCH = -1; /* T_harq_ACK_SpatialBundlingPUSCH */ +static int hf_nr_rrc_p_NR = -1; /* P_Max */ +static int hf_nr_rrc_pdsch_HARQ_ACK_Codebook = -1; /* T_pdsch_HARQ_ACK_Codebook */ +static int hf_nr_rrc_tpc_SRS_RNTI = -1; /* RNTI_Value */ +static int hf_nr_rrc_tpc_PUCCH_RNTI = -1; /* RNTI_Value */ +static int hf_nr_rrc_tpc_PUSCH_RNTI = -1; /* RNTI_Value */ +static int hf_nr_rrc_servCellIndex = -1; /* ServCellIndex */ +static int hf_nr_rrc_reconfigurationWithSync = -1; /* ReconfigurationWithSync */ +static int hf_nr_rrc_rlf_TimersAndConstants = -1; /* T_rlf_TimersAndConstants */ +static int hf_nr_rrc_setup_14 = -1; /* RLF_TimersAndConstants */ +static int hf_nr_rrc_rlmInSyncOutOfSyncThreshold = -1; /* INTEGER_0_1 */ +static int hf_nr_rrc_spCellConfigDedicated = -1; /* ServingCellConfig */ static int hf_nr_rrc_spCellConfigCommon = -1; /* ServingCellConfigCommon */ -static int hf_nr_rrc_newUE_Identity = -1; /* C_RNTI */ +static int hf_nr_rrc_newUE_Identity = -1; /* RNTI_Value */ 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_rach_ConfigDedicated = -1; /* T_rach_ConfigDedicated */ +static int hf_nr_rrc_uplink = -1; /* RACH_ConfigDedicated */ +static int hf_nr_rrc_supplementaryUplink_01 = -1; /* RACH_ConfigDedicated */ 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_sCellConfigDedicated = -1; /* ServingCellConfig */ +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_typeI_SinglePanel = -1; /* T_typeI_SinglePanel */ +static int hf_nr_rrc_nrOfAntennaPorts = -1; /* T_nrOfAntennaPorts */ +static int hf_nr_rrc_two = -1; /* T_two */ +static int hf_nr_rrc_twoTX_CodebookSubsetRestriction = -1; /* BIT_STRING_SIZE_6 */ +static int hf_nr_rrc_moreThanTwo = -1; /* T_moreThanTwo */ +static int hf_nr_rrc_n1_n2 = -1; /* T_n1_n2 */ +static int hf_nr_rrc_two_one_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_two_two_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_64 */ +static int hf_nr_rrc_four_one_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_three_two_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_96 */ +static int hf_nr_rrc_six_one_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_24 */ +static int hf_nr_rrc_four_two_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_128 */ +static int hf_nr_rrc_eight_one_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_32 */ +static int hf_nr_rrc_four_three_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_192 */ +static int hf_nr_rrc_six_two_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_192 */ +static int hf_nr_rrc_twelve_one_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_48 */ +static int hf_nr_rrc_four_four_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_256 */ +static int hf_nr_rrc_eight_two_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_256 */ +static int hf_nr_rrc_sixteen_one_TypeI_SinglePanel_Restriction = -1; /* BIT_STRING_SIZE_64 */ +static int hf_nr_rrc_typeI_SinglePanel_codebookSubsetRestriction_i2 = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_typeI_SinglePanel_ri_Restriction = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_typeI_MultiPanel = -1; /* T_typeI_MultiPanel */ +static int hf_nr_rrc_ng_n1_n2 = -1; /* T_ng_n1_n2 */ +static int hf_nr_rrc_two_two_one_TypeI_MultiPanel_Restriction = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_two_four_one_TypeI_MultiPanel_Restriction = -1; /* BIT_STRING_SIZE_32 */ +static int hf_nr_rrc_four_two_one_TypeI_MultiPanel_Restriction = -1; /* BIT_STRING_SIZE_32 */ +static int hf_nr_rrc_two_two_two_TypeI_MultiPanel_Restriction = -1; /* BIT_STRING_SIZE_128 */ +static int hf_nr_rrc_two_eight_one_TypeI_MultiPanel_Restriction = -1; /* BIT_STRING_SIZE_64 */ +static int hf_nr_rrc_four_four_one_TypeI_MultiPanel_Restriction = -1; /* BIT_STRING_SIZE_64 */ +static int hf_nr_rrc_two_four_two_TypeI_MultiPanel_Restriction = -1; /* BIT_STRING_SIZE_256 */ +static int hf_nr_rrc_four_two_two_TypeI_MultiPanel_Restriction = -1; /* BIT_STRING_SIZE_256 */ +static int hf_nr_rrc_ri_Restriction = -1; /* BIT_STRING_SIZE_4 */ +static int hf_nr_rrc_codebookMode = -1; /* INTEGER_1_2 */ +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_typeII = -1; /* T_typeII */ +static int hf_nr_rrc_n1_n2_codebookSubsetRestriction = -1; /* T_n1_n2_codebookSubsetRestriction */ +static int hf_nr_rrc_two_one = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_two_two = -1; /* BIT_STRING_SIZE_139 */ +static int hf_nr_rrc_four_one = -1; /* BIT_STRING_SIZE_32 */ +static int hf_nr_rrc_three_two = -1; /* BIT_STRING_SIZE_59 */ +static int hf_nr_rrc_six_one = -1; /* BIT_STRING_SIZE_49 */ +static int hf_nr_rrc_four_two = -1; /* BIT_STRING_SIZE_75 */ +static int hf_nr_rrc_eight_one = -1; /* BIT_STRING_SIZE_65 */ +static int hf_nr_rrc_four_three = -1; /* BIT_STRING_SIZE_107 */ +static int hf_nr_rrc_six_two = -1; /* BIT_STRING_SIZE_107 */ +static int hf_nr_rrc_twelve_one = -1; /* BIT_STRING_SIZE_129 */ +static int hf_nr_rrc_four_four = -1; /* BIT_STRING_SIZE_139 */ +static int hf_nr_rrc_eight_two = -1; /* BIT_STRING_SIZE_139 */ +static int hf_nr_rrc_sixteen_one = -1; /* BIT_STRING_SIZE_129 */ +static int hf_nr_rrc_typeII_RI_Restriction = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_typeII_PortSelection = -1; /* T_typeII_PortSelection */ +static int hf_nr_rrc_portSelectionSamplingSize = -1; /* T_portSelectionSamplingSize */ +static int hf_nr_rrc_typeII_PortSelectionRI_Restriction = -1; /* BIT_STRING_SIZE_2 */ +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_frequencyHopping = -1; /* T_frequencyHopping */ +static int hf_nr_rrc_cg_DMRS_Configuration = -1; /* DMRS_UplinkConfig */ +static int hf_nr_rrc_mcs_Table = -1; /* T_mcs_Table */ +static int hf_nr_rrc_mcs_TableTransformPrecoder = -1; /* T_mcs_TableTransformPrecoder */ +static int hf_nr_rrc_uci_OnPUSCH = -1; /* T_uci_OnPUSCH */ +static int hf_nr_rrc_setup_15 = -1; /* CG_UCI_OnPUSCH */ +static int hf_nr_rrc_resourceAllocation = -1; /* T_resourceAllocation */ +static int hf_nr_rrc_rbg_Size = -1; /* T_rbg_Size */ +static int hf_nr_rrc_powerControlLoopToUse = -1; /* T_powerControlLoopToUse */ +static int hf_nr_rrc_p0_PUSCH_Alpha = -1; /* P0_PUSCH_AlphaSetId */ +static int hf_nr_rrc_transformPrecoder = -1; /* T_transformPrecoder */ +static int hf_nr_rrc_nrofHARQ_Processes = -1; /* INTEGER_1_16 */ +static int hf_nr_rrc_repK = -1; /* T_repK */ +static int hf_nr_rrc_repK_RV = -1; /* T_repK_RV */ +static int hf_nr_rrc_periodicity = -1; /* T_periodicity */ +static int hf_nr_rrc_configuredGrantTimer = -1; /* T_configuredGrantTimer */ +static int hf_nr_rrc_rrc_ConfiguredUplinkGrant = -1; /* T_rrc_ConfiguredUplinkGrant */ +static int hf_nr_rrc_timeDomainOffset = -1; /* INTEGER_0_5119 */ +static int hf_nr_rrc_timeDomainAllocation = -1; /* INTEGER_0_15 */ +static int hf_nr_rrc_frequencyDomainAllocation = -1; /* BIT_STRING_SIZE_18 */ +static int hf_nr_rrc_antennaPort = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_dmrs_SeqInitialization = -1; /* INTEGER_0_1 */ +static int hf_nr_rrc_precodingAndNumberOfLayers = -1; /* INTEGER_0_63 */ +static int hf_nr_rrc_srs_ResourceIndicator = -1; /* INTEGER_0_15 */ +static int hf_nr_rrc_mcsAndTBS = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_frequencyHoppingOffset = -1; /* INTEGER_1_maxNrofPhysicalResourceBlocks_1 */ +static int hf_nr_rrc_pathlossReferenceIndex = -1; /* INTEGER_0_maxNrofPUSCH_PathlossReferenceRSs_1 */ +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_controlResourceSetId = -1; /* ControlResourceSetId */ +static int hf_nr_rrc_frequencyDomainResources = -1; /* BIT_STRING_SIZE_45 */ +static int hf_nr_rrc_duration = -1; /* INTEGER_1_maxCoReSetDuration */ +static int hf_nr_rrc_cce_REG_MappingType = -1; /* T_cce_REG_MappingType */ +static int hf_nr_rrc_interleaved = -1; /* T_interleaved */ +static int hf_nr_rrc_reg_BundleSize = -1; /* T_reg_BundleSize */ +static int hf_nr_rrc_interleaverSize = -1; /* T_interleaverSize */ +static int hf_nr_rrc_shiftIndex = -1; /* INTEGER_0_maxNrofPhysicalResourceBlocks_1 */ +static int hf_nr_rrc_nonInterleaved = -1; /* NULL */ +static int hf_nr_rrc_precoderGranularity = -1; /* T_precoderGranularity */ +static int hf_nr_rrc_tci_StatesPDCCH = -1; /* SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId */ +static int hf_nr_rrc_tci_StatesPDCCH_item = -1; /* TCI_StateId */ +static int hf_nr_rrc_tci_PresentInDCI = -1; /* T_tci_PresentInDCI */ +static int hf_nr_rrc_pdcch_DMRS_ScramblingID = -1; /* BIT_STRING_SIZE_16 */ 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_CSI_AperiodicTriggerStateList_item = -1; /* CSI_AperiodicTriggerState */ +static int hf_nr_rrc_associatedReportConfigInfoList = -1; /* SEQUENCE_SIZE_1_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo */ +static int hf_nr_rrc_associatedReportConfigInfoList_item = -1; /* CSI_AssociatedReportConfigInfo */ static int hf_nr_rrc_reportConfigId = -1; /* CSI_ReportConfigId */ +static int hf_nr_rrc_resourcesForChannel = -1; /* T_resourcesForChannel */ +static int hf_nr_rrc_nzp_CSI_RS = -1; /* T_nzp_CSI_RS */ +static int hf_nr_rrc_resourceSet = -1; /* INTEGER_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig */ +static int hf_nr_rrc_qcl_info = -1; /* SEQUENCE_SIZE_1_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId */ +static int hf_nr_rrc_qcl_info_item = -1; /* TCI_StateId */ +static int hf_nr_rrc_csi_SSB_ResourceSet = -1; /* INTEGER_1_maxNrofCSI_SSB_ResourceSetsPerConfig */ +static int hf_nr_rrc_csi_IM_ResourcesforInteference = -1; /* INTEGER_1_maxNrofCSI_IM_ResourceSetsPerConfig */ +static int hf_nr_rrc_nzp_CSI_RS_ResourcesforInterference = -1; /* INTEGER_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig */ +static int hf_nr_rrc_startingRB = -1; /* INTEGER_0_maxNrofPhysicalResourceBlocks_1 */ +static int hf_nr_rrc_nrofRBs = -1; /* INTEGER_24_maxNrofPhysicalResourceBlocks */ +static int hf_nr_rrc_csi_IM_ResourceId = -1; /* CSI_IM_ResourceId */ +static int hf_nr_rrc_csi_IM_ResourceElementPattern = -1; /* T_csi_IM_ResourceElementPattern */ +static int hf_nr_rrc_pattern0 = -1; /* T_pattern0 */ +static int hf_nr_rrc_subcarrierLocation_p0 = -1; /* T_subcarrierLocation_p0 */ +static int hf_nr_rrc_symbolLocation_p0 = -1; /* INTEGER_0_12 */ +static int hf_nr_rrc_pattern1 = -1; /* T_pattern1 */ +static int hf_nr_rrc_subcarrierLocation_p1 = -1; /* T_subcarrierLocation_p1 */ +static int hf_nr_rrc_symbolLocation_p1 = -1; /* INTEGER_0_13 */ +static int hf_nr_rrc_freqBand = -1; /* CSI_FrequencyOccupation */ +static int hf_nr_rrc_periodicityAndOffset = -1; /* CSI_ResourcePeriodicityAndOffset */ +static int hf_nr_rrc_csi_IM_ResourceSetId = -1; /* CSI_IM_ResourceSetId */ +static int hf_nr_rrc_csi_IM_Resources = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_ResourceId */ +static int hf_nr_rrc_csi_IM_Resources_item = -1; /* CSI_IM_ResourceId */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_Resource */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceToAddModList_item = -1; /* NZP_CSI_RS_Resource */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceToReleaseList_item = -1; /* NZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceSetToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSet */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceSetToAddModList_item = -1; /* NZP_CSI_RS_ResourceSet */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceSetToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceSetToReleaseList_item = -1; /* NZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_csi_IM_ResourceToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_Resource */ +static int hf_nr_rrc_csi_IM_ResourceToAddModList_item = -1; /* CSI_IM_Resource */ +static int hf_nr_rrc_csi_IM_ResourceToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_ResourceId */ +static int hf_nr_rrc_csi_IM_ResourceToReleaseList_item = -1; /* CSI_IM_ResourceId */ +static int hf_nr_rrc_csi_IM_ResourceSetToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSet */ +static int hf_nr_rrc_csi_IM_ResourceSetToAddModList_item = -1; /* CSI_IM_ResourceSet */ +static int hf_nr_rrc_csi_IM_ResourceSetToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSetId */ +static int hf_nr_rrc_csi_IM_ResourceSetToReleaseList_item = -1; /* CSI_IM_ResourceSetId */ +static int hf_nr_rrc_csi_SSB_ResourceSetToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSet */ +static int hf_nr_rrc_csi_SSB_ResourceSetToAddModList_item = -1; /* CSI_SSB_ResourceSet */ +static int hf_nr_rrc_csi_SSB_ResourceSetToAddReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSetId */ +static int hf_nr_rrc_csi_SSB_ResourceSetToAddReleaseList_item = -1; /* CSI_SSB_ResourceSetId */ +static int hf_nr_rrc_csi_ResourceConfigToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig */ +static int hf_nr_rrc_csi_ResourceConfigToAddModList_item = -1; /* CSI_ResourceConfig */ +static int hf_nr_rrc_csi_ResourceConfigToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfigId */ +static int hf_nr_rrc_csi_ResourceConfigToReleaseList_item = -1; /* CSI_ResourceConfigId */ +static int hf_nr_rrc_csi_ReportConfigToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfig */ +static int hf_nr_rrc_csi_ReportConfigToAddModList_item = -1; /* CSI_ReportConfig */ +static int hf_nr_rrc_csi_ReportConfigToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfigId */ +static int hf_nr_rrc_csi_ReportConfigToReleaseList_item = -1; /* CSI_ReportConfigId */ +static int hf_nr_rrc_reportTriggerSize = -1; /* INTEGER_0_6 */ +static int hf_nr_rrc_aperiodicTriggerStateList = -1; /* T_aperiodicTriggerStateList */ +static int hf_nr_rrc_setup_16 = -1; /* CSI_AperiodicTriggerStateList */ +static int hf_nr_rrc_semiPersistentOnPUSCH_TriggerStateList = -1; /* T_semiPersistentOnPUSCH_TriggerStateList */ +static int hf_nr_rrc_setup_17 = -1; /* CSI_SemiPersistentOnPUSCH_TriggerStateList */ +static int hf_nr_rrc_carrier = -1; /* ServCellIndex */ +static int hf_nr_rrc_resourcesForChannelMeasurement = -1; /* CSI_ResourceConfigId */ +static int hf_nr_rrc_csi_IM_ResourcesForInterference = -1; /* CSI_ResourceConfigId */ +static int hf_nr_rrc_nzp_CSI_RS_ResourcesForInterference = -1; /* CSI_ResourceConfigId */ 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_periodic = -1; /* T_periodic */ +static int hf_nr_rrc_reportSlotConfig = -1; /* CSI_ReportPeriodicityAndOffset */ +static int hf_nr_rrc_pucch_CSI_ResourceList = -1; /* SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource */ +static int hf_nr_rrc_pucch_CSI_ResourceList_item = -1; /* PUCCH_CSI_Resource */ +static int hf_nr_rrc_semiPersistentOnPUCCH = -1; /* T_semiPersistentOnPUCCH */ +static int hf_nr_rrc_semiPersistentOnPUSCH = -1; /* T_semiPersistentOnPUSCH */ +static int hf_nr_rrc_reportSlotConfig_01 = -1; /* T_reportSlotConfig */ +static int hf_nr_rrc_reportSlotOffsetList = -1; /* T_reportSlotOffsetList */ +static int hf_nr_rrc_reportSlotOffsetList_item = -1; /* INTEGER_0_7 */ +static int hf_nr_rrc_csi_RNTI = -1; /* RNTI_Value */ +static int hf_nr_rrc_p0alpha = -1; /* P0_PUSCH_AlphaSetId */ +static int hf_nr_rrc_aperiodic = -1; /* T_aperiodic */ +static int hf_nr_rrc_reportSlotOffsetList_01 = -1; /* T_reportSlotOffsetList_01 */ 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_none = -1; /* NULL */ +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_cri_RI_CQI = -1; /* NULL */ +static int hf_nr_rrc_cri_RSRP = -1; /* NULL */ +static int hf_nr_rrc_ssb_Index_RSRP = -1; /* NULL */ +static int hf_nr_rrc_cri_RI_LI_PMI_CQI = -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_subbands3 = -1; /* BIT_STRING_SIZE_3 */ +static int hf_nr_rrc_subbands4 = -1; /* BIT_STRING_SIZE_4 */ +static int hf_nr_rrc_subbands5 = -1; /* BIT_STRING_SIZE_5 */ +static int hf_nr_rrc_subbands6 = -1; /* BIT_STRING_SIZE_6 */ +static int hf_nr_rrc_subbands7 = -1; /* BIT_STRING_SIZE_7 */ +static int hf_nr_rrc_subbands8 = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_subbands9 = -1; /* BIT_STRING_SIZE_9 */ +static int hf_nr_rrc_subbands10 = -1; /* BIT_STRING_SIZE_10 */ +static int hf_nr_rrc_subbands11 = -1; /* BIT_STRING_SIZE_11 */ +static int hf_nr_rrc_subbands12 = -1; /* BIT_STRING_SIZE_12 */ +static int hf_nr_rrc_subbands13 = -1; /* BIT_STRING_SIZE_13 */ +static int hf_nr_rrc_subbands14 = -1; /* BIT_STRING_SIZE_14 */ +static int hf_nr_rrc_subbands15 = -1; /* BIT_STRING_SIZE_15 */ +static int hf_nr_rrc_subbands16 = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_subbands17 = -1; /* BIT_STRING_SIZE_17 */ +static int hf_nr_rrc_subbands18 = -1; /* BIT_STRING_SIZE_18 */ +static int hf_nr_rrc_timeRestrictionForChannelMeasurements = -1; /* T_timeRestrictionForChannelMeasurements */ +static int hf_nr_rrc_timeRestrictionForInterferenceMeasurements = -1; /* T_timeRestrictionForInterferenceMeasurements */ 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_enabled = -1; /* NULL */ 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_non_PMI_PortIndication = -1; /* SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks */ +static int hf_nr_rrc_non_PMI_PortIndication_item = -1; /* PortIndexFor8Ranks */ +static int hf_nr_rrc_slots4 = -1; /* INTEGER_0_3 */ +static int hf_nr_rrc_slots5 = -1; /* INTEGER_0_4 */ +static int hf_nr_rrc_slots8 = -1; /* INTEGER_0_7 */ +static int hf_nr_rrc_slots10 = -1; /* INTEGER_0_9 */ +static int hf_nr_rrc_slots16 = -1; /* INTEGER_0_15 */ +static int hf_nr_rrc_slots20 = -1; /* INTEGER_0_19 */ +static int hf_nr_rrc_slots40 = -1; /* INTEGER_0_39 */ +static int hf_nr_rrc_slots80 = -1; /* INTEGER_0_79 */ +static int hf_nr_rrc_slots160 = -1; /* INTEGER_0_159 */ +static int hf_nr_rrc_slots320 = -1; /* INTEGER_0_319 */ +static int hf_nr_rrc_uplinkBandwidthPartId = -1; /* BWP_Id */ +static int hf_nr_rrc_pucch_Resource = -1; /* PUCCH_Resource */ +static int hf_nr_rrc_portIndex8 = -1; /* T_portIndex8 */ +static int hf_nr_rrc_rank1_8 = -1; /* PortIndex8 */ +static int hf_nr_rrc_rank2_8 = -1; /* SEQUENCE_SIZE_1_2_OF_PortIndex8 */ +static int hf_nr_rrc_rank2_8_item = -1; /* PortIndex8 */ +static int hf_nr_rrc_rank3_8 = -1; /* SEQUENCE_SIZE_1_3_OF_PortIndex8 */ +static int hf_nr_rrc_rank3_8_item = -1; /* PortIndex8 */ +static int hf_nr_rrc_rank4_8 = -1; /* SEQUENCE_SIZE_1_4_OF_PortIndex8 */ +static int hf_nr_rrc_rank4_8_item = -1; /* PortIndex8 */ +static int hf_nr_rrc_rank5_8 = -1; /* SEQUENCE_SIZE_1_5_OF_PortIndex8 */ +static int hf_nr_rrc_rank5_8_item = -1; /* PortIndex8 */ +static int hf_nr_rrc_rank6_8 = -1; /* SEQUENCE_SIZE_1_6_OF_PortIndex8 */ +static int hf_nr_rrc_rank6_8_item = -1; /* PortIndex8 */ +static int hf_nr_rrc_rank7_8 = -1; /* SEQUENCE_SIZE_1_7_OF_PortIndex8 */ +static int hf_nr_rrc_rank7_8_item = -1; /* PortIndex8 */ +static int hf_nr_rrc_rank8_8 = -1; /* SEQUENCE_SIZE_1_8_OF_PortIndex8 */ +static int hf_nr_rrc_rank8_8_item = -1; /* PortIndex8 */ +static int hf_nr_rrc_portIndex4 = -1; /* T_portIndex4 */ +static int hf_nr_rrc_rank1_4 = -1; /* PortIndex4 */ +static int hf_nr_rrc_rank2_4 = -1; /* SEQUENCE_SIZE_1_2_OF_PortIndex4 */ +static int hf_nr_rrc_rank2_4_item = -1; /* PortIndex4 */ +static int hf_nr_rrc_rank3_4 = -1; /* SEQUENCE_SIZE_1_3_OF_PortIndex4 */ +static int hf_nr_rrc_rank3_4_item = -1; /* PortIndex4 */ +static int hf_nr_rrc_rank4_4 = -1; /* SEQUENCE_SIZE_1_4_OF_PortIndex4 */ +static int hf_nr_rrc_rank4_4_item = -1; /* PortIndex4 */ +static int hf_nr_rrc_portIndex2 = -1; /* T_portIndex2 */ +static int hf_nr_rrc_rank1_2 = -1; /* PortIndex2 */ +static int hf_nr_rrc_rank2_2 = -1; /* SEQUENCE_SIZE_1_2_OF_PortIndex2 */ +static int hf_nr_rrc_rank2_2_item = -1; /* PortIndex2 */ +static int hf_nr_rrc_portIndex1 = -1; /* NULL */ +static int hf_nr_rrc_csi_ResourceConfigId = -1; /* CSI_ResourceConfigId */ +static int hf_nr_rrc_csi_RS_ResourceSetList = -1; /* T_csi_RS_ResourceSetList */ +static int hf_nr_rrc_nzp_CSI_RS_SSB = -1; /* T_nzp_CSI_RS_SSB */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceSetList = -1; /* SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceSetList_item = -1; /* NZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_csi_SSB_ResourceSetList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_ResourceSetId */ +static int hf_nr_rrc_csi_SSB_ResourceSetList_item = -1; /* CSI_SSB_ResourceSetId */ +static int hf_nr_rrc_csi_IM_ResourceSetList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_ResourceSetId */ +static int hf_nr_rrc_csi_IM_ResourceSetList_item = -1; /* CSI_IM_ResourceSetId */ +static int hf_nr_rrc_resourceType = -1; /* T_resourceType */ +static int hf_nr_rrc_slots32 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_slots64 = -1; /* INTEGER_0_63 */ +static int hf_nr_rrc_slots640 = -1; /* INTEGER_0_639 */ +static int hf_nr_rrc_frequencyDomainAllocation_01 = -1; /* T_frequencyDomainAllocation */ +static int hf_nr_rrc_row1 = -1; /* BIT_STRING_SIZE_4 */ +static int hf_nr_rrc_row2 = -1; /* BIT_STRING_SIZE_12 */ +static int hf_nr_rrc_row4 = -1; /* BIT_STRING_SIZE_3 */ +static int hf_nr_rrc_other_01 = -1; /* BIT_STRING_SIZE_6 */ +static int hf_nr_rrc_nrofPorts = -1; /* T_nrofPorts */ +static int hf_nr_rrc_firstOFDMSymbolInTimeDomain = -1; /* INTEGER_0_13 */ +static int hf_nr_rrc_firstOFDMSymbolInTimeDomain2 = -1; /* INTEGER_0_13 */ +static int hf_nr_rrc_cdm_Type = -1; /* T_cdm_Type */ +static int hf_nr_rrc_density = -1; /* T_density */ +static int hf_nr_rrc_dot5 = -1; /* T_dot5 */ +static int hf_nr_rrc_one = -1; /* NULL */ +static int hf_nr_rrc_three = -1; /* NULL */ +static int hf_nr_rrc_spare_01 = -1; /* NULL */ +static int hf_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList_item = -1; /* CSI_SemiPersistentOnPUSCH_TriggerState */ +static int hf_nr_rrc_associatedReportConfigInfo = -1; /* CSI_ReportConfigId */ +static int hf_nr_rrc_csi_SSB_ResourceSetId = -1; /* CSI_SSB_ResourceSetId */ +static int hf_nr_rrc_csi_SSB_ResourceList = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_SSB_Index */ +static int hf_nr_rrc_csi_SSB_ResourceList_item = -1; /* SSB_Index */ +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; /* BIT_STRING_SIZE_12 */ +static int hf_nr_rrc_dmrs_group2 = -1; /* BIT_STRING_SIZE_12 */ +static int hf_nr_rrc_maxLength = -1; /* T_maxLength */ +static int hf_nr_rrc_scramblingID0 = -1; /* INTEGER_0_65535 */ +static int hf_nr_rrc_scramblingID1 = -1; /* INTEGER_0_65535 */ +static int hf_nr_rrc_phaseTrackingRS = -1; /* T_phaseTrackingRS */ +static int hf_nr_rrc_setup_18 = -1; /* PTRS_DownlinkConfig */ +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_phaseTrackingRS_01 = -1; /* T_phaseTrackingRS_01 */ +static int hf_nr_rrc_setup_19 = -1; /* PTRS_UplinkConfig */ +static int hf_nr_rrc_maxLength_01 = -1; /* T_maxLength_01 */ +static int hf_nr_rrc_transformPrecoding = -1; /* T_transformPrecoding */ +static int hf_nr_rrc_disabled_01 = -1; /* T_disabled_01 */ +static int hf_nr_rrc_enabled_01 = -1; /* T_enabled */ +static int hf_nr_rrc_nPUSCH_Identity = -1; /* INTEGER_0_1007 */ +static int hf_nr_rrc_disableSequenceGroupHopping = -1; /* T_disableSequenceGroupHopping */ +static int hf_nr_rrc_sequenceHoppingEnabled = -1; /* T_sequenceHoppingEnabled */ +static int hf_nr_rrc_int_RNTI = -1; /* RNTI_Value */ +static int hf_nr_rrc_timeFrequencySet = -1; /* T_timeFrequencySet */ +static int hf_nr_rrc_dci_PayloadSize = -1; /* INTEGER_0_maxINT_DCI_PayloadSize */ +static int hf_nr_rrc_int_ConfigurationPerServingCell = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell */ +static int hf_nr_rrc_int_ConfigurationPerServingCell_item = -1; /* INT_ConfigurationPerServingCell */ +static int hf_nr_rrc_servingCellId = -1; /* ServCellIndex */ +static int hf_nr_rrc_positionInDCI = -1; /* INTEGER_0_maxINT_DCI_PayloadSize_1 */ +static int hf_nr_rrc_EUTRA_MBSFN_SubframeConfigList_item = -1; /* EUTRA_MBSFN_SubframeConfig */ +static int hf_nr_rrc_radioframeAllocationPeriod = -1; /* T_radioframeAllocationPeriod */ +static int hf_nr_rrc_radioframeAllocationOffset = -1; /* INTEGER_0_7 */ +static int hf_nr_rrc_subframeAllocation = -1; /* T_subframeAllocation */ +static int hf_nr_rrc_oneFrame = -1; /* BIT_STRING_SIZE_6 */ +static int hf_nr_rrc_fourFrames = -1; /* BIT_STRING_SIZE_24 */ +static int hf_nr_rrc_subframeAllocation_v1430 = -1; /* T_subframeAllocation_v1430 */ +static int hf_nr_rrc_oneFrame_v1430 = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_fourFrames_v1430 = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_absoluteFrequencySSB = -1; /* ARFCN_ValueNR */ +static int hf_nr_rrc_ssb_SubcarrierOffset_01 = -1; /* INTEGER_1_23 */ +static int hf_nr_rrc_frequencyBandList = -1; /* MultiFrequencyBandListNR */ +static int hf_nr_rrc_absoluteFrequencyPointA = -1; /* ARFCN_ValueNR */ +static int hf_nr_rrc_scs_SpecificCarrierList = -1; /* SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier */ +static int hf_nr_rrc_scs_SpecificCarrierList_item = -1; /* SCS_SpecificCarrier */ +static int hf_nr_rrc_scs_SpecificCarriers = -1; /* SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier */ +static int hf_nr_rrc_scs_SpecificCarriers_item = -1; /* SCS_SpecificCarrier */ 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_allowedServingCells = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex */ +static int hf_nr_rrc_allowedServingCells_item = -1; /* ServCellIndex */ +static int hf_nr_rrc_allowedSCS_List = -1; /* SEQUENCE_SIZE_1_maxSCSs_OF_SubcarrierSpacing */ +static int hf_nr_rrc_allowedSCS_List_item = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_maxPUSCH_Duration = -1; /* T_maxPUSCH_Duration */ +static int hf_nr_rrc_configuredGrantType1Allowed = -1; /* T_configuredGrantType1Allowed */ +static int hf_nr_rrc_logicalChannelGroup = -1; /* INTEGER_0_maxLCG_ID */ +static int hf_nr_rrc_schedulingRequestID = -1; /* SchedulingRequestId */ 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_drx_Config = -1; /* T_drx_Config */ +static int hf_nr_rrc_setup_20 = -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_bsr_Config = -1; /* BSR_Config */ +static int hf_nr_rrc_tag_Config = -1; /* TAG_Config */ +static int hf_nr_rrc_phr_Config = -1; /* T_phr_Config */ +static int hf_nr_rrc_setup_21 = -1; /* PHR_Config */ 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_cs_RNTI = -1; /* T_cs_RNTI */ +static int hf_nr_rrc_setup_22 = -1; /* RNTI_Value */ static int hf_nr_rrc_drx_onDurationTimer = -1; /* T_drx_onDurationTimer */ +static int hf_nr_rrc_subMilliSeconds = -1; /* INTEGER_1_31 */ +static int hf_nr_rrc_milliSeconds = -1; /* T_milliSeconds */ 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_drx_LongCycleStartOffset_01 = -1; /* T_drx_LongCycleStartOffset_01 */ +static int hf_nr_rrc_shortDRX_01 = -1; /* T_shortDRX_01 */ +static int hf_nr_rrc_drx_ShortCycle_01 = -1; /* T_drx_ShortCycle_01 */ +static int hf_nr_rrc_drx_SlotOffset = -1; /* INTEGER_0_31 */ 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 */ @@ -445,15 +831,15 @@ 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_ToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id */ +static int hf_nr_rrc_tag_ToReleaseList_item = -1; /* TAG_Id */ +static int hf_nr_rrc_tag_ToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_ToAddMod */ +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_logicalChannelSR_DelayTimer = -1; /* T_logicalChannelSR_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 */ @@ -461,178 +847,182 @@ 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_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_gapFR2 = -1; /* T_gapFR2 */ +static int hf_nr_rrc_setup_23 = -1; /* GapConfig */ +static int hf_nr_rrc_gapOffset = -1; /* INTEGER_0_159 */ +static int hf_nr_rrc_mgl = -1; /* T_mgl */ +static int hf_nr_rrc_mgrp = -1; /* T_mgrp */ +static int hf_nr_rrc_mgta = -1; /* T_mgta */ 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_ssbFrequency = -1; /* ARFCN_ValueNR */ +static int hf_nr_rrc_refFreqCSI_RS = -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_nrofSS_BlocksToAverage = -1; /* INTEGER_2_maxNrofSS_BlocksToAverage */ +static int hf_nr_rrc_nrofCSI_RS_ResourcesToAverage = -1; /* INTEGER_2_maxNrofCSI_RS_ResourcesToAverage */ +static int hf_nr_rrc_quantityConfigIndex = -1; /* INTEGER_1_maxNrofQuantityConfig */ static int hf_nr_rrc_offsetFreq = -1; /* Q_OffsetRangeList */ -static int hf_nr_rrc_cellsToRemoveList = -1; /* CellIndexList */ +static int hf_nr_rrc_cellsToRemoveList = -1; /* PCI_List */ static int hf_nr_rrc_cellsToAddModList = -1; /* CellsToAddModList */ -static int hf_nr_rrc_blackCellsToRemoveList = -1; /* CellIndexList */ +static int hf_nr_rrc_blackCellsToRemoveList = -1; /* PCI_RangeIndexList */ static int hf_nr_rrc_blackCellsToAddModList = -1; /* BlackCellsToAddModList */ -static int hf_nr_rrc_whiteCellsToRemoveList = -1; /* CellIndexList */ +static int hf_nr_rrc_whiteCellsToRemoveList = -1; /* PCI_RangeIndexList */ 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_ssb_ConfigMobility = -1; /* SSB_ConfigMobility */ +static int hf_nr_rrc_csi_rs_ResourceConfigMobility = -1; /* T_csi_rs_ResourceConfigMobility */ +static int hf_nr_rrc_setup_24 = -1; /* CSI_RS_ResourceConfigMobility */ +static int hf_nr_rrc_ssb_ToMeasure = -1; /* T_ssb_ToMeasure */ +static int hf_nr_rrc_setup_25 = -1; /* SSB_ToMeasure */ 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_periodicityAndOffset_01 = -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_duration_01 = -1; /* T_duration */ 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_pci_List = -1; /* SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId */ +static int hf_nr_rrc_pci_List_item = -1; /* PhysCellId */ +static int hf_nr_rrc_periodicity_01 = -1; /* T_periodicity_01 */ +static int hf_nr_rrc_ss_RSSI_Measurement = -1; /* T_ss_RSSI_Measurement */ +static int hf_nr_rrc_measurementSlots = -1; /* T_measurementSlots */ +static int hf_nr_rrc_kHz15 = -1; /* BIT_STRING_SIZE_1 */ +static int hf_nr_rrc_kHz30 = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_kHz60 = -1; /* BIT_STRING_SIZE_4 */ +static int hf_nr_rrc_kHz120 = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_endSymbol = -1; /* INTEGER_0_13 */ static int hf_nr_rrc_isServingCellMO = -1; /* BOOLEAN */ +static int hf_nr_rrc_csi_RS_CellList_Mobility = -1; /* SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility */ +static int hf_nr_rrc_csi_RS_CellList_Mobility_item = -1; /* CSI_RS_CellMobility */ +static int hf_nr_rrc_cellId = -1; /* PhysCellId */ +static int hf_nr_rrc_csi_rs_MeasurementBW = -1; /* T_csi_rs_MeasurementBW */ +static int hf_nr_rrc_nrofPRBs = -1; /* T_nrofPRBs */ +static int hf_nr_rrc_startPRB = -1; /* INTEGER_0_2169 */ +static int hf_nr_rrc_density_01 = -1; /* T_density_01 */ 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_ms4 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_ms5 = -1; /* INTEGER_0_39 */ +static int hf_nr_rrc_ms10_01 = -1; /* INTEGER_0_79 */ +static int hf_nr_rrc_ms20_01 = -1; /* INTEGER_0_159 */ +static int hf_nr_rrc_ms40_01 = -1; /* INTEGER_0_319 */ +static int hf_nr_rrc_associatedSSB = -1; /* T_associatedSSB */ +static int hf_nr_rrc_isQuasiColocated = -1; /* BOOLEAN */ +static int hf_nr_rrc_frequencyDomainAllocation_02 = -1; /* T_frequencyDomainAllocation_01 */ +static int hf_nr_rrc_sequenceGenerationConfig = -1; /* INTEGER_0_1023 */ 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_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_thresholdRSRP = -1; /* RSRP_Range */ +static int hf_nr_rrc_thresholdRSRQ = -1; /* RSRQ_Range */ +static int hf_nr_rrc_thresholdSINR = -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_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_pci_RangeIndex = -1; /* PCI_RangeIndex */ +static int hf_nr_rrc_pci_Range = -1; /* PCI_Range */ 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_cgi_Info = -1; /* T_cgi_Info */ 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_resultsSSB_Cell = -1; /* MeasQuantityResults */ +static int hf_nr_rrc_resultsCSI_RS_Cell = -1; /* MeasQuantityResults */ 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_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_resultsSSB_Indexes = -1; /* ResultsPerSSB_IndexList */ +static int hf_nr_rrc_resultsCSI_RS_Indexes = -1; /* ResultsPerCSI_RS_IndexList */ +static int hf_nr_rrc_rsrp = -1; /* RSRP_Range */ +static int hf_nr_rrc_rsrq = -1; /* RSRQ_Range */ +static int hf_nr_rrc_sinr = -1; /* SINR_Range */ +static int hf_nr_rrc_ResultsPerSSB_IndexList_item = -1; /* ResultsPerSSB_Index */ +static int hf_nr_rrc_ssb_Results = -1; /* MeasQuantityResults */ +static int hf_nr_rrc_ResultsPerCSI_RS_IndexList_item = -1; /* ResultsPerCSI_RS_Index */ +static int hf_nr_rrc_csi_RS_Results = -1; /* MeasQuantityResults */ +static int hf_nr_rrc_measResultServFreqList = -1; /* MeasResultServFreqList2NR */ +static int hf_nr_rrc_measResultNeighCells_01 = -1; /* MeasResultList2NR */ +static int hf_nr_rrc_MeasResultServFreqList2NR_item = -1; /* MeasResultServFreq2NR */ +static int hf_nr_rrc_MeasResultList2NR_item = -1; /* MeasResult2NR */ +static int hf_nr_rrc_MeasResultCellListSFTD_item = -1; /* MeasResultCellSFTD */ +static int hf_nr_rrc_sfn_OffsetResult = -1; /* INTEGER_0_1023 */ +static int hf_nr_rrc_frameBoundaryOffsetResult = -1; /* INTEGER_M30720_30719 */ +static int hf_nr_rrc_rsrp_Result = -1; /* RSRP_Range */ +static int hf_nr_rrc_MultiFrequencyBandListNR_item = -1; /* FreqBandIndicatorNR */ +static int hf_nr_rrc_nzp_CSI_ResourceSetId = -1; /* NZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_nzp_CSI_RS_Resources = -1; /* SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_nzp_CSI_RS_Resources_item = -1; /* NZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_repetition = -1; /* T_repetition */ +static int hf_nr_rrc_aperiodicTriggeringOffset = -1; /* INTEGER_0_4 */ +static int hf_nr_rrc_trs_Info = -1; /* T_trs_Info */ +static int hf_nr_rrc_nzp_CSI_RS_ResourceId = -1; /* NZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_resourceMapping = -1; /* CSI_RS_ResourceMapping */ +static int hf_nr_rrc_powerControlOffset = -1; /* INTEGER_M8_15 */ +static int hf_nr_rrc_powerControlOffsetSS = -1; /* T_powerControlOffsetSS */ +static int hf_nr_rrc_scramblingID = -1; /* ScramblingId */ +static int hf_nr_rrc_qcl_InfoPeriodicCSI_RS = -1; /* TCI_StateId */ +static int hf_nr_rrc_PCI_List_item = -1; /* PhysCellId */ +static int hf_nr_rrc_start = -1; /* PhysCellId */ +static int hf_nr_rrc_range = -1; /* T_range */ +static int hf_nr_rrc_PCI_RangeIndexList_item = -1; /* PCI_RangeIndex */ +static int hf_nr_rrc_controlResourceSetToAddModList = -1; /* SEQUENCE_SIZE_1_3_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_controlResourceSetToReleaseList = -1; /* SEQUENCE_SIZE_1_3_OF_ControlResourceSetId */ +static int hf_nr_rrc_controlResourceSetToReleaseList_item = -1; /* ControlResourceSetId */ +static int hf_nr_rrc_searchSpacesToAddModList = -1; /* SEQUENCE_SIZE_1_10_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 = -1; /* SEQUENCE_SIZE_1_10_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_downlinkPreemption = -1; /* T_downlinkPreemption */ +static int hf_nr_rrc_setup_26 = -1; /* DownlinkPreemption */ +static int hf_nr_rrc_slotFormatIndicator = -1; /* T_slotFormatIndicator */ +static int hf_nr_rrc_setup_27 = -1; /* SlotFormatIndicator */ +static int hf_nr_rrc_tpc_PUSCH = -1; /* T_tpc_PUSCH */ +static int hf_nr_rrc_setup_28 = -1; /* PUSCH_TPC_CommandConfig */ +static int hf_nr_rrc_tpc_PUCCH = -1; /* T_tpc_PUCCH */ +static int hf_nr_rrc_setup_29 = -1; /* PUCCH_TPC_CommandConfig */ +static int hf_nr_rrc_commonControlResourcesSets = -1; /* SEQUENCE_SIZE_1_2_OF_ControlResourceSet */ +static int hf_nr_rrc_commonControlResourcesSets_item = -1; /* ControlResourceSet */ +static int hf_nr_rrc_commonSearchSpaces = -1; /* SEQUENCE_SIZE_1_4_OF_SearchSpace */ +static int hf_nr_rrc_commonSearchSpaces_item = -1; /* SearchSpace */ +static int hf_nr_rrc_searchSpaceSIB1 = -1; /* SearchSpaceId */ +static int hf_nr_rrc_searchSpaceOtherSystemInformation = -1; /* SearchSpaceId */ +static int hf_nr_rrc_pagingSearchSpace = -1; /* SearchSpaceId */ +static int hf_nr_rrc_ra_ControlResourceSet = -1; /* ControlResourceSetId */ +static int hf_nr_rrc_ra_SearchSpace = -1; /* SearchSpaceId */ 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_pdcp_SN_SizeUL = -1; /* T_pdcp_SN_SizeUL */ +static int hf_nr_rrc_pdcp_SN_SizeDL = -1; /* T_pdcp_SN_SizeDL */ 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 */ @@ -647,189 +1037,341 @@ 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_drb_ContinueROHC = -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_integrityProtection = -1; /* T_integrityProtection */ +static int hf_nr_rrc_statusReportRequired = -1; /* T_statusReportRequired */ +static int hf_nr_rrc_outOfOrderDelivery = -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_ul_DataSplitThreshold = -1; /* UL_DataSplitThreshold */ +static int hf_nr_rrc_pdcp_Duplication = -1; /* T_pdcp_Duplication */ 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_dataScramblingIdentityPDSCH = -1; /* INTEGER_0_1007 */ +static int hf_nr_rrc_dmrs_DownlinkForPDSCH_MappingTypeA = -1; /* T_dmrs_DownlinkForPDSCH_MappingTypeA */ +static int hf_nr_rrc_setup_30 = -1; /* DMRS_DownlinkConfig */ +static int hf_nr_rrc_dmrs_DownlinkForPDSCH_MappingTypeB = -1; /* T_dmrs_DownlinkForPDSCH_MappingTypeB */ +static int hf_nr_rrc_tci_StatesToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_State */ +static int hf_nr_rrc_tci_StatesToAddModList_item = -1; /* TCI_State */ +static int hf_nr_rrc_tci_StatesToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_StateId */ +static int hf_nr_rrc_tci_StatesToReleaseList_item = -1; /* TCI_StateId */ +static int hf_nr_rrc_vrb_ToPRB_Interleaver = -1; /* T_vrb_ToPRB_Interleaver */ +static int hf_nr_rrc_resourceAllocation_01 = -1; /* T_resourceAllocation_01 */ +static int hf_nr_rrc_pdsch_AllocationList = -1; /* SEQUENCE_SIZE_1_maxNrofDL_Allocations_OF_PDSCH_TimeDomainResourceAllocation */ +static int hf_nr_rrc_pdsch_AllocationList_item = -1; /* PDSCH_TimeDomainResourceAllocation */ +static int hf_nr_rrc_pdsch_AggregationFactor = -1; /* T_pdsch_AggregationFactor */ +static int hf_nr_rrc_rateMatchPatternToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern */ +static int hf_nr_rrc_rateMatchPatternToAddModList_item = -1; /* RateMatchPattern */ +static int hf_nr_rrc_rateMatchPatternToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId */ +static int hf_nr_rrc_rateMatchPatternToReleaseList_item = -1; /* RateMatchPatternId */ +static int hf_nr_rrc_rateMatchPatternGroup1 = -1; /* SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId */ +static int hf_nr_rrc_rateMatchPatternGroup1_item = -1; /* RateMatchPatternId */ +static int hf_nr_rrc_rateMatchPatternGroup2 = -1; /* SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId */ +static int hf_nr_rrc_rateMatchPatternGroup2_item = -1; /* RateMatchPatternId */ +static int hf_nr_rrc_rbg_Size_01 = -1; /* T_rbg_Size_01 */ +static int hf_nr_rrc_mcs_Table_01 = -1; /* T_mcs_Table_01 */ +static int hf_nr_rrc_maxNrofCodeWordsScheduledByDCI = -1; /* T_maxNrofCodeWordsScheduledByDCI */ +static int hf_nr_rrc_prb_BundlingType = -1; /* T_prb_BundlingType */ +static int hf_nr_rrc_static = -1; /* T_static */ +static int hf_nr_rrc_bundleSize = -1; /* T_bundleSize */ +static int hf_nr_rrc_dynamic_01 = -1; /* T_dynamic */ +static int hf_nr_rrc_bundleSizeSet1 = -1; /* T_bundleSizeSet1 */ +static int hf_nr_rrc_bundleSizeSet2 = -1; /* T_bundleSizeSet2 */ +static int hf_nr_rrc_zp_CSI_RS_ResourceToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_Resource */ +static int hf_nr_rrc_zp_CSI_RS_ResourceToAddModList_item = -1; /* ZP_CSI_RS_Resource */ +static int hf_nr_rrc_zp_CSI_RS_ResourceToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_zp_CSI_RS_ResourceToReleaseList_item = -1; /* ZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet */ +static int hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_item = -1; /* ZP_CSI_RS_ResourceSet */ +static int hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_item = -1; /* ZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet */ +static int hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToAddModList_item = -1; /* ZP_CSI_RS_ResourceSet */ +static int hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToReleaseList_item = -1; /* ZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_codeBlockGroupTransmission = -1; /* T_codeBlockGroupTransmission */ +static int hf_nr_rrc_setup_31 = -1; /* PDSCH_CodeBlockGroupTransmission */ +static int hf_nr_rrc_xOverhead = -1; /* T_xOverhead */ +static int hf_nr_rrc_nrofHARQ_ProcessesForPDSCH = -1; /* T_nrofHARQ_ProcessesForPDSCH */ +static int hf_nr_rrc_pucch_Cell = -1; /* ServCellIndex */ 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_k0 = -1; /* INTEGER_1_3 */ +static int hf_nr_rrc_mappingType = -1; /* T_mappingType */ +static int hf_nr_rrc_startSymbolAndLength = -1; /* BIT_STRING_SIZE_7 */ +static int hf_nr_rrc_frequencyDensity = -1; /* T_frequencyDensity */ +static int hf_nr_rrc_frequencyDensity_item = -1; /* INTEGER_1_276 */ +static int hf_nr_rrc_timeDensity = -1; /* T_timeDensity */ +static int hf_nr_rrc_timeDensity_item = -1; /* INTEGER_0_29 */ +static int hf_nr_rrc_epre_RatioPort1 = -1; /* INTEGER_0_3 */ +static int hf_nr_rrc_epre_RatioPort2 = -1; /* T_epre_RatioPort2 */ +static int hf_nr_rrc_epre_RatioPort2_item = -1; /* INTEGER_0_3 */ +static int hf_nr_rrc_resourceElementOffset = -1; /* T_resourceElementOffset */ +static int hf_nr_rrc_modeSpecificParameters = -1; /* T_modeSpecificParameters */ +static int hf_nr_rrc_cp_OFDM = -1; /* T_cp_OFDM */ +static int hf_nr_rrc_frequencyDensity_01 = -1; /* T_frequencyDensity_01 */ +static int hf_nr_rrc_timeDensity_01 = -1; /* T_timeDensity_01 */ +static int hf_nr_rrc_maxNrofPorts = -1; /* T_maxNrofPorts */ +static int hf_nr_rrc_resourceElementOffset_01 = -1; /* T_resourceElementOffset_01 */ +static int hf_nr_rrc_ptrs_Power = -1; /* T_ptrs_Power */ +static int hf_nr_rrc_dft_S_OFDM = -1; /* T_dft_S_OFDM */ +static int hf_nr_rrc_sampleDensity = -1; /* T_sampleDensity */ +static int hf_nr_rrc_sampleDensity_item = -1; /* INTEGER_1_276 */ +static int hf_nr_rrc_timeDensity_02 = -1; /* T_timeDensity_02 */ +static int hf_nr_rrc_resourceSetToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet */ +static int hf_nr_rrc_resourceSetToAddModList_item = -1; /* PUCCH_ResourceSet */ +static int hf_nr_rrc_resourceSetToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId */ +static int hf_nr_rrc_resourceSetToReleaseList_item = -1; /* PUCCH_ResourceSetId */ +static int hf_nr_rrc_resourceToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource */ +static int hf_nr_rrc_resourceToAddModList_item = -1; /* PUCCH_Resource */ +static int hf_nr_rrc_resourceToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId */ +static int hf_nr_rrc_resourceToReleaseList_item = -1; /* PUCCH_ResourceId */ 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_setup_32 = -1; /* PUCCH_FormatConfig */ 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_format4 = -1; /* T_format4 */ +static int hf_nr_rrc_schedulingRequestResourceToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig */ +static int hf_nr_rrc_schedulingRequestResourceToAddModList_item = -1; /* SchedulingRequestResourceConfig */ +static int hf_nr_rrc_schedulingRequestResourceToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId */ +static int hf_nr_rrc_schedulingRequestResourceToReleaseList_item = -1; /* SchedulingRequestResourceId */ +static int hf_nr_rrc_multi_CSI_PUCCH_ResourceList = -1; /* SEQUENCE_SIZE_1_2_OF_PUCCH_ResourceId */ +static int hf_nr_rrc_multi_CSI_PUCCH_ResourceList_item = -1; /* PUCCH_ResourceId */ +static int hf_nr_rrc_dl_DataToUL_ACK = -1; /* T_dl_DataToUL_ACK */ +static int hf_nr_rrc_dl_DataToUL_ACK_item = -1; /* INTEGER_0_15 */ +static int hf_nr_rrc_spatialRelationInfoToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo */ +static int hf_nr_rrc_spatialRelationInfoToAddModList_item = -1; /* PUCCH_SpatialRelationInfo */ +static int hf_nr_rrc_spatialRelationInfoToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId */ +static int hf_nr_rrc_spatialRelationInfoToReleaseList_item = -1; /* PUCCH_SpatialRelationInfoId */ +static int hf_nr_rrc_pucch_PowerControl = -1; /* PUCCH_PowerControl */ +static int hf_nr_rrc_interslotFrequencyHopping = -1; /* T_interslotFrequencyHopping */ 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_maxCodeRate = -1; /* PUCCH_MaxCodeRate */ +static int hf_nr_rrc_nrofSlots = -1; /* T_nrofSlots */ 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_simultaneousHARQ_ACK_CSI = -1; /* T_simultaneousHARQ_ACK_CSI */ +static int hf_nr_rrc_pucch_SpatialRelationInfoId = -1; /* PUCCH_SpatialRelationInfoId */ +static int hf_nr_rrc_referenceSignal = -1; /* T_referenceSignal */ +static int hf_nr_rrc_csi_RS_Index_01 = -1; /* NZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_srs = -1; /* SRS_ResourceId */ +static int hf_nr_rrc_pucch_PathlossReferenceRS_Id = -1; /* PUCCH_PathlossReferenceRS_Id */ +static int hf_nr_rrc_p0_PUCCH_Id = -1; /* P0_PUCCH_Id */ +static int hf_nr_rrc_closedLoopIndex = -1; /* T_closedLoopIndex */ +static int hf_nr_rrc_pucch_ResourceSetId = -1; /* PUCCH_ResourceSetId */ +static int hf_nr_rrc_resources = -1; /* SEQUENCE_SIZE_8_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId */ +static int hf_nr_rrc_resources_item = -1; /* PUCCH_ResourceId */ +static int hf_nr_rrc_maxPayloadMinus1 = -1; /* INTEGER_4_256 */ +static int hf_nr_rrc_pucch_ResourceId = -1; /* PUCCH_ResourceId */ +static int hf_nr_rrc_startingPRB = -1; /* PRB_Id */ +static int hf_nr_rrc_intraSlotFrequencyHopping = -1; /* T_intraSlotFrequencyHopping */ +static int hf_nr_rrc_secondHopPRB = -1; /* PRB_Id */ +static int hf_nr_rrc_format = -1; /* T_format */ +static int hf_nr_rrc_format0 = -1; /* PUCCH_format0 */ +static int hf_nr_rrc_format1_01 = -1; /* PUCCH_format1 */ +static int hf_nr_rrc_format2_01 = -1; /* PUCCH_format2 */ +static int hf_nr_rrc_format3_01 = -1; /* PUCCH_format3 */ +static int hf_nr_rrc_format4_01 = -1; /* PUCCH_format4 */ +static int hf_nr_rrc_initialCyclicShift = -1; /* INTEGER_0_11 */ +static int hf_nr_rrc_nrofSymbols = -1; /* INTEGER_1_2 */ +static int hf_nr_rrc_startingSymbolIndex = -1; /* INTEGER_0_13 */ +static int hf_nr_rrc_nrofSymbols_01 = -1; /* INTEGER_4_14 */ +static int hf_nr_rrc_startingSymbolIndex_01 = -1; /* INTEGER_0_10 */ +static int hf_nr_rrc_timeDomainOCC = -1; /* INTEGER_0_6 */ +static int hf_nr_rrc_nrofPRBs_01 = -1; /* INTEGER_1_16 */ +static int hf_nr_rrc_occ_Length = -1; /* T_occ_Length */ +static int hf_nr_rrc_occ_Index = -1; /* T_occ_Index */ +static int hf_nr_rrc_pucch_ResourceCommon = -1; /* BIT_STRING_SIZE_4 */ +static int hf_nr_rrc_pucch_GroupHopping = -1; /* T_pucch_GroupHopping */ +static int hf_nr_rrc_hoppingId = -1; /* BIT_STRING_SIZE_10 */ +static int hf_nr_rrc_p0_nominal = -1; /* INTEGER_M202_24 */ +static int hf_nr_rrc_deltaF_PUCCH_f0 = -1; /* INTEGER_M16_15 */ +static int hf_nr_rrc_deltaF_PUCCH_f1 = -1; /* INTEGER_M16_15 */ +static int hf_nr_rrc_deltaF_PUCCH_f2 = -1; /* INTEGER_M16_15 */ +static int hf_nr_rrc_deltaF_PUCCH_f3 = -1; /* INTEGER_M16_15 */ +static int hf_nr_rrc_deltaF_PUCCH_f4 = -1; /* INTEGER_M16_15 */ +static int hf_nr_rrc_p0_Set = -1; /* SEQUENCE_SIZE_1_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH */ +static int hf_nr_rrc_p0_Set_item = -1; /* P0_PUCCH */ +static int hf_nr_rrc_pathlossReferenceRSs = -1; /* SEQUENCE_SIZE_1_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS */ +static int hf_nr_rrc_pathlossReferenceRSs_item = -1; /* PUCCH_PathlossReferenceRS */ +static int hf_nr_rrc_twoPUCCH_PC_AdjustmentStates = -1; /* T_twoPUCCH_PC_AdjustmentStates */ +static int hf_nr_rrc_p0_PUCCH_Value = -1; /* INTEGER_M16_15 */ +static int hf_nr_rrc_referenceSignal_01 = -1; /* T_referenceSignal_01 */ +static int hf_nr_rrc_tpc_IndexPCell = -1; /* INTEGER_1_15 */ +static int hf_nr_rrc_tpc_IndexPUCCH_SCell = -1; /* INTEGER_1_15 */ +static int hf_nr_rrc_dataScramblingIdentityPUSCH = -1; /* INTEGER_0_1007 */ +static int hf_nr_rrc_txConfig = -1; /* T_txConfig */ +static int hf_nr_rrc_dmrs_UplinkForPUSCH_MappingTypeA = -1; /* T_dmrs_UplinkForPUSCH_MappingTypeA */ +static int hf_nr_rrc_setup_33 = -1; /* DMRS_UplinkConfig */ +static int hf_nr_rrc_dmrs_UplinkForPUSCH_MappingTypeB = -1; /* T_dmrs_UplinkForPUSCH_MappingTypeB */ +static int hf_nr_rrc_pusch_PowerControl = -1; /* PUSCH_PowerControl */ +static int hf_nr_rrc_frequencyHopping_01 = -1; /* T_frequencyHopping_01 */ +static int hf_nr_rrc_frequencyHoppingOffsetLists = -1; /* T_frequencyHoppingOffsetLists */ +static int hf_nr_rrc_frequencyHoppingOffsetLists_item = -1; /* INTEGER_1_maxNrofPhysicalResourceBlocks_1 */ +static int hf_nr_rrc_resourceAllocation_02 = -1; /* T_resourceAllocation_02 */ +static int hf_nr_rrc_pusch_AllocationList = -1; /* SEQUENCE_SIZE_1_maxNrofUL_Allocations_OF_PUSCH_TimeDomainResourceAllocation */ +static int hf_nr_rrc_pusch_AllocationList_item = -1; /* PUSCH_TimeDomainResourceAllocation */ +static int hf_nr_rrc_pusch_AggregationFactor = -1; /* T_pusch_AggregationFactor */ +static int hf_nr_rrc_mcs_Table_02 = -1; /* T_mcs_Table_02 */ +static int hf_nr_rrc_mcs_TableTransformPrecoder_01 = -1; /* T_mcs_TableTransformPrecoder_01 */ +static int hf_nr_rrc_transformPrecoder_01 = -1; /* T_transformPrecoder_01 */ +static int hf_nr_rrc_codebookSubset = -1; /* T_codebookSubset */ +static int hf_nr_rrc_maxRank = -1; /* INTEGER_1_4 */ +static int hf_nr_rrc_rbg_Size_02 = -1; /* T_rbg_Size_02 */ +static int hf_nr_rrc_uci_OnPUSCH_01 = -1; /* T_uci_OnPUSCH_01 */ +static int hf_nr_rrc_setup_34 = -1; /* UCI_OnPUSCH */ +static int hf_nr_rrc_vrb_ToPRB_Interleaver_01 = -1; /* T_vrb_ToPRB_Interleaver_01 */ +static int hf_nr_rrc_betaOffsets = -1; /* T_betaOffsets */ +static int hf_nr_rrc_dynamic_02 = -1; /* SEQUENCE_SIZE_4_OF_BetaOffsets */ +static int hf_nr_rrc_scaling = -1; /* T_scaling */ +static int hf_nr_rrc_groupHoppingEnabledTransformPrecoding = -1; /* T_groupHoppingEnabledTransformPrecoding */ +static int hf_nr_rrc_msg3_DeltaPreamble = -1; /* INTEGER_M1_6 */ +static int hf_nr_rrc_p0_NominalWithGrant = -1; /* INTEGER_M202_24 */ +static int hf_nr_rrc_tpc_Accumulation = -1; /* T_tpc_Accumulation */ +static int hf_nr_rrc_msg3_Alpha = -1; /* Alpha */ +static int hf_nr_rrc_p0_NominalWithoutGrant = -1; /* INTEGER_M202_24 */ +static int hf_nr_rrc_p0_AlphaSets = -1; /* SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet */ +static int hf_nr_rrc_p0_AlphaSets_item = -1; /* P0_PUSCH_AlphaSet */ +static int hf_nr_rrc_pathlossReferenceRSToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS */ +static int hf_nr_rrc_pathlossReferenceRSToAddModList_item = -1; /* PUSCH_PathlossReferenceRS */ +static int hf_nr_rrc_pathlossReferenceRSToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_Id */ +static int hf_nr_rrc_pathlossReferenceRSToReleaseList_item = -1; /* PUSCH_PathlossReferenceRS_Id */ +static int hf_nr_rrc_twoPUSCH_PC_AdjustmentStates = -1; /* T_twoPUSCH_PC_AdjustmentStates */ +static int hf_nr_rrc_deltaMCS = -1; /* T_deltaMCS */ +static int hf_nr_rrc_sri_PUSCH_MappingToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl */ +static int hf_nr_rrc_sri_PUSCH_MappingToAddModList_item = -1; /* SRI_PUSCH_PowerControl */ +static int hf_nr_rrc_sri_PUSCH_MappingToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId */ +static int hf_nr_rrc_sri_PUSCH_MappingToReleaseList_item = -1; /* SRI_PUSCH_PowerControlId */ +static int hf_nr_rrc_p0_PUSCH_AlphaSetId = -1; /* P0_PUSCH_AlphaSetId */ +static int hf_nr_rrc_p0 = -1; /* INTEGER_M16_15 */ +static int hf_nr_rrc_alpha = -1; /* Alpha */ +static int hf_nr_rrc_pusch_PathlossReferenceRS_Id = -1; /* PUSCH_PathlossReferenceRS_Id */ +static int hf_nr_rrc_referenceSignal_02 = -1; /* T_referenceSignal_02 */ +static int hf_nr_rrc_sri_PUSCH_PowerControlId = -1; /* SRI_PUSCH_PowerControlId */ +static int hf_nr_rrc_sri_PUSCH_PathlossReferenceRS_Id = -1; /* PUSCH_PathlossReferenceRS_Id */ +static int hf_nr_rrc_sri_P0_PUSCH_AlphaSetId = -1; /* P0_PUSCH_AlphaSetId */ +static int hf_nr_rrc_sri_PUSCH_ClosedLoopIndex = -1; /* T_sri_PUSCH_ClosedLoopIndex */ 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_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_codeBlockGroupTransmission_01 = -1; /* T_codeBlockGroupTransmission_01 */ +static int hf_nr_rrc_setup_35 = -1; /* PUSCH_CodeBlockGroupGransmission */ +static int hf_nr_rrc_rateMatching = -1; /* T_rateMatching */ +static int hf_nr_rrc_xOverhead_01 = -1; /* T_xOverhead_01 */ +static int hf_nr_rrc_maxCodeBlockGroupsPerTransportBlock_01 = -1; /* T_maxCodeBlockGroupsPerTransportBlock_01 */ +static int hf_nr_rrc_k2 = -1; /* INTEGER_0_7 */ +static int hf_nr_rrc_mappingType_01 = -1; /* T_mappingType_01 */ +static int hf_nr_rrc_tpc_Index = -1; /* INTEGER_1_15 */ +static int hf_nr_rrc_tpc_IndexSUL = -1; /* INTEGER_1_15 */ +static int hf_nr_rrc_targetCell = -1; /* ServCellIndex */ +static int hf_nr_rrc_quantityConfigNR_List = -1; /* QuantityConfigNR_List */ +static int hf_nr_rrc_QuantityConfigNR_List_item = -1; /* QuantityConfigNR */ +static int hf_nr_rrc_quantityConfigCell = -1; /* QuantityConfigRS */ +static int hf_nr_rrc_quantityConfigRS_Index = -1; /* QuantityConfigRS */ +static int hf_nr_rrc_ssb_FilterConfig = -1; /* FilterConfig */ +static int hf_nr_rrc_cs_RS_FilterConfig = -1; /* FilterConfig */ +static int hf_nr_rrc_filterCoefficientRSRP = -1; /* FilterCoefficient */ +static int hf_nr_rrc_filterCoefficientRSRQ = -1; /* FilterCoefficient */ +static int hf_nr_rrc_filterCoefficientRS_SINR = -1; /* FilterCoefficient */ +static int hf_nr_rrc_rach_ConfigGeneric = -1; /* RACH_ConfigGeneric */ +static int hf_nr_rrc_totalNumberOfRA_Preambles = -1; /* INTEGER_1_63 */ +static int hf_nr_rrc_ssb_perRACH_OccasionAndCB_PreamblesPerSSB = -1; /* T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB */ +static int hf_nr_rrc_oneEighth = -1; /* T_oneEighth */ +static int hf_nr_rrc_oneFourth = -1; /* T_oneFourth */ +static int hf_nr_rrc_oneHalf = -1; /* T_oneHalf */ +static int hf_nr_rrc_one_01 = -1; /* T_one */ +static int hf_nr_rrc_two_01 = -1; /* T_two_01 */ +static int hf_nr_rrc_four = -1; /* INTEGER_1_16 */ +static int hf_nr_rrc_eight = -1; /* INTEGER_1_8 */ +static int hf_nr_rrc_sixteen = -1; /* INTEGER_1_4 */ 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_numberOfRA_PreamblesGroupA = -1; /* INTEGER_1_64 */ 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_rsrp_ThresholdSSB = -1; /* RSRP_Range */ +static int hf_nr_rrc_rsrp_ThresholdSSB_SUL = -1; /* RSRP_Range */ 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_msg1_SubcarrierSpacing = -1; /* SubcarrierSpacing */ 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_prach_ConfigurationIndex = -1; /* INTEGER_0_255 */ +static int hf_nr_rrc_msg1_FDM = -1; /* T_msg1_FDM */ +static int hf_nr_rrc_msg1_FrequencyStart = -1; /* INTEGER_0_maxNrofPhysicalResourceBlocks_1 */ +static int hf_nr_rrc_zeroCorrelationZoneConfig = -1; /* INTEGER_0_15 */ +static int hf_nr_rrc_preambleReceivedTargetPower = -1; /* INTEGER_M200_M74 */ +static int hf_nr_rrc_preambleTransMax = -1; /* T_preambleTransMax */ +static int hf_nr_rrc_powerRampingStep = -1; /* T_powerRampingStep */ +static int hf_nr_rrc_ra_ResponseWindow = -1; /* T_ra_ResponseWindow */ 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_ssb_02 = -1; /* T_ssb */ +static int hf_nr_rrc_ssb_ResourceList = -1; /* SEQUENCE_SIZE_1_maxRA_SSB_Resources_OF_CFRA_SSB_Resource */ +static int hf_nr_rrc_ssb_ResourceList_item = -1; /* CFRA_SSB_Resource */ +static int hf_nr_rrc_csirs = -1; /* T_csirs */ +static int hf_nr_rrc_csirs_ResourceList = -1; /* SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_OF_CFRA_CSIRS_Resource */ +static int hf_nr_rrc_csirs_ResourceList_item = -1; /* CFRA_CSIRS_Resource */ +static int hf_nr_rrc_cfra_csirs_DedicatedRACH_Threshold = -1; /* RSRP_Range */ +static int hf_nr_rrc_csi_RS_02 = -1; /* CSI_RS_Index */ +static int hf_nr_rrc_ra_OccasionList = -1; /* T_ra_OccasionList */ +static int hf_nr_rrc_ra_OccasionList_item = -1; /* INTEGER_0_maxRA_Occasions_1 */ 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_srb3_ToRelease = -1; /* T_srb3_ToRelease */ 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_discardOnPDCP = -1; /* T_discardOnPDCP */ 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_failureDetectionResources = -1; /* SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS */ +static int hf_nr_rrc_failureDetectionResources_item = -1; /* RadioLinkMonitoringRS */ +static int hf_nr_rrc_beamFailureInstanceMaxCount = -1; /* T_beamFailureInstanceMaxCount */ +static int hf_nr_rrc_beamFailureDetectionTimer = -1; /* T_beamFailureDetectionTimer */ +static int hf_nr_rrc_purpose = -1; /* T_purpose */ +static int hf_nr_rrc_detectionResource = -1; /* T_detectionResource */ +static int hf_nr_rrc_rateMatchPatternId = -1; /* RateMatchPatternId */ +static int hf_nr_rrc_patternType = -1; /* T_patternType */ +static int hf_nr_rrc_bitmaps = -1; /* T_bitmaps */ +static int hf_nr_rrc_resourceBlocks = -1; /* BIT_STRING_SIZE_275 */ +static int hf_nr_rrc_symbolsInResourceBlock = -1; /* T_symbolsInResourceBlock */ +static int hf_nr_rrc_oneSlot = -1; /* BIT_STRING_SIZE_14 */ +static int hf_nr_rrc_twoSlots = -1; /* BIT_STRING_SIZE_28 */ +static int hf_nr_rrc_periodicityAndPattern = -1; /* T_periodicityAndPattern */ +static int hf_nr_rrc_n2 = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_n4 = -1; /* BIT_STRING_SIZE_4 */ +static int hf_nr_rrc_n5 = -1; /* BIT_STRING_SIZE_5 */ +static int hf_nr_rrc_n8 = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_n10 = -1; /* BIT_STRING_SIZE_10 */ +static int hf_nr_rrc_n20 = -1; /* BIT_STRING_SIZE_20 */ +static int hf_nr_rrc_n40 = -1; /* BIT_STRING_SIZE_40 */ +static int hf_nr_rrc_controlResourceSet = -1; /* ControlResourceSetId */ +static int hf_nr_rrc_mode = -1; /* T_mode */ +static int hf_nr_rrc_carrierFreqDL = -1; /* INTEGER_0_16383 */ +static int hf_nr_rrc_carrierBandwidthDL = -1; /* T_carrierBandwidthDL */ +static int hf_nr_rrc_mbsfn_SubframeConfigList = -1; /* EUTRA_MBSFN_SubframeConfigList */ +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_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_reportCGI = -1; /* T_reportCGI */ 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 */ @@ -848,31 +1390,26 @@ 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_rsType = -1; /* NR_RS_Type */ 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_maxNrofRSIndexesToReport = -1; /* INTEGER_1_maxNrofIndexesToReport */ +static int hf_nr_rrc_includeBeamMeasurements = -1; /* BOOLEAN */ +static int hf_nr_rrc_reportAddNeighMeas = -1; /* T_reportAddNeighMeas */ 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_maxNrofRsIndexesToReport = -1; /* INTEGER_1_maxNrofIndexesToReport */ +static int hf_nr_rrc_rsrp_01 = -1; /* INTEGER_M30_30 */ +static int hf_nr_rrc_rsrq_01 = -1; /* INTEGER_M30_30 */ +static int hf_nr_rrc_sinr_01 = -1; /* INTEGER_M30_30 */ 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 */ @@ -881,80 +1418,138 @@ 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_sn_FieldLength = -1; /* SN_FieldLengthAM */ 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_sn_FieldLength_01 = -1; /* SN_FieldLengthUM */ +static int hf_nr_rrc_t310 = -1; /* T_t310 */ +static int hf_nr_rrc_n310 = -1; /* T_n310 */ +static int hf_nr_rrc_n311 = -1; /* T_n311 */ 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_ConfigIndex = -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_schedulingRequestResourceId = -1; /* SchedulingRequestResourceId */ +static int hf_nr_rrc_periodicityAndOffset_02 = -1; /* T_periodicityAndOffset_01 */ +static int hf_nr_rrc_sym2 = -1; /* NULL */ +static int hf_nr_rrc_sym6or7 = -1; /* NULL */ +static int hf_nr_rrc_sl1 = -1; /* NULL */ +static int hf_nr_rrc_sl2 = -1; /* INTEGER_0_1 */ +static int hf_nr_rrc_sl4 = -1; /* INTEGER_0_3 */ +static int hf_nr_rrc_sl5 = -1; /* INTEGER_0_4 */ +static int hf_nr_rrc_sl8 = -1; /* INTEGER_0_7 */ +static int hf_nr_rrc_sl10 = -1; /* INTEGER_0_9 */ +static int hf_nr_rrc_sl16 = -1; /* INTEGER_0_15 */ +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_resource = -1; /* PUCCH_ResourceId */ +static int hf_nr_rrc_offsetToCarrier = -1; /* INTEGER_0_2199 */ +static int hf_nr_rrc_k0_01 = -1; /* T_k0 */ +static int hf_nr_rrc_carrierBandwidth = -1; /* INTEGER_1_maxNrofPhysicalResourceBlocks */ +static int hf_nr_rrc_pdu_Session = -1; /* PDU_SessionID */ +static int hf_nr_rrc_sdap_HeaderDL = -1; /* T_sdap_HeaderDL */ +static int hf_nr_rrc_sdap_HeaderUL = -1; /* T_sdap_HeaderUL */ 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_mappedQoS_FlowsToAdd = -1; /* SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI */ +static int hf_nr_rrc_mappedQoS_FlowsToAdd_item = -1; /* QFI */ +static int hf_nr_rrc_mappedQoS_FlowsToRelease = -1; /* SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI */ +static int hf_nr_rrc_mappedQoS_FlowsToRelease_item = -1; /* QFI */ +static int hf_nr_rrc_searchSpaceId = -1; /* SearchSpaceId */ +static int hf_nr_rrc_monitoringSlotPeriodicityAndOffset = -1; /* T_monitoringSlotPeriodicityAndOffset */ +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_aggregationLevel16 = -1; /* T_aggregationLevel16 */ +static int hf_nr_rrc_searchSpaceType = -1; /* T_searchSpaceType */ +static int hf_nr_rrc_common = -1; /* T_common */ +static int hf_nr_rrc_dci_Format0_0_AndFormat1_0 = -1; /* T_dci_Format0_0_AndFormat1_0 */ +static int hf_nr_rrc_dci_Format2_0 = -1; /* T_dci_Format2_0 */ +static int hf_nr_rrc_nrofCandidates_SFI = -1; /* T_nrofCandidates_SFI */ +static int hf_nr_rrc_aggregationLevel1_01 = -1; /* T_aggregationLevel1_01 */ +static int hf_nr_rrc_aggregationLevel2_01 = -1; /* T_aggregationLevel2_01 */ +static int hf_nr_rrc_aggregationLevel4_01 = -1; /* T_aggregationLevel4_01 */ +static int hf_nr_rrc_aggregationLevel8_01 = -1; /* T_aggregationLevel8_01 */ +static int hf_nr_rrc_aggregationLevel16_01 = -1; /* T_aggregationLevel16_01 */ +static int hf_nr_rrc_dci_Format2_1 = -1; /* T_dci_Format2_1 */ +static int hf_nr_rrc_dci_Format2_2 = -1; /* T_dci_Format2_2 */ +static int hf_nr_rrc_dci_Format2_3 = -1; /* T_dci_Format2_3 */ +static int hf_nr_rrc_monitoringPeriodicity = -1; /* T_monitoringPeriodicity */ +static int hf_nr_rrc_nrofPDCCH_Candidates = -1; /* T_nrofPDCCH_Candidates */ +static int hf_nr_rrc_ue_Specific = -1; /* T_ue_Specific */ +static int hf_nr_rrc_dci_Formats = -1; /* T_dci_Formats */ 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_tdd_UL_DL_ConfigurationDedicated = -1; /* TDD_UL_DL_ConfigDedicated */ +static int hf_nr_rrc_initialDownlinkBWP = -1; /* BWP_DownlinkDedicated */ +static int hf_nr_rrc_downlinkBWP_ToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id */ +static int hf_nr_rrc_downlinkBWP_ToReleaseList_item = -1; /* BWP_Id */ +static int hf_nr_rrc_downlinkBWP_ToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink */ +static int hf_nr_rrc_downlinkBWP_ToAddModList_item = -1; /* BWP_Downlink */ +static int hf_nr_rrc_firstActiveDownlinkBWP_Id = -1; /* BWP_Id */ +static int hf_nr_rrc_bwp_InactivityTimer = -1; /* T_bwp_InactivityTimer */ +static int hf_nr_rrc_defaultDownlinkBWP_Id = -1; /* BWP_Id */ +static int hf_nr_rrc_uplinkConfig = -1; /* UplinkConfig */ +static int hf_nr_rrc_supplementaryUplink_02 = -1; /* UplinkConfig */ +static int hf_nr_rrc_pdsch_ServingCellConfig = -1; /* T_pdsch_ServingCellConfig */ +static int hf_nr_rrc_setup_36 = -1; /* PDSCH_ServingCellConfig */ +static int hf_nr_rrc_csi_MeasConfig = -1; /* T_csi_MeasConfig */ +static int hf_nr_rrc_setup_37 = -1; /* CSI_MeasConfig */ +static int hf_nr_rrc_carrierSwitching = -1; /* T_carrierSwitching */ +static int hf_nr_rrc_setup_38 = -1; /* SRS_CarrierSwitching */ +static int hf_nr_rrc_sCellDeactivationTimer = -1; /* T_sCellDeactivationTimer */ 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_initialUplinkBWP = -1; /* BWP_UplinkDedicated */ +static int hf_nr_rrc_uplinkBWP_ToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id */ +static int hf_nr_rrc_uplinkBWP_ToReleaseList_item = -1; /* BWP_Id */ +static int hf_nr_rrc_uplinkBWP_ToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink */ +static int hf_nr_rrc_uplinkBWP_ToAddModList_item = -1; /* BWP_Uplink */ +static int hf_nr_rrc_firstActiveUplinkBWP_Id = -1; /* BWP_Id */ +static int hf_nr_rrc_pusch_ServingCellConfig = -1; /* T_pusch_ServingCellConfig */ +static int hf_nr_rrc_setup_39 = -1; /* PUSCH_ServingCellConfig */ +static int hf_nr_rrc_frequencyInfoDL = -1; /* FrequencyInfoDL */ +static int hf_nr_rrc_initialDownlinkBWP_01 = -1; /* BWP_DownlinkCommon */ +static int hf_nr_rrc_supplementaryUplinkConfig = -1; /* UplinkConfigCommon */ +static int hf_nr_rrc_ssb_PositionsInBurst_01 = -1; /* T_ssb_PositionsInBurst_01 */ +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_lte_CRS_ToMatchAround = -1; /* T_lte_CRS_ToMatchAround */ +static int hf_nr_rrc_setup_40 = -1; /* RateMatchPatternLTE_CRS */ +static int hf_nr_rrc_tdd_UL_DL_ConfigurationCommon = -1; /* TDD_UL_DL_ConfigCommon */ +static int hf_nr_rrc_tdd_UL_DL_ConfigurationCommon2 = -1; /* TDD_UL_DL_ConfigCommon */ +static int hf_nr_rrc_frequencyInfoUL = -1; /* FrequencyInfoUL */ +static int hf_nr_rrc_initialUplinkBWP_01 = -1; /* BWP_UplinkCommon */ +static int hf_nr_rrc_subcarrierSpacing2 = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_slotFormatCombinations = -1; /* SEQUENCE_SIZE_1_maxNrofSlotFormatCombinationsPerSet_OF_SlotFormatCombination */ +static int hf_nr_rrc_slotFormatCombinations_item = -1; /* SlotFormatCombination */ +static int hf_nr_rrc_positionInDCI_01 = -1; /* INTEGER_0_maxSFI_DCI_PayloadSize_1 */ +static int hf_nr_rrc_slotFormatCombinationId = -1; /* SlotFormatCombinationId */ +static int hf_nr_rrc_slotFormats = -1; /* T_slotFormats */ +static int hf_nr_rrc_slotFormats_item = -1; /* INTEGER_0_255 */ +static int hf_nr_rrc_sfi_RNTI = -1; /* RNTI_Value */ +static int hf_nr_rrc_dci_PayloadSize_01 = -1; /* INTEGER_1_maxSFI_DCI_PayloadSize */ +static int hf_nr_rrc_slotFormatCombToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell */ +static int hf_nr_rrc_slotFormatCombToAddModList_item = -1; /* SlotFormatCombinationsPerCell */ +static int hf_nr_rrc_slotFormatCombToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_ServCellIndex */ +static int hf_nr_rrc_slotFormatCombToReleaseList_item = -1; /* ServCellIndex */ +static int hf_nr_rrc_periodicity_02 = -1; /* T_periodicity_02 */ +static int hf_nr_rrc_nrofHARQ_Processes_01 = -1; /* INTEGER_1_8 */ +static int hf_nr_rrc_n1PUCCH_AN = -1; /* PUCCH_Resource */ 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 */ @@ -963,64 +1558,415 @@ static int hf_nr_rrc_srs_ResourceToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrof 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_tpc_Accumulation_01 = -1; /* T_tpc_Accumulation_01 */ 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_ResourceIdList = -1; /* SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId */ +static int hf_nr_rrc_srs_ResourceIdList_item = -1; /* SRS_ResourceId */ +static int hf_nr_rrc_resourceType_01 = -1; /* T_resourceType_01 */ +static int hf_nr_rrc_aperiodic_01 = -1; /* T_aperiodic_01 */ +static int hf_nr_rrc_aperiodicSRS_ResourceTrigger = -1; /* INTEGER_0_maxNrofSRS_TriggerStates_1 */ +static int hf_nr_rrc_slotOffset = -1; /* INTEGER_1_8 */ +static int hf_nr_rrc_semi_persistent = -1; /* T_semi_persistent */ +static int hf_nr_rrc_associatedCSI_RS = -1; /* NZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_periodic_01 = -1; /* T_periodic_01 */ +static int hf_nr_rrc_usage = -1; /* T_usage */ +static int hf_nr_rrc_p0_01 = -1; /* INTEGER_M202_24 */ +static int hf_nr_rrc_pathlossReferenceRS = -1; /* T_pathlossReferenceRS */ +static int hf_nr_rrc_srs_PowerControlAdjustmentStates = -1; /* T_srs_PowerControlAdjustmentStates */ 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_ptrs_PortIndex = -1; /* T_ptrs_PortIndex */ 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_n2_01 = -1; /* T_n2 */ +static int hf_nr_rrc_combOffset_n2 = -1; /* INTEGER_0_1 */ +static int hf_nr_rrc_cyclicShift_n2 = -1; /* INTEGER_0_7 */ +static int hf_nr_rrc_n4_01 = -1; /* T_n4 */ +static int hf_nr_rrc_combOffset_n4 = -1; /* INTEGER_0_3 */ +static int hf_nr_rrc_cyclicShift_n4 = -1; /* INTEGER_0_11 */ +static int hf_nr_rrc_resourceMapping_01 = -1; /* T_resourceMapping */ +static int hf_nr_rrc_startPosition = -1; /* INTEGER_0_5 */ +static int hf_nr_rrc_nrofSymbols_02 = -1; /* T_nrofSymbols */ +static int hf_nr_rrc_repetitionFactor = -1; /* T_repetitionFactor */ +static int hf_nr_rrc_freqDomainPosition = -1; /* INTEGER_0_67 */ +static int hf_nr_rrc_freqDomainShift = -1; /* INTEGER_0_268 */ +static int hf_nr_rrc_freqHopping = -1; /* T_freqHopping */ +static int hf_nr_rrc_c_SRS = -1; /* INTEGER_0_63 */ +static int hf_nr_rrc_b_SRS = -1; /* INTEGER_0_3 */ +static int hf_nr_rrc_b_hop = -1; /* INTEGER_0_3 */ +static int hf_nr_rrc_groupOrSequenceHopping = -1; /* T_groupOrSequenceHopping */ +static int hf_nr_rrc_resourceType_02 = -1; /* T_resourceType_02 */ +static int hf_nr_rrc_aperiodic_02 = -1; /* T_aperiodic_02 */ +static int hf_nr_rrc_semi_persistent_01 = -1; /* T_semi_persistent_01 */ +static int hf_nr_rrc_periodicityAndOffset_sp = -1; /* SRS_PeriodicityAndOffset */ +static int hf_nr_rrc_periodic_02 = -1; /* T_periodic_02 */ +static int hf_nr_rrc_periodicityAndOffset_p = -1; /* SRS_PeriodicityAndOffset */ +static int hf_nr_rrc_sequenceId = -1; /* BIT_STRING_SIZE_10 */ static int hf_nr_rrc_spatialRelationInfo = -1; /* T_spatialRelationInfo */ +static int hf_nr_rrc_sl32 = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_sl64 = -1; /* INTEGER_0_63 */ +static int hf_nr_rrc_sl1280 = -1; /* INTEGER_0_1279 */ +static int hf_nr_rrc_sl2560 = -1; /* INTEGER_0_2559 */ +static int hf_nr_rrc_srs_SwitchFromServCellIndex = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_srs_TPC_PDCCH_Group = -1; /* T_srs_TPC_PDCCH_Group */ +static int hf_nr_rrc_typeA = -1; /* SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config */ +static int hf_nr_rrc_typeA_item = -1; /* SRS_TPC_PDCCH_Config */ +static int hf_nr_rrc_typeB = -1; /* SRS_TPC_PDCCH_Config */ +static int hf_nr_rrc_srs_CellToSFI = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_SlotFormatCombinationsPerCell */ +static int hf_nr_rrc_srs_CellToSFI_item = -1; /* SlotFormatCombinationsPerCell */ +static int hf_nr_rrc_monitoringCells = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex */ +static int hf_nr_rrc_monitoringCells_item = -1; /* ServCellIndex */ +static int hf_nr_rrc_startingBitOfFormat2_3 = -1; /* INTEGER_1_31 */ +static int hf_nr_rrc_fieldTypeFormat2_3 = -1; /* INTEGER_0_1 */ +static int hf_nr_rrc_srs_CC_SetIndexlist = -1; /* SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex */ +static int hf_nr_rrc_srs_CC_SetIndexlist_item = -1; /* SRS_CC_SetIndex */ +static int hf_nr_rrc_cc_SetIndex = -1; /* INTEGER_0_3 */ +static int hf_nr_rrc_cc_IndexInOneCC_Set = -1; /* INTEGER_0_7 */ +static int hf_nr_rrc_tci_StateId = -1; /* TCI_StateId */ +static int hf_nr_rrc_qcl_Type1 = -1; /* QCL_Info */ +static int hf_nr_rrc_qcl_Type2 = -1; /* QCL_Info */ +static int hf_nr_rrc_nrofPTRS_Ports = -1; /* T_nrofPTRS_Ports */ +static int hf_nr_rrc_cell = -1; /* ServCellIndex */ +static int hf_nr_rrc_referenceSignal_03 = -1; /* T_referenceSignal_03 */ +static int hf_nr_rrc_csi_rs = -1; /* NZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_csi_RS_for_tracking = -1; /* NZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_qcl_Type = -1; /* T_qcl_Type */ +static int hf_nr_rrc_referenceSubcarrierSpacing = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_dl_UL_TransmissionPeriodicity = -1; /* T_dl_UL_TransmissionPeriodicity */ +static int hf_nr_rrc_nrofDownlinkSlots = -1; /* INTEGER_0_maxNrofSlots */ +static int hf_nr_rrc_nrofDownlinkSymbols = -1; /* INTEGER_0_maxNrofSymbols_1 */ +static int hf_nr_rrc_nrofUplinkSlots = -1; /* INTEGER_0_maxNrofSlots */ +static int hf_nr_rrc_nrofUplinkSymbols = -1; /* INTEGER_0_maxNrofSymbols_1 */ +static int hf_nr_rrc_slotSpecificConfigurationsToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig */ +static int hf_nr_rrc_slotSpecificConfigurationsToAddModList_item = -1; /* TDD_UL_DL_SlotConfig */ +static int hf_nr_rrc_slotSpecificConfigurationsToreleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex */ +static int hf_nr_rrc_slotSpecificConfigurationsToreleaseList_item = -1; /* TDD_UL_DL_SlotIndex */ +static int hf_nr_rrc_slotIndex = -1; /* TDD_UL_DL_SlotIndex */ +static int hf_nr_rrc_symbols = -1; /* T_symbols */ +static int hf_nr_rrc_allDownlink = -1; /* NULL */ +static int hf_nr_rrc_allUplink = -1; /* NULL */ +static int hf_nr_rrc_explicit = -1; /* T_explicit */ +static int hf_nr_rrc_nrofDownlinkSymbols_01 = -1; /* INTEGER_1_maxNrofSymbols_1 */ +static int hf_nr_rrc_nrofUplinkSymbols_01 = -1; /* INTEGER_1_maxNrofSymbols_1 */ +static int hf_nr_rrc_zp_CSI_RS_ResourceId = -1; /* ZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_zp_CSI_RS_ResourceSetId = -1; /* ZP_CSI_RS_ResourceSetId */ +static int hf_nr_rrc_zp_CSI_RS_ResourceIdList = -1; /* SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_zp_CSI_RS_ResourceIdList_item = -1; /* ZP_CSI_RS_ResourceId */ +static int hf_nr_rrc_resourceType_03 = -1; /* T_resourceType_03 */ static int hf_nr_rrc_BandCombinationList_item = -1; /* BandCombination */ -static int hf_nr_rrc_measParameters_MRDC = -1; /* MeasParameters_MRDC */ -static int hf_nr_rrc_rf_Parameters_MRDC = -1; /* RF_Parameters_MRDC */ -static int hf_nr_rrc_phyLayerParameters_MRDC = -1; /* PhyLayerParameters_MRDC */ +static int hf_nr_rrc_bandAndDL_ParametersList = -1; /* BandAndDL_ParametersList */ +static int hf_nr_rrc_bandCombinationsUL = -1; /* BIT_STRING_SIZE_1_maxBandComb */ +static int hf_nr_rrc_bandCombinationParametersList = -1; /* SEQUENCE_SIZE_1_maxBandComb_OF_BandCombinationParameters */ +static int hf_nr_rrc_bandCombinationParametersList_item = -1; /* BandCombinationParameters */ +static int hf_nr_rrc_BandAndDL_ParametersList_item = -1; /* BandAndDL_Parameters */ +static int hf_nr_rrc_bandAndDL_ParametersEUTRA = -1; /* BandAndDL_ParametersEUTRA */ +static int hf_nr_rrc_bandAndDL_ParametersNR = -1; /* BandAndDL_ParametersNR */ +static int hf_nr_rrc_ca_ParametersNR = -1; /* CA_ParametersNR */ +static int hf_nr_rrc_mrdc_Parameters = -1; /* MRDC_Parameters */ +static int hf_nr_rrc_multipleTimingAdvances = -1; /* T_multipleTimingAdvances */ +static int hf_nr_rrc_simultaneousRxTxInterBandCA = -1; /* T_simultaneousRxTxInterBandCA */ +static int hf_nr_rrc_supportedBandwidthCombinationSet = -1; /* BIT_STRING_SIZE_1_32 */ +static int hf_nr_rrc_singleUL_Transmission = -1; /* T_singleUL_Transmission */ +static int hf_nr_rrc_ul_SharingEUTRA_NR = -1; /* T_ul_SharingEUTRA_NR */ +static int hf_nr_rrc_ul_SwitchingTimeEUTRA_NR = -1; /* T_ul_SwitchingTimeEUTRA_NR */ +static int hf_nr_rrc_simultaneousRxTxInterBandENDC = -1; /* T_simultaneousRxTxInterBandENDC */ +static int hf_nr_rrc_asyncIntraBandENDC = -1; /* T_asyncIntraBandENDC */ +static int hf_nr_rrc_basebandProcesingCombinationMRDC = -1; /* BasebandProcessingCombinationMRDC */ +static int hf_nr_rrc_bandEUTRA = -1; /* FreqBandIndicatorEUTRA */ +static int hf_nr_rrc_ca_BandwidthClassDL_EUTRA = -1; /* CA_BandwidthClassEUTRA */ +static int hf_nr_rrc_intraBandContiguousCC_InfoDL_EUTRA_List = -1; /* SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoDL_EUTRA */ +static int hf_nr_rrc_intraBandContiguousCC_InfoDL_EUTRA_List_item = -1; /* IntraBandContiguousCC_InfoDL_EUTRA */ +static int hf_nr_rrc_bandNR = -1; /* FreqBandIndicatorNR */ +static int hf_nr_rrc_ca_BandwidthClassDL = -1; /* CA_BandwidthClassNR */ +static int hf_nr_rrc_intraBandFreqSeparationDL = -1; /* FreqSeparationClass */ +static int hf_nr_rrc_intraBandContiguousCC_InfoDL_List = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoDL */ +static int hf_nr_rrc_intraBandContiguousCC_InfoDL_List_item = -1; /* IntraBandContiguousCC_InfoDL */ +static int hf_nr_rrc_maxNumberMIMO_LayersPDSCH = -1; /* MIMO_LayersDL */ +static int hf_nr_rrc_mimo_CapabilityDL = -1; /* T_mimo_CapabilityDL */ +static int hf_nr_rrc_BandCombinationParametersUL_List_item = -1; /* BandCombinationParametersUL */ +static int hf_nr_rrc_BandCombinationParametersUL_item = -1; /* BandParametersUL */ +static int hf_nr_rrc_bandParametersUL_EUTRA = -1; /* BandParametersUL_EUTRA */ +static int hf_nr_rrc_bandParametersUL_NR = -1; /* BandParametersUL_NR */ +static int hf_nr_rrc_ca_BandwidthClassUL_EUTRA = -1; /* CA_BandwidthClassEUTRA */ +static int hf_nr_rrc_intraBandContiguousCC_InfoUL_EUTRA_List = -1; /* SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoUL_EUTRA */ +static int hf_nr_rrc_intraBandContiguousCC_InfoUL_EUTRA_List_item = -1; /* IntraBandContiguousCC_InfoUL_EUTRA */ +static int hf_nr_rrc_ca_BandwidthClassUL = -1; /* CA_BandwidthClassNR */ +static int hf_nr_rrc_intraBandFreqSeparationUL = -1; /* FreqSeparationClass */ +static int hf_nr_rrc_intraBandContiguousCC_InfoUL_List = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoUL */ +static int hf_nr_rrc_intraBandContiguousCC_InfoUL_List_item = -1; /* IntraBandContiguousCC_InfoUL */ +static int hf_nr_rrc_maxNumberMIMO_LayersCB_PUSCH = -1; /* MIMO_LayersUL */ +static int hf_nr_rrc_maxNumberMIMO_LayersNonCB_PUSCH = -1; /* MIMO_LayersUL */ +static int hf_nr_rrc_mimo_CapabilityUL = -1; /* T_mimo_CapabilityUL */ +static int hf_nr_rrc_BasebandCombinationParametersUL_List_item = -1; /* BasebandCombinationParametersUL */ +static int hf_nr_rrc_BasebandCombinationParametersUL_item = -1; /* BasebandParametersPerBandUL */ +static int hf_nr_rrc_freqRange = -1; /* T_freqRange */ +static int hf_nr_rrc_basebandParametersPerCC_UL = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_UL */ +static int hf_nr_rrc_basebandParametersPerCC_UL_item = -1; /* BasebandParametersPerCC_UL */ +static int hf_nr_rrc_supportedSubcarrierSpacingUL = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_supportedBandwidthUL = -1; /* T_supportedBandwidthUL */ +static int hf_nr_rrc_fr1 = -1; /* T_fr1 */ +static int hf_nr_rrc_fr2 = -1; /* T_fr2 */ +static int hf_nr_rrc_scalingFactor0dot75 = -1; /* T_scalingFactor0dot75 */ +static int hf_nr_rrc_supportedModulationOrderUL = -1; /* ModulationOrder */ +static int hf_nr_rrc_supportedSRS_Resources = -1; /* SRS_Resources */ +static int hf_nr_rrc_srs_TxSwitch = -1; /* SRS_TxSwitch */ +static int hf_nr_rrc_lowLatencyCSI_Feedback = -1; /* T_lowLatencyCSI_Feedback */ +static int hf_nr_rrc_pusch_DifferentTB_PerSlot = -1; /* T_pusch_DifferentTB_PerSlot */ +static int hf_nr_rrc_scs_15kHz = -1; /* T_scs_15kHz */ +static int hf_nr_rrc_scs_30kHz = -1; /* T_scs_30kHz */ +static int hf_nr_rrc_scs_60kHz = -1; /* T_scs_60kHz */ +static int hf_nr_rrc_scs_120kHz = -1; /* T_scs_120kHz */ +static int hf_nr_rrc_twoPUCCH_Group = -1; /* T_twoPUCCH_Group */ +static int hf_nr_rrc_diffNumerologyAcrossPUCCH_Group = -1; /* T_diffNumerologyAcrossPUCCH_Group */ +static int hf_nr_rrc_diffNumerologyWithinPUCCH_Group = -1; /* T_diffNumerologyWithinPUCCH_Group */ +static int hf_nr_rrc_crossCarrierScheduling = -1; /* T_crossCarrierScheduling */ +static int hf_nr_rrc_supportedNumberTAG = -1; /* T_supportedNumberTAG */ +static int hf_nr_rrc_dynamicSwitchSUL = -1; /* T_dynamicSwitchSUL */ +static int hf_nr_rrc_simultaneousTxSUL_NonSUL = -1; /* T_simultaneousTxSUL_NonSUL */ +static int hf_nr_rrc_searchSpaceSharingCA_UL = -1; /* T_searchSpaceSharingCA_UL */ +static int hf_nr_rrc_BasebandProcessingCombinationMRDC_item = -1; /* BasebandProcessingCombinationLink */ +static int hf_nr_rrc_basebandProcessingCombinationIndexMN = -1; /* BasebandProcessingCombinationIndex */ +static int hf_nr_rrc_basebandProcessingCombinationLinkedIndexSN = -1; /* SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex */ +static int hf_nr_rrc_basebandProcessingCombinationLinkedIndexSN_item = -1; /* BasebandProcessingCombinationIndex */ +static int hf_nr_rrc_FreqBandList_item = -1; /* FreqBandInformation */ +static int hf_nr_rrc_SupportedBasebandProcessingCombination_item = -1; /* BasebandProcessingCombination */ +static int hf_nr_rrc_basebandParametersDL = -1; /* SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBandDL */ +static int hf_nr_rrc_basebandParametersDL_item = -1; /* BasebandParametersPerBandDL */ +static int hf_nr_rrc_basebandParametersUL = -1; /* BIT_STRING_SIZE_1_maxBasebandProcComb */ +static int hf_nr_rrc_freqRange_01 = -1; /* T_freqRange_01 */ +static int hf_nr_rrc_basebandParametersPerCC_DL = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_DL */ +static int hf_nr_rrc_basebandParametersPerCC_DL_item = -1; /* BasebandParametersPerCC_DL */ +static int hf_nr_rrc_supportedSubcarrierSpacingDL = -1; /* SubcarrierSpacing */ +static int hf_nr_rrc_supportedBandwidthDL = -1; /* T_supportedBandwidthDL */ +static int hf_nr_rrc_fr1_01 = -1; /* T_fr1_01 */ +static int hf_nr_rrc_fr2_01 = -1; /* T_fr2_01 */ +static int hf_nr_rrc_scalingFactor0dot75_01 = -1; /* T_scalingFactor0dot75_01 */ +static int hf_nr_rrc_timeDurationForQCL = -1; /* T_timeDurationForQCL */ +static int hf_nr_rrc_scs_60kHz_01 = -1; /* T_scs_60kHz_01 */ +static int hf_nr_rrc_sch_120kHz = -1; /* T_sch_120kHz */ +static int hf_nr_rrc_scellWithoutSSB = -1; /* T_scellWithoutSSB */ +static int hf_nr_rrc_csi_RS_MeasSCellWithoutSSB = -1; /* T_csi_RS_MeasSCellWithoutSSB */ +static int hf_nr_rrc_supportedModulationOrderDL = -1; /* ModulationOrder */ +static int hf_nr_rrc_srs_AssocCSI_RS = -1; /* T_srs_AssocCSI_RS */ +static int hf_nr_rrc_type1_3_CSS = -1; /* T_type1_3_CSS */ +static int hf_nr_rrc_pdcchMonitoringAnyOccasions = -1; /* T_pdcchMonitoringAnyOccasions */ +static int hf_nr_rrc_ue_SpecificUL_DL_Assignment = -1; /* T_ue_SpecificUL_DL_Assignment */ +static int hf_nr_rrc_pdsch_DifferentTB_PerSlot = -1; /* T_pdsch_DifferentTB_PerSlot */ +static int hf_nr_rrc_scs_15kHz_01 = -1; /* T_scs_15kHz_01 */ +static int hf_nr_rrc_scs_30kHz_01 = -1; /* T_scs_30kHz_01 */ +static int hf_nr_rrc_scs_60kHz_02 = -1; /* T_scs_60kHz_02 */ +static int hf_nr_rrc_scs_120kHz_01 = -1; /* T_scs_120kHz_01 */ +static int hf_nr_rrc_crossCarrierScheduling_01 = -1; /* T_crossCarrierScheduling_01 */ +static int hf_nr_rrc_searchSpaceSharingCA_DL = -1; /* T_searchSpaceSharingCA_DL */ +static int hf_nr_rrc_UE_CapabilityRAT_ContainerList_item = -1; /* UE_CapabilityRAT_Container */ +static int hf_nr_rrc_rat_Type = -1; /* RAT_Type */ +static int hf_nr_rrc_ue_CapabilityRAT_Container = -1; /* T_ue_CapabilityRAT_Container */ +static int hf_nr_rrc_measParametersMRDC = -1; /* MeasParametersMRDC */ +static int hf_nr_rrc_rf_ParametersMRDC = -1; /* RF_ParametersMRDC */ +static int hf_nr_rrc_phy_ParametersMRDC = -1; /* Phy_ParametersMRDC */ +static int hf_nr_rrc_generalParametersMRDC = -1; /* GeneralParametersMRDC_XDD_Diff */ +static int hf_nr_rrc_fdd_Add_UE_MRDC_Capabilities = -1; /* UE_MRDC_CapabilityAddXDD_Mode */ +static int hf_nr_rrc_tdd_Add_UE_MRDC_Capabilities = -1; /* UE_MRDC_CapabilityAddXDD_Mode */ +static int hf_nr_rrc_fr1_Add_UE_MRDC_Capabilities = -1; /* UE_MRDC_CapabilityAddFRX_Mode */ +static int hf_nr_rrc_fr2_Add_UE_MRDC_Capabilities = -1; /* UE_MRDC_CapabilityAddFRX_Mode */ +static int hf_nr_rrc_nonCriticalExtension_05 = -1; /* T_nonCriticalExtension_05 */ +static int hf_nr_rrc_phy_ParametersMRDC_XDD_Diff = -1; /* Phy_ParametersMRDC_XDD_Diff */ +static int hf_nr_rrc_measParametersMRDC_XDD_Diff = -1; /* MeasParametersMRDC_XDD_Diff */ +static int hf_nr_rrc_generalParametersMRDC_XDD_Diff = -1; /* GeneralParametersMRDC_XDD_Diff */ +static int hf_nr_rrc_phy_ParametersMRDC_FRX_Diff = -1; /* Phy_ParametersMRDC_FRX_Diff */ +static int hf_nr_rrc_measParametersMRDC_FRX_Diff = -1; /* MeasParametersMRDC_FRX_Diff */ static int hf_nr_rrc_supportedBandCombination = -1; /* BandCombinationList */ -static int hf_nr_rrc_supportedBasebandProcessingCombination_MRDC = -1; /* BasebandProcessingCombination_MRDC */ -static int hf_nr_rrc_BasebandProcessingCombination_MRDC_item = -1; /* LinkedBasebandProcessingCombination */ -static int hf_nr_rrc_basebandProcessingCombinationIndex = -1; /* BasebandProcessingCombinationIndex */ -static int hf_nr_rrc_basebandProcessingCombinationLinkedIndex = -1; /* SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex */ -static int hf_nr_rrc_basebandProcessingCombinationLinkedIndex_item = -1; /* BasebandProcessingCombinationIndex */ -static int hf_nr_rrc_intraCarrierConcurrentMeas = -1; /* T_intraCarrierConcurrentMeas */ +static int hf_nr_rrc_bandCombinationParametersUL_List = -1; /* BandCombinationParametersUL_List */ +static int hf_nr_rrc_dynamicPowerSharing = -1; /* T_dynamicPowerSharing */ +static int hf_nr_rrc_tdm_Pattern = -1; /* T_tdm_Pattern */ +static int hf_nr_rrc_dynamicPowerSharing_01 = -1; /* T_dynamicPowerSharing_01 */ +static int hf_nr_rrc_tdm_Pattern_01 = -1; /* T_tdm_Pattern_01 */ +static int hf_nr_rrc_measParametersMRDC_Common = -1; /* MeasParametersMRDC_Common */ static int hf_nr_rrc_independentGapConfig = -1; /* T_independentGapConfig */ -static int hf_nr_rrc_sstd_MeasType1 = -1; /* T_sstd_MeasType1 */ +static int hf_nr_rrc_sftd_MeasPSCell = -1; /* T_sftd_MeasPSCell */ +static int hf_nr_rrc_sftd_MeasNR_Cell = -1; /* T_sftd_MeasNR_Cell */ +static int hf_nr_rrc_simultaneousRxDataSSB_DiffNumerology = -1; /* T_simultaneousRxDataSSB_DiffNumerology */ +static int hf_nr_rrc_splitSRB_WithOneUL_Path = -1; /* T_splitSRB_WithOneUL_Path */ +static int hf_nr_rrc_splitDRB_withUL_Both_MCG_SCG = -1; /* T_splitDRB_withUL_Both_MCG_SCG */ +static int hf_nr_rrc_srb3 = -1; /* T_srb3 */ static int hf_nr_rrc_pdcp_Parameters = -1; /* PDCP_Parameters */ static int hf_nr_rrc_rlc_Parameters = -1; /* RLC_Parameters */ static int hf_nr_rrc_mac_Parameters = -1; /* MAC_Parameters */ -static int hf_nr_rrc_phyLayerParameters = -1; /* PhyLayerParameters */ +static int hf_nr_rrc_phy_Parameters = -1; /* Phy_Parameters */ static int hf_nr_rrc_rf_Parameters = -1; /* RF_Parameters */ -static int hf_nr_rrc_nonCriticalExtension_02 = -1; /* T_nonCriticalExtension_02 */ +static int hf_nr_rrc_measParameters = -1; /* MeasParameters */ +static int hf_nr_rrc_fdd_Add_UE_NR_Capabilities = -1; /* UE_NR_CapabilityAddXDD_Mode */ +static int hf_nr_rrc_tdd_Add_UE_NR_Capabilities = -1; /* UE_NR_CapabilityAddXDD_Mode */ +static int hf_nr_rrc_fr1_Add_UE_NR_Capabilities = -1; /* UE_NR_CapabilityAddFRX_Mode */ +static int hf_nr_rrc_fr2_Add_UE_NR_Capabilities = -1; /* UE_NR_CapabilityAddFRX_Mode */ +static int hf_nr_rrc_nonCriticalExtension_06 = -1; /* T_nonCriticalExtension_06 */ +static int hf_nr_rrc_phy_ParametersXDD_Diff = -1; /* Phy_ParametersXDD_Diff */ +static int hf_nr_rrc_mac_ParametersXDD_Diff = -1; /* MAC_ParametersXDD_Diff */ +static int hf_nr_rrc_measParametersXDD_Diff = -1; /* MeasParametersXDD_Diff */ +static int hf_nr_rrc_phy_ParametersFRX_Diff = -1; /* Phy_ParametersFRX_Diff */ +static int hf_nr_rrc_measParametersFRX_Diff = -1; /* MeasParametersFRX_Diff */ +static int hf_nr_rrc_phy_ParametersCommon = -1; /* Phy_ParametersCommon */ +static int hf_nr_rrc_phy_ParametersFR1 = -1; /* Phy_ParametersFR1 */ +static int hf_nr_rrc_phy_ParametersFR2 = -1; /* Phy_ParametersFR2 */ static int hf_nr_rrc_supportedBasebandProcessingCombination = -1; /* SupportedBasebandProcessingCombination */ +static int hf_nr_rrc_basebandCombinationParametersUL_List = -1; /* BasebandCombinationParametersUL_List */ +static int hf_nr_rrc_csi_RS_CFRA_ForHO = -1; /* T_csi_RS_CFRA_ForHO */ +static int hf_nr_rrc_dynamicPRB_BundlingDL = -1; /* T_dynamicPRB_BundlingDL */ +static int hf_nr_rrc_sp_CSI_ReportPUCCH = -1; /* T_sp_CSI_ReportPUCCH */ +static int hf_nr_rrc_sp_CSI_ReportPUSCH = -1; /* T_sp_CSI_ReportPUSCH */ +static int hf_nr_rrc_nzp_CSI_RS_IntefMgmt = -1; /* T_nzp_CSI_RS_IntefMgmt */ +static int hf_nr_rrc_type2_SP_CSI_Feedback_LongPUCCH = -1; /* T_type2_SP_CSI_Feedback_LongPUCCH */ +static int hf_nr_rrc_multipleCORESET = -1; /* T_multipleCORESET */ +static int hf_nr_rrc_dynamicSFI = -1; /* T_dynamicSFI */ +static int hf_nr_rrc_precoderGranularityCORESET = -1; /* T_precoderGranularityCORESET */ +static int hf_nr_rrc_dynamicHARQ_ACK_Codebook = -1; /* T_dynamicHARQ_ACK_Codebook */ +static int hf_nr_rrc_semiStaticHARQ_ACK_Codebook = -1; /* T_semiStaticHARQ_ACK_Codebook */ +static int hf_nr_rrc_spatialBundlingHARQ_ACK = -1; /* T_spatialBundlingHARQ_ACK */ +static int hf_nr_rrc_dynamicBetaOffsetInd_HARQ_ACK_CSI = -1; /* T_dynamicBetaOffsetInd_HARQ_ACK_CSI */ +static int hf_nr_rrc_pucch_Repetition_F1_3_4 = -1; /* T_pucch_Repetition_F1_3_4 */ +static int hf_nr_rrc_ra_Type0_PUSCH = -1; /* T_ra_Type0_PUSCH */ +static int hf_nr_rrc_dynamicSwitchRA_Type0_1_PDSCH = -1; /* T_dynamicSwitchRA_Type0_1_PDSCH */ +static int hf_nr_rrc_dynamicSwitchRA_Type0_1_PUSCH = -1; /* T_dynamicSwitchRA_Type0_1_PUSCH */ +static int hf_nr_rrc_pdsch_MappingTypeA = -1; /* T_pdsch_MappingTypeA */ +static int hf_nr_rrc_pdsch_MappingTypeB = -1; /* T_pdsch_MappingTypeB */ +static int hf_nr_rrc_interleavingVRB_ToPRB_PDSCH = -1; /* T_interleavingVRB_ToPRB_PDSCH */ +static int hf_nr_rrc_interleavingVRB_ToPRB_PUSCH = -1; /* T_interleavingVRB_ToPRB_PUSCH */ +static int hf_nr_rrc_interSlotFreqHopping_PUSCH = -1; /* T_interSlotFreqHopping_PUSCH */ +static int hf_nr_rrc_type1_PUSCH_RepetitionOneSlot = -1; /* T_type1_PUSCH_RepetitionOneSlot */ +static int hf_nr_rrc_type1_PUSCH_RepetitionMultiSlots = -1; /* T_type1_PUSCH_RepetitionMultiSlots */ +static int hf_nr_rrc_type2_PUSCH_RepetitionOneSlot = -1; /* T_type2_PUSCH_RepetitionOneSlot */ +static int hf_nr_rrc_type2_PUSCH_RepetitionMultiSlots = -1; /* T_type2_PUSCH_RepetitionMultiSlots */ +static int hf_nr_rrc_pusch_RepetitionMultiSlots = -1; /* T_pusch_RepetitionMultiSlots */ +static int hf_nr_rrc_pdsch_RepetitionMultiSlots = -1; /* T_pdsch_RepetitionMultiSlots */ +static int hf_nr_rrc_downlinkSPS = -1; /* T_downlinkSPS */ +static int hf_nr_rrc_configuredUL_GrantType1 = -1; /* T_configuredUL_GrantType1 */ +static int hf_nr_rrc_configuredUL_GrantType2 = -1; /* T_configuredUL_GrantType2 */ +static int hf_nr_rrc_pre_EmptIndication_DL = -1; /* T_pre_EmptIndication_DL */ +static int hf_nr_rrc_cbg_TransIndication = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_cbg_FlushIndication_DL = -1; /* T_cbg_FlushIndication_DL */ +static int hf_nr_rrc_dynamicHARQ_ACK_CodeB_CBG_Retx_DL = -1; /* T_dynamicHARQ_ACK_CodeB_CBG_Retx_DL */ +static int hf_nr_rrc_rateMatchingResrcSetSemi_Static = -1; /* T_rateMatchingResrcSetSemi_Static */ +static int hf_nr_rrc_rateMatchingResrcSetDynamic = -1; /* T_rateMatchingResrcSetDynamic */ +static int hf_nr_rrc_rateMatchingLTE_CRS = -1; /* T_rateMatchingLTE_CRS */ +static int hf_nr_rrc_bwp_SwitchingDelay = -1; /* T_bwp_SwitchingDelay */ +static int hf_nr_rrc_twoPUCCH_F0_2_ConsecSymbols = -1; /* T_twoPUCCH_F0_2_ConsecSymbols */ +static int hf_nr_rrc_twoDifferentTPC_Loop_PUSCH = -1; /* T_twoDifferentTPC_Loop_PUSCH */ +static int hf_nr_rrc_twoDifferentTPC_Loop_PUCCH = -1; /* T_twoDifferentTPC_Loop_PUCCH */ +static int hf_nr_rrc_oneFL_DMRS_TwoAdditionalDMRS = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_twoFL_DMRS = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_twoFL_DMRS_TwoAdditionalDMRS = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_oneFL_DMRS_ThreeAdditionalDMRS = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_supportedDMRS_TypeDL = -1; /* T_supportedDMRS_TypeDL */ +static int hf_nr_rrc_supportedDMRS_TypeUL = -1; /* T_supportedDMRS_TypeUL */ +static int hf_nr_rrc_semiOpenLoopCSI = -1; /* T_semiOpenLoopCSI */ +static int hf_nr_rrc_csi_ReportWithoutPMI = -1; /* T_csi_ReportWithoutPMI */ +static int hf_nr_rrc_csi_ReportWithCRI = -1; /* T_csi_ReportWithCRI */ +static int hf_nr_rrc_csi_ReportWithoutCQI = -1; /* T_csi_ReportWithoutCQI */ +static int hf_nr_rrc_onePortsPTRS = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_twoPUCCH_F0_2_ConsecSymbols_01 = -1; /* T_twoPUCCH_F0_2_ConsecSymbols_01 */ +static int hf_nr_rrc_pucch_F2_WithFH = -1; /* T_pucch_F2_WithFH */ +static int hf_nr_rrc_pucch_F3_WithFH = -1; /* T_pucch_F3_WithFH */ +static int hf_nr_rrc_pucch_F4_WithFH = -1; /* T_pucch_F4_WithFH */ +static int hf_nr_rrc_freqHoppingPUCCH_F0_2 = -1; /* T_freqHoppingPUCCH_F0_2 */ +static int hf_nr_rrc_freqHoppingPUCCH_F1_3_4 = -1; /* T_freqHoppingPUCCH_F1_3_4 */ +static int hf_nr_rrc_mux_SR_HARQ_ACK_CSI_PUCCH = -1; /* T_mux_SR_HARQ_ACK_CSI_PUCCH */ +static int hf_nr_rrc_uci_CodeBlockSegmentation = -1; /* T_uci_CodeBlockSegmentation */ +static int hf_nr_rrc_onePUCCH_LongAndShortFormat = -1; /* T_onePUCCH_LongAndShortFormat */ +static int hf_nr_rrc_twoPUCCH_AnyOthersInSlot = -1; /* T_twoPUCCH_AnyOthersInSlot */ +static int hf_nr_rrc_intraSlotFreqHopping_PUSCH = -1; /* T_intraSlotFreqHopping_PUSCH */ +static int hf_nr_rrc_pusch_LBRM = -1; /* T_pusch_LBRM */ +static int hf_nr_rrc_pdcch_BlindDetectionCA = -1; /* T_pdcch_BlindDetectionCA */ +static int hf_nr_rrc_tpc_PUSCH_RNTI_01 = -1; /* T_tpc_PUSCH_RNTI */ +static int hf_nr_rrc_tpc_PUCCH_RNTI_01 = -1; /* T_tpc_PUCCH_RNTI */ +static int hf_nr_rrc_tpc_SRS_RNTI_01 = -1; /* T_tpc_SRS_RNTI */ +static int hf_nr_rrc_absoluteTPC_Command = -1; /* T_absoluteTPC_Command */ +static int hf_nr_rrc_twoDifferentTPC_Loop_PUSCH_01 = -1; /* T_twoDifferentTPC_Loop_PUSCH_01 */ +static int hf_nr_rrc_twoDifferentTPC_Loop_PUCCH_01 = -1; /* T_twoDifferentTPC_Loop_PUCCH_01 */ +static int hf_nr_rrc_pusch_HalfPi_BPSK = -1; /* T_pusch_HalfPi_BPSK */ +static int hf_nr_rrc_pucch_F3_4_HalfPi_BPSK = -1; /* T_pucch_F3_4_HalfPi_BPSK */ +static int hf_nr_rrc_oneSymbolGP_TDD = -1; /* T_oneSymbolGP_TDD */ +static int hf_nr_rrc_almostContiguousCP_OFDM_UL = -1; /* T_almostContiguousCP_OFDM_UL */ +static int hf_nr_rrc_pdcchMonitoringSingleOccasion = -1; /* T_pdcchMonitoringSingleOccasion */ +static int hf_nr_rrc_scs_60kHz_03 = -1; /* T_scs_60kHz_03 */ +static int hf_nr_rrc_pdsch_256QAM_FR1 = -1; /* T_pdsch_256QAM_FR1 */ +static int hf_nr_rrc_calibrationGapPA = -1; /* T_calibrationGapPA */ static int hf_nr_rrc_supportedBandListNR = -1; /* SupportedBandListNR */ -static int hf_nr_rrc_intraBandAsyncFDD = -1; /* T_intraBandAsyncFDD */ static int hf_nr_rrc_SupportedBandListNR_item = -1; /* BandNR */ -static int hf_nr_rrc_SupportedBasebandProcessingCombination_item = -1; /* BasebandProcessingCombination */ -static int hf_nr_rrc_basebandParametersPerBand = -1; /* SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBand */ -static int hf_nr_rrc_basebandParametersPerBand_item = -1; /* BasebandParametersPerBand */ -static int hf_nr_rrc_ca_BandwidthClassDL = -1; /* CA_BandwidthClass */ -static int hf_nr_rrc_ca_BandwidthClassUL = -1; /* CA_BandwidthClass */ -static int hf_nr_rrc_basebandParametersPerCC = -1; /* SEQUENCE_SIZE_1_maxServCell_OF_BasebandParametersPerCC */ -static int hf_nr_rrc_basebandParametersPerCC_item = -1; /* BasebandParametersPerCC */ -static int hf_nr_rrc_supportedBWPerCC = -1; /* BWPerCC */ -static int hf_nr_rrc_supportedMIMO_CapabilityDL = -1; /* MIMO_Capability */ -static int hf_nr_rrc_supportedMIMO_CapabilityUL = -1; /* MIMO_Capability */ -static int hf_nr_rrc_modulationOrder = -1; /* ModulationOrder */ -static int hf_nr_rrc_subCarrierSpacing = -1; /* SubCarrierSpacing */ -static int hf_nr_rrc_bandNR = -1; /* FreqBandIndicatorNR */ -static int hf_nr_rrc_dataRateDRB_IP = -1; /* T_dataRateDRB_IP */ +static int hf_nr_rrc_modifiedMPR_Behaviour = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_maxChannelBW_PerCC = -1; /* T_maxChannelBW_PerCC */ +static int hf_nr_rrc_mimo_ParametersPerBand = -1; /* MIMO_ParametersPerBand */ +static int hf_nr_rrc_extendedCP = -1; /* T_extendedCP */ +static int hf_nr_rrc_phaseCoherenceUL = -1; /* T_phaseCoherenceUL */ +static int hf_nr_rrc_scellWithoutSSB_01 = -1; /* T_scellWithoutSSB_01 */ +static int hf_nr_rrc_csi_RS_MeasSCellWithoutSSB_01 = -1; /* T_csi_RS_MeasSCellWithoutSSB_01 */ +static int hf_nr_rrc_srs_AssocCSI_RS_01 = -1; /* T_srs_AssocCSI_RS_01 */ +static int hf_nr_rrc_type1_3_CSS_01 = -1; /* T_type1_3_CSS_01 */ +static int hf_nr_rrc_multipleTCI = -1; /* T_multipleTCI */ +static int hf_nr_rrc_pdcchMonitoringAnyOccasions_01 = -1; /* T_pdcchMonitoringAnyOccasions_01 */ +static int hf_nr_rrc_ue_SpecificUL_DL_Assignment_01 = -1; /* T_ue_SpecificUL_DL_Assignment_01 */ +static int hf_nr_rrc_pdsch_DifferentTB_PerSlot_01 = -1; /* T_pdsch_DifferentTB_PerSlot_01 */ +static int hf_nr_rrc_scs_15kHz_02 = -1; /* T_scs_15kHz_02 */ +static int hf_nr_rrc_scs_30kHz_02 = -1; /* T_scs_30kHz_02 */ +static int hf_nr_rrc_scs_60kHz_04 = -1; /* T_scs_60kHz_04 */ +static int hf_nr_rrc_scs_120kHz_02 = -1; /* T_scs_120kHz_02 */ +static int hf_nr_rrc_pusch_DifferentTB_PerSlot_01 = -1; /* T_pusch_DifferentTB_PerSlot_01 */ +static int hf_nr_rrc_scs_15kHz_03 = -1; /* T_scs_15kHz_03 */ +static int hf_nr_rrc_scs_30kHz_03 = -1; /* T_scs_30kHz_03 */ +static int hf_nr_rrc_scs_60kHz_05 = -1; /* T_scs_60kHz_05 */ +static int hf_nr_rrc_scs_120kHz_03 = -1; /* T_scs_120kHz_03 */ +static int hf_nr_rrc_bwp_SameNumerology = -1; /* T_bwp_SameNumerology */ +static int hf_nr_rrc_bwp_DiffNumerology = -1; /* T_bwp_DiffNumerology */ +static int hf_nr_rrc_twoPUCCH_Group_01 = -1; /* T_twoPUCCH_Group_01 */ +static int hf_nr_rrc_diffNumerologyAcrossPUCCH_Group_01 = -1; /* T_diffNumerologyAcrossPUCCH_Group_01 */ +static int hf_nr_rrc_diffNumerologyWithinPUCCH_Group_01 = -1; /* T_diffNumerologyWithinPUCCH_Group_01 */ +static int hf_nr_rrc_crossCarrierScheduling_02 = -1; /* T_crossCarrierScheduling_02 */ +static int hf_nr_rrc_supportedNumberTAG_01 = -1; /* T_supportedNumberTAG_01 */ +static int hf_nr_rrc_simultaneousTxSUL_NonSUL_01 = -1; /* T_simultaneousTxSUL_NonSUL_01 */ +static int hf_nr_rrc_searchSpaceSharingCA_DL_01 = -1; /* T_searchSpaceSharingCA_DL_01 */ +static int hf_nr_rrc_searchSpaceSharingCA_UL_01 = -1; /* T_searchSpaceSharingCA_UL_01 */ +static int hf_nr_rrc_pdsch_256QAM_FR2 = -1; /* T_pdsch_256QAM_FR2 */ +static int hf_nr_rrc_pusch_256QAM = -1; /* T_pusch_256QAM */ +static int hf_nr_rrc_timeDurationForQCL_01 = -1; /* T_timeDurationForQCL_01 */ +static int hf_nr_rrc_scs_60kHz_06 = -1; /* T_scs_60kHz_06 */ +static int hf_nr_rrc_sch_120kHz_01 = -1; /* T_sch_120kHz_01 */ +static int hf_nr_rrc_maxNumberConfiguredTCIstates = -1; /* T_maxNumberConfiguredTCIstates */ +static int hf_nr_rrc_maxNumberActiveTCI_PerCC = -1; /* T_maxNumberActiveTCI_PerCC */ +static int hf_nr_rrc_pusch_TransCoherence = -1; /* T_pusch_TransCoherence */ +static int hf_nr_rrc_beamCorrespondence = -1; /* T_beamCorrespondence */ +static int hf_nr_rrc_periodicBeamReport = -1; /* T_periodicBeamReport */ +static int hf_nr_rrc_aperiodicBeamReport = -1; /* T_aperiodicBeamReport */ +static int hf_nr_rrc_sp_BeamReportPUCCH = -1; /* T_sp_BeamReportPUCCH */ +static int hf_nr_rrc_sp_BeamReportPUSCH = -1; /* T_sp_BeamReportPUSCH */ +static int hf_nr_rrc_beamManagementSSB_CSI_RS = -1; /* BeamManagementSSB_CSI_RS */ +static int hf_nr_rrc_maxNumberRxBeam = -1; /* INTEGER_2_8 */ +static int hf_nr_rrc_maxNumberRxTxBeamSwitchDL = -1; /* T_maxNumberRxTxBeamSwitchDL */ +static int hf_nr_rrc_scs_15kHz_04 = -1; /* T_scs_15kHz_04 */ +static int hf_nr_rrc_scs_30kHz_04 = -1; /* T_scs_30kHz_04 */ +static int hf_nr_rrc_scs_60kHz_07 = -1; /* T_scs_60kHz_07 */ +static int hf_nr_rrc_scs_120kHz_04 = -1; /* T_scs_120kHz_04 */ +static int hf_nr_rrc_scs_240kHz = -1; /* T_scs_240kHz */ +static int hf_nr_rrc_maxNumberNonGroupBeamReporting = -1; /* T_maxNumberNonGroupBeamReporting */ +static int hf_nr_rrc_groupBeamReporting = -1; /* T_groupBeamReporting */ +static int hf_nr_rrc_uplinkBeamManagement = -1; /* T_uplinkBeamManagement */ +static int hf_nr_rrc_maxNumberSRS_ResourcePerSet = -1; /* T_maxNumberSRS_ResourcePerSet */ +static int hf_nr_rrc_maxNumberSRS_ResourceSet = -1; /* INTEGER_1_8 */ +static int hf_nr_rrc_maxNumberCSI_RS_BFR = -1; /* INTEGER_1_64 */ +static int hf_nr_rrc_maxNumberSSB_BFR = -1; /* INTEGER_1_64 */ +static int hf_nr_rrc_maxNumberCSI_RS_SSB_BFR = -1; /* INTEGER_1_256 */ +static int hf_nr_rrc_twoPortsPTRS = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_maxNumberSimultaneousSRS_PerCC = -1; /* INTEGER_1_4 */ +static int hf_nr_rrc_lowLatencyCSI_Feedback_01 = -1; /* T_lowLatencyCSI_Feedback_01 */ +static int hf_nr_rrc_maxNumberSSB_CSI_RS_ResourceOneTx = -1; /* T_maxNumberSSB_CSI_RS_ResourceOneTx */ +static int hf_nr_rrc_maxNumberSSB_CSI_RS_ResourceTwoTx = -1; /* T_maxNumberSSB_CSI_RS_ResourceTwoTx */ +static int hf_nr_rrc_supportedCSI_RS_Density = -1; /* T_supportedCSI_RS_Density */ +static int hf_nr_rrc_maxNumberAperiodicSRS_PerBWP = -1; /* T_maxNumberAperiodicSRS_PerBWP */ +static int hf_nr_rrc_maxNumberAperiodicSRS_PerBWP_PerSlot = -1; /* INTEGER_1_6 */ +static int hf_nr_rrc_maxNumberPeriodicSRS_PerBWP = -1; /* T_maxNumberPeriodicSRS_PerBWP */ +static int hf_nr_rrc_maxNumberPeriodicSRS_PerBWP_PerSlot = -1; /* INTEGER_1_6 */ +static int hf_nr_rrc_maxNumberSemiPersitentSRS_PerBWP = -1; /* T_maxNumberSemiPersitentSRS_PerBWP */ +static int hf_nr_rrc_maxNumberSP_SRS_PerBWP_PerSlot = -1; /* INTEGER_0_6 */ +static int hf_nr_rrc_maxNumberSRS_Ports_PerResource = -1; /* T_maxNumberSRS_Ports_PerResource */ +static int hf_nr_rrc_supportedSRS_TxPortSwitch = -1; /* T_supportedSRS_TxPortSwitch */ +static int hf_nr_rrc_txSwitchImpactToRx = -1; /* T_txSwitchImpactToRx */ static int hf_nr_rrc_supportedROHC_Profiles = -1; /* T_supportedROHC_Profiles */ static int hf_nr_rrc_profile0x0000 = -1; /* BOOLEAN */ static int hf_nr_rrc_maxNumberROHC_ContextSessions = -1; /* T_maxNumberROHC_ContextSessions */ @@ -1028,19 +1974,25 @@ static int hf_nr_rrc_uplinkOnlyROHC_Profiles = -1; /* T_uplinkOnlyROHC_Profiles static int hf_nr_rrc_continueROHC_Context = -1; /* T_continueROHC_Context */ static int hf_nr_rrc_outOfOrderDelivery_01 = -1; /* T_outOfOrderDelivery */ static int hf_nr_rrc_shortSN = -1; /* T_shortSN */ -static int hf_nr_rrc_volteOverNR_PDCP = -1; /* T_volteOverNR_PDCP */ -static int hf_nr_rrc_amWithShortSN = -1; /* T_amWithShortSN */ -static int hf_nr_rrc_umWithShortSN = -1; /* T_umWithShortSN */ -static int hf_nr_rrc_umWIthLongSN = -1; /* T_umWIthLongSN */ +static int hf_nr_rrc_am_WithShortSN = -1; /* T_am_WithShortSN */ +static int hf_nr_rrc_um_WithShortSN = -1; /* T_um_WithShortSN */ +static int hf_nr_rrc_um_WIthLongSN = -1; /* T_um_WIthLongSN */ +static int hf_nr_rrc_mac_ParametersCommon = -1; /* MAC_ParametersCommon */ static int hf_nr_rrc_lcp_Restriction = -1; /* T_lcp_Restriction */ +static int hf_nr_rrc_pucch_SpatialRelInfoMAC_CE = -1; /* T_pucch_SpatialRelInfoMAC_CE */ static int hf_nr_rrc_skipUplinkTxDynamic_01 = -1; /* T_skipUplinkTxDynamic */ -static int hf_nr_rrc_logicalChannelSR_DelayTimer = -1; /* T_logicalChannelSR_DelayTimer */ +static int hf_nr_rrc_logicalChannelSR_DelayTimer_01 = -1; /* T_logicalChannelSR_DelayTimer_01 */ static int hf_nr_rrc_longDRX_Cycle = -1; /* T_longDRX_Cycle */ static int hf_nr_rrc_shortDRX_Cycle = -1; /* T_shortDRX_Cycle */ -static int hf_nr_rrc_numberOfSR_Configurations = -1; /* T_numberOfSR_Configurations */ -static int hf_nr_rrc_numberOfConfiguredGrantConfigurations = -1; /* T_numberOfConfiguredGrantConfigurations */ -static int hf_nr_rrc_start = -1; /* PhysCellId */ -static int hf_nr_rrc_range = -1; /* T_range */ +static int hf_nr_rrc_multipleSR_Configurations = -1; /* T_multipleSR_Configurations */ +static int hf_nr_rrc_multipleConfiguredGrantConfigurations = -1; /* T_multipleConfiguredGrantConfigurations */ +static int hf_nr_rrc_intraAndInterF_MeasAndReport = -1; /* T_intraAndInterF_MeasAndReport */ +static int hf_nr_rrc_eventA_MeasAndReport = -1; /* T_eventA_MeasAndReport */ +static int hf_nr_rrc_ss_SINR_Meas = -1; /* T_ss_SINR_Meas */ +static int hf_nr_rrc_csi_RSRP_AndRSRQ_MeasWithSSB = -1; /* T_csi_RSRP_AndRSRQ_MeasWithSSB */ +static int hf_nr_rrc_csi_RSRP_AndRSRQ_MeasWithoutSSB = -1; /* T_csi_RSRP_AndRSRQ_MeasWithoutSSB */ +static int hf_nr_rrc_csi_SINR_Meas = -1; /* T_csi_SINR_Meas */ +static int hf_nr_rrc_csi_RS_RLM = -1; /* T_csi_RS_RLM */ /*--- End of included file: packet-nr-rrc-hf.c ---*/ #line 40 "./asn1/nr-rrc/packet-nr-rrc-template.c" @@ -1050,23 +2002,31 @@ 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_SCG_ConfigInfo = -1; +static gint ett_nr_rrc_NR_FreqInfo = -1; +static gint ett_nr_rrc_CG_ConfigInfo = -1; static gint ett_nr_rrc_T_criticalExtensions = -1; static gint ett_nr_rrc_T_c1 = -1; static gint ett_nr_rrc_T_criticalExtensionsFuture = -1; -static gint ett_nr_rrc_SCG_ConfigInfo_r15_IEs = -1; +static gint ett_nr_rrc_CG_ConfigInfo_IEs = -1; +static gint ett_nr_rrc_T_scgFailureInfo = -1; static gint ett_nr_rrc_T_nonCriticalExtension = -1; static gint ett_nr_rrc_ConfigRestrictInfoSCG = -1; -static gint ett_nr_rrc_T_restrictedBasebandCombinationNR_NR = -1; +static gint ett_nr_rrc_T_powerCoordination_FR1 = -1; +static gint ett_nr_rrc_T_servCellIndexRangeSCG = -1; +static gint ett_nr_rrc_BandCombinationIndexList = -1; +static gint ett_nr_rrc_BPC_IndexList = -1; static gint ett_nr_rrc_DRX_Info = -1; +static gint ett_nr_rrc_T_drx_LongCycleStartOffset = -1; +static gint ett_nr_rrc_T_shortDRX = -1; +static gint ett_nr_rrc_MeasConfigMN = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo = -1; static gint ett_nr_rrc_CandidateCellInfoList = -1; static gint ett_nr_rrc_CandidateCellInfo = -1; static gint ett_nr_rrc_T_cellIdentification = -1; -static gint ett_nr_rrc_T_measResultCell = -1; -static gint ett_nr_rrc_CandidateRS_IndexInfoList = -1; -static gint ett_nr_rrc_CandidateRS_IndexInfo = -1; -static gint ett_nr_rrc_T_measResultSSB = -1; -static gint ett_nr_rrc_MeasResultSSTD = -1; +static gint ett_nr_rrc_CandidateRS_IndexInfoListSSB = -1; +static gint ett_nr_rrc_CandidateRS_IndexInfoSSB = -1; +static gint ett_nr_rrc_CandidateRS_IndexInfoListCSI_RS = -1; +static gint ett_nr_rrc_CandidateRS_IndexInfoCSI_RS = -1; 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; @@ -1083,81 +2043,200 @@ static gint ett_nr_rrc_MeasurementReport = -1; static gint ett_nr_rrc_T_criticalExtensions_01 = -1; static gint ett_nr_rrc_T_criticalExtensionsFuture_01 = -1; static gint ett_nr_rrc_MeasurementReport_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_01 = -1; static gint ett_nr_rrc_RRCReconfiguration = -1; static gint ett_nr_rrc_T_criticalExtensions_02 = -1; static gint ett_nr_rrc_T_criticalExtensionsFuture_02 = -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_01 = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_02 = -1; static gint ett_nr_rrc_RRCReconfigurationComplete = -1; static gint ett_nr_rrc_T_criticalExtensions_03 = -1; static gint ett_nr_rrc_T_criticalExtensionsFuture_03 = -1; static gint ett_nr_rrc_RRCReconfigurationComplete_IEs = -1; -static gint ett_nr_rrc_BandwidthPart = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_03 = -1; +static gint ett_nr_rrc_SIB1 = -1; +static gint ett_nr_rrc_T_ssb_PositionsInBurst = -1; +static gint ett_nr_rrc_T_supplementaryUplink = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_04 = -1; +static gint ett_nr_rrc_BWP = -1; +static gint ett_nr_rrc_BWP_Uplink = -1; +static gint ett_nr_rrc_BWP_UplinkCommon = -1; +static gint ett_nr_rrc_T_rach_ConfigCommon = -1; +static gint ett_nr_rrc_T_pusch_ConfigCommon = -1; +static gint ett_nr_rrc_T_pucch_ConfigCommon = -1; +static gint ett_nr_rrc_BWP_UplinkDedicated = -1; +static gint ett_nr_rrc_T_pucch_Config = -1; +static gint ett_nr_rrc_T_pusch_Config = -1; +static gint ett_nr_rrc_T_configuredGrantConfig = -1; +static gint ett_nr_rrc_T_srs_Config = -1; +static gint ett_nr_rrc_T_beamFailureRecoveryConfig = -1; +static gint ett_nr_rrc_BWP_Downlink = -1; +static gint ett_nr_rrc_BWP_DownlinkCommon = -1; +static gint ett_nr_rrc_T_pdcch_ConfigCommon = -1; +static gint ett_nr_rrc_T_pdsch_ConfigCommon = -1; +static gint ett_nr_rrc_BWP_DownlinkDedicated = -1; +static gint ett_nr_rrc_T_pdcch_Config = -1; +static gint ett_nr_rrc_T_pdsch_Config = -1; +static gint ett_nr_rrc_T_sps_Config = -1; +static gint ett_nr_rrc_T_radioLinkMonitoringConfig = -1; +static gint ett_nr_rrc_BeamFailureRecoveryConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR = -1; +static gint ett_nr_rrc_PRACH_ResourceDedicatedBFR = -1; +static gint ett_nr_rrc_BFR_SSB_Resource = -1; +static gint ett_nr_rrc_BFR_CSIRS_Resource = -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_SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_Bearer_Config = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentity = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex = -1; +static gint ett_nr_rrc_RLC_Bearer_Config = -1; +static gint ett_nr_rrc_T_servedRadioBearer = -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_T_rlf_TimersAndConstants = -1; +static gint ett_nr_rrc_ReconfigurationWithSync = -1; +static gint ett_nr_rrc_T_rach_ConfigDedicated = -1; static gint ett_nr_rrc_SCellConfig = -1; -static gint ett_nr_rrc_CellIndexList = -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_subType = -1; +static gint ett_nr_rrc_T_typeI_SinglePanel = -1; +static gint ett_nr_rrc_T_nrOfAntennaPorts = -1; +static gint ett_nr_rrc_T_two = -1; +static gint ett_nr_rrc_T_moreThanTwo = -1; +static gint ett_nr_rrc_T_n1_n2 = -1; +static gint ett_nr_rrc_T_typeI_MultiPanel = -1; +static gint ett_nr_rrc_T_ng_n1_n2 = -1; +static gint ett_nr_rrc_T_type2 = -1; +static gint ett_nr_rrc_T_subType_01 = -1; +static gint ett_nr_rrc_T_typeII = -1; +static gint ett_nr_rrc_T_n1_n2_codebookSubsetRestriction = -1; +static gint ett_nr_rrc_T_typeII_PortSelection = -1; +static gint ett_nr_rrc_ConfiguredGrantConfig = -1; +static gint ett_nr_rrc_T_uci_OnPUSCH = -1; +static gint ett_nr_rrc_T_rrc_ConfiguredUplinkGrant = -1; +static gint ett_nr_rrc_CG_UCI_OnPUSCH = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets = -1; +static gint ett_nr_rrc_ControlResourceSet = -1; +static gint ett_nr_rrc_T_cce_REG_MappingType = -1; +static gint ett_nr_rrc_T_interleaved = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId = -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_AperiodicTriggerStateList = -1; +static gint ett_nr_rrc_CSI_AperiodicTriggerState = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo = -1; +static gint ett_nr_rrc_CSI_AssociatedReportConfigInfo = -1; +static gint ett_nr_rrc_T_resourcesForChannel = -1; +static gint ett_nr_rrc_T_nzp_CSI_RS = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId = -1; +static gint ett_nr_rrc_CSI_FrequencyOccupation = -1; +static gint ett_nr_rrc_CSI_IM_Resource = -1; +static gint ett_nr_rrc_T_csi_IM_ResourceElementPattern = -1; +static gint ett_nr_rrc_T_pattern0 = -1; +static gint ett_nr_rrc_T_pattern1 = -1; +static gint ett_nr_rrc_CSI_IM_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_ResourceId = -1; static gint ett_nr_rrc_CSI_MeasConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_Resource = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_ResourceId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSetId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_Resource = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_ResourceId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSetId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSetId = -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_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfigId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfigId = -1; +static gint ett_nr_rrc_T_aperiodicTriggerStateList = -1; +static gint ett_nr_rrc_T_semiPersistentOnPUSCH_TriggerStateList = -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_SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource = -1; +static gint ett_nr_rrc_T_semiPersistentOnPUCCH = -1; +static gint ett_nr_rrc_T_semiPersistentOnPUSCH = -1; +static gint ett_nr_rrc_T_reportSlotOffsetList = -1; static gint ett_nr_rrc_T_aperiodic = -1; +static gint ett_nr_rrc_T_reportSlotOffsetList_01 = -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_cri_RI_i1_CQI = -1; static gint ett_nr_rrc_T_reportFreqConfiguration = -1; +static gint ett_nr_rrc_T_csi_ReportingBand = -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_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks = -1; +static gint ett_nr_rrc_CSI_ReportPeriodicityAndOffset = -1; +static gint ett_nr_rrc_PUCCH_CSI_Resource = -1; +static gint ett_nr_rrc_PortIndexFor8Ranks = -1; +static gint ett_nr_rrc_T_portIndex8 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex8 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_PortIndex8 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_PortIndex8 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_5_OF_PortIndex8 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_6_OF_PortIndex8 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_7_OF_PortIndex8 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_8_OF_PortIndex8 = -1; +static gint ett_nr_rrc_T_portIndex4 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex4 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_PortIndex4 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_PortIndex4 = -1; +static gint ett_nr_rrc_T_portIndex2 = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex2 = -1; +static gint ett_nr_rrc_CSI_ResourceConfig = -1; +static gint ett_nr_rrc_T_csi_RS_ResourceSetList = -1; +static gint ett_nr_rrc_T_nzp_CSI_RS_SSB = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_ResourceSetId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_ResourceSetId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_ResourceSetId = -1; +static gint ett_nr_rrc_CSI_ResourcePeriodicityAndOffset = -1; +static gint ett_nr_rrc_CSI_RS_ResourceMapping = -1; +static gint ett_nr_rrc_T_frequencyDomainAllocation = -1; +static gint ett_nr_rrc_T_density = -1; +static gint ett_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList = -1; +static gint ett_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerState = -1; +static gint ett_nr_rrc_CSI_SSB_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_SSB_Index = -1; +static gint ett_nr_rrc_DMRS_DownlinkConfig = -1; +static gint ett_nr_rrc_T_phaseTrackingRS = -1; +static gint ett_nr_rrc_DMRS_UplinkConfig = -1; +static gint ett_nr_rrc_T_phaseTrackingRS_01 = -1; +static gint ett_nr_rrc_T_transformPrecoding = -1; +static gint ett_nr_rrc_T_disabled_01 = -1; +static gint ett_nr_rrc_T_enabled = -1; +static gint ett_nr_rrc_DownlinkPreemption = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell = -1; +static gint ett_nr_rrc_INT_ConfigurationPerServingCell = -1; +static gint ett_nr_rrc_EUTRA_MBSFN_SubframeConfigList = -1; +static gint ett_nr_rrc_EUTRA_MBSFN_SubframeConfig = -1; +static gint ett_nr_rrc_T_subframeAllocation = -1; +static gint ett_nr_rrc_T_subframeAllocation_v1430 = -1; +static gint ett_nr_rrc_FrequencyInfoDL = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier = -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_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SubcarrierSpacing = -1; static gint ett_nr_rrc_MAC_CellGroupConfig = -1; +static gint ett_nr_rrc_T_drx_Config = -1; +static gint ett_nr_rrc_T_phr_Config = -1; +static gint ett_nr_rrc_T_cs_RNTI = -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_T_drx_onDurationTimer = -1; +static gint ett_nr_rrc_T_drx_LongCycleStartOffset_01 = -1; +static gint ett_nr_rrc_T_shortDRX_01 = -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_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_ToAddMod = -1; static gint ett_nr_rrc_TAG_ToAddMod = -1; static gint ett_nr_rrc_BSR_Config = -1; static gint ett_nr_rrc_MeasConfig = -1; @@ -1165,26 +2244,33 @@ 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_MeasGapConfig = -1; +static gint ett_nr_rrc_T_gapFR2 = -1; +static gint ett_nr_rrc_GapConfig = -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_csi_rs_ResourceConfigMobility = -1; +static gint ett_nr_rrc_SSB_ConfigMobility = -1; +static gint ett_nr_rrc_T_ssb_ToMeasure = -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_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId = -1; +static gint ett_nr_rrc_T_ss_RSSI_Measurement = -1; +static gint ett_nr_rrc_T_measurementSlots = -1; +static gint ett_nr_rrc_CSI_RS_ResourceConfigMobility = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility = -1; +static gint ett_nr_rrc_CSI_RS_CellMobility = -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_T_associatedSSB = -1; +static gint ett_nr_rrc_T_frequencyDomainAllocation_01 = -1; static gint ett_nr_rrc_Q_OffsetRangeList = -1; +static gint ett_nr_rrc_SSB_ToMeasure = -1; static gint ett_nr_rrc_ThresholdNR = -1; static gint ett_nr_rrc_CellsToAddModList = -1; static gint ett_nr_rrc_CellsToAddMod = -1; @@ -1204,30 +2290,37 @@ 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_MeasQuantityResults = -1; +static gint ett_nr_rrc_ResultsPerSSB_IndexList = -1; +static gint ett_nr_rrc_ResultsPerSSB_Index = -1; +static gint ett_nr_rrc_ResultsPerCSI_RS_IndexList = -1; +static gint ett_nr_rrc_ResultsPerCSI_RS_Index = -1; +static gint ett_nr_rrc_MeasResultSCG_Failure = -1; +static gint ett_nr_rrc_MeasResultServFreqList2NR = -1; +static gint ett_nr_rrc_MeasResultServFreq2NR = -1; +static gint ett_nr_rrc_MeasResultList2NR = -1; +static gint ett_nr_rrc_MeasResult2NR = -1; +static gint ett_nr_rrc_MeasResultCellListSFTD = -1; +static gint ett_nr_rrc_MeasResultCellSFTD = -1; +static gint ett_nr_rrc_MultiFrequencyBandListNR = -1; +static gint ett_nr_rrc_NZP_CSI_RS_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_ResourceId = -1; +static gint ett_nr_rrc_NZP_CSI_RS_Resource = -1; +static gint ett_nr_rrc_PCI_List = -1; +static gint ett_nr_rrc_PCI_Range = -1; +static gint ett_nr_rrc_PCI_RangeIndexList = -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_SEQUENCE_SIZE_1_3_OF_ControlResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_ControlResourceSetId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpace = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpaceId = -1; +static gint ett_nr_rrc_T_downlinkPreemption = -1; +static gint ett_nr_rrc_T_slotFormatIndicator = -1; +static gint ett_nr_rrc_T_tpc_PUSCH = -1; +static gint ett_nr_rrc_T_tpc_PUCCH = -1; +static gint ett_nr_rrc_PDCCH_ConfigCommon = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_ControlResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpace = -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; @@ -1237,54 +2330,117 @@ 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_T_dmrs_DownlinkForPDSCH_MappingTypeA = -1; +static gint ett_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_State = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_StateId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofDL_Allocations_OF_PDSCH_TimeDomainResourceAllocation = -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_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId = -1; +static gint ett_nr_rrc_T_prb_BundlingType = -1; +static gint ett_nr_rrc_T_static = -1; +static gint ett_nr_rrc_T_dynamic = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_Resource = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_ResourceId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId = -1; +static gint ett_nr_rrc_PDSCH_ConfigCommon = -1; +static gint ett_nr_rrc_PDSCH_ServingCellConfig = -1; +static gint ett_nr_rrc_T_codeBlockGroupTransmission = -1; +static gint ett_nr_rrc_PDSCH_CodeBlockGroupTransmission = -1; +static gint ett_nr_rrc_PDSCH_TimeDomainResourceAllocation = -1; +static gint ett_nr_rrc_PTRS_DownlinkConfig = -1; +static gint ett_nr_rrc_T_frequencyDensity = -1; +static gint ett_nr_rrc_T_timeDensity = -1; +static gint ett_nr_rrc_T_epre_RatioPort2 = -1; +static gint ett_nr_rrc_PTRS_UplinkConfig = -1; +static gint ett_nr_rrc_T_modeSpecificParameters = -1; +static gint ett_nr_rrc_T_cp_OFDM = -1; +static gint ett_nr_rrc_T_frequencyDensity_01 = -1; +static gint ett_nr_rrc_T_timeDensity_01 = -1; +static gint ett_nr_rrc_T_dft_S_OFDM = -1; +static gint ett_nr_rrc_T_sampleDensity = -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_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId = -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_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PUCCH_ResourceId = -1; +static gint ett_nr_rrc_T_dl_DataToUL_ACK = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId = -1; +static gint ett_nr_rrc_PUCCH_FormatConfig = -1; +static gint ett_nr_rrc_PUCCH_SpatialRelationInfo = -1; +static gint ett_nr_rrc_T_referenceSignal = -1; static gint ett_nr_rrc_PUCCH_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_8_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId = -1; +static gint ett_nr_rrc_PUCCH_Resource = -1; +static gint ett_nr_rrc_T_format = -1; +static gint ett_nr_rrc_PUCCH_format0 = -1; +static gint ett_nr_rrc_PUCCH_format1 = -1; +static gint ett_nr_rrc_PUCCH_format2 = -1; +static gint ett_nr_rrc_PUCCH_format3 = -1; +static gint ett_nr_rrc_PUCCH_format4 = -1; +static gint ett_nr_rrc_PUCCH_ConfigCommon = -1; +static gint ett_nr_rrc_PUCCH_PowerControl = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS = -1; +static gint ett_nr_rrc_P0_PUCCH = -1; +static gint ett_nr_rrc_PUCCH_PathlossReferenceRS = -1; +static gint ett_nr_rrc_T_referenceSignal_01 = -1; +static gint ett_nr_rrc_PUCCH_TPC_CommandConfig = -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_T_dmrs_UplinkForPUSCH_MappingTypeA = -1; +static gint ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB = -1; +static gint ett_nr_rrc_T_frequencyHoppingOffsetLists = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofUL_Allocations_OF_PUSCH_TimeDomainResourceAllocation = -1; +static gint ett_nr_rrc_T_uci_OnPUSCH_01 = -1; +static gint ett_nr_rrc_UCI_OnPUSCH = -1; +static gint ett_nr_rrc_T_betaOffsets = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_4_OF_BetaOffsets = -1; +static gint ett_nr_rrc_PUSCH_ConfigCommon = -1; +static gint ett_nr_rrc_PUSCH_PowerControl = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_Id = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId = -1; +static gint ett_nr_rrc_P0_PUSCH_AlphaSet = -1; +static gint ett_nr_rrc_PUSCH_PathlossReferenceRS = -1; +static gint ett_nr_rrc_T_referenceSignal_02 = -1; +static gint ett_nr_rrc_SRI_PUSCH_PowerControl = -1; static gint ett_nr_rrc_BetaOffsets = -1; +static gint ett_nr_rrc_PUSCH_ServingCellConfig = -1; +static gint ett_nr_rrc_T_codeBlockGroupTransmission_01 = -1; +static gint ett_nr_rrc_PUSCH_CodeBlockGroupGransmission = -1; +static gint ett_nr_rrc_PUSCH_TimeDomainResourceAllocation = -1; +static gint ett_nr_rrc_PUSCH_TPC_CommandConfig = -1; static gint ett_nr_rrc_QuantityConfig = -1; +static gint ett_nr_rrc_QuantityConfigNR_List = -1; +static gint ett_nr_rrc_QuantityConfigNR = -1; static gint ett_nr_rrc_QuantityConfigRS = -1; +static gint ett_nr_rrc_FilterConfig = -1; static gint ett_nr_rrc_RACH_ConfigCommon = -1; +static gint ett_nr_rrc_T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB = -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_ConfigGeneric = -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_T_ssb = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxRA_SSB_Resources_OF_CFRA_SSB_Resource = -1; +static gint ett_nr_rrc_T_csirs = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_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_T_ra_OccasionList = -1; static gint ett_nr_rrc_RadioBearerConfig = -1; static gint ett_nr_rrc_SRB_ToAddModList = -1; static gint ett_nr_rrc_SRB_ToAddMod = -1; @@ -1293,6 +2449,16 @@ 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_RadioLinkMonitoringConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS = -1; +static gint ett_nr_rrc_RadioLinkMonitoringRS = -1; +static gint ett_nr_rrc_T_detectionResource = -1; +static gint ett_nr_rrc_RateMatchPattern = -1; +static gint ett_nr_rrc_T_patternType = -1; +static gint ett_nr_rrc_T_bitmaps = -1; +static gint ett_nr_rrc_T_symbolsInResourceBlock = -1; +static gint ett_nr_rrc_T_periodicityAndPattern = -1; +static gint ett_nr_rrc_RateMatchPatternLTE_CRS = -1; static gint ett_nr_rrc_ReportConfigNR = -1; static gint ett_nr_rrc_T_reportType = -1; static gint ett_nr_rrc_EventTriggerConfig = -1; @@ -1324,22 +2490,45 @@ 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_SchedulingRequestResourceConfig = -1; +static gint ett_nr_rrc_T_periodicityAndOffset_01 = -1; +static gint ett_nr_rrc_SCS_SpecificCarrier = -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_SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI = -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_dci_Format0_0_AndFormat1_0 = -1; +static gint ett_nr_rrc_T_dci_Format2_0 = -1; +static gint ett_nr_rrc_T_nrofCandidates_SFI = -1; +static gint ett_nr_rrc_T_dci_Format2_1 = -1; +static gint ett_nr_rrc_T_dci_Format2_2 = -1; +static gint ett_nr_rrc_T_dci_Format2_3 = -1; +static gint ett_nr_rrc_T_ue_Specific = -1; static gint ett_nr_rrc_SecurityAlgorithmConfig = -1; +static gint ett_nr_rrc_ServingCellConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink = -1; +static gint ett_nr_rrc_T_pdsch_ServingCellConfig = -1; +static gint ett_nr_rrc_T_csi_MeasConfig = -1; +static gint ett_nr_rrc_T_carrierSwitching = -1; +static gint ett_nr_rrc_UplinkConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink = -1; +static gint ett_nr_rrc_T_pusch_ServingCellConfig = -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_T_ssb_PositionsInBurst_01 = -1; +static gint ett_nr_rrc_T_lte_CRS_ToMatchAround = -1; +static gint ett_nr_rrc_UplinkConfigCommon = -1; +static gint ett_nr_rrc_SlotFormatCombinationsPerCell = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinationsPerSet_OF_SlotFormatCombination = -1; +static gint ett_nr_rrc_SlotFormatCombination = -1; +static gint ett_nr_rrc_T_slotFormats = -1; +static gint ett_nr_rrc_SlotFormatIndicator = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_ServCellIndex = -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; @@ -1347,53 +2536,139 @@ static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId = 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_T_pathlossReferenceRS = -1; +static gint ett_nr_rrc_SRS_Resource = -1; +static gint ett_nr_rrc_T_transmissionComb = -1; +static gint ett_nr_rrc_T_n2 = -1; +static gint ett_nr_rrc_T_n4 = -1; +static gint ett_nr_rrc_T_resourceMapping = -1; +static gint ett_nr_rrc_T_freqHopping = -1; +static gint ett_nr_rrc_T_resourceType_02 = -1; +static gint ett_nr_rrc_T_aperiodic_02 = -1; +static gint ett_nr_rrc_T_semi_persistent_01 = -1; +static gint ett_nr_rrc_T_periodic_02 = -1; +static gint ett_nr_rrc_T_spatialRelationInfo = -1; +static gint ett_nr_rrc_SRS_PeriodicityAndOffset = -1; +static gint ett_nr_rrc_SRS_CarrierSwitching = -1; +static gint ett_nr_rrc_T_srs_TPC_PDCCH_Group = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_SlotFormatCombinationsPerCell = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex = -1; +static gint ett_nr_rrc_SRS_TPC_PDCCH_Config = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex = -1; +static gint ett_nr_rrc_SRS_CC_SetIndex = -1; +static gint ett_nr_rrc_TCI_State = -1; +static gint ett_nr_rrc_QCL_Info = -1; +static gint ett_nr_rrc_T_referenceSignal_03 = -1; +static gint ett_nr_rrc_TDD_UL_DL_ConfigCommon = -1; +static gint ett_nr_rrc_TDD_UL_DL_ConfigDedicated = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex = -1; +static gint ett_nr_rrc_TDD_UL_DL_SlotConfig = -1; +static gint ett_nr_rrc_T_symbols = -1; +static gint ett_nr_rrc_T_explicit = -1; +static gint ett_nr_rrc_ZP_CSI_RS_Resource = -1; +static gint ett_nr_rrc_ZP_CSI_RS_ResourceSet = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_CSI_RS_ResourceId = -1; static gint ett_nr_rrc_BandCombinationList = -1; static gint ett_nr_rrc_BandCombination = -1; -static gint ett_nr_rrc_UE_MRDC_Capability = -1; -static gint ett_nr_rrc_RF_Parameters_MRDC = -1; -static gint ett_nr_rrc_PhyLayerParameters_MRDC = -1; -static gint ett_nr_rrc_BasebandProcessingCombination_MRDC = -1; -static gint ett_nr_rrc_LinkedBasebandProcessingCombination = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBandComb_OF_BandCombinationParameters = -1; +static gint ett_nr_rrc_BandAndDL_ParametersList = -1; +static gint ett_nr_rrc_BandAndDL_Parameters = -1; +static gint ett_nr_rrc_BandCombinationParameters = -1; +static gint ett_nr_rrc_CA_ParametersNR = -1; +static gint ett_nr_rrc_MRDC_Parameters = -1; +static gint ett_nr_rrc_BandAndDL_ParametersEUTRA = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoDL_EUTRA = -1; +static gint ett_nr_rrc_BandAndDL_ParametersNR = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoDL = -1; +static gint ett_nr_rrc_IntraBandContiguousCC_InfoDL = -1; +static gint ett_nr_rrc_IntraBandContiguousCC_InfoDL_EUTRA = -1; +static gint ett_nr_rrc_BandCombinationParametersUL_List = -1; +static gint ett_nr_rrc_BandCombinationParametersUL = -1; +static gint ett_nr_rrc_BandParametersUL = -1; +static gint ett_nr_rrc_BandParametersUL_EUTRA = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoUL_EUTRA = -1; +static gint ett_nr_rrc_BandParametersUL_NR = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoUL = -1; +static gint ett_nr_rrc_IntraBandContiguousCC_InfoUL = -1; +static gint ett_nr_rrc_IntraBandContiguousCC_InfoUL_EUTRA = -1; +static gint ett_nr_rrc_BasebandCombinationParametersUL_List = -1; +static gint ett_nr_rrc_BasebandCombinationParametersUL = -1; +static gint ett_nr_rrc_BasebandParametersPerBandUL = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_UL = -1; +static gint ett_nr_rrc_BasebandParametersPerCC_UL = -1; +static gint ett_nr_rrc_T_supportedBandwidthUL = -1; +static gint ett_nr_rrc_T_pusch_DifferentTB_PerSlot = -1; +static gint ett_nr_rrc_BasebandProcessingCombinationMRDC = -1; +static gint ett_nr_rrc_BasebandProcessingCombinationLink = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex = -1; -static gint ett_nr_rrc_MeasParameters_MRDC = -1; +static gint ett_nr_rrc_FreqBandList = -1; +static gint ett_nr_rrc_FreqBandInformation = -1; +static gint ett_nr_rrc_SupportedBasebandProcessingCombination = -1; +static gint ett_nr_rrc_BasebandProcessingCombination = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBandDL = -1; +static gint ett_nr_rrc_BasebandParametersPerBandDL = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_DL = -1; +static gint ett_nr_rrc_BasebandParametersPerCC_DL = -1; +static gint ett_nr_rrc_T_supportedBandwidthDL = -1; +static gint ett_nr_rrc_T_timeDurationForQCL = -1; +static gint ett_nr_rrc_T_pdsch_DifferentTB_PerSlot = -1; +static gint ett_nr_rrc_UE_CapabilityRAT_ContainerList = -1; +static gint ett_nr_rrc_UE_CapabilityRAT_Container = -1; +static gint ett_nr_rrc_UE_MRDC_Capability = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_05 = -1; +static gint ett_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode = -1; +static gint ett_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode = -1; +static gint ett_nr_rrc_RF_ParametersMRDC = -1; +static gint ett_nr_rrc_Phy_ParametersMRDC = -1; +static gint ett_nr_rrc_Phy_ParametersMRDC_XDD_Diff = -1; +static gint ett_nr_rrc_Phy_ParametersMRDC_FRX_Diff = -1; +static gint ett_nr_rrc_MeasParametersMRDC = -1; +static gint ett_nr_rrc_MeasParametersMRDC_Common = -1; +static gint ett_nr_rrc_MeasParametersMRDC_XDD_Diff = -1; +static gint ett_nr_rrc_MeasParametersMRDC_FRX_Diff = -1; +static gint ett_nr_rrc_GeneralParametersMRDC_XDD_Diff = -1; static gint ett_nr_rrc_UE_NR_Capability = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_02 = -1; -static gint ett_nr_rrc_PhyLayerParameters = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_06 = -1; +static gint ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode = -1; +static gint ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode = -1; +static gint ett_nr_rrc_Phy_Parameters = -1; +static gint ett_nr_rrc_Phy_ParametersCommon = -1; +static gint ett_nr_rrc_Phy_ParametersXDD_Diff = -1; +static gint ett_nr_rrc_Phy_ParametersFRX_Diff = -1; +static gint ett_nr_rrc_Phy_ParametersFR1 = -1; +static gint ett_nr_rrc_Phy_ParametersFR2 = -1; static gint ett_nr_rrc_RF_Parameters = -1; static gint ett_nr_rrc_SupportedBandListNR = -1; -static gint ett_nr_rrc_SupportedBasebandProcessingCombination = -1; -static gint ett_nr_rrc_BasebandProcessingCombination = -1; -static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBand = -1; -static gint ett_nr_rrc_BasebandParametersPerBand = -1; -static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxServCell_OF_BasebandParametersPerCC = -1; -static gint ett_nr_rrc_BasebandParametersPerCC = -1; static gint ett_nr_rrc_BandNR = -1; -static gint ett_nr_rrc_MIMO_Capability = -1; -static gint ett_nr_rrc_ModulationOrder = -1; -static gint ett_nr_rrc_SubCarrierSpacing = -1; +static gint ett_nr_rrc_T_pdsch_DifferentTB_PerSlot_01 = -1; +static gint ett_nr_rrc_T_pusch_DifferentTB_PerSlot_01 = -1; +static gint ett_nr_rrc_MIMO_ParametersPerBand = -1; +static gint ett_nr_rrc_T_timeDurationForQCL_01 = -1; +static gint ett_nr_rrc_T_maxNumberRxTxBeamSwitchDL = -1; +static gint ett_nr_rrc_T_uplinkBeamManagement = -1; +static gint ett_nr_rrc_BeamManagementSSB_CSI_RS = -1; +static gint ett_nr_rrc_SRS_Resources = -1; +static gint ett_nr_rrc_SRS_TxSwitch = -1; static gint ett_nr_rrc_PDCP_Parameters = -1; static gint ett_nr_rrc_T_supportedROHC_Profiles = -1; static gint ett_nr_rrc_RLC_Parameters = -1; static gint ett_nr_rrc_MAC_Parameters = -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; +static gint ett_nr_rrc_MAC_ParametersCommon = -1; +static gint ett_nr_rrc_MAC_ParametersXDD_Diff = -1; +static gint ett_nr_rrc_MeasParameters = -1; +static gint ett_nr_rrc_MeasParametersXDD_Diff = -1; +static gint ett_nr_rrc_MeasParametersFRX_Diff = -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 typedef struct { guint8 rat_type; } nr_rrc_private_data_t; @@ -1418,31 +2693,45 @@ 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" /*--- PDUs declarations ---*/ -static int dissect_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); -static int dissect_RadioBearerConfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +static int dissect_UE_CapabilityRAT_ContainerList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +static int dissect_CandidateCellInfoList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +static int dissect_MeasResultSCG_Failure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); static int -dissect_nr_rrc_T_eutra_CapabilityInfo(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_containing_pdu_new(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, dissect_UECapabilityInformation_PDU); +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_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 3279165U, NULL, FALSE); return offset; } +static const per_sequence_t NR_FreqInfo_sequence[] = { + { &hf_nr_rrc_measuredFrequency, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, + { NULL, 0, 0, NULL } +}; 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_) { +dissect_nr_rrc_NR_FreqInfo(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_NR_FreqInfo, NR_FreqInfo_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_BandCombinationIndex(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); + 1U, maxBandComb, NULL, FALSE); return offset; } @@ -1450,8 +2739,19 @@ dissect_nr_rrc_PhysCellId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U 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); +dissect_nr_rrc_T_ue_CapabilityInfo(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_containing_pdu_new(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, dissect_UE_CapabilityRAT_ContainerList_PDU); + + 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; } @@ -1476,7 +2776,7 @@ dissect_nr_rrc_T_cellIdentification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ 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); + 0U, 124U, NULL, FALSE); return offset; } @@ -1486,22 +2786,33 @@ dissect_nr_rrc_RSRP_Range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U 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); + 0U, 127U, 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 T_measResultCell_sequence[] = { - { &hf_nr_rrc_rsrpResultCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RSRP_Range }, - { &hf_nr_rrc_rsrqResultCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RSRQ_Range }, +static const per_sequence_t MeasQuantityResults_sequence[] = { + { &hf_nr_rrc_rsrp , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, + { &hf_nr_rrc_rsrq , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRQ_Range }, + { &hf_nr_rrc_sinr , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SINR_Range }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_measResultCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MeasQuantityResults(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_measResultCell, T_measResultCell_sequence); + ett_nr_rrc_MeasQuantityResults, MeasQuantityResults_sequence); return offset; } @@ -1511,51 +2822,75 @@ dissect_nr_rrc_T_measResultCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a 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); + 0U, 63U, NULL, FALSE); return offset; } -static const per_sequence_t T_measResultSSB_sequence[] = { - { &hf_nr_rrc_rsrpResultCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RSRP_Range }, - { &hf_nr_rrc_rsrqResultCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RSRQ_Range }, +static const per_sequence_t CandidateRS_IndexInfoSSB_sequence[] = { + { &hf_nr_rrc_ssb_Index , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_Index }, + { &hf_nr_rrc_measResultSSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasQuantityResults }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_measResultSSB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_CandidateRS_IndexInfoSSB(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_measResultSSB, T_measResultSSB_sequence); + ett_nr_rrc_CandidateRS_IndexInfoSSB, CandidateRS_IndexInfoSSB_sequence); return offset; } -static const per_sequence_t CandidateRS_IndexInfo_sequence[] = { - { &hf_nr_rrc_ssb_Index , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_Index }, - { &hf_nr_rrc_measResultSSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_measResultSSB }, +static const per_sequence_t CandidateRS_IndexInfoListSSB_sequence_of[1] = { + { &hf_nr_rrc_CandidateRS_IndexInfoListSSB_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CandidateRS_IndexInfoSSB }, +}; + +static int +dissect_nr_rrc_CandidateRS_IndexInfoListSSB(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_CandidateRS_IndexInfoListSSB, CandidateRS_IndexInfoListSSB_sequence_of, + 1, maxNrofIndexesToReport, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_CSI_RS_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, + 0U, maxNrofCSI_RS_ResourcesRRM_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t CandidateRS_IndexInfoCSI_RS_sequence[] = { + { &hf_nr_rrc_csi_RS_Index , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_Index }, + { &hf_nr_rrc_measResultCSI_RS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasQuantityResults }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_CandidateRS_IndexInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_CandidateRS_IndexInfoCSI_RS(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_CandidateRS_IndexInfo, CandidateRS_IndexInfo_sequence); + ett_nr_rrc_CandidateRS_IndexInfoCSI_RS, CandidateRS_IndexInfoCSI_RS_sequence); return offset; } -static const per_sequence_t CandidateRS_IndexInfoList_sequence_of[1] = { - { &hf_nr_rrc_CandidateRS_IndexInfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CandidateRS_IndexInfo }, +static const per_sequence_t CandidateRS_IndexInfoListCSI_RS_sequence_of[1] = { + { &hf_nr_rrc_CandidateRS_IndexInfoListCSI_RS_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CandidateRS_IndexInfoCSI_RS }, }; static int -dissect_nr_rrc_CandidateRS_IndexInfoList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_CandidateRS_IndexInfoListCSI_RS(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_CandidateRS_IndexInfoList, CandidateRS_IndexInfoList_sequence_of, - 1, maxRS_IndexReport, FALSE); + ett_nr_rrc_CandidateRS_IndexInfoListCSI_RS, CandidateRS_IndexInfoListCSI_RS_sequence_of, + 1, maxNrofIndexesToReport, FALSE); return offset; } @@ -1563,8 +2898,9 @@ dissect_nr_rrc_CandidateRS_IndexInfoList(tvbuff_t *tvb _U_, int offset _U_, asn1 static const per_sequence_t CandidateCellInfo_sequence[] = { { &hf_nr_rrc_cellIdentification, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cellIdentification }, - { &hf_nr_rrc_measResultCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_measResultCell }, - { &hf_nr_rrc_candidateRS_IndexList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CandidateRS_IndexInfoList }, + { &hf_nr_rrc_measResultCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasQuantityResults }, + { &hf_nr_rrc_candidateRS_IndexListSSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CandidateRS_IndexInfoListSSB }, + { &hf_nr_rrc_candidateRS_IndexListCSI_RS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CandidateRS_IndexInfoListCSI_RS }, { NULL, 0, 0, NULL } }; @@ -1585,51 +2921,222 @@ static int dissect_nr_rrc_CandidateCellInfoList(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_CandidateCellInfoList, CandidateCellInfoList_sequence_of, - 1, maxCellSCG, FALSE); + 1, maxNrofSCells, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_T_candidateCellInfoListSN(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_containing_pdu_new(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, dissect_CandidateCellInfoList_PDU); + + 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_M30720_30719(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, + -30720, 30719U, NULL, FALSE); return offset; } -static const per_sequence_t MeasResultSSTD_sequence[] = { +static const per_sequence_t MeasResultCellSFTD_sequence[] = { + { &hf_nr_rrc_physCellId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_sfn_OffsetResult, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_1023 }, + { &hf_nr_rrc_frameBoundaryOffsetResult, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M30720_30719 }, + { &hf_nr_rrc_rsrp_Result , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_MeasResultSSTD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MeasResultCellSFTD(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_MeasResultSSTD, MeasResultSSTD_sequence); + ett_nr_rrc_MeasResultCellSFTD, MeasResultCellSFTD_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultCellListSFTD_sequence_of[1] = { + { &hf_nr_rrc_MeasResultCellListSFTD_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultCellSFTD }, +}; + +static int +dissect_nr_rrc_MeasResultCellListSFTD(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_MeasResultCellListSFTD, MeasResultCellListSFTD_sequence_of, + 1, maxCellSFTD, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_failureType_vals[] = { + { 0, "t310-Expiry" }, + { 1, "randomAccessProblem" }, + { 2, "rlc-MaxNumRetx" }, + { 3, "scg-ChangeFailure" }, + { 4, "scg-reconfigFailure" }, + { 5, "srb3-IntegrityFailure" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_failureType(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 int +dissect_nr_rrc_T_measResultSCG(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_containing_pdu_new(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, dissect_MeasResultSCG_Failure_PDU); return offset; } +static const per_sequence_t T_scgFailureInfo_sequence[] = { + { &hf_nr_rrc_failureType , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_failureType }, + { &hf_nr_rrc_measResultSCG, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_measResultSCG }, + { NULL, 0, 0, NULL } +}; static int -dissect_nr_rrc_INTEGER(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); +dissect_nr_rrc_T_scgFailureInfo(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_scgFailureInfo, T_scgFailureInfo_sequence); return offset; } -static const per_sequence_t T_restrictedBasebandCombinationNR_NR_sequence_of[1] = { - { &hf_nr_rrc_restrictedBasebandCombinationNR_NR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER }, +static const per_sequence_t BandCombinationIndexList_sequence_of[1] = { + { &hf_nr_rrc_BandCombinationIndexList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationIndex }, }; static int -dissect_nr_rrc_T_restrictedBasebandCombinationNR_NR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_restrictedBasebandCombinationNR_NR, T_restrictedBasebandCombinationNR_NR_sequence_of); +dissect_nr_rrc_BandCombinationIndexList(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_BandCombinationIndexList, BandCombinationIndexList_sequence_of, + 1, maxBandComb, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_BPC_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, maxBasebandProcComb, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t BPC_IndexList_sequence_of[1] = { + { &hf_nr_rrc_BPC_IndexList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BPC_Index }, +}; + +static int +dissect_nr_rrc_BPC_IndexList(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_BPC_IndexList, BPC_IndexList_sequence_of, + 1, maxBasebandProcComb, 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 per_sequence_t T_powerCoordination_FR1_sequence[] = { + { &hf_nr_rrc_p_maxNR , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { &hf_nr_rrc_p_maxEUTRA , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_powerCoordination_FR1(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_powerCoordination_FR1, T_powerCoordination_FR1_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, maxNrofServingCells_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_servCellIndexRangeSCG_sequence[] = { + { &hf_nr_rrc_lowBound , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_upBound , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_servCellIndexRangeSCG(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_servCellIndexRangeSCG, T_servCellIndexRangeSCG_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxMeasFreqsMN(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, maxMeasFreqsMN, NULL, FALSE); return offset; } static const per_sequence_t ConfigRestrictInfoSCG_sequence[] = { - { &hf_nr_rrc_restrictedBandCombinationNR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER }, - { &hf_nr_rrc_restrictedBasebandCombinationNR_NR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_restrictedBasebandCombinationNR_NR }, - { &hf_nr_rrc_maxMeasFreqsSCG_NR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER }, + { &hf_nr_rrc_allowedBC_ListMRDC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationIndexList }, + { &hf_nr_rrc_allowedBPC_ListMRDC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BPC_IndexList }, + { &hf_nr_rrc_powerCoordination_FR1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_powerCoordination_FR1 }, + { &hf_nr_rrc_servCellIndexRangeSCG, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_servCellIndexRangeSCG }, + { &hf_nr_rrc_maxMeasFreqsSCG_NR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxMeasFreqsMN }, { NULL, 0, 0, NULL } }; @@ -1642,9 +3149,332 @@ dissect_nr_rrc_ConfigRestrictInfoSCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } + +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_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 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_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 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 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 per_sequence_t DRX_Info_sequence[] = { - { &hf_nr_rrc_cycle , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER }, - { &hf_nr_rrc_offset , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER }, + { &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 }, { NULL, 0, 0, NULL } }; @@ -1657,6 +3487,124 @@ dissect_nr_rrc_DRX_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, } +static const per_sequence_t SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo_sequence_of[1] = { + { &hf_nr_rrc_measuredFrequenciesMN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NR_FreqInfo }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo(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_maxMeasFreqsMN_OF_NR_FreqInfo, SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo_sequence_of, + 1, maxMeasFreqsMN, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_mgl_vals[] = { + { 0, "ms1dot5" }, + { 1, "ms3" }, + { 2, "ms3dot5" }, + { 3, "ms4" }, + { 4, "ms5dot5" }, + { 5, "ms6" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mgl(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_mgrp_vals[] = { + { 0, "ms20" }, + { 1, "ms40" }, + { 2, "ms80" }, + { 3, "ms160" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mgrp(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_mgta_vals[] = { + { 0, "ms0" }, + { 1, "ms0dot25" }, + { 2, "ms0dot5" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mgta(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 GapConfig_sequence[] = { + { &hf_nr_rrc_gapOffset , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_159 }, + { &hf_nr_rrc_mgl , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mgl }, + { &hf_nr_rrc_mgrp , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mgrp }, + { &hf_nr_rrc_mgta , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mgta }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_GapConfig(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_GapConfig, GapConfig_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_gapPurpose_vals[] = { + { 0, "perUE" }, + { 1, "perFR1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_gapPurpose(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 MeasConfigMN_sequence[] = { + { &hf_nr_rrc_measuredFrequenciesMN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo }, + { &hf_nr_rrc_measGapConfigFR1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_GapConfig }, + { &hf_nr_rrc_gapPurpose , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_gapPurpose }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasConfigMN(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_MeasConfigMN, MeasConfigMN_sequence); + + return offset; +} + + static int dissect_nr_rrc_T_sourceConfigSCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -1669,9 +3617,9 @@ dissect_nr_rrc_T_sourceConfigSCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * 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); +dissect_nr_rrc_T_scg_RB_Config(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_containing_pdu_new(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, dissect_nr_rrc_RadioBearerConfig_PDU); return offset; } @@ -1681,7 +3629,7 @@ dissect_nr_rrc_P_Max(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr static int dissect_nr_rrc_T_mcg_RB_Config(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_containing_pdu_new(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, dissect_RadioBearerConfiguration_PDU); + NO_BOUND, NO_BOUND, FALSE, dissect_nr_rrc_RadioBearerConfig_PDU); return offset; } @@ -1700,23 +3648,26 @@ dissect_nr_rrc_T_nonCriticalExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ct } -static const per_sequence_t SCG_ConfigInfo_r15_IEs_sequence[] = { - { &hf_nr_rrc_eutra_CapabilityInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_eutra_CapabilityInfo }, - { &hf_nr_rrc_candidateCellInfoList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CandidateCellInfoList }, - { &hf_nr_rrc_measResultSSTD, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasResultSSTD }, +static const per_sequence_t CG_ConfigInfo_IEs_sequence[] = { + { &hf_nr_rrc_ue_CapabilityInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ue_CapabilityInfo }, + { &hf_nr_rrc_candidateCellInfoListMN, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CandidateCellInfoList }, + { &hf_nr_rrc_candidateCellInfoListSN, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_candidateCellInfoListSN }, + { &hf_nr_rrc_measResultCellListSFTD, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasResultCellListSFTD }, + { &hf_nr_rrc_scgFailureInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scgFailureInfo }, { &hf_nr_rrc_configRestrictInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ConfigRestrictInfoSCG }, { &hf_nr_rrc_drx_InfoMCG , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_DRX_Info }, + { &hf_nr_rrc_measConfigMN , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasConfigMN }, { &hf_nr_rrc_sourceConfigSCG, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sourceConfigSCG }, - { &hf_nr_rrc_p_maxFR1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { &hf_nr_rrc_scg_RB_Config, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scg_RB_Config }, { &hf_nr_rrc_mcg_RB_Config, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_mcg_RB_Config }, { &hf_nr_rrc_nonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_SCG_ConfigInfo_r15_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_CG_ConfigInfo_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_SCG_ConfigInfo_r15_IEs, SCG_ConfigInfo_r15_IEs_sequence); + ett_nr_rrc_CG_ConfigInfo_IEs, CG_ConfigInfo_IEs_sequence); return offset; } @@ -1732,7 +3683,7 @@ dissect_nr_rrc_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro static const value_string nr_rrc_T_c1_vals[] = { - { 0, "scg-ConfigInfo-r15" }, + { 0, "cg-ConfigInfo" }, { 1, "spare3" }, { 2, "spare2" }, { 3, "spare1" }, @@ -1740,7 +3691,7 @@ static const value_string nr_rrc_T_c1_vals[] = { }; static const per_choice_t T_c1_choice[] = { - { 0, &hf_nr_rrc_scg_ConfigInfo_r15, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SCG_ConfigInfo_r15_IEs }, + { 0, &hf_nr_rrc_cg_ConfigInfo, ASN1_NO_EXTENSIONS , dissect_nr_rrc_CG_ConfigInfo_IEs }, { 1, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, { 2, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, { 3, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, @@ -1792,41 +3743,15 @@ dissect_nr_rrc_T_criticalExtensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } -static const per_sequence_t SCG_ConfigInfo_sequence[] = { +static const per_sequence_t CG_ConfigInfo_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_SCG_ConfigInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_CG_ConfigInfo(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_SCG_ConfigInfo, SCG_ConfigInfo_sequence); - - return offset; -} - - - -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); + ett_nr_rrc_CG_ConfigInfo, CG_ConfigInfo_sequence); return offset; } @@ -1834,27 +3759,25 @@ dissect_nr_rrc_T_halfFrameIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a 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_) { +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, - 10, 10, FALSE, NULL, NULL); + 6, 6, FALSE, NULL, NULL); return offset; } -static const value_string nr_rrc_SubcarrierSpacing_vals[] = { - { 0, "kHz15" }, - { 1, "kHz30" }, - { 2, "kHz60" }, - { 3, "kHz120" }, +static const value_string nr_rrc_T_subCarrierSpacingCommon_vals[] = { + { 0, "scs15or60" }, + { 1, "scs30or120" }, { 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_) { +dissect_nr_rrc_T_subCarrierSpacingCommon(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); + 2, NULL, FALSE, 0, NULL); return offset; } @@ -1862,9 +3785,9 @@ dissect_nr_rrc_SubcarrierSpacing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * 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_) { +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, 11U, NULL, FALSE); + 0U, 15U, NULL, FALSE); return offset; } @@ -1886,16 +3809,6 @@ dissect_nr_rrc_T_dmrs_TypeA_Position(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } - -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" }, @@ -1930,25 +3843,23 @@ dissect_nr_rrc_T_intraFreqReselection(tvbuff_t *tvb _U_, int offset _U_, asn1_ct 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_) { +dissect_nr_rrc_BIT_STRING_SIZE_1(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); + 1, 1, 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_systemFrameNumber, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_6 }, + { &hf_nr_rrc_subCarrierSpacingCommon, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_subCarrierSpacingCommon }, + { &hf_nr_rrc_ssb_SubcarrierOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_15 }, { &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_pdcch_ConfigSIB1, 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 }, + { &hf_nr_rrc_spare , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_1 }, { NULL, 0, 0, NULL } }; @@ -2055,6 +3966,21 @@ dissect_nr_rrc_T_reestablishPDCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } +static const value_string nr_rrc_T_discardOnPDCP_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_discardOnPDCP(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" }, @@ -2085,7 +4011,7 @@ dissect_nr_rrc_T_discardTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -static const value_string nr_rrc_T_pdcp_SN_Size_UL_vals[] = { +static const value_string nr_rrc_T_pdcp_SN_SizeUL_vals[] = { { 0, "len12bits" }, { 1, "len18bits" }, { 0, NULL } @@ -2093,7 +4019,7 @@ static const value_string nr_rrc_T_pdcp_SN_Size_UL_vals[] = { 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_) { +dissect_nr_rrc_T_pdcp_SN_SizeUL(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); @@ -2101,7 +4027,7 @@ dissect_nr_rrc_T_pdcp_SN_Size_UL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } -static const value_string nr_rrc_T_pdcp_SN_Size_DL_vals[] = { +static const value_string nr_rrc_T_pdcp_SN_SizeDL_vals[] = { { 0, "len12bits" }, { 1, "len18bits" }, { 0, NULL } @@ -2109,7 +4035,7 @@ static const value_string nr_rrc_T_pdcp_SN_Size_DL_vals[] = { 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_) { +dissect_nr_rrc_T_pdcp_SN_SizeDL(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); @@ -2158,46 +4084,47 @@ dissect_nr_rrc_T_profiles(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } -static const per_sequence_t T_profiles_01_sequence[] = { - { &hf_nr_rrc_profile0x0006, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, +static const per_sequence_t T_rohc_sequence[] = { + { &hf_nr_rrc_maxCID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_16383 }, + { &hf_nr_rrc_profiles , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_profiles }, + { &hf_nr_rrc_drb_ContinueROHC, 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_) { +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_profiles_01, T_profiles_01_sequence); + ett_nr_rrc_T_rohc, T_rohc_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 }, +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_uplinkOnlyROHC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_uplinkOnlyROHC, T_uplinkOnlyROHC_sequence); + ett_nr_rrc_T_profiles_01, T_profiles_01_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 }, +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 }, + { &hf_nr_rrc_drb_ContinueROHC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, { 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_) { +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_rohc, T_rohc_sequence); + ett_nr_rrc_T_uplinkOnlyROHC, T_uplinkOnlyROHC_sequence); return offset; } @@ -2206,12 +4133,14 @@ dissect_nr_rrc_T_rohc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p static const value_string nr_rrc_T_headerCompression_vals[] = { { 0, "notUsed" }, { 1, "rohc" }, + { 2, "uplinkOnlyROHC" }, { 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, &hf_nr_rrc_notUsed , ASN1_EXTENSION_ROOT , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_rohc , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_rohc }, + { 2, &hf_nr_rrc_uplinkOnlyROHC, ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_uplinkOnlyROHC }, { 0, NULL, 0, NULL } }; @@ -2225,13 +4154,44 @@ dissect_nr_rrc_T_headerCompression(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const value_string nr_rrc_T_integrityProtection_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_integrityProtection(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_statusReportRequired_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_statusReportRequired(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_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_pdcp_SN_SizeUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcp_SN_SizeUL }, + { &hf_nr_rrc_pdcp_SN_SizeDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcp_SN_SizeDL }, { &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 }, + { &hf_nr_rrc_integrityProtection, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_integrityProtection }, + { &hf_nr_rrc_statusReportRequired, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_statusReportRequired }, + { &hf_nr_rrc_outOfOrderDelivery, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, { NULL, 0, 0, NULL } }; @@ -2248,7 +4208,7 @@ dissect_nr_rrc_T_drb(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr 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); + 0U, maxSecondaryCellGroups, NULL, FALSE); return offset; } @@ -2258,15 +4218,15 @@ dissect_nr_rrc_CellGroupId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ 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); + 1U, maxLC_ID, 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 }, + { &hf_nr_rrc_cellGroup , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellGroupId }, + { &hf_nr_rrc_logicalChannel, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_LogicalChannelIdentity }, { NULL, 0, 0, NULL } }; @@ -2279,7 +4239,7 @@ dissect_nr_rrc_T_primaryPath(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const value_string nr_rrc_T_setup_03_vals[] = { +static const value_string nr_rrc_UL_DataSplitThreshold_vals[] = { { 0, "b0" }, { 1, "b100" }, { 2, "b200" }, @@ -2315,11 +4275,11 @@ static const value_string nr_rrc_T_setup_03_vals[] = { { 0, NULL } }; -static value_string_ext nr_rrc_T_setup_03_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_setup_03_vals); +static value_string_ext nr_rrc_UL_DataSplitThreshold_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_UL_DataSplitThreshold_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_) { +dissect_nr_rrc_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_enumerated(tvb, offset, actx, tree, hf_index, 32, NULL, FALSE, 0, NULL); @@ -2327,23 +4287,16 @@ dissect_nr_rrc_T_setup_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } -static const value_string nr_rrc_T_ul_DataSplitThreshold_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const value_string nr_rrc_T_pdcp_Duplication_vals[] = { + { 0, "true" }, { 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); +dissect_nr_rrc_T_pdcp_Duplication(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; } @@ -2351,8 +4304,8 @@ dissect_nr_rrc_T_ul_DataSplitThreshold(tvbuff_t *tvb _U_, int offset _U_, asn1_c 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 }, + { &hf_nr_rrc_ul_DataSplitThreshold, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UL_DataSplitThreshold }, + { &hf_nr_rrc_pdcp_Duplication, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcp_Duplication }, { NULL, 0, 0, NULL } }; @@ -2367,37 +4320,69 @@ dissect_nr_rrc_T_moreThanOneRLC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a 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" }, + { 1, "ms1" }, + { 2, "ms2" }, + { 3, "ms4" }, + { 4, "ms5" }, + { 5, "ms8" }, + { 6, "ms10" }, + { 7, "ms15" }, + { 8, "ms20" }, + { 9, "ms30" }, + { 10, "ms40" }, + { 11, "ms50" }, + { 12, "ms60" }, + { 13, "ms80" }, + { 14, "ms100" }, + { 15, "ms120" }, + { 16, "ms140" }, + { 17, "ms160" }, + { 18, "ms180" }, + { 19, "ms200" }, + { 20, "ms220" }, + { 21, "ms240" }, + { 22, "ms260" }, + { 23, "ms280" }, + { 24, "ms300" }, + { 25, "ms500" }, + { 26, "ms750" }, + { 27, "ms1000" }, + { 28, "ms1250" }, + { 29, "ms1500" }, + { 30, "ms1750" }, + { 31, "ms2000" }, + { 32, "ms2250" }, + { 33, "ms2500" }, + { 34, "ms2750" }, + { 35, "ms3000" }, + { 36, "spare28" }, + { 37, "spare27" }, + { 38, "spare26" }, + { 39, "spare25" }, + { 40, "spare24" }, + { 41, "spare23" }, + { 42, "spare22" }, + { 43, "spare21" }, + { 44, "spare20" }, + { 45, "spare19" }, + { 46, "spare18" }, + { 47, "spare17" }, + { 48, "spare16" }, + { 49, "spare15" }, + { 50, "spare14" }, + { 51, "spare13" }, + { 52, "spare12" }, + { 53, "spare11" }, + { 54, "spare10" }, + { 55, "spare09" }, + { 56, "spare08" }, + { 57, "spare07" }, + { 58, "spare06" }, + { 59, "spare05" }, + { 60, "spare04" }, + { 61, "spare03" }, + { 62, "spare02" }, + { 63, "spare01" }, { 0, NULL } }; @@ -2407,7 +4392,7 @@ static value_string_ext nr_rrc_T_t_Reordering_vals_ext = VALUE_STRING_EXT_INIT(n 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); + 64, NULL, FALSE, 0, NULL); return offset; } @@ -2417,7 +4402,6 @@ 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 } }; @@ -2433,6 +4417,7 @@ dissect_nr_rrc_PDCP_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ 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_discardOnPDCP, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_discardOnPDCP }, { &hf_nr_rrc_pdcp_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PDCP_Config }, { NULL, 0, 0, NULL } }; @@ -2460,21 +4445,16 @@ dissect_nr_rrc_SRB_ToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } - -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 const value_string nr_rrc_T_srb3_ToRelease_vals[] = { + { 0, "true" }, + { 0, NULL } +}; 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); +dissect_nr_rrc_T_srb3_ToRelease(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; } @@ -2482,14 +4462,15 @@ dissect_nr_rrc_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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); +dissect_nr_rrc_PDU_SessionID(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_sdap_Header_DL_vals[] = { +static const value_string nr_rrc_T_sdap_HeaderDL_vals[] = { { 0, "present" }, { 1, "absent" }, { 0, NULL } @@ -2497,7 +4478,7 @@ static const value_string nr_rrc_T_sdap_Header_DL_vals[] = { 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_) { +dissect_nr_rrc_T_sdap_HeaderDL(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); @@ -2505,7 +4486,7 @@ dissect_nr_rrc_T_sdap_Header_DL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -static const value_string nr_rrc_T_sdap_Header_UL_vals[] = { +static const value_string nr_rrc_T_sdap_HeaderUL_vals[] = { { 0, "present" }, { 1, "absent" }, { 0, NULL } @@ -2513,7 +4494,7 @@ static const value_string nr_rrc_T_sdap_Header_UL_vals[] = { 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_) { +dissect_nr_rrc_T_sdap_HeaderUL(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); @@ -2531,27 +4512,27 @@ dissect_nr_rrc_QFI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot } -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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI_sequence_of[1] = { + { &hf_nr_rrc_mappedQoS_FlowsToAdd_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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI, SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI_sequence_of, + 1, 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_pdu_Session , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PDU_SessionID }, + { &hf_nr_rrc_sdap_HeaderDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sdap_HeaderDL }, + { &hf_nr_rrc_sdap_HeaderUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sdap_HeaderUL }, { &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 }, + { &hf_nr_rrc_mappedQoS_FlowsToAdd, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI }, + { &hf_nr_rrc_mappedQoS_FlowsToRelease, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI }, { NULL, 0, 0, NULL } }; @@ -2590,7 +4571,7 @@ dissect_nr_rrc_T_cnAssociation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac 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); + 1U, 32U, NULL, FALSE); return offset; } @@ -2627,7 +4608,7 @@ dissect_nr_rrc_T_recoverPDCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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_cnAssociation, ASN1_EXTENSION_ROOT , ASN1_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 }, @@ -2717,8 +4698,8 @@ dissect_nr_rrc_IntegrityProtAlgorithm(tvbuff_t *tvb _U_, int offset _U_, asn1_ct 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 }, + { &hf_nr_rrc_cipheringAlgorithm, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CipheringAlgorithm }, + { &hf_nr_rrc_integrityProtAlgorithm, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_IntegrityProtAlgorithm }, { NULL, 0, 0, NULL } }; @@ -2763,11 +4744,11 @@ dissect_nr_rrc_SecurityConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act 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 }, + { &hf_nr_rrc_srb_ToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SRB_ToAddModList }, + { &hf_nr_rrc_srb3_ToRelease, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_srb3_ToRelease }, + { &hf_nr_rrc_drb_ToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_DRB_ToAddModList }, + { &hf_nr_rrc_drb_ToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_DRB_ToReleaseList }, + { &hf_nr_rrc_securityConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SecurityConfig }, { NULL, 0, 0, NULL } }; @@ -2782,268 +4763,239 @@ dissect_nr_rrc_RadioBearerConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * 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_) { +dissect_nr_rrc_T_secondaryCellGroup(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_containing_pdu_new(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, dissect_nr_rrc_CellGroupConfig_PDU); + + 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, 32U, NULL, FALSE); + 1U, maxNrofObjectId, NULL, FALSE); return offset; } -static const value_string nr_rrc_T_reestablishRLC_vals[] = { - { 0, "true" }, +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_SubcarrierSpacing_vals[] = { + { 0, "kHz15" }, + { 1, "kHz30" }, + { 2, "kHz60" }, + { 3, "kHz120" }, + { 4, "kHz240" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, { 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_) { +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, - 1, NULL, FALSE, 0, NULL); + 8, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_SN_FieldLength_AM_vals[] = { - { 0, "size12" }, - { 1, "size18" }, + +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_SSB_ToMeasure_vals[] = { + { 0, "shortBitmap" }, + { 1, "mediumBitmap" }, + { 2, "longBitmap" }, { 0, NULL } }; +static const per_choice_t SSB_ToMeasure_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_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); +dissect_nr_rrc_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_SSB_ToMeasure, SSB_ToMeasure_choice, + 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" }, +static const value_string nr_rrc_T_ssb_ToMeasure_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; -static value_string_ext nr_rrc_T_PollRetransmit_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_PollRetransmit_vals); +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_25 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SSB_ToMeasure }, + { 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 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); +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_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" }, +static const value_string nr_rrc_T_periodicityAndOffset_vals[] = { + { 0, "sf5" }, + { 1, "sf10" }, + { 2, "sf20" }, + { 3, "sf40" }, + { 4, "sf80" }, + { 5, "sf160" }, { 0, NULL } }; -static value_string_ext nr_rrc_PollPDU_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_PollPDU_vals); +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, "sf2" }, + { 2, "sf3" }, + { 3, "sf4" }, + { 4, "sf5" }, + { 0, NULL } +}; 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_) { +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, - 32, NULL, FALSE, 0, NULL); + 5, 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 const per_sequence_t T_smtc1_sequence[] = { + { &hf_nr_rrc_periodicityAndOffset_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicityAndOffset }, + { &hf_nr_rrc_duration_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_duration }, + { NULL, 0, 0, NULL } }; -static value_string_ext nr_rrc_PollByte_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_PollByte_vals); +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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId_sequence_of[1] = { + { &hf_nr_rrc_pci_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, +}; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId, SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId_sequence_of, + 1, maxNrofPCIsPerSMTC, FALSE); 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" }, +static const value_string nr_rrc_T_periodicity_01_vals[] = { + { 0, "sf5" }, + { 1, "sf10" }, + { 2, "sf20" }, + { 3, "sf40" }, + { 4, "sf80" }, + { 5, "sf160" }, + { 6, "spare2" }, + { 7, "spare1" }, { 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_) { +dissect_nr_rrc_T_periodicity_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, 8, NULL, FALSE, 0, NULL); @@ -3051,354 +5003,384 @@ dissect_nr_rrc_T_maxRetxThreshold(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -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 }, +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_PhysCellId }, + { &hf_nr_rrc_periodicity_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicity_01 }, { 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_) { +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_UL_AM_RLC, UL_AM_RLC_sequence); + ett_nr_rrc_T_smtc2, T_smtc2_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); +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_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" }, +static const value_string nr_rrc_T_measurementSlots_vals[] = { + { 0, "kHz15" }, + { 1, "kHz30" }, + { 2, "kHz60" }, + { 3, "kHz120" }, { 0, NULL } }; -static value_string_ext nr_rrc_T_StatusProhibit_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_StatusProhibit_vals); +static const per_choice_t T_measurementSlots_choice[] = { + { 0, &hf_nr_rrc_kHz15 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_1 }, + { 1, &hf_nr_rrc_kHz30 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { 2, &hf_nr_rrc_kHz60 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_4 }, + { 3, &hf_nr_rrc_kHz120 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_measurementSlots(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_measurementSlots, T_measurementSlots_choice, + NULL); + + return offset; +} + 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); +dissect_nr_rrc_INTEGER_0_13(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, 13U, NULL, FALSE); 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 }, +static const per_sequence_t T_ss_RSSI_Measurement_sequence[] = { + { &hf_nr_rrc_measurementSlots, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_measurementSlots }, + { &hf_nr_rrc_endSymbol , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_13 }, { 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_) { +dissect_nr_rrc_T_ss_RSSI_Measurement(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); + ett_nr_rrc_T_ss_RSSI_Measurement, T_ss_RSSI_Measurement_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 }, +static const per_sequence_t SSB_ConfigMobility_sequence[] = { + { &hf_nr_rrc_subcarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_ssb_ToMeasure, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_ToMeasure }, + { &hf_nr_rrc_useServingCellTimingForSync, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &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 }, + { &hf_nr_rrc_ss_RSSI_Measurement, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ss_RSSI_Measurement }, { 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_) { +dissect_nr_rrc_SSB_ConfigMobility(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); + ett_nr_rrc_SSB_ConfigMobility, SSB_ConfigMobility_sequence); return offset; } -static const value_string nr_rrc_SN_FieldLength_UM_vals[] = { - { 0, "size6" }, - { 1, "size12" }, +static const value_string nr_rrc_T_nrofPRBs_vals[] = { + { 0, "size24" }, + { 1, "size48" }, + { 2, "size96" }, + { 3, "size192" }, + { 4, "size264" }, { 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_) { +dissect_nr_rrc_T_nrofPRBs(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); + 5, 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 }, + +static int +dissect_nr_rrc_INTEGER_0_2169(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, 2169U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_csi_rs_MeasurementBW_sequence[] = { + { &hf_nr_rrc_nrofPRBs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofPRBs }, + { &hf_nr_rrc_startPRB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_2169 }, { 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_) { +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_UL_UM_RLC, UL_UM_RLC_sequence); + ett_nr_rrc_T_csi_rs_MeasurementBW, T_csi_rs_MeasurementBW_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 }, +static const value_string nr_rrc_T_density_01_vals[] = { + { 0, "d1" }, + { 1, "d3" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_density_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_slotConfig_vals[] = { + { 0, "ms4" }, + { 1, "ms5" }, + { 2, "ms10" }, + { 3, "ms20" }, + { 4, "ms40" }, + { 0, NULL } +}; + +static const per_choice_t T_slotConfig_choice[] = { + { 0, &hf_nr_rrc_ms4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_31 }, + { 1, &hf_nr_rrc_ms5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 2, &hf_nr_rrc_ms10_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 3, &hf_nr_rrc_ms20_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 4, &hf_nr_rrc_ms40_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 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 T_associatedSSB_sequence[] = { + { &hf_nr_rrc_ssb_Index , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_Index }, + { &hf_nr_rrc_isQuasiColocated, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, { 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_) { +dissect_nr_rrc_T_associatedSSB(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); + ett_nr_rrc_T_associatedSSB, T_associatedSSB_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 }, + +static int +dissect_nr_rrc_BIT_STRING_SIZE_12(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, + 12, 12, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_frequencyDomainAllocation_01_vals[] = { + { 0, "row1" }, + { 1, "row2" }, + { 0, NULL } +}; + +static const per_choice_t T_frequencyDomainAllocation_01_choice[] = { + { 0, &hf_nr_rrc_row1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_4 }, + { 1, &hf_nr_rrc_row2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_12 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_frequencyDomainAllocation_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_frequencyDomainAllocation_01, T_frequencyDomainAllocation_01_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CSI_RS_Resource_Mobility_sequence[] = { + { &hf_nr_rrc_csi_RS_Index , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_Index }, + { &hf_nr_rrc_slotConfig , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_slotConfig }, + { &hf_nr_rrc_associatedSSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_associatedSSB }, + { &hf_nr_rrc_frequencyDomainAllocation_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_frequencyDomainAllocation_01 }, + { &hf_nr_rrc_firstOFDMSymbolInTimeDomain, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_13 }, + { &hf_nr_rrc_sequenceGenerationConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_1023 }, { 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_) { +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_T_um_Bi_Directional, T_um_Bi_Directional_sequence); + ett_nr_rrc_CSI_RS_Resource_Mobility, CSI_RS_Resource_Mobility_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 }, +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_CellMobility_sequence[] = { + { &hf_nr_rrc_cellId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_csi_rs_MeasurementBW, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_csi_rs_MeasurementBW }, + { &hf_nr_rrc_density_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_density_01 }, + { &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_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_) { +dissect_nr_rrc_CSI_RS_CellMobility(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); + ett_nr_rrc_CSI_RS_CellMobility, CSI_RS_CellMobility_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 }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility_sequence_of[1] = { + { &hf_nr_rrc_csi_RS_CellList_Mobility_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_CellMobility }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility(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_CellsRRM_OF_CSI_RS_CellMobility, SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility_sequence_of, + 1, maxNrofCSI_RS_CellsRRM, FALSE); + + return offset; +} + + +static const per_sequence_t CSI_RS_ResourceConfigMobility_sequence[] = { + { &hf_nr_rrc_isServingCellMO, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_subcarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_csi_RS_CellList_Mobility, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility }, { 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_) { +dissect_nr_rrc_CSI_RS_ResourceConfigMobility(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); + ett_nr_rrc_CSI_RS_ResourceConfigMobility, CSI_RS_ResourceConfigMobility_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" }, +static const value_string nr_rrc_T_csi_rs_ResourceConfigMobility_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 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 }, +static const per_choice_t T_csi_rs_ResourceConfigMobility_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_24 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_RS_ResourceConfigMobility }, { 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_) { +dissect_nr_rrc_T_csi_rs_ResourceConfigMobility(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, + ett_nr_rrc_T_csi_rs_ResourceConfigMobility, T_csi_rs_ResourceConfigMobility_choice, NULL); return offset; } +static const per_sequence_t ReferenceSignalConfig_sequence[] = { + { &hf_nr_rrc_ssb_ConfigMobility, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SSB_ConfigMobility }, + { &hf_nr_rrc_csi_rs_ResourceConfigMobility, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_rs_ResourceConfigMobility }, + { NULL, 0, 0, NULL } +}; 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); +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 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 const per_sequence_t ThresholdNR_sequence[] = { + { &hf_nr_rrc_thresholdRSRP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, + { &hf_nr_rrc_thresholdRSRQ, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRQ_Range }, + { &hf_nr_rrc_thresholdSINR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SINR_Range }, + { NULL, 0, 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); +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 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_INTEGER_2_maxNrofSS_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, maxNrofSS_BlocksToAverage, NULL, FALSE); + + return offset; +} + 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); +dissect_nr_rrc_INTEGER_2_maxNrofCSI_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, maxNrofCSI_RS_ResourcesToAverage, NULL, FALSE); return offset; } @@ -3406,362 +5388,322 @@ dissect_nr_rrc_T_bucketSizeDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ 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_) { +dissect_nr_rrc_INTEGER_1_maxNrofQuantityConfig(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); + 1U, maxNrofQuantityConfig, 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 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_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); +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 LogicalChannelConfig_sequence[] = { - { &hf_nr_rrc_ul_SpecificParameters, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ul_SpecificParameters }, +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_LogicalChannelConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_LogicalChannelConfig, LogicalChannelConfig_sequence); + ett_nr_rrc_Q_OffsetRangeList, Q_OffsetRangeList_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 const per_sequence_t PCI_List_sequence_of[1] = { + { &hf_nr_rrc_PCI_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, }; 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); +dissect_nr_rrc_PCI_List(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_PCI_List, PCI_List_sequence_of, + 1, maxNrofCellMeas, FALSE); 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 const per_sequence_t CellsToAddMod_sequence[] = { + { &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_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); +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 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 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_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_) { +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_SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity, SEQUENCE_SIZE_1_maxLCH_OF_LogicalChannelIdentity_sequence_of, - 1, maxLCH, FALSE); + ett_nr_rrc_CellsToAddModList, CellsToAddModList_sequence_of, + 1, maxNrofCellMeas, 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_PCI_RangeIndex(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, maxNrofPCI_Ranges, NULL, FALSE); + + return offset; +} +static const per_sequence_t PCI_RangeIndexList_sequence_of[1] = { + { &hf_nr_rrc_PCI_RangeIndexList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCI_RangeIndex }, +}; + 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); +dissect_nr_rrc_PCI_RangeIndexList(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_PCI_RangeIndexList, PCI_RangeIndexList_sequence_of, + 1, maxNrofPCI_Ranges, FALSE); 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" }, +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, "n1008" }, + { 15, "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_) { +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, - 32, NULL, FALSE, 0, NULL); + 16, NULL, FALSE, 0, NULL); return offset; } +static const per_sequence_t PCI_Range_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_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); +dissect_nr_rrc_PCI_Range(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_PCI_Range, PCI_Range_sequence); 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 const per_sequence_t BlackCellsToAddMod_sequence[] = { + { &hf_nr_rrc_pci_RangeIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCI_RangeIndex }, + { &hf_nr_rrc_pci_Range , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCI_Range }, + { NULL, 0, 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_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_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); +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, maxNrofPCI_Ranges, FALSE); 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 const per_sequence_t WhiteCellsToAddMod_sequence[] = { + { &hf_nr_rrc_pci_RangeIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCI_RangeIndex }, + { &hf_nr_rrc_pci_Range , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCI_Range }, + { NULL, 0, 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_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_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); +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, maxNrofPCI_Ranges, FALSE); return offset; } +static const per_sequence_t MeasObjectNR_sequence[] = { + { &hf_nr_rrc_ssbFrequency , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_refFreqCSI_RS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_referenceSignalConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReferenceSignalConfig }, + { &hf_nr_rrc_absThreshSS_BlocksConsolidation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ThresholdNR }, + { &hf_nr_rrc_absThreshCSI_RS_Consolidation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ThresholdNR }, + { &hf_nr_rrc_nrofSS_BlocksToAverage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_maxNrofSS_BlocksToAverage }, + { &hf_nr_rrc_nrofCSI_RS_ResourcesToAverage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_maxNrofCSI_RS_ResourcesToAverage }, + { &hf_nr_rrc_quantityConfigIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxNrofQuantityConfig }, + { &hf_nr_rrc_offsetFreq , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Q_OffsetRangeList }, + { &hf_nr_rrc_cellsToRemoveList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PCI_List }, + { &hf_nr_rrc_cellsToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CellsToAddModList }, + { &hf_nr_rrc_blackCellsToRemoveList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PCI_RangeIndexList }, + { &hf_nr_rrc_blackCellsToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BlackCellsToAddModList }, + { &hf_nr_rrc_whiteCellsToRemoveList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PCI_RangeIndexList }, + { &hf_nr_rrc_whiteCellsToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_WhiteCellsToAddModList }, + { NULL, 0, 0, NULL } +}; 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); +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 value_string nr_rrc_T_measObject_vals[] = { + { 0, "measObjectNR" }, + { 0, NULL } +}; + +static const per_choice_t T_measObject_choice[] = { + { 0, &hf_nr_rrc_measObjectNR , ASN1_EXTENSION_ROOT , dissect_nr_rrc_MeasObjectNR }, + { 0, NULL, 0, NULL } +}; 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); +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_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); +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_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); +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; } @@ -3769,59 +5711,105 @@ dissect_nr_rrc_INTEGER_0_39(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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_) { +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, - 0U, 59U, NULL, FALSE); + 1U, maxReportConfigId, 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_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); +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, maxReportConfigId, FALSE); return offset; } +static const value_string nr_rrc_NR_RS_Type_vals[] = { + { 0, "ssb" }, + { 1, "csi-rs" }, + { 0, NULL } +}; + 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); +dissect_nr_rrc_NR_RS_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_ReportInterval_vals[] = { + { 0, "ms120" }, + { 1, "ms240" }, + { 2, "ms480" }, + { 3, "ms640" }, + { 4, "ms1024" }, + { 5, "ms2048" }, + { 6, "ms5120" }, + { 7, "ms10240" }, + { 8, "ms20480" }, + { 9, "ms40960" }, + { 10, "min1" }, + { 11, "min6" }, + { 12, "min12" }, + { 13, "min30" }, + { 0, NULL } +}; + 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); +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, + 14, NULL, FALSE, 0, NULL); return offset; } +static const value_string nr_rrc_T_reportAmount_01_vals[] = { + { 0, "r1" }, + { 1, "r2" }, + { 2, "r4" }, + { 3, "r8" }, + { 4, "r16" }, + { 5, "r32" }, + { 6, "r64" }, + { 7, "infinity" }, + { 0, NULL } +}; + 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); +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, + 8, 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_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); +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; } @@ -3829,9 +5817,9 @@ dissect_nr_rrc_INTEGER_0_159(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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_) { +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, - 0U, 319U, NULL, FALSE); + 1U, maxCellReport, NULL, FALSE); return offset; } @@ -3839,29 +5827,55 @@ dissect_nr_rrc_INTEGER_0_319(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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_) { +dissect_nr_rrc_INTEGER_1_maxNrofIndexesToReport(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); + 1U, maxNrofIndexesToReport, NULL, FALSE); return offset; } +static const per_sequence_t PeriodicalReportConfig_sequence[] = { + { &hf_nr_rrc_rsType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NR_RS_Type }, + { &hf_nr_rrc_reportInterval, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportInterval }, + { &hf_nr_rrc_reportAmount_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportAmount_01 }, + { &hf_nr_rrc_reportQuantityCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasReportQuantity }, + { &hf_nr_rrc_maxReportCells, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxCellReport }, + { &hf_nr_rrc_reportQuantityRsIndexes, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasReportQuantity }, + { &hf_nr_rrc_maxNrofRsIndexesToReport, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNrofIndexesToReport }, + { &hf_nr_rrc_includeBeamMeasurements, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_useWhiteCellList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; 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); +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 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_RSRP_Range }, + { 1, &hf_nr_rrc_rsrq , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RSRQ_Range }, + { 2, &hf_nr_rrc_sinr , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SINR_Range }, + { 0, NULL, 0, NULL } +}; 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); +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; } @@ -3869,39 +5883,73 @@ dissect_nr_rrc_INTEGER_0_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act 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_) { +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, 1279U, NULL, FALSE); + 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_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); +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_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); +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_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); +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; } @@ -3909,1077 +5957,1420 @@ dissect_nr_rrc_INTEGER_0_5119(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act 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_) { +dissect_nr_rrc_INTEGER_M30_30(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); + -30, 30U, 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" }, +static const value_string nr_rrc_MeasTriggerQuantityOffset_vals[] = { + { 0, "rsrp" }, + { 1, "rsrq" }, + { 2, "sinr" }, { 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 }, +static const per_choice_t MeasTriggerQuantityOffset_choice[] = { + { 0, &hf_nr_rrc_rsrp_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_M30_30 }, + { 1, &hf_nr_rrc_rsrq_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_M30_30 }, + { 2, &hf_nr_rrc_sinr_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_M30_30 }, { 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_) { +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_T_drx_LongCycleStartOffset, T_drx_LongCycleStartOffset_choice, + ett_nr_rrc_MeasTriggerQuantityOffset, MeasTriggerQuantityOffset_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 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_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 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); +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_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 }, +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_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, { 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_) { +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_shortDRX, T_shortDRX_sequence); + ett_nr_rrc_T_eventA4, T_eventA4_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); +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_NOT_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_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 }, +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_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, { 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_) { +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_setup, T_setup_sequence); + ett_nr_rrc_T_eventA6, T_eventA6_sequence); return offset; } -static const value_string nr_rrc_DRX_Config_vals[] = { - { 0, "release" }, - { 1, "setup" }, +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 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 }, +static const per_choice_t T_eventId_choice[] = { + { 0, &hf_nr_rrc_eventA1 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_eventA1 }, + { 1, &hf_nr_rrc_eventA2 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_eventA2 }, + { 2, &hf_nr_rrc_eventA3 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_eventA3 }, + { 3, &hf_nr_rrc_eventA4 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_eventA4 }, + { 4, &hf_nr_rrc_eventA5 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_eventA5 }, + { 5, &hf_nr_rrc_eventA6 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_eventA6 }, { 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_) { +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_DRX_Config, DRX_Config_choice, + ett_nr_rrc_T_eventId, T_eventId_choice, NULL); return offset; } +static const value_string nr_rrc_T_reportAmount_vals[] = { + { 0, "r1" }, + { 1, "r2" }, + { 2, "r4" }, + { 3, "r8" }, + { 4, "r16" }, + { 5, "r32" }, + { 6, "r64" }, + { 7, "infinity" }, + { 0, NULL } +}; + 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); +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, + 8, NULL, FALSE, 0, 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" }, +static const value_string nr_rrc_T_reportAddNeighMeas_vals[] = { + { 0, "setup" }, { 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_) { +dissect_nr_rrc_T_reportAddNeighMeas(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); + 1, 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" }, +static const per_sequence_t EventTriggerConfig_sequence[] = { + { &hf_nr_rrc_eventId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_eventId }, + { &hf_nr_rrc_rsType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NR_RS_Type }, + { &hf_nr_rrc_reportInterval, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportInterval }, + { &hf_nr_rrc_reportAmount , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportAmount }, + { &hf_nr_rrc_reportQuantityCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasReportQuantity }, + { &hf_nr_rrc_maxReportCells, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxCellReport }, + { &hf_nr_rrc_reportQuantityRsIndexes, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasReportQuantity }, + { &hf_nr_rrc_maxNrofRSIndexesToReport, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNrofIndexesToReport }, + { &hf_nr_rrc_includeBeamMeasurements, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_reportAddNeighMeas, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_reportAddNeighMeas }, + { 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_reportCGI_vals[] = { + { 0, "ffsTypeAndValue" }, { 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_) { +dissect_nr_rrc_T_reportCGI(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); + 1, 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 }, +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_T_reportCGI }, + { 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_SchedulingRequestToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_SchedulingRequestToAddMod, SchedulingRequestToAddMod_sequence); + ett_nr_rrc_ReportConfigNR, ReportConfigNR_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 const value_string nr_rrc_T_reportConfig_vals[] = { + { 0, "reportConfigNR" }, + { 0, NULL } +}; + +static const per_choice_t T_reportConfig_choice[] = { + { 0, &hf_nr_rrc_reportConfigNR, ASN1_EXTENSION_ROOT , dissect_nr_rrc_ReportConfigNR }, + { 0, NULL, 0, NULL } }; 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_) { +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_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod, SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestToAddMod_sequence_of, - 1, maxNrofSR_ConfigPerCellGroup, FALSE); + ett_nr_rrc_ReportConfigToAddModList, ReportConfigToAddModList_sequence_of, + 1, maxReportConfigId, 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_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_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_) { +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_SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId, SEQUENCE_SIZE_1_maxNrofSR_ConfigPerCellGroup_OF_SchedulingRequestId_sequence_of, - 1, maxNrofSR_ConfigPerCellGroup, FALSE); + ett_nr_rrc_MeasIdToRemoveList, MeasIdToRemoveList_sequence_of, + 1, maxNrofMeasId, 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 }, +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_NOT_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_SchedulingRequestConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_SchedulingRequestConfig, SchedulingRequestConfig_sequence); + ett_nr_rrc_MeasIdToAddMod, MeasIdToAddMod_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 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_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); +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_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" }, +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_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); +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_T_logicaChannelSR_DelayTimer_vals[] = { - { 0, "sf20" }, - { 1, "sf40" }, - { 2, "sf64" }, - { 3, "sf128" }, - { 4, "sf512" }, - { 5, "sf1024" }, - { 6, "sf2560" }, - { 7, "spare1" }, +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_T_logicaChannelSR_DelayTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 8, NULL, FALSE, 0, NULL); + 16, NULL, TRUE, 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 }, +static const per_sequence_t FilterConfig_sequence[] = { + { &hf_nr_rrc_filterCoefficientRSRP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient }, + { &hf_nr_rrc_filterCoefficientRSRQ, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient }, + { &hf_nr_rrc_filterCoefficientRS_SINR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FilterCoefficient }, { 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_) { +dissect_nr_rrc_FilterConfig(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); + ett_nr_rrc_FilterConfig, FilterConfig_sequence); return offset; } +static const per_sequence_t QuantityConfigRS_sequence[] = { + { &hf_nr_rrc_ssb_FilterConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FilterConfig }, + { &hf_nr_rrc_cs_RS_FilterConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FilterConfig }, + { NULL, 0, 0, NULL } +}; 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); +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 QuantityConfigNR_sequence[] = { + { &hf_nr_rrc_quantityConfigCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_QuantityConfigRS }, + { &hf_nr_rrc_quantityConfigRS_Index, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_QuantityConfigRS }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_QuantityConfigNR(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_QuantityConfigNR, QuantityConfigNR_sequence); 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 const per_sequence_t QuantityConfigNR_List_sequence_of[1] = { + { &hf_nr_rrc_QuantityConfigNR_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_QuantityConfigNR }, }; 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_) { +dissect_nr_rrc_QuantityConfigNR_List(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); + ett_nr_rrc_QuantityConfigNR_List, QuantityConfigNR_List_sequence_of, + 1, maxNrofQuantityConfig, 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" }, +static const per_sequence_t QuantityConfig_sequence[] = { + { &hf_nr_rrc_quantityConfigNR_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_QuantityConfigNR_List }, + { 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 value_string nr_rrc_T_gapFR2_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_gapFR2_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_23 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_GapConfig }, + { 0, NULL, 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); +dissect_nr_rrc_T_gapFR2(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_gapFR2, T_gapFR2_choice, + 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 }, +static const per_sequence_t MeasGapConfig_sequence[] = { + { &hf_nr_rrc_gapFR2 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_gapFR2 }, { 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_) { +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_TAG_ToAddMod, TAG_ToAddMod_sequence); + ett_nr_rrc_MeasGapConfig, MeasGapConfig_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 const per_sequence_t MeasConfig_sequence[] = { + { &hf_nr_rrc_measObjectToRemoveList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasObjectToRemoveList }, + { &hf_nr_rrc_measObjectToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasObjectToAddModList }, + { &hf_nr_rrc_reportConfigToRemoveList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ReportConfigToRemoveList }, + { &hf_nr_rrc_reportConfigToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ReportConfigToAddModList }, + { &hf_nr_rrc_measIdToRemoveList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasIdToRemoveList }, + { &hf_nr_rrc_measIdToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasIdToAddModList }, + { &hf_nr_rrc_s_MeasureConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_s_MeasureConfig }, + { &hf_nr_rrc_quantityConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_QuantityConfig }, + { &hf_nr_rrc_measGapConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasGapConfig }, + { NULL, 0, 0, NULL } }; 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); +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 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 }, + +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_02_sequence[] = { { 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_) { +dissect_nr_rrc_T_nonCriticalExtension_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_TAG_Config, TAG_Config_sequence); + ett_nr_rrc_T_nonCriticalExtension_02, T_nonCriticalExtension_02_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_secondaryCellGroup, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_secondaryCellGroup }, + { &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_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_02 }, + { NULL, 0, 0, NULL } +}; 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); +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 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 const per_sequence_t T_criticalExtensionsFuture_02_sequence[] = { + { NULL, 0, 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); +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_phr_ProhibitTimer_vals[] = { - { 0, "sf0" }, - { 1, "sf10" }, - { 2, "sf20" }, - { 3, "sf50" }, - { 4, "sf100" }, - { 5, "sf200" }, - { 6, "sf500" }, - { 7, "sf1000" }, +static const value_string nr_rrc_T_criticalExtensions_02_vals[] = { + { 0, "rrcReconfiguration" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_02_choice[] = { + { 0, &hf_nr_rrc_rrcReconfiguration_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfiguration_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_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); +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 value_string nr_rrc_T_phr_Tx_PowerFactorChange_vals[] = { - { 0, "dB1" }, - { 1, "dB3" }, - { 2, "dB6" }, - { 3, "infinity" }, - { 0, NULL } +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_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_02 }, + { NULL, 0, 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); +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_phr_ModeOtherCG_vals[] = { - { 0, "real" }, - { 1, "virtual" }, +static const value_string nr_rrc_T_c1_01_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_01_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_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); +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_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 }, +static const per_sequence_t T_messageClassExtension_01_sequence[] = { { 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_) { +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_setup_01, T_setup_01_sequence); + ett_nr_rrc_T_messageClassExtension_01, T_messageClassExtension_01_sequence); return offset; } -static const value_string nr_rrc_PHR_Config_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const value_string nr_rrc_DL_DCCH_MessageType_vals[] = { + { 0, "c1" }, + { 1, "messageClassExtension" }, { 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 }, +static const per_choice_t DL_DCCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_01 }, + { 1, &hf_nr_rrc_messageClassExtension_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_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_) { +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_PHR_Config, PHR_Config_choice, + ett_nr_rrc_DL_DCCH_MessageType, DL_DCCH_MessageType_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" }, +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 value_string nr_rrc_T_cgi_Info_vals[] = { + { 0, "ffsTypeAndValue" }, { 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_) { +dissect_nr_rrc_T_cgi_Info(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); + 1, 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 }, +static const per_sequence_t T_cellResults_sequence[] = { + { &hf_nr_rrc_resultsSSB_Cell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasQuantityResults }, + { &hf_nr_rrc_resultsCSI_RS_Cell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasQuantityResults }, { 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_) { +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_MAC_CellGroupConfig, MAC_CellGroupConfig_sequence); + ett_nr_rrc_T_cellResults, T_cellResults_sequence); return offset; } -static const per_sequence_t RLF_TimersAndConstants_sequence[] = { +static const per_sequence_t ResultsPerSSB_Index_sequence[] = { + { &hf_nr_rrc_ssb_Index , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_Index }, + { &hf_nr_rrc_ssb_Results , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasQuantityResults }, { 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_) { +dissect_nr_rrc_ResultsPerSSB_Index(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); + ett_nr_rrc_ResultsPerSSB_Index, ResultsPerSSB_Index_sequence); return offset; } -static const value_string nr_rrc_T_harq_ACK_Spatial_Bundling_vals[] = { - { 0, "true" }, - { 0, NULL } +static const per_sequence_t ResultsPerSSB_IndexList_sequence_of[1] = { + { &hf_nr_rrc_ResultsPerSSB_IndexList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ResultsPerSSB_Index }, +}; + +static int +dissect_nr_rrc_ResultsPerSSB_IndexList(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_ResultsPerSSB_IndexList, ResultsPerSSB_IndexList_sequence_of, + 1, maxNrofSSBs, FALSE); + + return offset; +} + + +static const per_sequence_t ResultsPerCSI_RS_Index_sequence[] = { + { &hf_nr_rrc_csi_RS_Index , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_Index }, + { &hf_nr_rrc_csi_RS_Results, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasQuantityResults }, + { NULL, 0, 0, NULL } }; +static int +dissect_nr_rrc_ResultsPerCSI_RS_Index(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_RS_Index, ResultsPerCSI_RS_Index_sequence); + + return offset; +} + + +static const per_sequence_t ResultsPerCSI_RS_IndexList_sequence_of[1] = { + { &hf_nr_rrc_ResultsPerCSI_RS_IndexList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ResultsPerCSI_RS_Index }, +}; 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); +dissect_nr_rrc_ResultsPerCSI_RS_IndexList(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_RS_IndexList, ResultsPerCSI_RS_IndexList_sequence_of, + 1, maxNrofCSI_RS, FALSE); 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 }, +static const per_sequence_t T_rsIndexResults_sequence[] = { + { &hf_nr_rrc_resultsSSB_Indexes, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ResultsPerSSB_IndexList }, + { &hf_nr_rrc_resultsCSI_RS_Indexes, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ResultsPerCSI_RS_IndexList }, { 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_) { +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_PhysicalCellGroupConfig, PhysicalCellGroupConfig_sequence); + ett_nr_rrc_T_rsIndexResults, T_rsIndexResults_sequence); return offset; } -static const value_string nr_rrc_CarrierBandwidthNR_vals[] = { - { 0, "ffs" }, - { 0, NULL } +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_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_cgi_Info , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_cgi_Info }, + { &hf_nr_rrc_measResult , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_measResult }, + { NULL, 0, 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); +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 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 }, +static const per_sequence_t MeasResultServFreq_sequence[] = { + { &hf_nr_rrc_servFreqId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_measResultServingCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultNR }, + { &hf_nr_rrc_measResultBestNeighCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultNR }, { 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_) { +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_T_frequencyInfoDL, T_frequencyInfoDL_sequence); + 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_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); +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, maxNrofServingCells, FALSE); return offset; } -static const value_string nr_rrc_T_frequencyShift7p5khz_vals[] = { - { 0, "true" }, +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 value_string nr_rrc_T_measResultNeighCells_vals[] = { + { 0, "measResultListNR" }, { 0, NULL } }; +static const per_choice_t T_measResultNeighCells_choice[] = { + { 0, &hf_nr_rrc_measResultListNR, ASN1_EXTENSION_ROOT , dissect_nr_rrc_MeasResultListNR }, + { 0, NULL, 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); +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_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasId }, + { &hf_nr_rrc_measResultServingFreqList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultServFreqList }, + { &hf_nr_rrc_measResultNeighCells, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_measResultNeighCells }, + { NULL, 0, 0, NULL } +}; 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); +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 T_nonCriticalExtension_01_sequence[] = { + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_T_nonCriticalExtension_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_nonCriticalExtension_01, T_nonCriticalExtension_01_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 }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_01 }, + { NULL, 0, 0, NULL } +}; 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); +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 value_string nr_rrc_T_subcarrierSpacing_vals[] = { - { 0, "n0" }, - { 1, "n1" }, - { 2, "n2" }, - { 3, "n3" }, - { 4, "n4" }, - { 0, NULL } +static const per_sequence_t T_criticalExtensionsFuture_01_sequence[] = { + { NULL, 0, 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); +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_cyclicPrefix_vals[] = { - { 0, "extended" }, +static const value_string nr_rrc_T_criticalExtensions_01_vals[] = { + { 0, "measurementReport" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_01_choice[] = { + { 0, &hf_nr_rrc_measurementReport_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasurementReport_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_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); +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 MeasurementReport_sequence[] = { + { &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_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); +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 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 }, +static const per_sequence_t T_nonCriticalExtension_03_sequence[] = { { 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_) { +dissect_nr_rrc_T_nonCriticalExtension_03(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); + ett_nr_rrc_T_nonCriticalExtension_03, T_nonCriticalExtension_03_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 }, +static const per_sequence_t RRCReconfigurationComplete_IEs_sequence[] = { + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_03, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_03 }, { 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_) { +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_FrequencyInfoUL, FrequencyInfoUL_sequence); + ett_nr_rrc_RRCReconfigurationComplete_IEs, RRCReconfigurationComplete_IEs_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 }, +static const per_sequence_t T_criticalExtensionsFuture_03_sequence[] = { { 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_) { +dissect_nr_rrc_T_criticalExtensionsFuture_03(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); + ett_nr_rrc_T_criticalExtensionsFuture_03, T_criticalExtensionsFuture_03_sequence); return offset; } +static const value_string nr_rrc_T_criticalExtensions_03_vals[] = { + { 0, "rrcReconfigurationComplete" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_03_choice[] = { + { 0, &hf_nr_rrc_rrcReconfigurationComplete_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfigurationComplete_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_03, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_03 }, + { 0, NULL, 0, NULL } +}; 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); +dissect_nr_rrc_T_criticalExtensions_03(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_03, T_criticalExtensions_03_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_03, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_03 }, + { NULL, 0, 0, NULL } +}; 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); +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_02_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_02_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_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); +dissect_nr_rrc_T_c1_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_c1_02, T_c1_02_choice, + NULL); return offset; } +static const per_sequence_t T_messageClassExtension_02_sequence[] = { + { NULL, 0, 0, NULL } +}; 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); +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_T_ssb_PositionsInBurst_vals[] = { - { 0, "shortBitmap" }, - { 1, "mediumBitmap" }, - { 2, "longBitmap" }, +static const value_string nr_rrc_UL_DCCH_MessageType_vals[] = { + { 0, "c1" }, + { 1, "messageClassExtension" }, { 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 }, +static const per_choice_t UL_DCCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_02 }, + { 1, &hf_nr_rrc_messageClassExtension_02, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_02 }, { 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_) { +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_T_ssb_PositionsInBurst, T_ssb_PositionsInBurst_choice, + ett_nr_rrc_UL_DCCH_MessageType, UL_DCCH_MessageType_choice, NULL); return offset; } -static const value_string nr_rrc_T_ssb_periodicityServingCell_vals[] = { +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; +} + + +static const value_string nr_rrc_T_frequencyOffsetSSB_vals[] = { + { 0, "khz-5" }, + { 1, "khz5" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_frequencyOffsetSSB(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_ssb_PositionsInBurst_sequence[] = { + { &hf_nr_rrc_inOneGroup , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { &hf_nr_rrc_groupPresence, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { NULL, 0, 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_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_ssb_PositionsInBurst, T_ssb_PositionsInBurst_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_ssb_PeriodicityServingCell_vals[] = { { 0, "ms5" }, { 1, "ms10" }, { 2, "ms20" }, { 3, "ms40" }, { 4, "ms80" }, { 5, "ms160" }, + { 6, "spare1" }, + { 7, "spare2" }, { 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_) { +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); + 8, 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_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 int +dissect_nr_rrc_FreqBandIndicatorNR(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, 1024U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t MultiFrequencyBandListNR_sequence_of[1] = { + { &hf_nr_rrc_MultiFrequencyBandListNR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorNR }, }; +static int +dissect_nr_rrc_MultiFrequencyBandListNR(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_MultiFrequencyBandListNR, MultiFrequencyBandListNR_sequence_of, + 1, maxNrofMultiBands, FALSE); + + return offset; +} + + 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); +dissect_nr_rrc_INTEGER_0_2199(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, 2199U, NULL, FALSE); return offset; } -static const value_string nr_rrc_SubcarrierSpacingSSB_vals[] = { - { 0, "kHz15" }, - { 1, "kHz30" }, - { 2, "kHz120" }, - { 3, "kHz240" }, +static const value_string nr_rrc_T_k0_vals[] = { + { 0, "n-6" }, + { 1, "n0" }, + { 2, "n6" }, { 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_) { +dissect_nr_rrc_T_k0(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); + 3, 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" }, + +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 per_sequence_t SCS_SpecificCarrier_sequence[] = { + { &hf_nr_rrc_offsetToCarrier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_2199 }, + { &hf_nr_rrc_subcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_k0_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_k0 }, + { &hf_nr_rrc_carrierBandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxNrofPhysicalResourceBlocks }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SCS_SpecificCarrier(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_SCS_SpecificCarrier, SCS_SpecificCarrier_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier_sequence_of[1] = { + { &hf_nr_rrc_scs_SpecificCarrierList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SCS_SpecificCarrier }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier(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_maxSCSs_OF_SCS_SpecificCarrier, SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier_sequence_of, + 1, maxSCSs, FALSE); + + 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, + 0U, 7U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_frequencyShift7p5khz_vals[] = { + { 0, "true" }, { 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_) { +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, - 5, NULL, FALSE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } +static const per_sequence_t FrequencyInfoUL_sequence[] = { + { &hf_nr_rrc_frequencyBandList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MultiFrequencyBandListNR }, + { &hf_nr_rrc_absoluteFrequencyPointA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_scs_SpecificCarriers, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier }, + { &hf_nr_rrc_additionalSpectrumEmission, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_AdditionalSpectrumEmission }, + { &hf_nr_rrc_p_Max , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { &hf_nr_rrc_frequencyShift7p5khz, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_frequencyShift7p5khz }, + { NULL, 0, 0, NULL } +}; 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); +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; } @@ -4987,87 +7378,141 @@ dissect_nr_rrc_INTEGER_0_160(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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_) { +dissect_nr_rrc_INTEGER_0_37949(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); + 0U, 37949U, 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 }, +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 const per_sequence_t BWP_sequence[] = { + { &hf_nr_rrc_locationAndBandwidth, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_37949 }, + { &hf_nr_rrc_subcarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_cyclicPrefix , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_cyclicPrefix }, { 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_) { +dissect_nr_rrc_BWP(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); + ett_nr_rrc_BWP, BWP_sequence); return offset; } +static const value_string nr_rrc_T_msg1_FDM_vals[] = { + { 0, "one" }, + { 1, "two" }, + { 2, "four" }, + { 3, "eight" }, + { 0, NULL } +}; + 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_) { +dissect_nr_rrc_T_msg1_FDM(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_maxNrofPhysicalResourceBlocks_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, - -60, 50U, NULL, FALSE); + 0U, maxNrofPhysicalResourceBlocks_1, 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" }, + +static int +dissect_nr_rrc_INTEGER_M200_M74(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, + -200, -74, NULL, FALSE); + + 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_ra_Msg3SizeGroupA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 16, NULL, FALSE, 0, NULL); + 11, 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" }, +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_messagePowerOffsetGroupB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_ra_ResponseWindow_vals[] = { + { 0, "sl1" }, + { 1, "sl2" }, + { 2, "sl4" }, + { 3, "sl8" }, + { 4, "sl10" }, + { 5, "sl20" }, + { 6, "sl40" }, + { 7, "sl80" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ra_ResponseWindow(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); @@ -5075,16 +7520,22 @@ dissect_nr_rrc_T_messagePowerOffsetGroupB(tvbuff_t *tvb _U_, int offset _U_, asn } -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 }, +static const per_sequence_t RACH_ConfigGeneric_sequence[] = { + { &hf_nr_rrc_prach_ConfigurationIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_255 }, + { &hf_nr_rrc_msg1_FDM , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_msg1_FDM }, + { &hf_nr_rrc_msg1_FrequencyStart, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofPhysicalResourceBlocks_1 }, + { &hf_nr_rrc_zeroCorrelationZoneConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_15 }, + { &hf_nr_rrc_preambleReceivedTargetPower, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M200_M74 }, + { &hf_nr_rrc_preambleTransMax, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_preambleTransMax }, + { &hf_nr_rrc_powerRampingStep, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_powerRampingStep }, + { &hf_nr_rrc_ra_ResponseWindow, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ra_ResponseWindow }, { 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_) { +dissect_nr_rrc_RACH_ConfigGeneric(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); + ett_nr_rrc_RACH_ConfigGeneric, RACH_ConfigGeneric_sequence); return offset; } @@ -5092,19 +7543,161 @@ dissect_nr_rrc_T_groupBconfigured(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t 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_) { +dissect_nr_rrc_INTEGER_1_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, - 1U, 7U, NULL, FALSE); + 1U, 63U, NULL, FALSE); return offset; } +static const value_string nr_rrc_T_oneEighth_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 2, "n12" }, + { 3, "n16" }, + { 4, "n20" }, + { 5, "n24" }, + { 6, "n28" }, + { 7, "n32" }, + { 8, "n36" }, + { 9, "n40" }, + { 10, "n44" }, + { 11, "n48" }, + { 12, "n52" }, + { 13, "n56" }, + { 14, "n60" }, + { 15, "n64" }, + { 0, NULL } +}; + 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_) { +dissect_nr_rrc_T_oneEighth(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_oneFourth_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 2, "n12" }, + { 3, "n16" }, + { 4, "n20" }, + { 5, "n24" }, + { 6, "n28" }, + { 7, "n32" }, + { 8, "n36" }, + { 9, "n40" }, + { 10, "n44" }, + { 11, "n48" }, + { 12, "n52" }, + { 13, "n56" }, + { 14, "n60" }, + { 15, "n64" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_oneFourth(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_oneHalf_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 2, "n12" }, + { 3, "n16" }, + { 4, "n20" }, + { 5, "n24" }, + { 6, "n28" }, + { 7, "n32" }, + { 8, "n36" }, + { 9, "n40" }, + { 10, "n44" }, + { 11, "n48" }, + { 12, "n52" }, + { 13, "n56" }, + { 14, "n60" }, + { 15, "n64" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_oneHalf(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_one_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 2, "n12" }, + { 3, "n16" }, + { 4, "n20" }, + { 5, "n24" }, + { 6, "n28" }, + { 7, "n32" }, + { 8, "n36" }, + { 9, "n40" }, + { 10, "n44" }, + { 11, "n48" }, + { 12, "n52" }, + { 13, "n56" }, + { 14, "n60" }, + { 15, "n64" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_one(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_two_01_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 2, "n12" }, + { 3, "n16" }, + { 4, "n20" }, + { 5, "n24" }, + { 6, "n28" }, + { 7, "n32" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_two_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, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_8(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); + 1U, 8U, NULL, FALSE); return offset; } @@ -5112,63 +7705,121 @@ dissect_nr_rrc_PreambleStartIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t 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_) { +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, maxNrOfRA_PreamblesPerSSB, NULL, FALSE); + 1U, 4U, NULL, FALSE); return offset; } +static const value_string nr_rrc_T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_vals[] = { + { 0, "oneEighth" }, + { 1, "oneFourth" }, + { 2, "oneHalf" }, + { 3, "one" }, + { 4, "two" }, + { 5, "four" }, + { 6, "eight" }, + { 7, "sixteen" }, + { 0, NULL } +}; + +static const per_choice_t T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice[] = { + { 0, &hf_nr_rrc_oneEighth , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_oneEighth }, + { 1, &hf_nr_rrc_oneFourth , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_oneFourth }, + { 2, &hf_nr_rrc_oneHalf , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_oneHalf }, + { 3, &hf_nr_rrc_one_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_one }, + { 4, &hf_nr_rrc_two_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_two_01 }, + { 5, &hf_nr_rrc_four , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_1_16 }, + { 6, &hf_nr_rrc_eight , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_1_8 }, + { 7, &hf_nr_rrc_sixteen , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_1_4 }, + { 0, NULL, 0, NULL } +}; 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); +dissect_nr_rrc_T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB(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_perRACH_OccasionAndCB_PreamblesPerSSB, T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice, + NULL); return offset; } -static const per_sequence_t RA_Resources_sequence[] = { - { NULL, 0, 0, NULL } +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_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); +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 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 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_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); +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 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_INTEGER_1_64(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, 64U, NULL, FALSE); + + 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 }, + { &hf_nr_rrc_numberOfRA_PreamblesGroupA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_64 }, + { NULL, 0, 0, NULL } }; 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); +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; } @@ -5239,9 +7890,9 @@ dissect_nr_rrc_T_prach_RootSequenceIndex(tvbuff_t *tvb _U_, int offset _U_, asn1 static const value_string nr_rrc_T_restrictedSetConfig_vals[] = { - { 0, "unrestricted" }, - { 1, "restrictedToTypeA" }, - { 2, "restrictedToTypeB" }, + { 0, "unrestrictedSet" }, + { 1, "restrictedSetTypeA" }, + { 2, "restrictedSetTypeB" }, { 0, NULL } }; @@ -5255,228 +7906,153 @@ dissect_nr_rrc_T_restrictedSetConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } -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); +static const value_string nr_rrc_T_msg3_transformPrecoding_vals[] = { + { 0, "enabled" }, + { 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 value_string nr_rrc_T_powerRampingStep_vals[] = { - { 0, "dB0" }, - { 1, "dB2" }, - { 2, "dB4" }, - { 3, "dB6" }, +static const per_sequence_t RACH_ConfigCommon_sequence[] = { + { &hf_nr_rrc_rach_ConfigGeneric, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RACH_ConfigGeneric }, + { &hf_nr_rrc_totalNumberOfRA_Preambles, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_63 }, + { &hf_nr_rrc_ssb_perRACH_OccasionAndCB_PreamblesPerSSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB }, + { &hf_nr_rrc_groupBconfigured, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_groupBconfigured }, + { &hf_nr_rrc_ra_ContentionResolutionTimer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ra_ContentionResolutionTimer }, + { &hf_nr_rrc_rsrp_ThresholdSSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, + { &hf_nr_rrc_rsrp_ThresholdSSB_SUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, + { &hf_nr_rrc_prach_RootSequenceIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_prach_RootSequenceIndex }, + { &hf_nr_rrc_msg1_SubcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_restrictedSetConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_restrictedSetConfig }, + { &hf_nr_rrc_msg3_transformPrecoding, ASN1_EXTENSION_ROOT , 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 value_string nr_rrc_T_rach_ConfigCommon_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_rach_ConfigCommon_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RACH_ConfigCommon }, + { 0, NULL, 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); +dissect_nr_rrc_T_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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_rach_ConfigCommon, T_rach_ConfigCommon_choice, + 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" }, +static const value_string nr_rrc_T_groupHoppingEnabledTransformPrecoding_vals[] = { + { 0, "enabled" }, { 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_) { +dissect_nr_rrc_T_groupHoppingEnabledTransformPrecoding(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); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_msg3_transformPrecoding_vals[] = { - { 0, "true" }, + +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_mappingType_01_vals[] = { + { 0, "typeA" }, + { 1, "typeB" }, { 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_) { +dissect_nr_rrc_T_mappingType_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); + 2, 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); +dissect_nr_rrc_BIT_STRING_SIZE_7(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, + 7, 7, FALSE, NULL, NULL); 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 }, +static const per_sequence_t PUSCH_TimeDomainResourceAllocation_sequence[] = { + { &hf_nr_rrc_k2 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_7 }, + { &hf_nr_rrc_mappingType_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mappingType_01 }, + { &hf_nr_rrc_startSymbolAndLength, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_7 }, { 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_) { +dissect_nr_rrc_PUSCH_TimeDomainResourceAllocation(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); + ett_nr_rrc_PUSCH_TimeDomainResourceAllocation, PUSCH_TimeDomainResourceAllocation_sequence); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofUL_Allocations_OF_PUSCH_TimeDomainResourceAllocation_sequence_of[1] = { + { &hf_nr_rrc_pusch_AllocationList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUSCH_TimeDomainResourceAllocation }, +}; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofUL_Allocations_OF_PUSCH_TimeDomainResourceAllocation(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_maxNrofUL_Allocations_OF_PUSCH_TimeDomainResourceAllocation, SEQUENCE_SIZE_1_maxNrofUL_Allocations_OF_PUSCH_TimeDomainResourceAllocation_sequence_of, + 1, maxNrofUL_Allocations, FALSE); 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); +dissect_nr_rrc_INTEGER_M1_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, + -1, 6U, NULL, FALSE); return offset; } @@ -5484,185 +8060,221 @@ dissect_nr_rrc_T_t304(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p 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_) { +dissect_nr_rrc_INTEGER_M202_24(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); + -202, 24U, 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 }, +static const per_sequence_t PUSCH_ConfigCommon_sequence[] = { + { &hf_nr_rrc_groupHoppingEnabledTransformPrecoding, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_groupHoppingEnabledTransformPrecoding }, + { &hf_nr_rrc_pusch_AllocationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofUL_Allocations_OF_PUSCH_TimeDomainResourceAllocation }, + { &hf_nr_rrc_msg3_DeltaPreamble, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M1_6 }, + { &hf_nr_rrc_p0_NominalWithGrant, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M202_24 }, { 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_) { +dissect_nr_rrc_PUSCH_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_CFRA_SSB_Resource, CFRA_SSB_Resource_sequence); + ett_nr_rrc_PUSCH_ConfigCommon, PUSCH_ConfigCommon_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 const value_string nr_rrc_T_pusch_ConfigCommon_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_pusch_ConfigCommon_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_PUSCH_ConfigCommon }, + { 0, NULL, 0, NULL } }; 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); +dissect_nr_rrc_T_pusch_ConfigCommon(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_pusch_ConfigCommon, T_pusch_ConfigCommon_choice, + NULL); return offset; } +static const value_string nr_rrc_T_pucch_GroupHopping_vals[] = { + { 0, "neither" }, + { 1, "enable" }, + { 2, "disable" }, + { 0, NULL } +}; + 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); +dissect_nr_rrc_T_pucch_GroupHopping(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 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); +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 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 const per_sequence_t PUCCH_ConfigCommon_sequence[] = { + { &hf_nr_rrc_pucch_ResourceCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_4 }, + { &hf_nr_rrc_pucch_GroupHopping, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_pucch_GroupHopping }, + { &hf_nr_rrc_hoppingId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_10 }, + { &hf_nr_rrc_p0_nominal , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M202_24 }, + { NULL, 0, 0, NULL } }; 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); +dissect_nr_rrc_PUCCH_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_PUCCH_ConfigCommon, PUCCH_ConfigCommon_sequence); return offset; } -static const value_string nr_rrc_CFRA_Resources_vals[] = { - { 0, "cfra-ssb-ResourceList" }, - { 1, "cfra-csirs-ResourceList" }, +static const value_string nr_rrc_T_pucch_ConfigCommon_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 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 }, +static const per_choice_t T_pucch_ConfigCommon_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_PUCCH_ConfigCommon }, { 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_) { +dissect_nr_rrc_T_pucch_ConfigCommon(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, + ett_nr_rrc_T_pucch_ConfigCommon, T_pucch_ConfigCommon_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 }, +static const per_sequence_t BWP_UplinkCommon_sequence[] = { + { &hf_nr_rrc_genericParameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP }, + { &hf_nr_rrc_rach_ConfigCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rach_ConfigCommon }, + { &hf_nr_rrc_pusch_ConfigCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_ConfigCommon }, + { &hf_nr_rrc_pucch_ConfigCommon_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_ConfigCommon }, { 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_) { +dissect_nr_rrc_BWP_UplinkCommon(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); + ett_nr_rrc_BWP_UplinkCommon, BWP_UplinkCommon_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 }, +static const per_sequence_t UplinkConfigCommon_sequence[] = { + { &hf_nr_rrc_frequencyInfoUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FrequencyInfoUL }, + { &hf_nr_rrc_initialUplinkBWP_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BWP_UplinkCommon }, { 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_) { +dissect_nr_rrc_UplinkConfigCommon(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); + ett_nr_rrc_UplinkConfigCommon, UplinkConfigCommon_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 }, +static const per_sequence_t T_supplementaryUplink_sequence[] = { + { &hf_nr_rrc_uplinkConfigCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfigCommon }, { 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_) { +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_slotSpecificConfigurations_item, T_slotSpecificConfigurations_item_sequence); + ett_nr_rrc_T_supplementaryUplink, T_supplementaryUplink_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 const value_string nr_rrc_T_dl_UL_TransmissionPeriodicity_vals[] = { + { 0, "ms0p5" }, + { 1, "ms0p625" }, + { 2, "ms1" }, + { 3, "ms1p25" }, + { 4, "ms2" }, + { 5, "ms2p5" }, + { 6, "ms5" }, + { 7, "ms10" }, + { 0, NULL } }; + 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); +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, + 8, NULL, FALSE, 0, NULL); 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); +dissect_nr_rrc_INTEGER_0_maxNrofSlots(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, maxNrofSlots, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_maxNrofSymbols_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, maxNrofSymbols_1, NULL, FALSE); return offset; } +static const per_sequence_t TDD_UL_DL_ConfigCommon_sequence[] = { + { &hf_nr_rrc_referenceSubcarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SubcarrierSpacing }, + { &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_maxNrofSlots }, + { &hf_nr_rrc_nrofDownlinkSymbols, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxNrofSymbols_1 }, + { &hf_nr_rrc_nrofUplinkSlots, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxNrofSlots }, + { &hf_nr_rrc_nrofUplinkSymbols, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxNrofSymbols_1 }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_TDD_UL_DL_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_TDD_UL_DL_ConfigCommon, TDD_UL_DL_ConfigCommon_sequence); return offset; } @@ -5680,9 +8292,9 @@ dissect_nr_rrc_ControlResourceSetId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ 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); +dissect_nr_rrc_BIT_STRING_SIZE_45(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, + 45, 45, FALSE, NULL, NULL); return offset; } @@ -5715,72 +8327,111 @@ dissect_nr_rrc_T_reg_BundleSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -static const value_string nr_rrc_T_cce_reg_MappingType_vals[] = { +static const value_string nr_rrc_T_interleaverSize_vals[] = { + { 0, "n2" }, + { 1, "n3" }, + { 2, "n6" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_interleaverSize(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 T_interleaved_sequence[] = { + { &hf_nr_rrc_reg_BundleSize, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reg_BundleSize }, + { &hf_nr_rrc_interleaverSize, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_interleaverSize }, + { &hf_nr_rrc_shiftIndex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofPhysicalResourceBlocks_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_interleaved(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_interleaved, T_interleaved_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_cce_REG_MappingType_vals[] = { { 0, "interleaved" }, { 1, "nonInterleaved" }, { 0, NULL } }; +static const per_choice_t T_cce_REG_MappingType_choice[] = { + { 0, &hf_nr_rrc_interleaved , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_interleaved }, + { 1, &hf_nr_rrc_nonInterleaved, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 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); +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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_cce_REG_MappingType, T_cce_REG_MappingType_choice, + NULL); return offset; } -static const value_string nr_rrc_T_interleaverRows_vals[] = { - { 0, "n2" }, - { 1, "n3" }, - { 2, "n6" }, +static const value_string nr_rrc_T_precoderGranularity_vals[] = { + { 0, "sameAsREG-bundle" }, + { 1, "allContiguousRBs" }, { 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_) { +dissect_nr_rrc_T_precoderGranularity(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); + 2, 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); +dissect_nr_rrc_TCI_StateId(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, maxNrofTCI_States_1, NULL, FALSE); 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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId_sequence_of[1] = { + { &hf_nr_rrc_tci_StatesPDCCH_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TCI_StateId }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId, SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId_sequence_of, + 1, maxNrofTCI_StatesPDCCH, FALSE); + + 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; } @@ -5788,22 +8439,44 @@ dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet( 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); +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 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 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_BIT_STRING_SIZE_45 }, + { &hf_nr_rrc_duration , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxCoReSetDuration }, + { &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_T_precoderGranularity }, + { &hf_nr_rrc_tci_StatesPDCCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId }, + { &hf_nr_rrc_tci_PresentInDCI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_tci_PresentInDCI }, + { &hf_nr_rrc_pdcch_DMRS_ScramblingID, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { NULL, 0, 0, NULL } }; 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_) { +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_2_OF_ControlResourceSet_sequence_of[1] = { + { &hf_nr_rrc_commonControlResourcesSets_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ControlResourceSet }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_2_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_ControlResourceId, SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId_sequence_of, - 1, maxNrofControlResourceSets, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_ControlResourceSet, SEQUENCE_SIZE_1_2_OF_ControlResourceSet_sequence_of, + 1, 2, FALSE); return offset; } @@ -5813,7 +8486,7 @@ dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId(t 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); + 0U, maxNrofSearchSpaces_1, NULL, FALSE); return offset; } @@ -5831,9 +8504,9 @@ dissect_nr_rrc_INTEGER_0_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ 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_) { +dissect_nr_rrc_INTEGER_0_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, - 0U, 4U, NULL, FALSE); + 0U, 3U, NULL, FALSE); return offset; } @@ -5842,18 +8515,24 @@ dissect_nr_rrc_INTEGER_0_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static const value_string nr_rrc_T_monitoringSlotPeriodicityAndOffset_vals[] = { { 0, "sl1" }, { 1, "sl2" }, - { 2, "sl5" }, - { 3, "sl10" }, - { 4, "sl20" }, + { 2, "sl4" }, + { 3, "sl5" }, + { 4, "sl8" }, + { 5, "sl10" }, + { 6, "sl16" }, + { 7, "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 }, + { 2, &hf_nr_rrc_sl4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_3 }, + { 3, &hf_nr_rrc_sl5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 4, &hf_nr_rrc_sl8 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_7 }, + { 5, &hf_nr_rrc_sl10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 6, &hf_nr_rrc_sl16 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_15 }, + { 7, &hf_nr_rrc_sl20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, { 0, NULL, 0, NULL } }; @@ -5965,11 +8644,34 @@ dissect_nr_rrc_T_aggregationLevel8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const value_string nr_rrc_T_aggregationLevel16_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_aggregationLevel16(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 }, + { &hf_nr_rrc_aggregationLevel16, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_aggregationLevel16 }, { NULL, 0, 0, NULL } }; @@ -5982,178 +8684,237 @@ dissect_nr_rrc_T_nrofCandidates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -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" }, +static const per_sequence_t T_dci_Format0_0_AndFormat1_0_sequence[] = { + { NULL, ASN1_EXTENSION_ROOT, 0, NULL } +}; + +static int +dissect_nr_rrc_T_dci_Format0_0_AndFormat1_0(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_dci_Format0_0_AndFormat1_0, T_dci_Format0_0_AndFormat1_0_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_aggregationLevel1_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, { 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_) { +dissect_nr_rrc_T_aggregationLevel1_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, - 8, NULL, FALSE, 0, NULL); + 2, NULL, FALSE, 0, NULL); return offset; } +static const value_string nr_rrc_T_aggregationLevel2_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } +}; + 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); +dissect_nr_rrc_T_aggregationLevel2_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 SlotFormatCombination_sequence[] = { - { &hf_nr_rrc_slotFormatCombinationId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SlotFormatCombinationId }, - { NULL, 0, 0, NULL } +static const value_string nr_rrc_T_aggregationLevel4_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 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); +dissect_nr_rrc_T_aggregationLevel4_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 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 const value_string nr_rrc_T_aggregationLevel8_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } }; + 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); +dissect_nr_rrc_T_aggregationLevel8_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_aggregationLevel16_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_aggregationLevel16_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 CellToSFI_sequence[] = { - { &hf_nr_rrc_slotFormatCombinations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinations_OF_SlotFormatCombination }, +static const per_sequence_t T_nrofCandidates_SFI_sequence[] = { + { &hf_nr_rrc_aggregationLevel1_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_aggregationLevel1_01 }, + { &hf_nr_rrc_aggregationLevel2_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_aggregationLevel2_01 }, + { &hf_nr_rrc_aggregationLevel4_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_aggregationLevel4_01 }, + { &hf_nr_rrc_aggregationLevel8_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_aggregationLevel8_01 }, + { &hf_nr_rrc_aggregationLevel16_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_aggregationLevel16_01 }, { 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_) { +dissect_nr_rrc_T_nrofCandidates_SFI(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); + ett_nr_rrc_T_nrofCandidates_SFI, T_nrofCandidates_SFI_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 const per_sequence_t T_dci_Format2_0_sequence[] = { + { &hf_nr_rrc_nrofCandidates_SFI, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofCandidates_SFI }, + { NULL, 0, 0, NULL } }; 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); +dissect_nr_rrc_T_dci_Format2_0(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_dci_Format2_0, T_dci_Format2_0_sequence); return offset; } -static const value_string nr_rrc_T_nrofPDCCH_Candidates_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 0, NULL } +static const per_sequence_t T_dci_Format2_1_sequence[] = { + { NULL, ASN1_EXTENSION_ROOT, 0, NULL } }; +static int +dissect_nr_rrc_T_dci_Format2_1(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_dci_Format2_1, T_dci_Format2_1_sequence); + + return offset; +} + + +static const per_sequence_t T_dci_Format2_2_sequence[] = { + { NULL, ASN1_EXTENSION_ROOT, 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); +dissect_nr_rrc_T_dci_Format2_2(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_dci_Format2_2, T_dci_Format2_2_sequence); return offset; } -static const value_string nr_rrc_T_aggregationLevel_vals[] = { +static const value_string nr_rrc_T_monitoringPeriodicity_vals[] = { { 0, "n1" }, { 1, "n2" }, { 2, "n4" }, - { 3, "n8" }, + { 3, "n5" }, + { 4, "n8" }, + { 5, "n10" }, + { 6, "n16" }, + { 7, "n20" }, { 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_) { +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, - 4, NULL, FALSE, 0, NULL); + 8, NULL, FALSE, 0, NULL); return offset; } +static const value_string nr_rrc_T_nrofPDCCH_Candidates_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } +}; + 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); +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 per_sequence_t T_dci_Format2_3_sequence[] = { + { &hf_nr_rrc_monitoringPeriodicity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_monitoringPeriodicity }, + { &hf_nr_rrc_nrofPDCCH_Candidates, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofPDCCH_Candidates }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_T_dci_Format2_3(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_dci_Format2_3, T_dci_Format2_3_sequence); 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 }, +static const per_sequence_t T_common_sequence[] = { + { &hf_nr_rrc_dci_Format0_0_AndFormat1_0, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dci_Format0_0_AndFormat1_0 }, + { &hf_nr_rrc_dci_Format2_0, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dci_Format2_0 }, + { &hf_nr_rrc_dci_Format2_1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dci_Format2_1 }, + { &hf_nr_rrc_dci_Format2_2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dci_Format2_2 }, + { &hf_nr_rrc_dci_Format2_3, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dci_Format2_3 }, { 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_) { +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_SFI_PDCCH, SFI_PDCCH_sequence); + ett_nr_rrc_T_common, T_common_sequence); return offset; } -static const value_string nr_rrc_T_int_TF_vals[] = { - { 0, "set0" }, - { 1, "set1" }, +static const value_string nr_rrc_T_dci_Formats_vals[] = { + { 0, "formats0-0-And-1-0" }, + { 1, "formats0-1-And-1-1" }, { 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_) { +dissect_nr_rrc_T_dci_Formats(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); @@ -6161,25 +8922,8 @@ dissect_nr_rrc_T_int_TF(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, } -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[] = { + { &hf_nr_rrc_dci_Formats , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dci_Formats }, { NULL, 0, 0, NULL } }; @@ -6216,10 +8960,10 @@ dissect_nr_rrc_T_searchSpaceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * 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_controlResourceSetId, ASN1_NO_EXTENSIONS , ASN1_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_nrofCandidates, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nrofCandidates }, { &hf_nr_rrc_searchSpaceType, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_searchSpaceType }, { NULL, 0, 0, NULL } }; @@ -6233,79 +8977,365 @@ dissect_nr_rrc_SearchSpace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } -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 const per_sequence_t SEQUENCE_SIZE_1_4_OF_SearchSpace_sequence_of[1] = { + { &hf_nr_rrc_commonSearchSpaces_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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_4_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); + ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpace, SEQUENCE_SIZE_1_4_OF_SearchSpace_sequence_of, + 1, 4, 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 const per_sequence_t PDCCH_ConfigCommon_sequence[] = { + { &hf_nr_rrc_commonControlResourcesSets, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_2_OF_ControlResourceSet }, + { &hf_nr_rrc_commonSearchSpaces, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpace }, + { &hf_nr_rrc_searchSpaceSIB1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SearchSpaceId }, + { &hf_nr_rrc_searchSpaceOtherSystemInformation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SearchSpaceId }, + { &hf_nr_rrc_pagingSearchSpace, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SearchSpaceId }, + { &hf_nr_rrc_ra_ControlResourceSet, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ControlResourceSetId }, + { &hf_nr_rrc_ra_SearchSpace, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SearchSpaceId }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PDCCH_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_PDCCH_ConfigCommon, PDCCH_ConfigCommon_sequence); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_04_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_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_nonCriticalExtension_04, T_nonCriticalExtension_04_sequence); + + return offset; +} + + +static const per_sequence_t SIB1_sequence[] = { + { &hf_nr_rrc_frequencyOffsetSSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_frequencyOffsetSSB }, + { &hf_nr_rrc_ssb_PositionsInBurst, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ssb_PositionsInBurst }, + { &hf_nr_rrc_ssb_PeriodicityServingCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ssb_PeriodicityServingCell }, + { &hf_nr_rrc_ss_PBCH_BlockPower, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M60_50 }, + { &hf_nr_rrc_uplinkConfigCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfigCommon }, + { &hf_nr_rrc_supplementaryUplink, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_supplementaryUplink }, + { &hf_nr_rrc_tdd_UL_DL_Configuration, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_TDD_UL_DL_ConfigCommon }, + { &hf_nr_rrc_tdd_UL_DL_configurationCommon2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_TDD_UL_DL_ConfigCommon }, + { &hf_nr_rrc_pdcch_ConfigCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PDCCH_ConfigCommon }, + { &hf_nr_rrc_pucch_ConfigCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PUCCH_ConfigCommon }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_04, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_04 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SIB1(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_SIB1, SIB1_sequence); + + return offset; +} + + +static const value_string nr_rrc_Alpha_vals[] = { + { 0, "alpha0" }, + { 1, "alpha04" }, + { 2, "alpha05" }, + { 3, "alpha06" }, + { 4, "alpha07" }, + { 5, "alpha08" }, + { 6, "alpha09" }, + { 7, "alpha1" }, + { 0, NULL } }; + 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_) { +dissect_nr_rrc_Alpha(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_BWP_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, maxNrofBWPs, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_PUCCH_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, maxNrofPUCCH_ResourceSets_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_PUCCH_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, maxNrofPUCCH_Resources_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_8_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_resources_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_8_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_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_maxNrofSearchSpaces_OF_SearchSpaceId, SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId_sequence_of, - 1, maxNrofSearchSpaces, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_8_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId, SEQUENCE_SIZE_8_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId_sequence_of, + 8, maxNrofPUCCH_ResourcesPerSet, 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 }, + +static int +dissect_nr_rrc_INTEGER_4_256(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, 256U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t PUCCH_ResourceSet_sequence[] = { + { &hf_nr_rrc_pucch_ResourceSetId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_ResourceSetId }, + { &hf_nr_rrc_resources , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_8_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId }, + { &hf_nr_rrc_maxPayloadMinus1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_4_256 }, { 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_) { +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_T_timing, T_timing_sequence); + ett_nr_rrc_PUCCH_ResourceSet, PUCCH_ResourceSet_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 }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet_sequence_of[1] = { + { &hf_nr_rrc_resourceSetToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_ResourceSet }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_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_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet, SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet_sequence_of, + 1, maxNrofPUCCH_ResourceSets, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId_sequence_of[1] = { + { &hf_nr_rrc_resourceSetToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_ResourceSetId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_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_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId, SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId_sequence_of, + 1, maxNrofPUCCH_ResourceSets, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_PRB_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, maxNrofPhysicalResourceBlocks_1, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_intraSlotFrequencyHopping_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_intraSlotFrequencyHopping(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_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 int +dissect_nr_rrc_INTEGER_1_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, + 1U, 2U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t PUCCH_format0_sequence[] = { + { &hf_nr_rrc_initialCyclicShift, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_11 }, + { &hf_nr_rrc_nrofSymbols , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_2 }, + { &hf_nr_rrc_startingSymbolIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_13 }, { 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_) { +dissect_nr_rrc_PUCCH_format0(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); + ett_nr_rrc_PUCCH_format0, PUCCH_format0_sequence); return offset; } -static const value_string nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_vals[] = { + +static int +dissect_nr_rrc_INTEGER_4_14(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, 14U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_10(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, 10U, NULL, 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 PUCCH_format1_sequence[] = { + { &hf_nr_rrc_initialCyclicShift, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_11 }, + { &hf_nr_rrc_nrofSymbols_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_4_14 }, + { &hf_nr_rrc_startingSymbolIndex_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_10 }, + { &hf_nr_rrc_timeDomainOCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_6 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUCCH_format1(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_format1, PUCCH_format1_sequence); + + return offset; +} + + +static const per_sequence_t PUCCH_format2_sequence[] = { + { &hf_nr_rrc_nrofPRBs_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_16 }, + { &hf_nr_rrc_nrofSymbols , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_2 }, + { &hf_nr_rrc_startingSymbolIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_13 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUCCH_format2(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_format2, PUCCH_format2_sequence); + + return offset; +} + + +static const per_sequence_t PUCCH_format3_sequence[] = { + { &hf_nr_rrc_nrofPRBs_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_16 }, + { &hf_nr_rrc_nrofSymbols_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_4_14 }, + { &hf_nr_rrc_startingSymbolIndex_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_10 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUCCH_format3(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_format3, PUCCH_format3_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_occ_Length_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_) { +dissect_nr_rrc_T_occ_Length(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_occ_Index_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_occ_Index(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); @@ -6313,152 +9343,357 @@ dissect_nr_rrc_T_maxCodeBlockGroupsPerTransportBlock(tvbuff_t *tvb _U_, int offs } -static const value_string nr_rrc_T_dmrs_Type_vals[] = { - { 0, "type1" }, - { 1, "type2" }, +static const per_sequence_t PUCCH_format4_sequence[] = { + { &hf_nr_rrc_nrofSymbols_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_4_14 }, + { &hf_nr_rrc_occ_Length , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_occ_Length }, + { &hf_nr_rrc_occ_Index , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_occ_Index }, + { &hf_nr_rrc_startingSymbolIndex_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_10 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUCCH_format4(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_format4, PUCCH_format4_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_format_vals[] = { + { 0, "format0" }, + { 1, "format1" }, + { 2, "format2" }, + { 3, "format3" }, + { 4, "format4" }, { 0, NULL } }; +static const per_choice_t T_format_choice[] = { + { 0, &hf_nr_rrc_format0 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_format0 }, + { 1, &hf_nr_rrc_format1_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_format1 }, + { 2, &hf_nr_rrc_format2_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_format2 }, + { 3, &hf_nr_rrc_format3_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_format3 }, + { 4, &hf_nr_rrc_format4_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_format4 }, + { 0, NULL, 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_) { +dissect_nr_rrc_T_format(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_format, T_format_choice, + NULL); + + return offset; +} + + +static const per_sequence_t PUCCH_Resource_sequence[] = { + { &hf_nr_rrc_pucch_ResourceId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_ResourceId }, + { &hf_nr_rrc_startingPRB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PRB_Id }, + { &hf_nr_rrc_intraSlotFrequencyHopping, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_intraSlotFrequencyHopping }, + { &hf_nr_rrc_secondHopPRB , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PRB_Id }, + { &hf_nr_rrc_format , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_format }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUCCH_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_PUCCH_Resource, PUCCH_Resource_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource_sequence_of[1] = { + { &hf_nr_rrc_resourceToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_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_maxNrofPUCCH_Resources_OF_PUCCH_Resource, SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource_sequence_of, + 1, maxNrofPUCCH_Resources, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_resourceToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_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_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId, SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId_sequence_of, + 1, maxNrofPUCCH_Resources, 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, - 2, NULL, FALSE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_dmrs_AdditionalPosition_vals[] = { - { 0, "pos0" }, - { 1, "pos1" }, - { 2, "pos2" }, - { 3, "pos3" }, +static const value_string nr_rrc_T_additionalDMRS_vals[] = { + { 0, "true" }, { 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_) { +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, - 4, NULL, FALSE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_nrofPorts_01_vals[] = { - { 0, "n1" }, - { 1, "n2" }, +static const value_string nr_rrc_PUCCH_MaxCodeRate_vals[] = { + { 0, "zeroDot08" }, + { 1, "zeroDot15" }, + { 2, "zeroDot25" }, + { 3, "zeroDot35" }, + { 4, "zeroDot45" }, + { 5, "zeroDot60" }, + { 6, "zeroDot80" }, { 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_) { +dissect_nr_rrc_PUCCH_MaxCodeRate(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); + 7, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_nrofSlots_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 2, "n8" }, + { 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, + 3, 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 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 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 }, +static const per_sequence_t PUCCH_FormatConfig_sequence[] = { + { &hf_nr_rrc_interslotFrequencyHopping, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_interslotFrequencyHopping }, + { &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_PUCCH_MaxCodeRate }, + { &hf_nr_rrc_nrofSlots , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nrofSlots }, + { &hf_nr_rrc_pi2PBSK , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pi2PBSK }, + { &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_Downlink_PTRS_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_PUCCH_FormatConfig(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); + ett_nr_rrc_PUCCH_FormatConfig, PUCCH_FormatConfig_sequence); return offset; } -static const value_string nr_rrc_T_phaseTracking_RS_vals[] = { +static const value_string nr_rrc_T_format1_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_phaseTracking_RS_choice[] = { +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_04 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_Downlink_PTRS_Config }, + { 1, &hf_nr_rrc_setup_32 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_FormatConfig }, { 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_) { +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_phaseTracking_RS, T_phaseTracking_RS_choice, + ett_nr_rrc_T_format1, T_format1_choice, NULL); return offset; } -static const value_string nr_rrc_T_tci_PresentInDCI_vals[] = { - { 0, "enabled" }, +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_32 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_FormatConfig }, + { 0, NULL, 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); +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_xOverhead_vals[] = { - { 0, "n0" }, - { 1, "n6" }, - { 2, "n12" }, - { 3, "n18" }, +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_32 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_FormatConfig }, + { 0, NULL, 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); +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_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_32 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_FormatConfig }, + { 0, NULL, 0, NULL } +}; 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); +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 int +dissect_nr_rrc_SchedulingRequestResourceId(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, maxNrofSR_Resources, NULL, FALSE); + + 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_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 7U, NULL, FALSE); return offset; } static const value_string nr_rrc_T_periodicityAndOffset_01_vals[] = { - { 0, "n5" }, - { 1, "n10" }, - { 2, "n20" }, - { 3, "n40" }, + { 0, "sym2" }, + { 1, "sym6or7" }, + { 2, "sl1" }, + { 3, "sl2" }, + { 4, "sl4" }, + { 5, "sl5" }, + { 6, "sl8" }, + { 7, "sl10" }, + { 8, "sl16" }, + { 9, "sl20" }, + { 10, "sl40" }, + { 11, "sl80" }, + { 12, "sl160" }, + { 13, "sl320" }, + { 14, "sl640" }, { 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, &hf_nr_rrc_sym2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_sym6or7 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 2, &hf_nr_rrc_sl1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 3, &hf_nr_rrc_sl2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_1 }, + { 4, &hf_nr_rrc_sl4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_3 }, + { 5, &hf_nr_rrc_sl5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 6, &hf_nr_rrc_sl8 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_7 }, + { 7, &hf_nr_rrc_sl10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 8, &hf_nr_rrc_sl16 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_15 }, + { 9, &hf_nr_rrc_sl20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 10, &hf_nr_rrc_sl40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 11, &hf_nr_rrc_sl80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 12, &hf_nr_rrc_sl160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 13, &hf_nr_rrc_sl320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 14, &hf_nr_rrc_sl640 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_639 }, { 0, NULL, 0, NULL } }; @@ -6472,188 +9707,410 @@ dissect_nr_rrc_T_periodicityAndOffset_01(tvbuff_t *tvb _U_, int offset _U_, asn1 } -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 }, +static const per_sequence_t SchedulingRequestResourceConfig_sequence[] = { + { &hf_nr_rrc_schedulingRequestResourceId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SchedulingRequestResourceId }, + { &hf_nr_rrc_schedulingRequestID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SchedulingRequestId }, + { &hf_nr_rrc_periodicityAndOffset_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_periodicityAndOffset_01 }, + { &hf_nr_rrc_resource , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PUCCH_ResourceId }, { 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_) { +dissect_nr_rrc_SchedulingRequestResourceConfig(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); + ett_nr_rrc_SchedulingRequestResourceConfig, SchedulingRequestResourceConfig_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig_sequence_of[1] = { + { &hf_nr_rrc_schedulingRequestResourceToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SchedulingRequestResourceConfig }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig, SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig_sequence_of, + 1, maxNrofSR_Resources, FALSE); return offset; } -static const value_string nr_rrc_T_rateMatchPatterns_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId_sequence_of[1] = { + { &hf_nr_rrc_schedulingRequestResourceToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SchedulingRequestResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId(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_Resources_OF_SchedulingRequestResourceId, SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId_sequence_of, + 1, maxNrofSR_Resources, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_2_OF_PUCCH_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_multi_CSI_PUCCH_ResourceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_2_OF_PUCCH_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_2_OF_PUCCH_ResourceId, SEQUENCE_SIZE_1_2_OF_PUCCH_ResourceId_sequence_of, + 1, 2, FALSE); + + return offset; +} + + +static const per_sequence_t T_dl_DataToUL_ACK_sequence_of[1] = { + { &hf_nr_rrc_dl_DataToUL_ACK_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_15 }, +}; + +static int +dissect_nr_rrc_T_dl_DataToUL_ACK(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_dl_DataToUL_ACK, T_dl_DataToUL_ACK_sequence_of, + 8, 8, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_PUCCH_SpatialRelationInfoId(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, maxNrofSpatialRelationInfos, 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 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 value_string nr_rrc_T_referenceSignal_vals[] = { + { 0, "ssb-Index" }, + { 1, "csi-RS-Index" }, + { 2, "srs" }, { 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 }, +static const per_choice_t T_referenceSignal_choice[] = { + { 0, &hf_nr_rrc_ssb_Index , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SSB_Index }, + { 1, &hf_nr_rrc_csi_RS_Index_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { 2, &hf_nr_rrc_srs , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SRS_ResourceId }, { 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_) { +dissect_nr_rrc_T_referenceSignal(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, + ett_nr_rrc_T_referenceSignal, T_referenceSignal_choice, NULL); return offset; } -static const value_string nr_rrc_T_nrofCRS_Ports_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 2, "n4" }, + +static int +dissect_nr_rrc_PUCCH_PathlossReferenceRS_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, maxNrofPUCCH_PathlossReferenceRSs_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_P0_PUCCH_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, 8U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_closedLoopIndex_vals[] = { + { 0, "i0" }, + { 1, "i1" }, { 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_) { +dissect_nr_rrc_T_closedLoopIndex(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); + 2, 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 const per_sequence_t PUCCH_SpatialRelationInfo_sequence[] = { + { &hf_nr_rrc_pucch_SpatialRelationInfoId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_SpatialRelationInfoId }, + { &hf_nr_rrc_referenceSignal, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_referenceSignal }, + { &hf_nr_rrc_pucch_PathlossReferenceRS_Id, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_PathlossReferenceRS_Id }, + { &hf_nr_rrc_p0_PUCCH_Id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_P0_PUCCH_Id }, + { &hf_nr_rrc_closedLoopIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_closedLoopIndex }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUCCH_SpatialRelationInfo(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_SpatialRelationInfo, PUCCH_SpatialRelationInfo_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo_sequence_of[1] = { + { &hf_nr_rrc_spatialRelationInfoToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_SpatialRelationInfo }, }; +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo(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_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo, SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo_sequence_of, + 1, maxNrofSpatialRelationInfos, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId_sequence_of[1] = { + { &hf_nr_rrc_spatialRelationInfoToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_SpatialRelationInfoId }, +}; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId(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_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId, SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId_sequence_of, + 1, maxNrofSpatialRelationInfos, FALSE); 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 }, + +static int +dissect_nr_rrc_INTEGER_M16_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, + -16, 15U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t P0_PUCCH_sequence[] = { + { &hf_nr_rrc_p0_PUCCH_Id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_P0_PUCCH_Id }, + { &hf_nr_rrc_p0_PUCCH_Value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M16_15 }, { 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_) { +dissect_nr_rrc_P0_PUCCH(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); + ett_nr_rrc_P0_PUCCH, P0_PUCCH_sequence); return offset; } -static const value_string nr_rrc_T_lte_CRS_ToMatchAround_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH_sequence_of[1] = { + { &hf_nr_rrc_p0_Set_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_P0_PUCCH }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH(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_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH, SEQUENCE_SIZE_1_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH_sequence_of, + 1, maxNrofPUCCH_P0_PerSet, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_referenceSignal_01_vals[] = { + { 0, "ssb-Index" }, + { 1, "csi-RS-Index" }, { 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 }, +static const per_choice_t T_referenceSignal_01_choice[] = { + { 0, &hf_nr_rrc_ssb_Index , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SSB_Index }, + { 1, &hf_nr_rrc_csi_RS_Index_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, { 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_) { +dissect_nr_rrc_T_referenceSignal_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_lte_CRS_ToMatchAround, T_lte_CRS_ToMatchAround_choice, + ett_nr_rrc_T_referenceSignal_01, T_referenceSignal_01_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 }, +static const per_sequence_t PUCCH_PathlossReferenceRS_sequence[] = { + { &hf_nr_rrc_pucch_PathlossReferenceRS_Id, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_PathlossReferenceRS_Id }, + { &hf_nr_rrc_referenceSignal_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_referenceSignal_01 }, { 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_) { +dissect_nr_rrc_PUCCH_PathlossReferenceRS(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); + ett_nr_rrc_PUCCH_PathlossReferenceRS, PUCCH_PathlossReferenceRS_sequence); return offset; } -static const value_string nr_rrc_T_rbg_Size_vals[] = { - { 0, "config1" }, - { 1, "config2" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS_sequence_of[1] = { + { &hf_nr_rrc_pathlossReferenceRSs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_PathlossReferenceRS }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS(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_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS, SEQUENCE_SIZE_1_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS_sequence_of, + 1, maxNrofPUCCH_PathlossReferenceRSs, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_twoPUCCH_PC_AdjustmentStates_vals[] = { + { 0, "twoStates" }, { 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_) { +dissect_nr_rrc_T_twoPUCCH_PC_AdjustmentStates(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); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_mcs_Table_vals[] = { - { 0, "dl-64QAM" }, - { 1, "dl-256QAM" }, +static const per_sequence_t PUCCH_PowerControl_sequence[] = { + { &hf_nr_rrc_deltaF_PUCCH_f0, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M16_15 }, + { &hf_nr_rrc_deltaF_PUCCH_f1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M16_15 }, + { &hf_nr_rrc_deltaF_PUCCH_f2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M16_15 }, + { &hf_nr_rrc_deltaF_PUCCH_f3, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M16_15 }, + { &hf_nr_rrc_deltaF_PUCCH_f4, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M16_15 }, + { &hf_nr_rrc_p0_Set , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH }, + { &hf_nr_rrc_pathlossReferenceRSs, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS }, + { &hf_nr_rrc_twoPUCCH_PC_AdjustmentStates, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPUCCH_PC_AdjustmentStates }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUCCH_PowerControl(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_PowerControl, PUCCH_PowerControl_sequence); + + return offset; +} + + +static const per_sequence_t PUCCH_Config_sequence[] = { + { &hf_nr_rrc_resourceSetToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet }, + { &hf_nr_rrc_resourceSetToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId }, + { &hf_nr_rrc_resourceToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource }, + { &hf_nr_rrc_resourceToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId }, + { &hf_nr_rrc_format1 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_format1 }, + { &hf_nr_rrc_format2 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_format2 }, + { &hf_nr_rrc_format3 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_format3 }, + { &hf_nr_rrc_format4 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_format4 }, + { &hf_nr_rrc_schedulingRequestResourceToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig }, + { &hf_nr_rrc_schedulingRequestResourceToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId }, + { &hf_nr_rrc_multi_CSI_PUCCH_ResourceList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_2_OF_PUCCH_ResourceId }, + { &hf_nr_rrc_dl_DataToUL_ACK, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dl_DataToUL_ACK }, + { &hf_nr_rrc_spatialRelationInfoToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo }, + { &hf_nr_rrc_spatialRelationInfoToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId }, + { &hf_nr_rrc_pucch_PowerControl, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PUCCH_PowerControl }, + { 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_pucch_Config_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_pucch_Config_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_PUCCH_Config }, + { 0, NULL, 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); +dissect_nr_rrc_T_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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_pucch_Config, T_pucch_Config_choice, + NULL); return offset; } -static const value_string nr_rrc_T_maxNrofCodeWordsScheduledByDCI_vals[] = { - { 0, "n1" }, - { 1, "n2" }, + +static int +dissect_nr_rrc_INTEGER_0_1007(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 const value_string nr_rrc_T_txConfig_vals[] = { + { 0, "codebook" }, + { 1, "nonCodebook" }, { 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_) { +dissect_nr_rrc_T_txConfig(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); @@ -6661,51 +10118,33 @@ dissect_nr_rrc_T_maxNrofCodeWordsScheduledByDCI(tvbuff_t *tvb _U_, int offset _U } -static const value_string nr_rrc_T_harq_ACK_Codebook_vals[] = { - { 0, "semiStatic" }, - { 1, "dynamic" }, +static const value_string nr_rrc_T_dmrs_Type_01_vals[] = { + { 0, "type2" }, { 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_) { +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); + 1, 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 const value_string nr_rrc_T_dmrs_AdditionalPosition_01_vals[] = { + { 0, "pos0" }, + { 1, "pos1" }, + { 2, "pos3" }, + { 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); +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, + 3, NULL, FALSE, 0, NULL); return offset; } @@ -6713,19 +10152,23 @@ dissect_nr_rrc_PDSCH_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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_) { +dissect_nr_rrc_INTEGER_1_276(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); + 1U, 276U, NULL, FALSE); return offset; } +static const per_sequence_t T_frequencyDensity_01_sequence_of[1] = { + { &hf_nr_rrc_frequencyDensity_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, +}; 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); +dissect_nr_rrc_T_frequencyDensity_01(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_frequencyDensity_01, T_frequencyDensity_01_sequence_of, + 2, 2, FALSE); return offset; } @@ -6733,64 +10176,54 @@ dissect_nr_rrc_CSI_ResourceSetId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * 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_) { +dissect_nr_rrc_INTEGER_0_29(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); + 0U, 29U, 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 const per_sequence_t T_timeDensity_01_sequence_of[1] = { + { &hf_nr_rrc_timeDensity_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, }; - 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); +dissect_nr_rrc_T_timeDensity_01(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_timeDensity_01, T_timeDensity_01_sequence_of, + 3, 3, FALSE); return offset; } -static const value_string nr_rrc_T_cdm_Value_vals[] = { +static const value_string nr_rrc_T_maxNrofPorts_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_) { +dissect_nr_rrc_T_maxNrofPorts(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); + 2, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_cdm_Pattern_vals[] = { - { 0, "freqOnly" }, - { 1, "timeAndFreq" }, - { 2, "timeOnly" }, +static const value_string nr_rrc_T_resourceElementOffset_01_vals[] = { + { 0, "offset01" }, + { 1, "offset10" }, + { 2, "offset11" }, { 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_) { +dissect_nr_rrc_T_resourceElementOffset_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, 3, NULL, FALSE, 0, NULL); @@ -6798,17 +10231,17 @@ dissect_nr_rrc_T_cdm_Pattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const value_string nr_rrc_T_csi_RS_Density_vals[] = { - { 0, "dot5" }, - { 1, "one" }, - { 2, "three" }, - { 3, "spare" }, +static const value_string nr_rrc_T_ptrs_Power_vals[] = { + { 0, "p00" }, + { 1, "p01" }, + { 2, "p10" }, + { 3, "p11" }, { 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_) { +dissect_nr_rrc_T_ptrs_Power(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); @@ -6816,195 +10249,346 @@ dissect_nr_rrc_T_csi_RS_Density(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } +static const per_sequence_t T_cp_OFDM_sequence[] = { + { &hf_nr_rrc_frequencyDensity_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_frequencyDensity_01 }, + { &hf_nr_rrc_timeDensity_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_timeDensity_01 }, + { &hf_nr_rrc_maxNrofPorts , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNrofPorts }, + { &hf_nr_rrc_resourceElementOffset_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_resourceElementOffset_01 }, + { &hf_nr_rrc_ptrs_Power , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ptrs_Power }, + { NULL, 0, 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_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_cp_OFDM, T_cp_OFDM_sequence); + + return offset; +} + + +static const per_sequence_t T_sampleDensity_sequence_of[1] = { + { &hf_nr_rrc_sampleDensity_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, +}; 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); +dissect_nr_rrc_T_sampleDensity(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_sampleDensity, T_sampleDensity_sequence_of, + 5, 5, 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" }, +static const value_string nr_rrc_T_timeDensity_02_vals[] = { + { 0, "d2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_timeDensity_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 per_sequence_t T_dft_S_OFDM_sequence[] = { + { &hf_nr_rrc_sampleDensity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sampleDensity }, + { &hf_nr_rrc_timeDensity_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_timeDensity_02 }, + { NULL, 0, 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_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_dft_S_OFDM, T_dft_S_OFDM_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_modeSpecificParameters_vals[] = { + { 0, "cp-OFDM" }, + { 1, "dft-S-OFDM" }, { 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 }, +static const per_choice_t T_modeSpecificParameters_choice[] = { + { 0, &hf_nr_rrc_cp_OFDM , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_cp_OFDM }, + { 1, &hf_nr_rrc_dft_S_OFDM , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_dft_S_OFDM }, { 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_) { +dissect_nr_rrc_T_modeSpecificParameters(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, + ett_nr_rrc_T_modeSpecificParameters, T_modeSpecificParameters_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 }, +static const per_sequence_t PTRS_UplinkConfig_sequence[] = { + { &hf_nr_rrc_modeSpecificParameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_modeSpecificParameters }, { 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_) { +dissect_nr_rrc_PTRS_UplinkConfig(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); + ett_nr_rrc_PTRS_UplinkConfig, PTRS_UplinkConfig_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 const value_string nr_rrc_T_phaseTrackingRS_01_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_phaseTrackingRS_01_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_19 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PTRS_UplinkConfig }, + { 0, NULL, 0, NULL } }; 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); +dissect_nr_rrc_T_phaseTrackingRS_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_phaseTrackingRS_01, T_phaseTrackingRS_01_choice, + NULL); 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 }, +static const value_string nr_rrc_T_maxLength_01_vals[] = { + { 0, "len2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxLength_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 int +dissect_nr_rrc_INTEGER_0_65535(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, 65535U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_disabled_01_sequence[] = { + { &hf_nr_rrc_scramblingID0, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_65535 }, + { &hf_nr_rrc_scramblingID1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_65535 }, { 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_) { +dissect_nr_rrc_T_disabled_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_CSI_ResourceSet, CSI_ResourceSet_sequence); + ett_nr_rrc_T_disabled_01, T_disabled_01_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 const value_string nr_rrc_T_disableSequenceGroupHopping_vals[] = { + { 0, "disabled" }, + { 0, NULL } }; + 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); +dissect_nr_rrc_T_disableSequenceGroupHopping(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_sequenceHoppingEnabled_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sequenceHoppingEnabled(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 CSI_SSB_Resource_sequence[] = { +static const per_sequence_t T_enabled_sequence[] = { + { &hf_nr_rrc_nPUSCH_Identity, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1007 }, + { &hf_nr_rrc_disableSequenceGroupHopping, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_disableSequenceGroupHopping }, + { &hf_nr_rrc_sequenceHoppingEnabled, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sequenceHoppingEnabled }, { 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_) { +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_CSI_SSB_Resource, CSI_SSB_Resource_sequence); + ett_nr_rrc_T_enabled, T_enabled_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 const value_string nr_rrc_T_transformPrecoding_vals[] = { + { 0, "disabled" }, + { 1, "enabled" }, + { 0, NULL } +}; + +static const per_choice_t T_transformPrecoding_choice[] = { + { 0, &hf_nr_rrc_disabled_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_disabled_01 }, + { 1, &hf_nr_rrc_enabled_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_enabled }, + { 0, NULL, 0, NULL } }; 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); +dissect_nr_rrc_T_transformPrecoding(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_transformPrecoding, T_transformPrecoding_choice, + NULL); return offset; } -static const value_string nr_rrc_T_resourceType_vals[] = { - { 0, "aperiodic" }, - { 1, "semiPersistent" }, - { 2, "periodic" }, +static const per_sequence_t DMRS_UplinkConfig_sequence[] = { + { &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_phaseTrackingRS_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_phaseTrackingRS_01 }, + { &hf_nr_rrc_maxLength_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_maxLength_01 }, + { &hf_nr_rrc_transformPrecoding, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_transformPrecoding }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_DMRS_UplinkConfig(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_DMRS_UplinkConfig, DMRS_UplinkConfig_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 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 }, +static const per_choice_t T_dmrs_UplinkForPUSCH_MappingTypeA_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_33 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DMRS_UplinkConfig }, { 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_) { +dissect_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA(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, + ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA, T_dmrs_UplinkForPUSCH_MappingTypeA_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 }, +static const value_string nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_dmrs_UplinkForPUSCH_MappingTypeB_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_33 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DMRS_UplinkConfig }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB(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_dmrs_UplinkForPUSCH_MappingTypeB, T_dmrs_UplinkForPUSCH_MappingTypeB_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_tpc_Accumulation_vals[] = { + { 0, "disabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_tpc_Accumulation(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_P0_PUSCH_AlphaSetId(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, maxNrofP0_PUSCH_AlphaSets_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t P0_PUSCH_AlphaSet_sequence[] = { + { &hf_nr_rrc_p0_PUSCH_AlphaSetId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_P0_PUSCH_AlphaSetId }, + { &hf_nr_rrc_p0 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M16_15 }, + { &hf_nr_rrc_alpha , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Alpha }, { 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_) { +dissect_nr_rrc_P0_PUSCH_AlphaSet(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); + ett_nr_rrc_P0_PUSCH_AlphaSet, P0_PUSCH_AlphaSet_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet_sequence_of[1] = { + { &hf_nr_rrc_p0_AlphaSets_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_P0_PUSCH_AlphaSet }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet, SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet_sequence_of, + 1, maxNrofP0_PUSCH_AlphaSets, FALSE); return offset; } @@ -7012,147 +10596,467 @@ dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_Resource 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_) { +dissect_nr_rrc_PUSCH_PathlossReferenceRS_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, maxNrofCSI_ReportConfig_1, NULL, FALSE); + 0U, maxNrofPUSCH_PathlossReferenceRSs_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" }, +static const value_string nr_rrc_T_referenceSignal_02_vals[] = { + { 0, "ssb-Index" }, + { 1, "csi-RS-Index" }, { 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 }, +static const per_choice_t T_referenceSignal_02_choice[] = { + { 0, &hf_nr_rrc_ssb_Index , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SSB_Index }, + { 1, &hf_nr_rrc_csi_RS_Index_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, { 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_) { +dissect_nr_rrc_T_referenceSignal_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_reportSlotConfig, T_reportSlotConfig_choice, + ett_nr_rrc_T_referenceSignal_02, T_referenceSignal_02_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 }, +static const per_sequence_t PUSCH_PathlossReferenceRS_sequence[] = { + { &hf_nr_rrc_pusch_PathlossReferenceRS_Id, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUSCH_PathlossReferenceRS_Id }, + { &hf_nr_rrc_referenceSignal_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_referenceSignal_02 }, { 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_) { +dissect_nr_rrc_PUSCH_PathlossReferenceRS(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); + ett_nr_rrc_PUSCH_PathlossReferenceRS, PUSCH_PathlossReferenceRS_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" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_sequence_of[1] = { + { &hf_nr_rrc_pathlossReferenceRSToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUSCH_PathlossReferenceRS }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS(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_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS, SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_sequence_of, + 1, maxNrofPUSCH_PathlossReferenceRSs, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_Id_sequence_of[1] = { + { &hf_nr_rrc_pathlossReferenceRSToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUSCH_PathlossReferenceRS_Id }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_Id, SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_Id_sequence_of, + 1, maxNrofPUSCH_PathlossReferenceRSs, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_twoPUSCH_PC_AdjustmentStates_vals[] = { + { 0, "twoStates" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_twoPUSCH_PC_AdjustmentStates(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_deltaMCS_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_deltaMCS(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_SRI_PUSCH_PowerControlId(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, maxNrofSRI_PUSCH_Mappings_1, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_sri_PUSCH_ClosedLoopIndex_vals[] = { + { 0, "i0" }, + { 1, "i1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sri_PUSCH_ClosedLoopIndex(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 SRI_PUSCH_PowerControl_sequence[] = { + { &hf_nr_rrc_sri_PUSCH_PowerControlId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRI_PUSCH_PowerControlId }, + { &hf_nr_rrc_sri_PUSCH_PathlossReferenceRS_Id, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUSCH_PathlossReferenceRS_Id }, + { &hf_nr_rrc_sri_P0_PUSCH_AlphaSetId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_P0_PUSCH_AlphaSetId }, + { &hf_nr_rrc_sri_PUSCH_ClosedLoopIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sri_PUSCH_ClosedLoopIndex }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SRI_PUSCH_PowerControl(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_SRI_PUSCH_PowerControl, SRI_PUSCH_PowerControl_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl_sequence_of[1] = { + { &hf_nr_rrc_sri_PUSCH_MappingToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRI_PUSCH_PowerControl }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl(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_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl, SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl_sequence_of, + 1, maxNrofSRI_PUSCH_Mappings, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId_sequence_of[1] = { + { &hf_nr_rrc_sri_PUSCH_MappingToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRI_PUSCH_PowerControlId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId(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_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId, SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId_sequence_of, + 1, maxNrofSRI_PUSCH_Mappings, FALSE); + + return offset; +} + + +static const per_sequence_t PUSCH_PowerControl_sequence[] = { + { &hf_nr_rrc_tpc_Accumulation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_tpc_Accumulation }, + { &hf_nr_rrc_msg3_Alpha , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Alpha }, + { &hf_nr_rrc_p0_NominalWithoutGrant, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M202_24 }, + { &hf_nr_rrc_p0_AlphaSets , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet }, + { &hf_nr_rrc_pathlossReferenceRSToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS }, + { &hf_nr_rrc_pathlossReferenceRSToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_Id }, + { &hf_nr_rrc_twoPUSCH_PC_AdjustmentStates, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPUSCH_PC_AdjustmentStates }, + { &hf_nr_rrc_deltaMCS , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_deltaMCS }, + { &hf_nr_rrc_sri_PUSCH_MappingToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl }, + { &hf_nr_rrc_sri_PUSCH_MappingToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUSCH_PowerControl(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_PowerControl, PUSCH_PowerControl_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_frequencyHopping_01_vals[] = { + { 0, "mode1" }, + { 1, "mode2" }, { 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 }, + +static int +dissect_nr_rrc_T_frequencyHopping_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 int +dissect_nr_rrc_INTEGER_1_maxNrofPhysicalResourceBlocks_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, maxNrofPhysicalResourceBlocks_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_frequencyHoppingOffsetLists_sequence_of[1] = { + { &hf_nr_rrc_frequencyHoppingOffsetLists_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxNrofPhysicalResourceBlocks_1 }, +}; + +static int +dissect_nr_rrc_T_frequencyHoppingOffsetLists(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_frequencyHoppingOffsetLists, T_frequencyHoppingOffsetLists_sequence_of, + 1, 4, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_resourceAllocation_02_vals[] = { + { 0, "resourceAllocationType0" }, + { 1, "resourceAllocationType1" }, + { 2, "dynamicSwitch" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_resourceAllocation_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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_pusch_AggregationFactor_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 2, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pusch_AggregationFactor(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_mcs_Table_02_vals[] = { + { 0, "qam256" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mcs_Table_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_mcs_TableTransformPrecoder_01_vals[] = { + { 0, "qam256" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mcs_TableTransformPrecoder_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_transformPrecoder_01_vals[] = { + { 0, "enabled" }, + { 1, "disabled" }, + { 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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_codebookSubset_vals[] = { + { 0, "fullyAndPartialAndNonCoherent" }, + { 1, "partialAndNonCoherent" }, + { 2, "nonCoherent" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_codebookSubset(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_rbg_Size_02_vals[] = { + { 0, "config2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_rbg_Size_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 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_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_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_4_OF_BetaOffsets, SEQUENCE_SIZE_4_OF_BetaOffsets_sequence_of, + 4, 4, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_betaOffsets_vals[] = { + { 0, "dynamic" }, + { 1, "semiStatic" }, + { 0, NULL } +}; + +static const per_choice_t T_betaOffsets_choice[] = { + { 0, &hf_nr_rrc_dynamic_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_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_reportSlotConfig_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_betaOffsets(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, + ett_nr_rrc_T_betaOffsets, T_betaOffsets_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 const value_string nr_rrc_T_scaling_vals[] = { + { 0, "f0p5" }, + { 1, "f0p65" }, + { 2, "f0p8" }, + { 3, "f1" }, + { 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); +dissect_nr_rrc_T_scaling(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_aperiodic_sequence[] = { - { &hf_nr_rrc_aperiodicReportSlotOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NULL }, +static const per_sequence_t UCI_OnPUSCH_sequence[] = { + { &hf_nr_rrc_betaOffsets , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_betaOffsets }, + { &hf_nr_rrc_scaling , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_scaling }, { 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_) { +dissect_nr_rrc_UCI_OnPUSCH(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); + ett_nr_rrc_UCI_OnPUSCH, UCI_OnPUSCH_sequence); return offset; } -static const value_string nr_rrc_T_reportConfigType_vals[] = { - { 0, "periodic" }, - { 1, "semiPersistent" }, - { 2, "aperiodic" }, +static const value_string nr_rrc_T_uci_OnPUSCH_01_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 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 }, +static const per_choice_t T_uci_OnPUSCH_01_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_34 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_UCI_OnPUSCH }, { 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_) { +dissect_nr_rrc_T_uci_OnPUSCH_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_reportConfigType, T_reportConfigType_choice, + ett_nr_rrc_T_uci_OnPUSCH_01, T_uci_OnPUSCH_01_choice, NULL); return offset; } -static const value_string nr_rrc_T_pdsch_BundleSizeForCSI_vals[] = { +static const value_string nr_rrc_T_vrb_ToPRB_Interleaver_01_vals[] = { { 0, "n2" }, { 1, "n4" }, { 0, NULL } @@ -7160,7 +11064,7 @@ static const value_string nr_rrc_T_pdsch_BundleSizeForCSI_vals[] = { 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_) { +dissect_nr_rrc_T_vrb_ToPRB_Interleaver_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); @@ -7168,63 +11072,68 @@ dissect_nr_rrc_T_pdsch_BundleSizeForCSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ } -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 }, +static const per_sequence_t PUSCH_Config_sequence[] = { + { &hf_nr_rrc_dataScramblingIdentityPUSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1007 }, + { &hf_nr_rrc_txConfig , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_txConfig }, + { &hf_nr_rrc_dmrs_UplinkForPUSCH_MappingTypeA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA }, + { &hf_nr_rrc_dmrs_UplinkForPUSCH_MappingTypeB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB }, + { &hf_nr_rrc_pusch_PowerControl, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PUSCH_PowerControl }, + { &hf_nr_rrc_frequencyHopping_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_frequencyHopping_01 }, + { &hf_nr_rrc_frequencyHoppingOffsetLists, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_frequencyHoppingOffsetLists }, + { &hf_nr_rrc_resourceAllocation_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourceAllocation_02 }, + { &hf_nr_rrc_pusch_AllocationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofUL_Allocations_OF_PUSCH_TimeDomainResourceAllocation }, + { &hf_nr_rrc_pusch_AggregationFactor, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_AggregationFactor }, + { &hf_nr_rrc_mcs_Table_02 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_mcs_Table_02 }, + { &hf_nr_rrc_mcs_TableTransformPrecoder_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_mcs_TableTransformPrecoder_01 }, + { &hf_nr_rrc_transformPrecoder_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecoder_01 }, + { &hf_nr_rrc_codebookSubset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_codebookSubset }, + { &hf_nr_rrc_maxRank , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_4 }, + { &hf_nr_rrc_rbg_Size_02 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rbg_Size_02 }, + { &hf_nr_rrc_uci_OnPUSCH_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_uci_OnPUSCH_01 }, + { &hf_nr_rrc_vrb_ToPRB_Interleaver_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_vrb_ToPRB_Interleaver_01 }, { 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_) { +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_T_cRI_RI_i1_CQI, T_cRI_RI_i1_CQI_sequence); + ett_nr_rrc_PUSCH_Config, PUSCH_Config_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" }, +static const value_string nr_rrc_T_pusch_Config_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 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 }, +static const per_choice_t T_pusch_Config_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_PUSCH_Config }, { 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_) { +dissect_nr_rrc_T_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_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_reportQuantity, T_reportQuantity_choice, + ett_nr_rrc_T_pusch_Config, T_pusch_Config_choice, NULL); return offset; } -static const value_string nr_rrc_T_cqi_FormatIndicator_vals[] = { - { 0, "widebandCQI" }, - { 1, "subbandCQI" }, +static const value_string nr_rrc_T_frequencyHopping_vals[] = { + { 0, "mode1" }, + { 1, "mode2" }, { 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_) { +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); @@ -7232,15 +11141,15 @@ dissect_nr_rrc_T_cqi_FormatIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } -static const value_string nr_rrc_T_pmi_FormatIndicator_vals[] = { - { 0, "widebandPMI" }, - { 1, "subbandPMI" }, +static const value_string nr_rrc_T_mcs_Table_vals[] = { + { 0, "qam64" }, + { 1, "qam256" }, { 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_) { +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); @@ -7248,65 +11157,153 @@ dissect_nr_rrc_T_pmi_FormatIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } +static const value_string nr_rrc_T_mcs_TableTransformPrecoder_vals[] = { + { 0, "qam256" }, + { 0, NULL } +}; + 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); +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, + 1, NULL, FALSE, 0, 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 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_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); +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_codebookConfig_N1_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 2, "n3" }, - { 3, "n4" }, - { 4, "n6" }, - { 5, "n8" }, - { 6, "n12" }, - { 7, "n16" }, +static const value_string nr_rrc_CG_UCI_OnPUSCH_vals[] = { + { 0, "dynamic" }, + { 1, "semiStatic" }, + { 0, NULL } +}; + +static const per_choice_t CG_UCI_OnPUSCH_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_CG_UCI_OnPUSCH(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_CG_UCI_OnPUSCH, CG_UCI_OnPUSCH_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_uci_OnPUSCH_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_uci_OnPUSCH_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_CG_UCI_OnPUSCH }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_uci_OnPUSCH(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_OnPUSCH, T_uci_OnPUSCH_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_resourceAllocation_vals[] = { + { 0, "resourceAllocationType0" }, + { 1, "resourceAllocationType1" }, + { 2, "dynamicSwitch" }, { 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_) { +dissect_nr_rrc_T_resourceAllocation(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); + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_rbg_Size_vals[] = { + { 0, "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, + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_codebookConfig_N2_vals[] = { +static const value_string nr_rrc_T_powerControlLoopToUse_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_powerControlLoopToUse(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_repK_vals[] = { { 0, "n1" }, { 1, "n2" }, - { 2, "n3" }, - { 3, "n4" }, + { 2, "n4" }, + { 3, "n8" }, { 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_) { +dissect_nr_rrc_T_repK(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); @@ -7314,49 +11311,132 @@ dissect_nr_rrc_T_codebookConfig_N2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const value_string nr_rrc_T_subType_vals[] = { - { 0, "typeI-SinglePanel" }, - { 1, "typeI-MultiPanel" }, +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_subType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 2, NULL, FALSE, 0, NULL); + 3, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_codebookMode_vals[] = { - { 0, "config1" }, - { 1, "config2" }, +static const value_string nr_rrc_T_periodicity_vals[] = { + { 0, "sym2" }, + { 1, "sym7" }, + { 2, "sym1x14" }, + { 3, "sym2x14" }, + { 4, "sym4x14" }, + { 5, "sym5x14" }, + { 6, "sym8x14" }, + { 7, "sym10x14" }, + { 8, "sym16x14" }, + { 9, "sym20x14" }, + { 10, "sym32x14" }, + { 11, "sym40x14" }, + { 12, "sym64x14" }, + { 13, "sym80x14" }, + { 14, "sym128x14" }, + { 15, "sym160x14" }, + { 16, "sym256x14" }, + { 17, "sym320x14" }, + { 18, "sym512x14" }, + { 19, "sym640x14" }, + { 20, "sym1024x14" }, + { 21, "sym1280x14" }, + { 22, "sym2560x14" }, + { 23, "sym5120x14" }, + { 24, "sym6" }, + { 25, "sym1x12" }, + { 26, "sym2x12" }, + { 27, "sym4x12" }, + { 28, "sym5x12" }, + { 29, "sym8x12" }, + { 30, "sym10x12" }, + { 31, "sym16x12" }, + { 32, "sym20x12" }, + { 33, "sym32x12" }, + { 34, "sym40x12" }, + { 35, "sym64x12" }, + { 36, "sym80x12" }, + { 37, "sym128x12" }, + { 38, "sym160x12" }, + { 39, "sym256x12" }, + { 40, "sym320x12" }, + { 41, "sym512x12" }, + { 42, "sym640x12" }, + { 43, "sym1280x12" }, + { 44, "sym2560x12" }, { 0, NULL } }; +static value_string_ext nr_rrc_T_periodicity_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_periodicity_vals); + 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_) { +dissect_nr_rrc_T_periodicity(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); + 45, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_numberOfPanels_vals[] = { - { 0, "panels2" }, - { 1, "panels4" }, +static const value_string nr_rrc_T_configuredGrantTimer_vals[] = { + { 0, "sym2" }, + { 1, "sym7" }, + { 2, "sym1x14" }, + { 3, "sym2x14" }, + { 4, "sym4x14" }, + { 5, "sym5x14" }, + { 6, "sym8x14" }, + { 7, "sym10x14" }, + { 8, "sym16x14" }, + { 9, "sym20x14" }, + { 10, "sym32x14" }, + { 11, "sym40x14" }, + { 12, "sym64x14" }, + { 13, "sym80x14" }, + { 14, "sym128x14" }, + { 15, "sym160x14" }, + { 16, "sym256x14" }, + { 17, "sym512x14" }, + { 18, "sym640x14" }, + { 19, "sym6" }, + { 20, "sym1x12" }, + { 21, "sym2x12" }, + { 22, "sym4x12" }, + { 23, "sym5x12" }, + { 24, "sym8x12" }, + { 25, "sym10x12" }, + { 26, "sym16x12" }, + { 27, "sym20x12" }, + { 28, "sym32x12" }, + { 29, "sym40x12" }, + { 30, "sym64x12" }, + { 31, "sym80x12" }, + { 32, "sym128x12" }, + { 33, "sym256x12" }, + { 34, "sym320x12" }, + { 35, "sym512x12" }, + { 36, "sym640x12" }, { 0, NULL } }; +static value_string_ext nr_rrc_T_configuredGrantTimer_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_configuredGrantTimer_vals); + 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_) { +dissect_nr_rrc_T_configuredGrantTimer(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); + 37, NULL, FALSE, 0, NULL); return offset; } @@ -7364,9 +11444,9 @@ dissect_nr_rrc_T_numberOfPanels(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a 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_) { +dissect_nr_rrc_BIT_STRING_SIZE_18(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); + 18, 18, FALSE, NULL, NULL); return offset; } @@ -7374,115 +11454,335 @@ dissect_nr_rrc_T_singlePanel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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); +dissect_nr_rrc_INTEGER_0_maxNrofPUSCH_PathlossReferenceRSs_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, maxNrofPUSCH_PathlossReferenceRSs_1, NULL, FALSE); return offset; } +static const per_sequence_t T_rrc_ConfiguredUplinkGrant_sequence[] = { + { &hf_nr_rrc_timeDomainOffset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_5119 }, + { &hf_nr_rrc_timeDomainAllocation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_15 }, + { &hf_nr_rrc_frequencyDomainAllocation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_18 }, + { &hf_nr_rrc_antennaPort , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_31 }, + { &hf_nr_rrc_dmrs_SeqInitialization, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1 }, + { &hf_nr_rrc_precodingAndNumberOfLayers, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_63 }, + { &hf_nr_rrc_srs_ResourceIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_15 }, + { &hf_nr_rrc_mcsAndTBS , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_31 }, + { &hf_nr_rrc_frequencyHoppingOffset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxNrofPhysicalResourceBlocks_1 }, + { &hf_nr_rrc_pathlossReferenceIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofPUSCH_PathlossReferenceRSs_1 }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_T_rrc_ConfiguredUplinkGrant(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_rrc_ConfiguredUplinkGrant, T_rrc_ConfiguredUplinkGrant_sequence); + + return offset; +} + + +static const per_sequence_t ConfiguredGrantConfig_sequence[] = { + { &hf_nr_rrc_frequencyHopping, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_frequencyHopping }, + { &hf_nr_rrc_cg_DMRS_Configuration, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DMRS_UplinkConfig }, + { &hf_nr_rrc_mcs_Table , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mcs_Table }, + { &hf_nr_rrc_mcs_TableTransformPrecoder, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_mcs_TableTransformPrecoder }, + { &hf_nr_rrc_uci_OnPUSCH , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_uci_OnPUSCH }, + { &hf_nr_rrc_resourceAllocation, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourceAllocation }, + { &hf_nr_rrc_rbg_Size , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_rbg_Size }, + { &hf_nr_rrc_powerControlLoopToUse, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_powerControlLoopToUse }, + { &hf_nr_rrc_p0_PUSCH_Alpha, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_P0_PUSCH_AlphaSetId }, + { &hf_nr_rrc_transformPrecoder, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecoder }, + { &hf_nr_rrc_nrofHARQ_Processes, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_16 }, + { &hf_nr_rrc_repK , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_repK }, + { &hf_nr_rrc_repK_RV , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_repK_RV }, + { &hf_nr_rrc_periodicity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicity }, + { &hf_nr_rrc_configuredGrantTimer, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_configuredGrantTimer }, + { &hf_nr_rrc_rrc_ConfiguredUplinkGrant, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_rrc_ConfiguredUplinkGrant }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ConfiguredGrantConfig(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_ConfiguredGrantConfig, ConfiguredGrantConfig_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_configuredGrantConfig_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_configuredGrantConfig_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_ConfiguredGrantConfig }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_configuredGrantConfig(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_configuredGrantConfig, T_configuredGrantConfig_choice, + NULL); + + 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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_srs_ResourceIdList_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 int +dissect_nr_rrc_INTEGER_0_maxNrofSRS_TriggerStates_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, maxNrofSRS_TriggerStates_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_aperiodic_01_sequence[] = { + { &hf_nr_rrc_aperiodicSRS_ResourceTrigger, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofSRS_TriggerStates_1 }, + { &hf_nr_rrc_csi_RS_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { &hf_nr_rrc_slotOffset , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, + { 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[] = { + { &hf_nr_rrc_associatedCSI_RS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { 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[] = { + { &hf_nr_rrc_associatedCSI_RS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { 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_codebookSubsetRestrictionType1_vals[] = { - { 0, "singlePanel" }, - { 1, "singlePanel2TX" }, - { 2, "multiPanel" }, - { 3, "singlePanelCodebookSubsetRestriction-i2" }, +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_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 }, +static const per_choice_t T_resourceType_01_choice[] = { + { 0, &hf_nr_rrc_aperiodic_01 , 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_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_periodic_01 }, { 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_) { +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_codebookSubsetRestrictionType1, T_codebookSubsetRestrictionType1_choice, + ett_nr_rrc_T_resourceType_01, T_resourceType_01_choice, NULL); return offset; } -static const value_string nr_rrc_T_ri_Restriction_vals[] = { - { 0, "typeI-SinglePanelRI-Restriction" }, - { 1, "typeI-MultiPanelRI-Restriction" }, +static const value_string nr_rrc_T_usage_vals[] = { + { 0, "beamManagement" }, + { 1, "codebook" }, + { 2, "nonCodebook" }, + { 3, "antennaSwitching" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_usage(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_pathlossReferenceRS_vals[] = { + { 0, "ssb-Index" }, + { 1, "csi-RS-Index" }, { 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 }, +static const per_choice_t T_pathlossReferenceRS_choice[] = { + { 0, &hf_nr_rrc_ssb_Index , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SSB_Index }, + { 1, &hf_nr_rrc_csi_RS_Index_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, { 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_) { +dissect_nr_rrc_T_pathlossReferenceRS(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, + ett_nr_rrc_T_pathlossReferenceRS, T_pathlossReferenceRS_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 }, +static const value_string nr_rrc_T_srs_PowerControlAdjustmentStates_vals[] = { + { 0, "sameAsFci2" }, + { 1, "separateClosedLoop" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_srs_PowerControlAdjustmentStates(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 SRS_ResourceSet_sequence[] = { + { &hf_nr_rrc_srs_ResourceSetId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceSetId }, + { &hf_nr_rrc_srs_ResourceIdList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId }, + { &hf_nr_rrc_resourceType_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourceType_01 }, + { &hf_nr_rrc_usage , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_usage }, + { &hf_nr_rrc_alpha , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_Alpha }, + { &hf_nr_rrc_p0_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M202_24 }, + { &hf_nr_rrc_pathlossReferenceRS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pathlossReferenceRS }, + { &hf_nr_rrc_srs_PowerControlAdjustmentStates, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_srs_PowerControlAdjustmentStates }, { 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_) { +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_T_type1, T_type1_sequence); + ett_nr_rrc_SRS_ResourceSet, SRS_ResourceSet_sequence); return offset; } -static const value_string nr_rrc_T_subType_01_vals[] = { - { 0, "typeII" }, - { 1, "typeII-PortSelection" }, +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_subType_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 2, NULL, FALSE, 0, NULL); + 3, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_phaseAlphabetSize_vals[] = { - { 0, "n4" }, - { 1, "n8" }, +static const value_string nr_rrc_T_ptrs_PortIndex_vals[] = { + { 0, "n0" }, + { 1, "n1" }, { 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_) { +dissect_nr_rrc_T_ptrs_PortIndex(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); @@ -7490,16 +11790,78 @@ dissect_nr_rrc_T_phaseAlphabetSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const value_string nr_rrc_T_numberOfBeams_vals[] = { - { 0, "beams2" }, - { 1, "beams3" }, - { 2, "beams4" }, +static const per_sequence_t T_n2_sequence[] = { + { &hf_nr_rrc_combOffset_n2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_1 }, + { &hf_nr_rrc_cyclicShift_n2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_7 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_n2(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_n2, T_n2_sequence); + + return offset; +} + + +static const per_sequence_t T_n4_sequence[] = { + { &hf_nr_rrc_combOffset_n4, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_3 }, + { &hf_nr_rrc_cyclicShift_n4, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_11 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_n4(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_n4, T_n4_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_transmissionComb_vals[] = { + { 0, "n2" }, + { 1, "n4" }, { 0, NULL } }; +static const per_choice_t T_transmissionComb_choice[] = { + { 0, &hf_nr_rrc_n2_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_n2 }, + { 1, &hf_nr_rrc_n4_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_n4 }, + { 0, NULL, 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_) { +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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_transmissionComb, T_transmissionComb_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_5(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, 5U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_nrofSymbols_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofSymbols(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); @@ -7507,29 +11869,34 @@ dissect_nr_rrc_T_numberOfBeams(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -static const value_string nr_rrc_T_portSelectionSamplingSize_vals[] = { +static const value_string nr_rrc_T_repetitionFactor_vals[] = { { 0, "n1" }, { 1, "n2" }, - { 2, "n3" }, - { 3, "n4" }, + { 2, "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_) { +dissect_nr_rrc_T_repetitionFactor(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); + 3, NULL, FALSE, 0, NULL); return offset; } +static const per_sequence_t T_resourceMapping_sequence[] = { + { &hf_nr_rrc_startPosition, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_5 }, + { &hf_nr_rrc_nrofSymbols_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofSymbols }, + { &hf_nr_rrc_repetitionFactor, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_repetitionFactor }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_T_resourceMapping(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_resourceMapping, T_resourceMapping_sequence); return offset; } @@ -7537,215 +11904,477 @@ dissect_nr_rrc_T_codebookSubsetRestrictionType2(tvbuff_t *tvb _U_, int offset _U 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); +dissect_nr_rrc_INTEGER_0_67(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, 67U, NULL, FALSE); return offset; } -static const value_string nr_rrc_T_ri_Restriction_01_vals[] = { - { 0, "typeII-RI-Restriction" }, - { 1, "typeII-PortSelectionRI-Restriction" }, + +static int +dissect_nr_rrc_INTEGER_0_268(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, 268U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_freqHopping_sequence[] = { + { &hf_nr_rrc_c_SRS , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_63 }, + { &hf_nr_rrc_b_SRS , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_3 }, + { &hf_nr_rrc_b_hop , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_3 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_freqHopping(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_freqHopping, T_freqHopping_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_groupOrSequenceHopping_vals[] = { + { 0, "neither" }, + { 1, "groupHopping" }, + { 2, "sequenceHopping" }, { 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 }, + +static int +dissect_nr_rrc_T_groupOrSequenceHopping(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 T_aperiodic_02_sequence[] = { + { NULL, ASN1_EXTENSION_ROOT, 0, NULL } +}; + +static int +dissect_nr_rrc_T_aperiodic_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_aperiodic_02, T_aperiodic_02_sequence); + + return offset; +} + + +static const value_string nr_rrc_SRS_PeriodicityAndOffset_vals[] = { + { 0, "sl1" }, + { 1, "sl2" }, + { 2, "sl4" }, + { 3, "sl5" }, + { 4, "sl8" }, + { 5, "sl10" }, + { 6, "sl16" }, + { 7, "sl20" }, + { 8, "sl32" }, + { 9, "sl40" }, + { 10, "sl64" }, + { 11, "sl80" }, + { 12, "sl160" }, + { 13, "sl320" }, + { 14, "sl640" }, + { 15, "sl1280" }, + { 16, "sl2560" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_SRS_PeriodicityAndOffset_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_SRS_PeriodicityAndOffset_vals); + +static const per_choice_t SRS_PeriodicityAndOffset_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_sl4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_3 }, + { 3, &hf_nr_rrc_sl5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 4, &hf_nr_rrc_sl8 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_7 }, + { 5, &hf_nr_rrc_sl10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 6, &hf_nr_rrc_sl16 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_15 }, + { 7, &hf_nr_rrc_sl20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 8, &hf_nr_rrc_sl32 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_31 }, + { 9, &hf_nr_rrc_sl40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 10, &hf_nr_rrc_sl64 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_63 }, + { 11, &hf_nr_rrc_sl80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 12, &hf_nr_rrc_sl160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 13, &hf_nr_rrc_sl320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 14, &hf_nr_rrc_sl640 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_639 }, + { 15, &hf_nr_rrc_sl1280 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_1279 }, + { 16, &hf_nr_rrc_sl2560 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_2559 }, { 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_) { +dissect_nr_rrc_SRS_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_ri_Restriction_01, T_ri_Restriction_01_choice, + ett_nr_rrc_SRS_PeriodicityAndOffset, SRS_PeriodicityAndOffset_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 }, +static const per_sequence_t T_semi_persistent_01_sequence[] = { + { &hf_nr_rrc_periodicityAndOffset_sp, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_PeriodicityAndOffset }, { 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_) { +dissect_nr_rrc_T_semi_persistent_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_type2, T_type2_sequence); + ett_nr_rrc_T_semi_persistent_01, T_semi_persistent_01_sequence); return offset; } -static const value_string nr_rrc_T_codebookType_vals[] = { - { 0, "type1" }, - { 1, "type2" }, +static const per_sequence_t T_periodic_02_sequence[] = { + { &hf_nr_rrc_periodicityAndOffset_p, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_PeriodicityAndOffset }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_periodic_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_periodic_02, T_periodic_02_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_resourceType_02_vals[] = { + { 0, "aperiodic" }, + { 1, "semi-persistent" }, + { 2, "periodic" }, { 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 }, +static const per_choice_t T_resourceType_02_choice[] = { + { 0, &hf_nr_rrc_aperiodic_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_aperiodic_02 }, + { 1, &hf_nr_rrc_semi_persistent_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_semi_persistent_01 }, + { 2, &hf_nr_rrc_periodic_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_periodic_02 }, { 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_) { +dissect_nr_rrc_T_resourceType_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_codebookType, T_codebookType_choice, + ett_nr_rrc_T_resourceType_02, T_resourceType_02_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 }, +static const value_string nr_rrc_T_spatialRelationInfo_vals[] = { + { 0, "ssb-Index" }, + { 1, "csi-RS-Index" }, + { 2, "srs" }, + { 0, NULL } +}; + +static const per_choice_t T_spatialRelationInfo_choice[] = { + { 0, &hf_nr_rrc_ssb_Index , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SSB_Index }, + { 1, &hf_nr_rrc_csi_RS_Index_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { 2, &hf_nr_rrc_srs , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SRS_ResourceId }, + { 0, NULL, 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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_spatialRelationInfo, T_spatialRelationInfo_choice, + NULL); + + return offset; +} + + +static const per_sequence_t SRS_Resource_sequence[] = { + { &hf_nr_rrc_srs_ResourceId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceId }, + { &hf_nr_rrc_nrofSRS_Ports, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofSRS_Ports }, + { &hf_nr_rrc_ptrs_PortIndex, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ptrs_PortIndex }, + { &hf_nr_rrc_transmissionComb, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_transmissionComb }, + { &hf_nr_rrc_resourceMapping_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourceMapping }, + { &hf_nr_rrc_freqDomainPosition, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_67 }, + { &hf_nr_rrc_freqDomainShift, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_268 }, + { &hf_nr_rrc_freqHopping , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_freqHopping }, + { &hf_nr_rrc_groupOrSequenceHopping, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_groupOrSequenceHopping }, + { &hf_nr_rrc_resourceType_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourceType_02 }, + { &hf_nr_rrc_sequenceId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_10 }, + { &hf_nr_rrc_spatialRelationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_spatialRelationInfo }, { 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_) { +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_CodebookConfig, CodebookConfig_sequence); + ett_nr_rrc_SRS_Resource, SRS_Resource_sequence); return offset; } -static const value_string nr_rrc_T_nrofCQIsPerReport_vals[] = { - { 0, "n1" }, - { 1, "n2" }, +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 value_string nr_rrc_T_tpc_Accumulation_01_vals[] = { + { 0, "disabled" }, { 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_) { +dissect_nr_rrc_T_tpc_Accumulation_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); + 1, NULL, FALSE, 0, NULL); return offset; } +static const per_sequence_t SRS_Config_sequence[] = { + { &hf_nr_rrc_srs_ResourceSetToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId }, + { &hf_nr_rrc_srs_ResourceSetToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet }, + { &hf_nr_rrc_srs_ResourceToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId }, + { &hf_nr_rrc_srs_ResourceToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource }, + { &hf_nr_rrc_tpc_Accumulation_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tpc_Accumulation_01 }, + { NULL, 0, 0, NULL } +}; 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); +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 per_sequence_t T_enabled_sequence[] = { - { &hf_nr_rrc_nrofBeamsToReport, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_2_4 }, +static const value_string nr_rrc_T_srs_Config_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_srs_Config_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_SRS_Config }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_srs_Config, T_srs_Config_choice, + NULL); + + return offset; +} + + +static const per_sequence_t BFR_SSB_Resource_sequence[] = { + { &hf_nr_rrc_ssb_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_Index }, + { &hf_nr_rrc_ra_PreambleIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_63 }, { 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_) { +dissect_nr_rrc_BFR_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_T_enabled, T_enabled_sequence); + ett_nr_rrc_BFR_SSB_Resource, BFR_SSB_Resource_sequence); return offset; } -static const value_string nr_rrc_T_nrofReportedRS_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 2, "n3" }, - { 3, "n4" }, +static const per_sequence_t BFR_CSIRS_Resource_sequence[] = { + { &hf_nr_rrc_csi_RS_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { &hf_nr_rrc_ra_PreambleIndex, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_63 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BFR_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_BFR_CSIRS_Resource, BFR_CSIRS_Resource_sequence); + + return offset; +} + + +static const value_string nr_rrc_PRACH_ResourceDedicatedBFR_vals[] = { + { 0, "ssb" }, + { 1, "csi-RS" }, { 0, NULL } }; +static const per_choice_t PRACH_ResourceDedicatedBFR_choice[] = { + { 0, &hf_nr_rrc_ssb , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BFR_SSB_Resource }, + { 1, &hf_nr_rrc_csi_RS , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BFR_CSIRS_Resource }, + { 0, NULL, 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); +dissect_nr_rrc_PRACH_ResourceDedicatedBFR(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_PRACH_ResourceDedicatedBFR, PRACH_ResourceDedicatedBFR_choice, + 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 }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR_sequence_of[1] = { + { &hf_nr_rrc_candidateBeamRSList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PRACH_ResourceDedicatedBFR }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR(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_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR, SEQUENCE_SIZE_1_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR_sequence_of, + 1, maxNrofCandidateBeams, FALSE); + + return offset; +} + + +static const per_sequence_t BeamFailureRecoveryConfig_sequence[] = { + { &hf_nr_rrc_rootSequenceIndex_BFR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_137 }, + { &hf_nr_rrc_rach_ConfigBFR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RACH_ConfigGeneric }, + { &hf_nr_rrc_candidateBeamThreshold, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_Range }, + { &hf_nr_rrc_candidateBeamRSList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR }, + { &hf_nr_rrc_ra_ssb_OccasionMaskIndex, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_15 }, + { &hf_nr_rrc_recoveryControlResourceSetId, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ControlResourceSetId }, + { &hf_nr_rrc_recoverySearchSpaceId, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SearchSpaceId }, { 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_) { +dissect_nr_rrc_BeamFailureRecoveryConfig(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); + ett_nr_rrc_BeamFailureRecoveryConfig, BeamFailureRecoveryConfig_sequence); return offset; } -static const value_string nr_rrc_T_groupBasedBeamReporting_vals[] = { - { 0, "enabled" }, - { 1, "disabled" }, +static const value_string nr_rrc_T_beamFailureRecoveryConfig_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 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 }, +static const per_choice_t T_beamFailureRecoveryConfig_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_BeamFailureRecoveryConfig }, { 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_) { +dissect_nr_rrc_T_beamFailureRecoveryConfig(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, + ett_nr_rrc_T_beamFailureRecoveryConfig, T_beamFailureRecoveryConfig_choice, NULL); return offset; } -static const value_string nr_rrc_T_cqi_Table_vals[] = { - { 0, "dl-64QAM" }, - { 1, "dl-256QAM" }, - { 2, "urllc1" }, - { 3, "urllc2" }, +static const per_sequence_t BWP_UplinkDedicated_sequence[] = { + { &hf_nr_rrc_pucch_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_Config }, + { &hf_nr_rrc_pusch_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_Config }, + { &hf_nr_rrc_configuredGrantConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_configuredGrantConfig }, + { &hf_nr_rrc_srs_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_srs_Config }, + { &hf_nr_rrc_beamFailureRecoveryConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_beamFailureRecoveryConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BWP_UplinkDedicated(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_BWP_UplinkDedicated, BWP_UplinkDedicated_sequence); + + return offset; +} + + +static const per_sequence_t BWP_Uplink_sequence[] = { + { &hf_nr_rrc_bwp_Id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Id }, + { &hf_nr_rrc_bwp_Common , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_UplinkCommon }, + { &hf_nr_rrc_bwp_Dedicated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_UplinkDedicated }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BWP_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_BWP_Uplink, BWP_Uplink_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_pdcch_ConfigCommon_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_pdcch_ConfigCommon_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_PDCCH_ConfigCommon }, + { 0, NULL, 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); +dissect_nr_rrc_T_pdcch_ConfigCommon(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_pdcch_ConfigCommon, T_pdcch_ConfigCommon_choice, + NULL); return offset; } -static const value_string nr_rrc_T_subbandSize_vals[] = { - { 0, "value1" }, - { 1, "value2" }, + +static int +dissect_nr_rrc_INTEGER_1_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, + 1U, 3U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_mappingType_vals[] = { + { 0, "typeA" }, + { 1, "typeB" }, { 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_) { +dissect_nr_rrc_T_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); @@ -7753,91 +12382,163 @@ dissect_nr_rrc_T_subbandSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const value_string nr_rrc_T_bler_Target_vals[] = { - { 0, "v0dot1" }, - { 1, "spare3" }, - { 2, "space2" }, - { 3, "spare1" }, +static const per_sequence_t PDSCH_TimeDomainResourceAllocation_sequence[] = { + { &hf_nr_rrc_k0 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_3 }, + { &hf_nr_rrc_mappingType , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mappingType }, + { &hf_nr_rrc_startSymbolAndLength, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_7 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PDSCH_TimeDomainResourceAllocation(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_TimeDomainResourceAllocation, PDSCH_TimeDomainResourceAllocation_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofDL_Allocations_OF_PDSCH_TimeDomainResourceAllocation_sequence_of[1] = { + { &hf_nr_rrc_pdsch_AllocationList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PDSCH_TimeDomainResourceAllocation }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofDL_Allocations_OF_PDSCH_TimeDomainResourceAllocation(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_maxNrofDL_Allocations_OF_PDSCH_TimeDomainResourceAllocation, SEQUENCE_SIZE_1_maxNrofDL_Allocations_OF_PDSCH_TimeDomainResourceAllocation_sequence_of, + 1, maxNrofDL_Allocations, FALSE); + + return offset; +} + + +static const per_sequence_t PDSCH_ConfigCommon_sequence[] = { + { &hf_nr_rrc_pdsch_AllocationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofDL_Allocations_OF_PDSCH_TimeDomainResourceAllocation }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PDSCH_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_PDSCH_ConfigCommon, PDSCH_ConfigCommon_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_pdsch_ConfigCommon_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_pdsch_ConfigCommon_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_PDSCH_ConfigCommon }, + { 0, NULL, 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); +dissect_nr_rrc_T_pdsch_ConfigCommon(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_pdsch_ConfigCommon, T_pdsch_ConfigCommon_choice, + 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 }, +static const per_sequence_t BWP_DownlinkCommon_sequence[] = { + { &hf_nr_rrc_genericParameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP }, + { &hf_nr_rrc_pdcch_ConfigCommon_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcch_ConfigCommon }, + { &hf_nr_rrc_pdsch_ConfigCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_ConfigCommon }, { 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_) { +dissect_nr_rrc_BWP_DownlinkCommon(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); + ett_nr_rrc_BWP_DownlinkCommon, BWP_DownlinkCommon_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 const per_sequence_t SEQUENCE_SIZE_1_3_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_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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_3_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_maxNrofCSI_Reports_OF_CSI_ReportConfig, SEQUENCE_SIZE_1_maxNrofCSI_Reports_OF_CSI_ReportConfig_sequence_of, - 1, maxNrofCSI_Reports, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_ControlResourceSet, SEQUENCE_SIZE_1_3_OF_ControlResourceSet_sequence_of, + 1, 3, FALSE); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_3_OF_ControlResourceSetId_sequence_of[1] = { + { &hf_nr_rrc_controlResourceSetToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ControlResourceSetId }, +}; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_3_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_ControlResourceSetId, SEQUENCE_SIZE_1_3_OF_ControlResourceSetId_sequence_of, + 1, 3, FALSE); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_10_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_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); +dissect_nr_rrc_SEQUENCE_SIZE_1_10_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_10_OF_SearchSpace, SEQUENCE_SIZE_1_10_OF_SearchSpace_sequence_of, + 1, 10, FALSE); return offset; } -static const value_string nr_rrc_T_measQuantity_vals[] = { - { 0, "channel" }, - { 1, "interference" }, +static const per_sequence_t SEQUENCE_SIZE_1_10_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_10_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_10_OF_SearchSpaceId, SEQUENCE_SIZE_1_10_OF_SearchSpaceId_sequence_of, + 1, 10, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_RNTI_Value(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, 65535U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_timeFrequencySet_vals[] = { + { 0, "set0" }, + { 1, "set1" }, { 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_) { +dissect_nr_rrc_T_timeFrequencySet(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); @@ -7845,246 +12546,388 @@ dissect_nr_rrc_T_measQuantity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -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 }, + +static int +dissect_nr_rrc_INTEGER_0_maxINT_DCI_PayloadSize(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, maxINT_DCI_PayloadSize, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_maxINT_DCI_PayloadSize_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, maxINT_DCI_PayloadSize_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t INT_ConfigurationPerServingCell_sequence[] = { + { &hf_nr_rrc_servingCellId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_positionInDCI, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxINT_DCI_PayloadSize_1 }, { 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_) { +dissect_nr_rrc_INT_ConfigurationPerServingCell(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); + ett_nr_rrc_INT_ConfigurationPerServingCell, INT_ConfigurationPerServingCell_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell_sequence_of[1] = { + { &hf_nr_rrc_int_ConfigurationPerServingCell_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INT_ConfigurationPerServingCell }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell, SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell_sequence_of, + 1, maxNrofServingCells, FALSE); return offset; } +static const per_sequence_t DownlinkPreemption_sequence[] = { + { &hf_nr_rrc_int_RNTI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RNTI_Value }, + { &hf_nr_rrc_timeFrequencySet, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_timeFrequencySet }, + { &hf_nr_rrc_dci_PayloadSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxINT_DCI_PayloadSize }, + { &hf_nr_rrc_int_ConfigurationPerServingCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell }, + { NULL, 0, 0, NULL } +}; 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_) { +dissect_nr_rrc_DownlinkPreemption(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_DownlinkPreemption, DownlinkPreemption_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_downlinkPreemption_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_downlinkPreemption_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_26 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DownlinkPreemption }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_downlinkPreemption(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_downlinkPreemption, T_downlinkPreemption_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxSFI_DCI_PayloadSize(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); + 1U, maxSFI_DCI_PayloadSize, 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_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, maxNrofSlotFormatCombinationsPerSet_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_slotFormats_sequence_of[1] = { + { &hf_nr_rrc_slotFormats_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_255 }, }; 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); +dissect_nr_rrc_T_slotFormats(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_slotFormats, T_slotFormats_sequence_of, + 1, maxNrofSlotFormatsPerCombination, FALSE); 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 }, +static const per_sequence_t SlotFormatCombination_sequence[] = { + { &hf_nr_rrc_slotFormatCombinationId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SlotFormatCombinationId }, + { &hf_nr_rrc_slotFormats , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_slotFormats }, { 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_) { +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_CSI_MeasConfig, CSI_MeasConfig_sequence); + ett_nr_rrc_SlotFormatCombination, SlotFormatCombination_sequence); return offset; } -static const per_sequence_t PUCCH_ResourceSet_sequence[] = { +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSlotFormatCombinationsPerSet_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_maxNrofSlotFormatCombinationsPerSet_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_maxNrofSlotFormatCombinationsPerSet_OF_SlotFormatCombination, SEQUENCE_SIZE_1_maxNrofSlotFormatCombinationsPerSet_OF_SlotFormatCombination_sequence_of, + 1, maxNrofSlotFormatCombinationsPerSet, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_maxSFI_DCI_PayloadSize_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, maxSFI_DCI_PayloadSize_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SlotFormatCombinationsPerCell_sequence[] = { + { &hf_nr_rrc_servingCellId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_subcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_subcarrierSpacing2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_slotFormatCombinations, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinationsPerSet_OF_SlotFormatCombination }, + { &hf_nr_rrc_positionInDCI_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxSFI_DCI_PayloadSize_1 }, { 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_) { +dissect_nr_rrc_SlotFormatCombinationsPerCell(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); + ett_nr_rrc_SlotFormatCombinationsPerCell, SlotFormatCombinationsPerCell_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell_sequence_of[1] = { + { &hf_nr_rrc_slotFormatCombToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SlotFormatCombinationsPerCell }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell, SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell_sequence_of, + 1, maxNrofAggregatedCellsPerCellGroup, FALSE); return offset; } -static const value_string nr_rrc_T_interslotFrequencyHopping_vals[] = { - { 0, "enabled" }, - { 0, NULL } +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_ServCellIndex_sequence_of[1] = { + { &hf_nr_rrc_slotFormatCombToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, }; +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_ServCellIndex, SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_ServCellIndex_sequence_of, + 1, maxNrofAggregatedCellsPerCellGroup, FALSE); + + return offset; +} + + +static const per_sequence_t SlotFormatIndicator_sequence[] = { + { &hf_nr_rrc_sfi_RNTI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RNTI_Value }, + { &hf_nr_rrc_dci_PayloadSize_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxSFI_DCI_PayloadSize }, + { &hf_nr_rrc_slotFormatCombToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell }, + { &hf_nr_rrc_slotFormatCombToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_ServCellIndex }, + { NULL, 0, 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); +dissect_nr_rrc_SlotFormatIndicator(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_SlotFormatIndicator, SlotFormatIndicator_sequence); return offset; } -static const value_string nr_rrc_T_nrofSlots_vals[] = { - { 0, "n1" }, - { 1, "ny1" }, - { 2, "y2" }, - { 3, "y3" }, +static const value_string nr_rrc_T_slotFormatIndicator_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_slotFormatIndicator_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_27 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SlotFormatIndicator }, + { 0, NULL, 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); +dissect_nr_rrc_T_slotFormatIndicator(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_slotFormatIndicator, T_slotFormatIndicator_choice, + 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 }, + +static int +dissect_nr_rrc_INTEGER_1_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, + 1U, 15U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t PUSCH_TPC_CommandConfig_sequence[] = { + { &hf_nr_rrc_tpc_Index , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_15 }, + { &hf_nr_rrc_tpc_IndexSUL , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_15 }, + { &hf_nr_rrc_targetCell , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, { 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_) { +dissect_nr_rrc_PUSCH_TPC_CommandConfig(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); + ett_nr_rrc_PUSCH_TPC_CommandConfig, PUSCH_TPC_CommandConfig_sequence); return offset; } -static const value_string nr_rrc_T_format1_vals[] = { +static const value_string nr_rrc_T_tpc_PUSCH_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_format1_choice[] = { +static const per_choice_t T_tpc_PUSCH_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 }, + { 1, &hf_nr_rrc_setup_28 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_TPC_CommandConfig }, { 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_) { +dissect_nr_rrc_T_tpc_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_format1, T_format1_choice, + ett_nr_rrc_T_tpc_PUSCH, T_tpc_PUSCH_choice, NULL); return offset; } +static const per_sequence_t PUCCH_TPC_CommandConfig_sequence[] = { + { &hf_nr_rrc_tpc_IndexPCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_15 }, + { &hf_nr_rrc_tpc_IndexPUCCH_SCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_15 }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_PUCCH_TPC_CommandConfig(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_TPC_CommandConfig, PUCCH_TPC_CommandConfig_sequence); return offset; } -static const value_string nr_rrc_T_simultaneousHARQ_ACK_CSI_vals[] = { - { 0, "true" }, +static const value_string nr_rrc_T_tpc_PUCCH_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_tpc_PUCCH_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_29 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_TPC_CommandConfig }, + { 0, NULL, 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); +dissect_nr_rrc_T_tpc_PUCCH(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_tpc_PUCCH, T_tpc_PUCCH_choice, + 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 }, +static const per_sequence_t PDCCH_Config_sequence[] = { + { &hf_nr_rrc_controlResourceSetToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_3_OF_ControlResourceSet }, + { &hf_nr_rrc_controlResourceSetToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_3_OF_ControlResourceSetId }, + { &hf_nr_rrc_searchSpacesToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpace }, + { &hf_nr_rrc_searchSpacesToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpaceId }, + { &hf_nr_rrc_downlinkPreemption, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_downlinkPreemption }, + { &hf_nr_rrc_slotFormatIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_slotFormatIndicator }, + { &hf_nr_rrc_tpc_PUSCH , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tpc_PUSCH }, + { &hf_nr_rrc_tpc_PUCCH , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tpc_PUCCH }, { 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_) { +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_T_setup_06, T_setup_06_sequence); + ett_nr_rrc_PDCCH_Config, PDCCH_Config_sequence); return offset; } -static const value_string nr_rrc_T_format2_vals[] = { +static const value_string nr_rrc_T_pdcch_Config_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_format2_choice[] = { +static const per_choice_t T_pdcch_Config_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 }, + { 1, &hf_nr_rrc_setup_10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDCCH_Config }, { 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_) { +dissect_nr_rrc_T_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_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_format2, T_format2_choice, + ett_nr_rrc_T_pdcch_Config, T_pdcch_Config_choice, NULL); return offset; } -static const value_string nr_rrc_T_interslotFrequencyHopping_01_vals[] = { - { 0, "enabled" }, +static const value_string nr_rrc_T_dmrs_Type_vals[] = { + { 0, "type2" }, { 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_) { +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, 1, NULL, FALSE, 0, NULL); @@ -8092,135 +12935,247 @@ dissect_nr_rrc_T_interslotFrequencyHopping_01(tvbuff_t *tvb _U_, int offset _U_, } -static const value_string nr_rrc_T_additionalDMRS_vals[] = { - { 0, "true" }, +static const value_string nr_rrc_T_dmrs_AdditionalPosition_vals[] = { + { 0, "pos0" }, + { 1, "pos1" }, + { 2, "pos3" }, { 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_) { +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, - 1, NULL, FALSE, 0, NULL); + 3, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_nrofSlots_01_vals[] = { - { 0, "n1" }, - { 1, "y1" }, - { 2, "y2" }, - { 3, "y3" }, +static const value_string nr_rrc_T_maxLength_vals[] = { + { 0, "len2" }, { 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_) { +dissect_nr_rrc_T_maxLength(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); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_pi2PBSK_vals[] = { - { 0, "enabled" }, +static const per_sequence_t T_frequencyDensity_sequence_of[1] = { + { &hf_nr_rrc_frequencyDensity_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, +}; + +static int +dissect_nr_rrc_T_frequencyDensity(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_frequencyDensity, T_frequencyDensity_sequence_of, + 2, 2, FALSE); + + return offset; +} + + +static const per_sequence_t T_timeDensity_sequence_of[1] = { + { &hf_nr_rrc_timeDensity_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, +}; + +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_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_timeDensity, T_timeDensity_sequence_of, + 3, 3, FALSE); + + return offset; +} + + +static const per_sequence_t T_epre_RatioPort2_sequence_of[1] = { + { &hf_nr_rrc_epre_RatioPort2_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_3 }, +}; + +static int +dissect_nr_rrc_T_epre_RatioPort2(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_epre_RatioPort2, T_epre_RatioPort2_sequence_of, + 1, 2, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_resourceElementOffset_vals[] = { + { 0, "offset01" }, + { 1, "offset10" }, + { 2, "offset11" }, { 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_) { +dissect_nr_rrc_T_resourceElementOffset(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); + 3, 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 }, +static const per_sequence_t PTRS_DownlinkConfig_sequence[] = { + { &hf_nr_rrc_frequencyDensity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_frequencyDensity }, + { &hf_nr_rrc_timeDensity , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_timeDensity }, + { &hf_nr_rrc_epre_RatioPort1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_3 }, + { &hf_nr_rrc_epre_RatioPort2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_epre_RatioPort2 }, + { &hf_nr_rrc_resourceElementOffset, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_resourceElementOffset }, { 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_) { +dissect_nr_rrc_PTRS_DownlinkConfig(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); + ett_nr_rrc_PTRS_DownlinkConfig, PTRS_DownlinkConfig_sequence); return offset; } -static const value_string nr_rrc_T_format3_vals[] = { +static const value_string nr_rrc_T_phaseTrackingRS_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_format3_choice[] = { +static const per_choice_t T_phaseTrackingRS_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 }, + { 1, &hf_nr_rrc_setup_18 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PTRS_DownlinkConfig }, { 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_) { +dissect_nr_rrc_T_phaseTrackingRS(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, + ett_nr_rrc_T_phaseTrackingRS, T_phaseTrackingRS_choice, NULL); return offset; } -static const value_string nr_rrc_T_interslotFrequencyHopping_02_vals[] = { - { 0, "enabled" }, +static const per_sequence_t DMRS_DownlinkConfig_sequence[] = { + { &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_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_12 }, + { &hf_nr_rrc_dmrs_group2 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_12 }, + { &hf_nr_rrc_maxLength , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_maxLength }, + { &hf_nr_rrc_scramblingID0, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_65535 }, + { &hf_nr_rrc_scramblingID1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_65535 }, + { &hf_nr_rrc_phaseTrackingRS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_phaseTrackingRS }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_DMRS_DownlinkConfig(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_DMRS_DownlinkConfig, DMRS_DownlinkConfig_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeA_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_dmrs_DownlinkForPDSCH_MappingTypeA_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_30 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DMRS_DownlinkConfig }, + { 0, NULL, 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); +dissect_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeA(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_dmrs_DownlinkForPDSCH_MappingTypeA, T_dmrs_DownlinkForPDSCH_MappingTypeA_choice, + NULL); return offset; } -static const value_string nr_rrc_T_additionalDMRS_01_vals[] = { - { 0, "true" }, +static const value_string nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_dmrs_DownlinkForPDSCH_MappingTypeB_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_30 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DMRS_DownlinkConfig }, + { 0, NULL, 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); +dissect_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB(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_dmrs_DownlinkForPDSCH_MappingTypeB, T_dmrs_DownlinkForPDSCH_MappingTypeB_choice, + NULL); return offset; } -static const value_string nr_rrc_T_nrofSlots_02_vals[] = { - { 0, "n1" }, - { 1, "y1" }, - { 2, "y2" }, - { 3, "y3" }, + +static int +dissect_nr_rrc_NZP_CSI_RS_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, maxNrofNZP_CSI_RS_ResourceSets_1, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_referenceSignal_03_vals[] = { + { 0, "csi-rs" }, + { 1, "ssb" }, + { 2, "csi-RS-for-tracking" }, { 0, NULL } }; +static const per_choice_t T_referenceSignal_03_choice[] = { + { 0, &hf_nr_rrc_csi_rs , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { 1, &hf_nr_rrc_ssb_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SSB_Index }, + { 2, &hf_nr_rrc_csi_RS_for_tracking, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NZP_CSI_RS_ResourceSetId }, + { 0, NULL, 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_) { +dissect_nr_rrc_T_referenceSignal_03(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_referenceSignal_03, T_referenceSignal_03_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_qcl_Type_vals[] = { + { 0, "typeA" }, + { 1, "typeB" }, + { 2, "typeC" }, + { 3, "typeD" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_qcl_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, 4, NULL, FALSE, 0, NULL); @@ -8228,156 +13183,436 @@ dissect_nr_rrc_T_nrofSlots_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -static const value_string nr_rrc_T_pi2PBSK_01_vals[] = { - { 0, "enabled" }, +static const per_sequence_t QCL_Info_sequence[] = { + { &hf_nr_rrc_cell , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_bwp_Id , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_Id }, + { &hf_nr_rrc_referenceSignal_03, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_referenceSignal_03 }, + { &hf_nr_rrc_qcl_Type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_qcl_Type }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_QCL_Info(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_QCL_Info, QCL_Info_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_nrofPTRS_Ports_vals[] = { + { 0, "n1" }, + { 1, "n2" }, { 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_) { +dissect_nr_rrc_T_nrofPTRS_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, - 1, NULL, FALSE, 0, NULL); + 2, 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 }, +static const per_sequence_t TCI_State_sequence[] = { + { &hf_nr_rrc_tci_StateId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TCI_StateId }, + { &hf_nr_rrc_qcl_Type1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_QCL_Info }, + { &hf_nr_rrc_qcl_Type2 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_QCL_Info }, + { &hf_nr_rrc_nrofPTRS_Ports, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_nrofPTRS_Ports }, { 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_) { +dissect_nr_rrc_TCI_State(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); + ett_nr_rrc_TCI_State, TCI_State_sequence); return offset; } -static const value_string nr_rrc_T_format4_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_State_sequence_of[1] = { + { &hf_nr_rrc_tci_StatesToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TCI_State }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_State(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_maxNrofTCI_States_OF_TCI_State, SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_State_sequence_of, + 1, maxNrofTCI_States, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_StateId_sequence_of[1] = { + { &hf_nr_rrc_tci_StatesToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TCI_StateId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_StateId(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_maxNrofTCI_States_OF_TCI_StateId, SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_StateId_sequence_of, + 1, maxNrofTCI_States, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_vrb_ToPRB_Interleaver_vals[] = { + { 0, "n2" }, + { 1, "n4" }, { 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 }, + +static int +dissect_nr_rrc_T_vrb_ToPRB_Interleaver(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_resourceAllocation_01_vals[] = { + { 0, "resourceAllocationType0" }, + { 1, "resourceAllocationType1" }, + { 2, "dynamicSwitch" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_resourceAllocation_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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_pdsch_AggregationFactor_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 2, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdsch_AggregationFactor(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 int +dissect_nr_rrc_RateMatchPatternId(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, maxNrofRateMatchPatterns_1, NULL, FALSE); + + 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 int +dissect_nr_rrc_BIT_STRING_SIZE_28(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, + 28, 28, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_symbolsInResourceBlock_vals[] = { + { 0, "oneSlot" }, + { 1, "twoSlots" }, + { 0, NULL } +}; + +static const per_choice_t T_symbolsInResourceBlock_choice[] = { + { 0, &hf_nr_rrc_oneSlot , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_14 }, + { 1, &hf_nr_rrc_twoSlots , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_28 }, { 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_) { +dissect_nr_rrc_T_symbolsInResourceBlock(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, + ett_nr_rrc_T_symbolsInResourceBlock, T_symbolsInResourceBlock_choice, NULL); return offset; } -static const per_sequence_t SchedulingRequestResource_Config_sequence[] = { - { NULL, 0, 0, NULL } + +static int +dissect_nr_rrc_BIT_STRING_SIZE_5(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, + 5, 5, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_20(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, + 20, 20, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_40(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, + 40, 40, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_periodicityAndPattern_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 2, "n5" }, + { 3, "n8" }, + { 4, "n10" }, + { 5, "n20" }, + { 6, "n40" }, + { 0, NULL } +}; + +static const per_choice_t T_periodicityAndPattern_choice[] = { + { 0, &hf_nr_rrc_n2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { 1, &hf_nr_rrc_n4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_4 }, + { 2, &hf_nr_rrc_n5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_5 }, + { 3, &hf_nr_rrc_n8 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { 4, &hf_nr_rrc_n10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_10 }, + { 5, &hf_nr_rrc_n20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_20 }, + { 6, &hf_nr_rrc_n40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_40 }, + { 0, NULL, 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); +dissect_nr_rrc_T_periodicityAndPattern(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_periodicityAndPattern, T_periodicityAndPattern_choice, + NULL); 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 const per_sequence_t T_bitmaps_sequence[] = { + { &hf_nr_rrc_resourceBlocks, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_275 }, + { &hf_nr_rrc_symbolsInResourceBlock, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_symbolsInResourceBlock }, + { &hf_nr_rrc_periodicityAndPattern, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_periodicityAndPattern }, + { NULL, 0, 0, NULL } }; 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); +dissect_nr_rrc_T_bitmaps(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_bitmaps, T_bitmaps_sequence); return offset; } -static const value_string nr_rrc_T_schedulingRequestResources_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const value_string nr_rrc_T_patternType_vals[] = { + { 0, "bitmaps" }, + { 1, "controlResourceSet" }, { 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 }, +static const per_choice_t T_patternType_choice[] = { + { 0, &hf_nr_rrc_bitmaps , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_bitmaps }, + { 1, &hf_nr_rrc_controlResourceSet, ASN1_NO_EXTENSIONS , dissect_nr_rrc_ControlResourceSetId }, { 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_) { +dissect_nr_rrc_T_patternType(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, + ett_nr_rrc_T_patternType, T_patternType_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 }, +static const value_string nr_rrc_T_mode_vals[] = { + { 0, "dynamic" }, + { 1, "semiStatic" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mode(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 RateMatchPattern_sequence[] = { + { &hf_nr_rrc_rateMatchPatternId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RateMatchPatternId }, + { &hf_nr_rrc_patternType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_patternType }, + { &hf_nr_rrc_subcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_mode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mode }, { 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_) { +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_PUCCH_Config, PUCCH_Config_sequence); + ett_nr_rrc_RateMatchPattern, RateMatchPattern_sequence); return offset; } -static const value_string nr_rrc_T_codeBlockGroupTransmission_vals[] = { - { 0, "true" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern_sequence_of[1] = { + { &hf_nr_rrc_rateMatchPatternToAddModList_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 per_sequence_t SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId_sequence_of[1] = { + { &hf_nr_rrc_rateMatchPatternToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RateMatchPatternId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId(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_RateMatchPatternId, SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId_sequence_of, + 1, maxNrofRateMatchPatterns, FALSE); + + 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_codeBlockGroupTransmission(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 1, NULL, FALSE, 0, NULL); + 2, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_01_vals[] = { - { 0, "n2" }, - { 1, "n4" }, - { 2, "n6" }, - { 3, "n8" }, +static const value_string nr_rrc_T_mcs_Table_01_vals[] = { + { 0, "qam64" }, + { 1, "qam256" }, { 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_) { +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_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_bundleSize_vals[] = { + { 0, "n4" }, + { 1, "wideband" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_static_sequence[] = { + { &hf_nr_rrc_bundleSize , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_bundleSize }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_static(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_static, T_static_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_bundleSizeSet1_vals[] = { + { 0, "n4" }, + { 1, "wideband" }, + { 2, "n2-wideband" }, + { 3, "n4-wideband" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_bundleSizeSet1(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); @@ -8385,15 +13620,15 @@ dissect_nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_01(tvbuff_t *tvb _U_, int o } -static const value_string nr_rrc_T_dmrs_Type_01_vals[] = { - { 0, "type1" }, - { 1, "type2" }, +static const value_string nr_rrc_T_bundleSizeSet2_vals[] = { + { 0, "n4" }, + { 1, "wideband" }, { 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_) { +dissect_nr_rrc_T_bundleSizeSet2(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); @@ -8401,17 +13636,122 @@ dissect_nr_rrc_T_dmrs_Type_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -static const value_string nr_rrc_T_dmrs_AdditionalPosition_01_vals[] = { - { 0, "pos0" }, - { 1, "pos1" }, - { 2, "pos2" }, - { 3, "pos3" }, +static const per_sequence_t T_dynamic_sequence[] = { + { &hf_nr_rrc_bundleSizeSet1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_bundleSizeSet1 }, + { &hf_nr_rrc_bundleSizeSet2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_bundleSizeSet2 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_dynamic(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_dynamic, T_dynamic_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_prb_BundlingType_vals[] = { + { 0, "static" }, + { 1, "dynamic" }, { 0, NULL } }; +static const per_choice_t T_prb_BundlingType_choice[] = { + { 0, &hf_nr_rrc_static , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_static }, + { 1, &hf_nr_rrc_dynamic_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_dynamic }, + { 0, NULL, 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_) { +dissect_nr_rrc_T_prb_BundlingType(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_prb_BundlingType, T_prb_BundlingType_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_ZP_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, maxNrofZP_CSI_RS_Resources_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_3(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, + 3, 3, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_frequencyDomainAllocation_vals[] = { + { 0, "row1" }, + { 1, "row2" }, + { 2, "row4" }, + { 3, "other" }, + { 0, NULL } +}; + +static const per_choice_t T_frequencyDomainAllocation_choice[] = { + { 0, &hf_nr_rrc_row1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_4 }, + { 1, &hf_nr_rrc_row2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_12 }, + { 2, &hf_nr_rrc_row4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_3 }, + { 3, &hf_nr_rrc_other_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_6 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_frequencyDomainAllocation(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_frequencyDomainAllocation, T_frequencyDomainAllocation_choice, + NULL); + + 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_Type_vals[] = { + { 0, "noCDM" }, + { 1, "fd-CDM2" }, + { 2, "cdm4-FD2-TD2" }, + { 3, "cdm8-FD2-TD4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_cdm_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, 4, NULL, FALSE, 0, NULL); @@ -8419,15 +13759,15 @@ dissect_nr_rrc_T_dmrs_AdditionalPosition_01(tvbuff_t *tvb _U_, int offset _U_, a } -static const value_string nr_rrc_T_nrofPorts_02_vals[] = { - { 0, "n1" }, - { 1, "n2" }, +static const value_string nr_rrc_T_dot5_vals[] = { + { 0, "evenPRBs" }, + { 1, "oddPRBs" }, { 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_) { +dissect_nr_rrc_T_dot5(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); @@ -8435,144 +13775,591 @@ dissect_nr_rrc_T_nrofPorts_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -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 }, +static const value_string nr_rrc_T_density_vals[] = { + { 0, "dot5" }, + { 1, "one" }, + { 2, "three" }, + { 3, "spare" }, + { 0, NULL } +}; + +static const per_choice_t T_density_choice[] = { + { 0, &hf_nr_rrc_dot5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_dot5 }, + { 1, &hf_nr_rrc_one , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 2, &hf_nr_rrc_three , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 3, &hf_nr_rrc_spare_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_density(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_density, T_density_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_24_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, + 24U, maxNrofPhysicalResourceBlocks, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t CSI_FrequencyOccupation_sequence[] = { + { &hf_nr_rrc_startingRB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofPhysicalResourceBlocks_1 }, + { &hf_nr_rrc_nrofRBs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_24_maxNrofPhysicalResourceBlocks }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_FrequencyOccupation(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_FrequencyOccupation, CSI_FrequencyOccupation_sequence); + + return offset; +} + + +static const per_sequence_t CSI_RS_ResourceMapping_sequence[] = { + { &hf_nr_rrc_frequencyDomainAllocation_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_frequencyDomainAllocation }, + { &hf_nr_rrc_nrofPorts , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofPorts }, + { &hf_nr_rrc_firstOFDMSymbolInTimeDomain, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_13 }, + { &hf_nr_rrc_firstOFDMSymbolInTimeDomain2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_13 }, + { &hf_nr_rrc_cdm_Type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cdm_Type }, + { &hf_nr_rrc_density , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_density }, + { &hf_nr_rrc_freqBand , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_FrequencyOccupation }, { 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_) { +dissect_nr_rrc_CSI_RS_ResourceMapping(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); + ett_nr_rrc_CSI_RS_ResourceMapping, CSI_RS_ResourceMapping_sequence); return offset; } -static const value_string nr_rrc_T_cp_OFDM_vals[] = { +static const value_string nr_rrc_CSI_ResourcePeriodicityAndOffset_vals[] = { + { 0, "slots4" }, + { 1, "slots5" }, + { 2, "slots8" }, + { 3, "slots10" }, + { 4, "slots16" }, + { 5, "slots20" }, + { 6, "slots32" }, + { 7, "slots40" }, + { 8, "slots64" }, + { 9, "slots80" }, + { 10, "slots160" }, + { 11, "slots320" }, + { 12, "slots640" }, + { 0, NULL } +}; + +static const per_choice_t CSI_ResourcePeriodicityAndOffset_choice[] = { + { 0, &hf_nr_rrc_slots4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_3 }, + { 1, &hf_nr_rrc_slots5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 2, &hf_nr_rrc_slots8 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_7 }, + { 3, &hf_nr_rrc_slots10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 4, &hf_nr_rrc_slots16 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_15 }, + { 5, &hf_nr_rrc_slots20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 6, &hf_nr_rrc_slots32 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_31 }, + { 7, &hf_nr_rrc_slots40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 8, &hf_nr_rrc_slots64 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_63 }, + { 9, &hf_nr_rrc_slots80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 10, &hf_nr_rrc_slots160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 11, &hf_nr_rrc_slots320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 12, &hf_nr_rrc_slots640 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_639 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_ResourcePeriodicityAndOffset(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_CSI_ResourcePeriodicityAndOffset, CSI_ResourcePeriodicityAndOffset_choice, + NULL); + + return offset; +} + + +static const per_sequence_t ZP_CSI_RS_Resource_sequence[] = { + { &hf_nr_rrc_zp_CSI_RS_ResourceId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ZP_CSI_RS_ResourceId }, + { &hf_nr_rrc_resourceMapping, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_ResourceMapping }, + { &hf_nr_rrc_periodicityAndOffset, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CSI_ResourcePeriodicityAndOffset }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ZP_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_ZP_CSI_RS_Resource, ZP_CSI_RS_Resource_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_Resource_sequence_of[1] = { + { &hf_nr_rrc_zp_CSI_RS_ResourceToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ZP_CSI_RS_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_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_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_Resource, SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_Resource_sequence_of, + 1, maxNrofZP_CSI_RS_Resources, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_zp_CSI_RS_ResourceToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ZP_CSI_RS_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_ResourceId, SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_ResourceId_sequence_of, + 1, maxNrofZP_CSI_RS_Resources, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_ZP_CSI_RS_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, maxNrofZP_CSI_RS_ResourceSets_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_CSI_RS_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_zp_CSI_RS_ResourceIdList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ZP_CSI_RS_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_CSI_RS_ResourceId, SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_CSI_RS_ResourceId_sequence_of, + 1, maxNrofZP_CSI_RS_ResourcesPerSet, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_resourceType_03_vals[] = { + { 0, "aperiodic" }, + { 1, "semiPersistent" }, + { 2, "periodic" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_resourceType_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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t ZP_CSI_RS_ResourceSet_sequence[] = { + { &hf_nr_rrc_zp_CSI_RS_ResourceSetId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ZP_CSI_RS_ResourceSetId }, + { &hf_nr_rrc_zp_CSI_RS_ResourceIdList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_CSI_RS_ResourceId }, + { &hf_nr_rrc_resourceType_03, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourceType_03 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ZP_CSI_RS_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_ZP_CSI_RS_ResourceSet, ZP_CSI_RS_ResourceSet_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet_sequence_of[1] = { + { &hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ZP_CSI_RS_ResourceSet }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_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_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet, SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet_sequence_of, + 1, maxNrofZP_CSI_RS_Sets, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId_sequence_of[1] = { + { &hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ZP_CSI_RS_ResourceSetId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_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_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId, SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId_sequence_of, + 1, maxNrofZP_CSI_RS_Sets, FALSE); + + return offset; +} + + +static const per_sequence_t PDSCH_Config_sequence[] = { + { &hf_nr_rrc_dataScramblingIdentityPDSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1007 }, + { &hf_nr_rrc_dmrs_DownlinkForPDSCH_MappingTypeA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeA }, + { &hf_nr_rrc_dmrs_DownlinkForPDSCH_MappingTypeB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB }, + { &hf_nr_rrc_tci_StatesToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_State }, + { &hf_nr_rrc_tci_StatesToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_StateId }, + { &hf_nr_rrc_vrb_ToPRB_Interleaver, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_vrb_ToPRB_Interleaver }, + { &hf_nr_rrc_resourceAllocation_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourceAllocation_01 }, + { &hf_nr_rrc_pdsch_AllocationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofDL_Allocations_OF_PDSCH_TimeDomainResourceAllocation }, + { &hf_nr_rrc_pdsch_AggregationFactor, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_AggregationFactor }, + { &hf_nr_rrc_rateMatchPatternToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern }, + { &hf_nr_rrc_rateMatchPatternToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId }, + { &hf_nr_rrc_rateMatchPatternGroup1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId }, + { &hf_nr_rrc_rateMatchPatternGroup2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId }, + { &hf_nr_rrc_rbg_Size_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_rbg_Size_01 }, + { &hf_nr_rrc_mcs_Table_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_mcs_Table_01 }, + { &hf_nr_rrc_maxNrofCodeWordsScheduledByDCI, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNrofCodeWordsScheduledByDCI }, + { &hf_nr_rrc_prb_BundlingType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_prb_BundlingType }, + { &hf_nr_rrc_zp_CSI_RS_ResourceToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_Resource }, + { &hf_nr_rrc_zp_CSI_RS_ResourceToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_ResourceId }, + { &hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet }, + { &hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId }, + { &hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet }, + { &hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId }, + { 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 const value_string nr_rrc_T_pdsch_Config_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_cp_OFDM_choice[] = { +static const per_choice_t T_pdsch_Config_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 }, + { 1, &hf_nr_rrc_setup_11 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_Config }, { 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_) { +dissect_nr_rrc_T_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_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_cp_OFDM, T_cp_OFDM_choice, + ett_nr_rrc_T_pdsch_Config, T_pdsch_Config_choice, NULL); return offset; } -static const value_string nr_rrc_T_timeDensity_vals[] = { - { 0, "d1" }, - { 1, "d2" }, +static const value_string nr_rrc_T_periodicity_02_vals[] = { + { 0, "ms10" }, + { 1, "ms20" }, + { 2, "ms32" }, + { 3, "ms40" }, + { 4, "ms64" }, + { 5, "ms80" }, + { 6, "ms128" }, + { 7, "ms160" }, + { 8, "ms320" }, + { 9, "ms640" }, + { 10, "spare6" }, + { 11, "spare5" }, + { 12, "spare4" }, + { 13, "spare3" }, + { 14, "spare2" }, + { 15, "spare1" }, { 0, NULL } }; +static value_string_ext nr_rrc_T_periodicity_02_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_periodicity_02_vals); + 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_) { +dissect_nr_rrc_T_periodicity_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); + 16, 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 }, +static const per_sequence_t SPS_Config_sequence[] = { + { &hf_nr_rrc_periodicity_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicity_02 }, + { &hf_nr_rrc_nrofHARQ_Processes_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_8 }, + { &hf_nr_rrc_n1PUCCH_AN , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PUCCH_Resource }, { 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_) { +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_T_setup_11, T_setup_11_sequence); + ett_nr_rrc_SPS_Config, SPS_Config_sequence); return offset; } -static const value_string nr_rrc_T_dft_S_OFDM_vals[] = { +static const value_string nr_rrc_T_sps_Config_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_dft_S_OFDM_choice[] = { +static const per_choice_t T_sps_Config_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 }, + { 1, &hf_nr_rrc_setup_12 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SPS_Config }, { 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_) { +dissect_nr_rrc_T_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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_sps_Config, T_sps_Config_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_purpose_vals[] = { + { 0, "beamFailure" }, + { 1, "rlf" }, + { 2, "both" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_purpose(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_detectionResource_vals[] = { + { 0, "ssb-Index" }, + { 1, "csi-RS-Index" }, + { 0, NULL } +}; + +static const per_choice_t T_detectionResource_choice[] = { + { 0, &hf_nr_rrc_ssb_Index , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SSB_Index }, + { 1, &hf_nr_rrc_csi_RS_Index_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_detectionResource(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, + ett_nr_rrc_T_detectionResource, T_detectionResource_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 }, +static const per_sequence_t RadioLinkMonitoringRS_sequence[] = { + { &hf_nr_rrc_purpose , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_purpose }, + { &hf_nr_rrc_detectionResource, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_detectionResource }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RadioLinkMonitoringRS(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_RadioLinkMonitoringRS, RadioLinkMonitoringRS_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS_sequence_of[1] = { + { &hf_nr_rrc_failureDetectionResources_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RadioLinkMonitoringRS }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS(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_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS, SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS_sequence_of, + 1, maxNrofFailureDetectionResources, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_beamFailureInstanceMaxCount_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n3" }, + { 3, "n4" }, + { 4, "n5" }, + { 5, "n6" }, + { 6, "n8" }, + { 7, "n10" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_beamFailureInstanceMaxCount(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_beamFailureDetectionTimer_vals[] = { + { 0, "pbfd1" }, + { 1, "pbfd2" }, + { 2, "pbfd3" }, + { 3, "pbfd4" }, + { 4, "pbfd5" }, + { 5, "pbfd6" }, + { 6, "pbfd8" }, + { 7, "pbfd10" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_beamFailureDetectionTimer(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 RadioLinkMonitoringConfig_sequence[] = { + { &hf_nr_rrc_failureDetectionResources, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS }, + { &hf_nr_rrc_beamFailureInstanceMaxCount, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_beamFailureInstanceMaxCount }, + { &hf_nr_rrc_beamFailureDetectionTimer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_beamFailureDetectionTimer }, { 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_) { +dissect_nr_rrc_RadioLinkMonitoringConfig(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); + ett_nr_rrc_RadioLinkMonitoringConfig, RadioLinkMonitoringConfig_sequence); return offset; } -static const value_string nr_rrc_T_phaseTracking_RS_01_vals[] = { +static const value_string nr_rrc_T_radioLinkMonitoringConfig_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_phaseTracking_RS_01_choice[] = { +static const per_choice_t T_radioLinkMonitoringConfig_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 }, + { 1, &hf_nr_rrc_setup_13 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RadioLinkMonitoringConfig }, { 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_) { +dissect_nr_rrc_T_radioLinkMonitoringConfig(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, + ett_nr_rrc_T_radioLinkMonitoringConfig, T_radioLinkMonitoringConfig_choice, NULL); return offset; } -static const value_string nr_rrc_T_tpcAccumulation_vals[] = { - { 0, "enabled" }, +static const per_sequence_t BWP_DownlinkDedicated_sequence[] = { + { &hf_nr_rrc_pdcch_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcch_Config }, + { &hf_nr_rrc_pdsch_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_Config }, + { &hf_nr_rrc_sps_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_sps_Config }, + { &hf_nr_rrc_radioLinkMonitoringConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_radioLinkMonitoringConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BWP_DownlinkDedicated(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_BWP_DownlinkDedicated, BWP_DownlinkDedicated_sequence); + + return offset; +} + + +static const per_sequence_t BWP_Downlink_sequence[] = { + { &hf_nr_rrc_bwp_Id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Id }, + { &hf_nr_rrc_bwp_Common_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_DownlinkCommon }, + { &hf_nr_rrc_bwp_Dedicated_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_DownlinkDedicated }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BWP_Downlink(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_BWP_Downlink, BWP_Downlink_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_servedRadioBearer_vals[] = { + { 0, "srb-Identity" }, + { 1, "drb-Identity" }, + { 0, NULL } +}; + +static const per_choice_t T_servedRadioBearer_choice[] = { + { 0, &hf_nr_rrc_srb_Identity , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SRB_Identity }, + { 1, &hf_nr_rrc_drb_Identity , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DRB_Identity }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_servedRadioBearer(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_servedRadioBearer, T_servedRadioBearer_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_reestablishRLC_vals[] = { + { 0, "true" }, { 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_) { +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); @@ -8580,15 +14367,15 @@ dissect_nr_rrc_T_tpcAccumulation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } -static const value_string nr_rrc_T_frequencyHopping_vals[] = { - { 0, "mode1" }, - { 1, "mode2" }, +static const value_string nr_rrc_SN_FieldLengthAM_vals[] = { + { 0, "size12" }, + { 1, "size18" }, { 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_) { +dissect_nr_rrc_SN_FieldLengthAM(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); @@ -8596,78 +14383,422 @@ dissect_nr_rrc_T_frequencyHopping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const value_string nr_rrc_T_rateMatching_vals[] = { - { 0, "fullBufferRM" }, - { 1, "limitedBufferRM" }, +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_rateMatching(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 2, NULL, FALSE, 0, NULL); + 64, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_mcs_Table_01_vals[] = { - { 0, "ul-64QAM" }, - { 1, "ul-256QAM" }, +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_T_mcs_Table_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 2, NULL, FALSE, 0, NULL); + 32, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_mcs_TableTransformPrecoder_vals[] = { - { 0, "ul-64QAM" }, - { 1, "ul-256QAM" }, +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_T_mcs_TableTransformPrecoder(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 2, NULL, FALSE, 0, NULL); + 64, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_transformPrecoder_vals[] = { - { 0, "enabled" }, +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_transformPrecoder(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 1, NULL, FALSE, 0, NULL); + 8, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_rbg_Size_01_vals[] = { - { 0, "config1" }, - { 1, "config2" }, +static const per_sequence_t UL_AM_RLC_sequence[] = { + { &hf_nr_rrc_sn_FieldLength, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SN_FieldLengthAM }, + { &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_rbg_Size_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_FieldLengthAM }, + { &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_FieldLengthUM_vals[] = { + { 0, "size6" }, + { 1, "size12" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_SN_FieldLengthUM(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); @@ -8675,600 +14806,1629 @@ dissect_nr_rrc_T_rbg_Size_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -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 }, +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_FieldLengthUM }, { 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_) { +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_BetaOffsets, BetaOffsets_sequence); + ett_nr_rrc_UL_UM_RLC, UL_UM_RLC_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 const per_sequence_t DL_UM_RLC_sequence[] = { + { &hf_nr_rrc_sn_FieldLength_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SN_FieldLengthUM }, + { &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_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_) { +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 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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex_sequence_of[1] = { + { &hf_nr_rrc_allowedServingCells_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_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_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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex, SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex_sequence_of, + 1, maxNrofServingCells_1, FALSE); return offset; } -static const value_string nr_rrc_T_setup_09_vals[] = { - { 0, "dynamic" }, - { 1, "semiStatic" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxSCSs_OF_SubcarrierSpacing_sequence_of[1] = { + { &hf_nr_rrc_allowedSCS_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SubcarrierSpacing(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_maxSCSs_OF_SubcarrierSpacing, SEQUENCE_SIZE_1_maxSCSs_OF_SubcarrierSpacing_sequence_of, + 1, maxSCSs, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_maxPUSCH_Duration_vals[] = { + { 0, "ms0p02" }, + { 1, "ms0p04" }, + { 2, "ms0p0625" }, + { 3, "ms0p125" }, + { 4, "ms0p25" }, + { 5, "ms0p5" }, + { 6, "spare2" }, + { 7, "spare1" }, { 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 }, + +static int +dissect_nr_rrc_T_maxPUSCH_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, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_configuredGrantType1Allowed_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_configuredGrantType1Allowed(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_maxLCG_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, maxLCG_ID, 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_allowedServingCells, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex }, + { &hf_nr_rrc_allowedSCS_List, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SubcarrierSpacing }, + { &hf_nr_rrc_maxPUSCH_Duration, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxPUSCH_Duration }, + { &hf_nr_rrc_configuredGrantType1Allowed, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_configuredGrantType1Allowed }, + { &hf_nr_rrc_logicalChannelGroup, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxLCG_ID }, + { &hf_nr_rrc_schedulingRequestID, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SchedulingRequestId }, + { &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_EXTENSION_ROOT , 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 RLC_Bearer_Config_sequence[] = { + { &hf_nr_rrc_logicalChannelIdentity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_LogicalChannelIdentity }, + { &hf_nr_rrc_servedRadioBearer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_servedRadioBearer }, + { &hf_nr_rrc_reestablishRLC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_reestablishRLC }, + { &hf_nr_rrc_rlc_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RLC_Config }, + { &hf_nr_rrc_mac_LogicalChannelConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_LogicalChannelConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RLC_Bearer_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_RLC_Bearer_Config, RLC_Bearer_Config_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_Bearer_Config_sequence_of[1] = { + { &hf_nr_rrc_rlc_BearerToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RLC_Bearer_Config }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_Bearer_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_maxLC_ID_OF_RLC_Bearer_Config, SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_Bearer_Config_sequence_of, + 1, maxLC_ID, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxLC_ID_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_maxLC_ID_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_maxLC_ID_OF_LogicalChannelIdentity, SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentity_sequence_of, + 1, maxLC_ID, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_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, + 1U, 31U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_milliSeconds_vals[] = { + { 0, "ms1" }, + { 1, "ms2" }, + { 2, "ms3" }, + { 3, "ms4" }, + { 4, "ms5" }, + { 5, "ms6" }, + { 6, "ms8" }, + { 7, "ms10" }, + { 8, "ms20" }, + { 9, "ms30" }, + { 10, "ms40" }, + { 11, "ms50" }, + { 12, "ms60" }, + { 13, "ms80" }, + { 14, "ms100" }, + { 15, "ms200" }, + { 16, "ms300" }, + { 17, "ms400" }, + { 18, "ms500" }, + { 19, "ms600" }, + { 20, "ms800" }, + { 21, "ms1000" }, + { 22, "ms1200" }, + { 23, "ms1600" }, + { 24, "spare9" }, + { 25, "spare8" }, + { 26, "spare7" }, + { 27, "spare6" }, + { 28, "spare5" }, + { 29, "spare4" }, + { 30, "spare3" }, + { 31, "spare2" }, + { 32, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_milliSeconds_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_milliSeconds_vals); + + +static int +dissect_nr_rrc_T_milliSeconds(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, + 33, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_drx_onDurationTimer_vals[] = { + { 0, "subMilliSeconds" }, + { 1, "milliSeconds" }, + { 0, NULL } +}; + +static const per_choice_t T_drx_onDurationTimer_choice[] = { + { 0, &hf_nr_rrc_subMilliSeconds, ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_1_31 }, + { 1, &hf_nr_rrc_milliSeconds , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_milliSeconds }, { 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_) { +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_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_setup_09, T_setup_09_choice, + ett_nr_rrc_T_drx_onDurationTimer, T_drx_onDurationTimer_choice, NULL); return offset; } -static const value_string nr_rrc_T_uci_on_PUSCH_vals[] = { - { 0, "release" }, - { 1, "setup" }, +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 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 }, +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, "sl160" }, + { 16, "sl320" }, + { 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_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, + 32, 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, "sl128" }, + { 15, "sl160" }, + { 16, "sl320" }, + { 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 const value_string nr_rrc_T_drx_LongCycleStartOffset_01_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_01_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_drx_LongCycleStartOffset_01_vals); + +static const per_choice_t T_drx_LongCycleStartOffset_01_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_uci_on_PUSCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_drx_LongCycleStartOffset_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_uci_on_PUSCH, T_uci_on_PUSCH_choice, + ett_nr_rrc_T_drx_LongCycleStartOffset_01, T_drx_LongCycleStartOffset_01_choice, NULL); return offset; } -static const value_string nr_rrc_T_xOverhead_01_vals[] = { - { 0, "n0" }, - { 1, "n6" }, - { 2, "n12" }, - { 3, "n18" }, +static const value_string nr_rrc_T_drx_ShortCycle_01_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_01_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_drx_ShortCycle_01_vals); + 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_) { +dissect_nr_rrc_T_drx_ShortCycle_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); + 32, 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 }, +static const per_sequence_t T_shortDRX_01_sequence[] = { + { &hf_nr_rrc_drx_ShortCycle_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_drx_ShortCycle_01 }, + { &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_PUSCH_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_shortDRX_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_PUSCH_Config, PUSCH_Config_sequence); + ett_nr_rrc_T_shortDRX_01, T_shortDRX_01_sequence); return offset; } +static const per_sequence_t DRX_Config_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_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_drx_LongCycleStartOffset_01 }, + { &hf_nr_rrc_shortDRX_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_shortDRX_01 }, + { &hf_nr_rrc_drx_SlotOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_31 }, + { NULL, 0, 0, NULL } +}; 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); +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_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DRX_Config, DRX_Config_sequence); 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 const value_string nr_rrc_T_drx_Config_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_drx_Config_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DRX_Config }, + { 0, NULL, 0, NULL } }; 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); +dissect_nr_rrc_T_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_T_drx_Config, T_drx_Config_choice, + 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_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); +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 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 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_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); +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 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 }, +static const per_sequence_t SchedulingRequestToAddMod_sequence[] = { + { &hf_nr_rrc_sr_ConfigIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SchedulingRequestId }, + { &hf_nr_rrc_sr_ProhibitTimer, ASN1_NO_EXTENSIONS , ASN1_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_SRS_ResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_SRS_ResourceSet, SRS_ResourceSet_sequence); + ett_nr_rrc_SchedulingRequestToAddMod, SchedulingRequestToAddMod_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 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_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_) { +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_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet, SEQUENCE_SIZE_0_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet_sequence_of, - 0, maxNrofSRS_ResourceSets, FALSE); + 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_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 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_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_) { +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_maxNrofSRS_Resources_OF_SRS_ResourceId, SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId_sequence_of, - 1, maxNrofSRS_Resources, FALSE); + 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 value_string nr_rrc_T_nrofSRS_Ports_vals[] = { - { 0, "port1" }, - { 1, "ports2" }, - { 2, "ports4" }, +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_nrofSRS_Ports(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 3, NULL, FALSE, 0, NULL); + 16, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_transmissionComb_vals[] = { - { 0, "n2" }, - { 1, "n4" }, +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" }, + { 11, "spare5" }, + { 12, "spare4" }, + { 13, "spare3" }, + { 14, "spare2" }, + { 15, "spare1" }, { 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_) { +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, - 2, NULL, FALSE, 0, NULL); + 16, NULL, FALSE, 0, NULL); return offset; } +static const value_string nr_rrc_T_logicalChannelSR_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_INTEGER_0_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_logicalChannelSR_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_logicalChannelSR_DelayTimer, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_logicalChannelSR_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_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, 2U, NULL, FALSE); + 0U, maxNrofTAGs_1, NULL, FALSE); return offset; } -static const per_sequence_t T_aperiodic_01_sequence[] = { +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id_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_SEQUENCE_SIZE_1_maxNrofTAGs_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id, SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id_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_T_aperiodic_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_T_aperiodic_01, T_aperiodic_01_sequence); + ett_nr_rrc_TAG_ToAddMod, TAG_ToAddMod_sequence); return offset; } -static const per_sequence_t T_semi_persistent_sequence[] = { +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_ToAddMod_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_SEQUENCE_SIZE_1_maxNrofTAGs_OF_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_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_ToAddMod, SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_ToAddMod_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_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id }, + { &hf_nr_rrc_tag_ToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_ToAddMod }, { 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_) { +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_T_semi_persistent, T_semi_persistent_sequence); + ett_nr_rrc_TAG_Config, TAG_Config_sequence); return offset; } -static const per_sequence_t T_periodic_01_sequence[] = { +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 PHR_Config_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_periodic_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_periodic_01, T_periodic_01_sequence); + ett_nr_rrc_PHR_Config, PHR_Config_sequence); return offset; } -static const value_string nr_rrc_T_resourceType_01_vals[] = { - { 0, "aperiodic" }, - { 1, "semi-persistent" }, - { 2, "periodic" }, +static const value_string nr_rrc_T_phr_Config_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 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 }, +static const per_choice_t T_phr_Config_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_21 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PHR_Config }, { 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_) { +dissect_nr_rrc_T_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_T_resourceType_01, T_resourceType_01_choice, + ett_nr_rrc_T_phr_Config, T_phr_Config_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" }, +static const value_string nr_rrc_T_cs_RNTI_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 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 }, +static const per_choice_t T_cs_RNTI_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_22 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RNTI_Value }, { 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_) { +dissect_nr_rrc_T_cs_RNTI(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, + ett_nr_rrc_T_cs_RNTI, T_cs_RNTI_choice, NULL); return offset; } +static const per_sequence_t MAC_CellGroupConfig_sequence[] = { + { &hf_nr_rrc_drx_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_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_Config }, + { &hf_nr_rrc_tag_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_TAG_Config }, + { &hf_nr_rrc_phr_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_phr_Config }, + { &hf_nr_rrc_skipUplinkTxDynamic, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_cs_RNTI , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_cs_RNTI }, + { NULL, 0, 0, NULL } +}; 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); +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 value_string nr_rrc_T_spatialRelationInfo_vals[] = { - { 0, "ssb-pbch" }, - { 1, "csi-rs" }, - { 2, "srs" }, +static const value_string nr_rrc_T_harq_ACK_SpatialBundlingPUCCH_vals[] = { + { 0, "true" }, { 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_) { +dissect_nr_rrc_T_harq_ACK_SpatialBundlingPUCCH(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); + 1, 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 }, +static const value_string nr_rrc_T_harq_ACK_SpatialBundlingPUSCH_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_harq_ACK_SpatialBundlingPUSCH(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_pdsch_HARQ_ACK_Codebook_vals[] = { + { 0, "semiStatic" }, + { 1, "dynamic" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdsch_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 PhysicalCellGroupConfig_sequence[] = { + { &hf_nr_rrc_harq_ACK_SpatialBundlingPUCCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_harq_ACK_SpatialBundlingPUCCH }, + { &hf_nr_rrc_harq_ACK_SpatialBundlingPUSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_harq_ACK_SpatialBundlingPUSCH }, + { &hf_nr_rrc_p_NR , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { &hf_nr_rrc_pdsch_HARQ_ACK_Codebook, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_pdsch_HARQ_ACK_Codebook }, + { &hf_nr_rrc_tpc_SRS_RNTI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RNTI_Value }, + { &hf_nr_rrc_tpc_PUCCH_RNTI, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RNTI_Value }, + { &hf_nr_rrc_tpc_PUSCH_RNTI, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RNTI_Value }, { 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_) { +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_SRS_Resource, SRS_Resource_sequence); + ett_nr_rrc_PhysicalCellGroupConfig, PhysicalCellGroupConfig_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); +dissect_nr_rrc_INTEGER_1_23(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, 23U, NULL, 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 }, +static const per_sequence_t FrequencyInfoDL_sequence[] = { + { &hf_nr_rrc_absoluteFrequencySSB, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_ssb_SubcarrierOffset_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_23 }, + { &hf_nr_rrc_frequencyBandList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MultiFrequencyBandListNR }, + { &hf_nr_rrc_absoluteFrequencyPointA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_scs_SpecificCarrierList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier }, { 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_) { +dissect_nr_rrc_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_SRS_Config, SRS_Config_sequence); + ett_nr_rrc_FrequencyInfoDL, FrequencyInfoDL_sequence); return offset; } -static const value_string nr_rrc_T_transformPrecoder_01_vals[] = { - { 0, "enabled" }, +static const value_string nr_rrc_T_ssb_PositionsInBurst_01_vals[] = { + { 0, "shortBitmap" }, + { 1, "mediumBitmap" }, + { 2, "longBitmap" }, { 0, NULL } }; +static const per_choice_t T_ssb_PositionsInBurst_01_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_transformPrecoder_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_ssb_PositionsInBurst_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_ssb_PositionsInBurst_01, T_ssb_PositionsInBurst_01_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" }, + { 6, "spare2" }, + { 7, "spare1" }, + { 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, - 1, NULL, FALSE, 0, NULL); + 8, 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" }, +static const value_string nr_rrc_T_dmrs_TypeA_Position_01_vals[] = { + { 0, "pos2" }, + { 1, "pos3" }, { 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_) { +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, - 3, NULL, FALSE, 0, NULL); + 2, 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" }, + +static int +dissect_nr_rrc_INTEGER_0_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, + 0U, 16383U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_carrierBandwidthDL_vals[] = { + { 0, "n6" }, + { 1, "n15" }, + { 2, "n25" }, + { 3, "n50" }, + { 4, "n75" }, + { 5, "n100" }, + { 6, "spare2" }, + { 7, "spare1" }, { 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_carrierBandwidthDL(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_radioframeAllocationPeriod_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 3, "n8" }, + { 4, "n16" }, + { 5, "n32" }, + { 0, NULL } +}; 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_) { +dissect_nr_rrc_T_radioframeAllocationPeriod(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); + 6, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_24(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, + 24, 24, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_subframeAllocation_vals[] = { + { 0, "oneFrame" }, + { 1, "fourFrames" }, + { 0, NULL } +}; + +static const per_choice_t T_subframeAllocation_choice[] = { + { 0, &hf_nr_rrc_oneFrame , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_6 }, + { 1, &hf_nr_rrc_fourFrames , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_24 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_subframeAllocation(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_subframeAllocation, T_subframeAllocation_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_subframeAllocation_v1430_vals[] = { + { 0, "oneFrame-v1430" }, + { 1, "fourFrames-v1430" }, + { 0, NULL } +}; + +static const per_choice_t T_subframeAllocation_v1430_choice[] = { + { 0, &hf_nr_rrc_oneFrame_v1430, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { 1, &hf_nr_rrc_fourFrames_v1430, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_subframeAllocation_v1430(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_subframeAllocation_v1430, T_subframeAllocation_v1430_choice, + 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 }, +static const per_sequence_t EUTRA_MBSFN_SubframeConfig_sequence[] = { + { &hf_nr_rrc_radioframeAllocationPeriod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_radioframeAllocationPeriod }, + { &hf_nr_rrc_radioframeAllocationOffset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_7 }, + { &hf_nr_rrc_subframeAllocation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_subframeAllocation }, + { &hf_nr_rrc_subframeAllocation_v1430, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_subframeAllocation_v1430 }, { 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_) { +dissect_nr_rrc_EUTRA_MBSFN_SubframeConfig(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); + ett_nr_rrc_EUTRA_MBSFN_SubframeConfig, EUTRA_MBSFN_SubframeConfig_sequence); return offset; } -static const value_string nr_rrc_T_rrcConfiguredUplinkGrant_vals[] = { - { 0, "setup" }, - { 1, "release" }, +static const per_sequence_t EUTRA_MBSFN_SubframeConfigList_sequence_of[1] = { + { &hf_nr_rrc_EUTRA_MBSFN_SubframeConfigList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_MBSFN_SubframeConfig }, +}; + +static int +dissect_nr_rrc_EUTRA_MBSFN_SubframeConfigList(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_EUTRA_MBSFN_SubframeConfigList, EUTRA_MBSFN_SubframeConfigList_sequence_of, + 1, maxMBSFN_Allocations, FALSE); + + 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 RateMatchPatternLTE_CRS_sequence[] = { + { &hf_nr_rrc_carrierFreqDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_16383 }, + { &hf_nr_rrc_carrierBandwidthDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_carrierBandwidthDL }, + { &hf_nr_rrc_mbsfn_SubframeConfigList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_MBSFN_SubframeConfigList }, + { &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_RateMatchPatternLTE_CRS(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_RateMatchPatternLTE_CRS, RateMatchPatternLTE_CRS_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_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 }, +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_40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RateMatchPatternLTE_CRS }, { 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_) { +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_rrcConfiguredUplinkGrant, T_rrcConfiguredUplinkGrant_choice, + ett_nr_rrc_T_lte_CRS_ToMatchAround, T_lte_CRS_ToMatchAround_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 }, +static const per_sequence_t ServingCellConfigCommon_sequence[] = { + { &hf_nr_rrc_physCellId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_frequencyInfoDL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_FrequencyInfoDL }, + { &hf_nr_rrc_initialDownlinkBWP_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_DownlinkCommon }, + { &hf_nr_rrc_uplinkConfigCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfigCommon }, + { &hf_nr_rrc_supplementaryUplinkConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfigCommon }, + { &hf_nr_rrc_ssb_PositionsInBurst_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_PositionsInBurst_01 }, + { &hf_nr_rrc_ssb_periodicityServingCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_periodicityServingCell }, + { &hf_nr_rrc_dmrs_TypeA_Position_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dmrs_TypeA_Position_01 }, + { &hf_nr_rrc_lte_CRS_ToMatchAround, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_lte_CRS_ToMatchAround }, + { &hf_nr_rrc_rateMatchPatternToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern }, + { &hf_nr_rrc_rateMatchPatternToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId }, + { &hf_nr_rrc_subcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_tdd_UL_DL_ConfigurationCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_TDD_UL_DL_ConfigCommon }, + { &hf_nr_rrc_tdd_UL_DL_ConfigurationCommon2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_TDD_UL_DL_ConfigCommon }, + { &hf_nr_rrc_ss_PBCH_BlockPower, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M60_50 }, { 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_) { +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_T_uplink, T_uplink_sequence); + ett_nr_rrc_ServingCellConfigCommon, ServingCellConfigCommon_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 }, +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" }, + { 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 const per_sequence_t CFRA_SSB_Resource_sequence[] = { + { &hf_nr_rrc_ssb_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_Index }, + { &hf_nr_rrc_ra_PreambleIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_63 }, { 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_) { +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_SPS_Config, SPS_Config_sequence); + ett_nr_rrc_CFRA_SSB_Resource, CFRA_SSB_Resource_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 }, +static const per_sequence_t SEQUENCE_SIZE_1_maxRA_SSB_Resources_OF_CFRA_SSB_Resource_sequence_of[1] = { + { &hf_nr_rrc_ssb_ResourceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CFRA_SSB_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxRA_SSB_Resources_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_maxRA_SSB_Resources_OF_CFRA_SSB_Resource, SEQUENCE_SIZE_1_maxRA_SSB_Resources_OF_CFRA_SSB_Resource_sequence_of, + 1, maxRA_SSB_Resources, FALSE); + + return offset; +} + + +static const per_sequence_t T_ssb_sequence[] = { + { &hf_nr_rrc_ssb_ResourceList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxRA_SSB_Resources_OF_CFRA_SSB_Resource }, + { &hf_nr_rrc_ra_ssb_OccasionMaskIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_15 }, { 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_) { +dissect_nr_rrc_T_ssb(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); + ett_nr_rrc_T_ssb, T_ssb_sequence); return offset; } @@ -9276,530 +16436,856 @@ dissect_nr_rrc_T_own(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr 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_) { +dissect_nr_rrc_INTEGER_0_maxRA_Occasions_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, 16U, NULL, FALSE); + 0U, maxRA_Occasions_1, NULL, FALSE); return offset; } +static const per_sequence_t T_ra_OccasionList_sequence_of[1] = { + { &hf_nr_rrc_ra_OccasionList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxRA_Occasions_1 }, +}; 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); +dissect_nr_rrc_T_ra_OccasionList(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_ra_OccasionList, T_ra_OccasionList_sequence_of, + 1, maxRA_OccasionsPerCSIRS, 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 }, +static const per_sequence_t CFRA_CSIRS_Resource_sequence[] = { + { &hf_nr_rrc_csi_RS_02 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_Index }, + { &hf_nr_rrc_ra_OccasionList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ra_OccasionList }, + { &hf_nr_rrc_ra_PreambleIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_63 }, { 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_) { +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_T_other, T_other_sequence); + ett_nr_rrc_CFRA_CSIRS_Resource, CFRA_CSIRS_Resource_sequence); return offset; } -static const value_string nr_rrc_T_schedulingCellInfo_vals[] = { - { 0, "own" }, - { 1, "other" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_OF_CFRA_CSIRS_Resource_sequence_of[1] = { + { &hf_nr_rrc_csirs_ResourceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CFRA_CSIRS_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_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_maxRA_CSIRS_Resources_OF_CFRA_CSIRS_Resource, SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_OF_CFRA_CSIRS_Resource_sequence_of, + 1, maxRA_CSIRS_Resources, FALSE); + + return offset; +} + + +static const per_sequence_t T_csirs_sequence[] = { + { &hf_nr_rrc_csirs_ResourceList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_OF_CFRA_CSIRS_Resource }, + { &hf_nr_rrc_cfra_csirs_DedicatedRACH_Threshold, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RSRP_Range }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_csirs(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_csirs, T_csirs_sequence); + + return offset; +} + + +static const value_string nr_rrc_CFRA_Resources_vals[] = { + { 0, "ssb" }, + { 1, "csirs" }, { 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 }, +static const per_choice_t CFRA_Resources_choice[] = { + { 0, &hf_nr_rrc_ssb_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_ssb }, + { 1, &hf_nr_rrc_csirs , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_csirs }, { 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_) { +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_T_schedulingCellInfo, T_schedulingCellInfo_choice, + ett_nr_rrc_CFRA_Resources, CFRA_Resources_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 }, +static const per_sequence_t RACH_ConfigDedicated_sequence[] = { + { &hf_nr_rrc_cfra_Resources, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CFRA_Resources }, { 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_) { +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_CrossCarrierSchedulingConfig, CrossCarrierSchedulingConfig_sequence); + ett_nr_rrc_RACH_ConfigDedicated, RACH_ConfigDedicated_sequence); return offset; } -static const value_string nr_rrc_T_ue_BeamLockFunction_vals[] = { - { 0, "enabled" }, +static const value_string nr_rrc_T_rach_ConfigDedicated_vals[] = { + { 0, "uplink" }, + { 1, "supplementaryUplink" }, { 0, NULL } }; +static const per_choice_t T_rach_ConfigDedicated_choice[] = { + { 0, &hf_nr_rrc_uplink , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RACH_ConfigDedicated }, + { 1, &hf_nr_rrc_supplementaryUplink_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RACH_ConfigDedicated }, + { 0, NULL, 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_) { +dissect_nr_rrc_T_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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_rach_ConfigDedicated, T_rach_ConfigDedicated_choice, + NULL); + + return offset; +} + + +static const per_sequence_t ReconfigurationWithSync_sequence[] = { + { &hf_nr_rrc_spCellConfigCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ServingCellConfigCommon }, + { &hf_nr_rrc_newUE_Identity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RNTI_Value }, + { &hf_nr_rrc_t304 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t304 }, + { &hf_nr_rrc_rach_ConfigDedicated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rach_ConfigDedicated }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_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_ReconfigurationWithSync, ReconfigurationWithSync_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_t310_vals[] = { + { 0, "ms0" }, + { 1, "ms50" }, + { 2, "ms100" }, + { 3, "ms200" }, + { 4, "ms500" }, + { 5, "ms1000" }, + { 6, "ms2000" }, + { 7, "ms4000" }, + { 8, "ms6000" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_t310(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); + 9, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_pathlossReferenceLinking_vals[] = { - { 0, "pCell" }, - { 1, "sCell" }, +static const value_string nr_rrc_T_n310_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n3" }, + { 3, "n4" }, + { 4, "n6" }, + { 5, "n8" }, + { 6, "n10" }, + { 7, "n20" }, { 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_) { +dissect_nr_rrc_T_n310(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); + 8, 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 }, +static const value_string nr_rrc_T_n311_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n3" }, + { 3, "n4" }, + { 4, "n5" }, + { 5, "n6" }, + { 6, "n8" }, + { 7, "n10" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_n311(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 RLF_TimersAndConstants_sequence[] = { + { &hf_nr_rrc_t310 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t310 }, + { &hf_nr_rrc_n310 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_n310 }, + { &hf_nr_rrc_n311 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_n311 }, { 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_) { +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_ServingCellConfigDedicated, ServingCellConfigDedicated_sequence); + ett_nr_rrc_RLF_TimersAndConstants, RLF_TimersAndConstants_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 }, +static const value_string nr_rrc_T_rlf_TimersAndConstants_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_rlf_TimersAndConstants_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_RLF_TimersAndConstants }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_rlf_TimersAndConstants, T_rlf_TimersAndConstants_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_TDD_UL_DL_SlotIndex(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, maxNrofSlots_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxNrofSymbols_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, maxNrofSymbols_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_explicit_sequence[] = { + { &hf_nr_rrc_nrofDownlinkSymbols_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNrofSymbols_1 }, + { &hf_nr_rrc_nrofUplinkSymbols_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNrofSymbols_1 }, { 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_) { +dissect_nr_rrc_T_explicit(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); + ett_nr_rrc_T_explicit, T_explicit_sequence); return offset; } +static const value_string nr_rrc_T_symbols_vals[] = { + { 0, "allDownlink" }, + { 1, "allUplink" }, + { 2, "explicit" }, + { 0, NULL } +}; + +static const per_choice_t T_symbols_choice[] = { + { 0, &hf_nr_rrc_allDownlink , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_allUplink , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 2, &hf_nr_rrc_explicit , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_explicit }, + { 0, NULL, 0, NULL } +}; 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); +dissect_nr_rrc_T_symbols(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_symbols, T_symbols_choice, + NULL); 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 }, +static const per_sequence_t TDD_UL_DL_SlotConfig_sequence[] = { + { &hf_nr_rrc_slotIndex , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TDD_UL_DL_SlotIndex }, + { &hf_nr_rrc_symbols , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_symbols }, { 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_) { +dissect_nr_rrc_TDD_UL_DL_SlotConfig(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); + ett_nr_rrc_TDD_UL_DL_SlotConfig, TDD_UL_DL_SlotConfig_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig_sequence_of[1] = { + { &hf_nr_rrc_slotSpecificConfigurationsToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TDD_UL_DL_SlotConfig }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig, SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig_sequence_of, + 1, maxNrofSlots, 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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex_sequence_of[1] = { + { &hf_nr_rrc_slotSpecificConfigurationsToreleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TDD_UL_DL_SlotIndex }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex, SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex_sequence_of, + 1, maxNrofSlots, 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 }, +static const per_sequence_t TDD_UL_DL_ConfigDedicated_sequence[] = { + { &hf_nr_rrc_slotSpecificConfigurationsToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig }, + { &hf_nr_rrc_slotSpecificConfigurationsToreleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex }, { 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_) { +dissect_nr_rrc_TDD_UL_DL_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_CellGroupConfig, CellGroupConfig_sequence); + ett_nr_rrc_TDD_UL_DL_ConfigDedicated, TDD_UL_DL_ConfigDedicated_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id_sequence_of[1] = { + { &hf_nr_rrc_downlinkBWP_ToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Id }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_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_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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id, SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id_sequence_of, + 1, maxNrofBWPs, 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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink_sequence_of[1] = { + { &hf_nr_rrc_downlinkBWP_ToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Downlink }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink, SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink_sequence_of, + 1, maxNrofBWPs, FALSE); return offset; } +static const value_string nr_rrc_T_bwp_InactivityTimer_vals[] = { + { 0, "ms2" }, + { 1, "ms3" }, + { 2, "ms4" }, + { 3, "ms5" }, + { 4, "ms6" }, + { 5, "ms8" }, + { 6, "ms10" }, + { 7, "ms20" }, + { 8, "ms30" }, + { 9, "ms40" }, + { 10, "ms50" }, + { 11, "ms60" }, + { 12, "ms80" }, + { 13, "ms100" }, + { 14, "ms200" }, + { 15, "ms300" }, + { 16, "ms500" }, + { 17, "ms750" }, + { 18, "ms1280" }, + { 19, "ms1920" }, + { 20, "ms2560" }, + { 21, "spare10" }, + { 22, "spare9" }, + { 23, "spare8" }, + { 24, "spare7" }, + { 25, "spare6" }, + { 26, "spare5" }, + { 27, "spare4" }, + { 28, "spare3" }, + { 29, "spare2" }, + { 30, "spare1" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_bwp_InactivityTimer_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_bwp_InactivityTimer_vals); + 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); +dissect_nr_rrc_T_bwp_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, + 31, NULL, FALSE, 0, NULL); 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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink_sequence_of[1] = { + { &hf_nr_rrc_uplinkBWP_ToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Uplink }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink, SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink_sequence_of, + 1, maxNrofBWPs, FALSE); return offset; } -static const value_string nr_rrc_T_periodicityAndOffset_vals[] = { - { 0, "sf5" }, - { 1, "sf10" }, - { 2, "sf20" }, - { 3, "sf40" }, - { 4, "sf80" }, - { 5, "sf160" }, +static const value_string nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_01_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 2, "n6" }, + { 3, "n8" }, { 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 }, + +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 per_sequence_t PUSCH_CodeBlockGroupGransmission_sequence[] = { + { &hf_nr_rrc_maxCodeBlockGroupsPerTransportBlock_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxCodeBlockGroupsPerTransportBlock_01 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUSCH_CodeBlockGroupGransmission(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_CodeBlockGroupGransmission, PUSCH_CodeBlockGroupGransmission_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_codeBlockGroupTransmission_01_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_codeBlockGroupTransmission_01_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_35 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_CodeBlockGroupGransmission }, { 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_) { +dissect_nr_rrc_T_codeBlockGroupTransmission_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, T_periodicityAndOffset_choice, + ett_nr_rrc_T_codeBlockGroupTransmission_01, T_codeBlockGroupTransmission_01_choice, NULL); return offset; } -static const value_string nr_rrc_T_duration_vals[] = { - { 0, "sf1" }, - { 1, "sf5" }, +static const value_string nr_rrc_T_rateMatching_vals[] = { + { 0, "limitedBufferRM" }, { 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_) { +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); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_setup_02_vals[] = { - { 0, "shortBitmap" }, - { 1, "mediumBitmap" }, - { 2, "longBitmap" }, +static const value_string nr_rrc_T_xOverhead_01_vals[] = { + { 0, "xoh6" }, + { 1, "xoh12" }, + { 2, "xoh18" }, { 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_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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PUSCH_ServingCellConfig_sequence[] = { + { &hf_nr_rrc_codeBlockGroupTransmission_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_codeBlockGroupTransmission_01 }, + { &hf_nr_rrc_rateMatching , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rateMatching }, + { &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_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); +dissect_nr_rrc_PUSCH_ServingCellConfig(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_ServingCellConfig, PUSCH_ServingCellConfig_sequence); return offset; } -static const value_string nr_rrc_T_ssb_ToMeasure_vals[] = { +static const value_string nr_rrc_T_pusch_ServingCellConfig_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_ssb_ToMeasure_choice[] = { +static const per_choice_t T_pusch_ServingCellConfig_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 }, + { 1, &hf_nr_rrc_setup_39 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_ServingCellConfig }, { 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_) { +dissect_nr_rrc_T_pusch_ServingCellConfig(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, + ett_nr_rrc_T_pusch_ServingCellConfig, T_pusch_ServingCellConfig_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 }, +static const per_sequence_t UplinkConfig_sequence[] = { + { &hf_nr_rrc_initialUplinkBWP, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_UplinkDedicated }, + { &hf_nr_rrc_uplinkBWP_ToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id }, + { &hf_nr_rrc_uplinkBWP_ToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink }, + { &hf_nr_rrc_firstActiveUplinkBWP_Id, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_Id }, + { &hf_nr_rrc_pusch_ServingCellConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_ServingCellConfig }, { 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_) { +dissect_nr_rrc_UplinkConfig(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); + ett_nr_rrc_UplinkConfig, UplinkConfig_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_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); +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 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 const per_sequence_t PDSCH_CodeBlockGroupTransmission_sequence[] = { + { &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 }, + { NULL, 0, 0, NULL } }; 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); +dissect_nr_rrc_PDSCH_CodeBlockGroupTransmission(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_CodeBlockGroupTransmission, PDSCH_CodeBlockGroupTransmission_sequence); 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 const value_string nr_rrc_T_codeBlockGroupTransmission_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_codeBlockGroupTransmission_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_31 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_CodeBlockGroupTransmission }, + { 0, NULL, 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); +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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_codeBlockGroupTransmission, T_codeBlockGroupTransmission_choice, + NULL); 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 const value_string nr_rrc_T_xOverhead_vals[] = { + { 0, "xOh6" }, + { 1, "xOh12" }, + { 2, "xOh18" }, + { 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); +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, + 3, NULL, FALSE, 0, NULL); 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 const value_string nr_rrc_T_nrofHARQ_ProcessesForPDSCH_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 2, "n6" }, + { 3, "n10" }, + { 4, "n12" }, + { 5, "n16" }, + { 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); +dissect_nr_rrc_T_nrofHARQ_ProcessesForPDSCH(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_notPresent_sequence[] = { +static const per_sequence_t PDSCH_ServingCellConfig_sequence[] = { + { &hf_nr_rrc_codeBlockGroupTransmission, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_codeBlockGroupTransmission }, + { &hf_nr_rrc_xOverhead , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_xOverhead }, + { &hf_nr_rrc_nrofHARQ_ProcessesForPDSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_nrofHARQ_ProcessesForPDSCH }, + { &hf_nr_rrc_pucch_Cell , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, { 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_) { +dissect_nr_rrc_PDSCH_ServingCellConfig(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); + ett_nr_rrc_PDSCH_ServingCellConfig, PDSCH_ServingCellConfig_sequence); return offset; } -static const value_string nr_rrc_T_ssbPresence_vals[] = { - { 0, "present" }, - { 1, "notPresent" }, +static const value_string nr_rrc_T_pdsch_ServingCellConfig_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 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 }, +static const per_choice_t T_pdsch_ServingCellConfig_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_36 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_ServingCellConfig }, { 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_) { +dissect_nr_rrc_T_pdsch_ServingCellConfig(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, + ett_nr_rrc_T_pdsch_ServingCellConfig, T_pdsch_ServingCellConfig_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" }, + +static int +dissect_nr_rrc_INTEGER_M8_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, + -8, 15U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_powerControlOffsetSS_vals[] = { + { 0, "db-3" }, + { 1, "db0" }, + { 2, "db3" }, + { 3, "db6" }, { 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_) { +dissect_nr_rrc_T_powerControlOffsetSS(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); + 4, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_csi_rs_measurement_BW_start_vals[] = { - { 0, "ffsTypeAndValue" }, + +static int +dissect_nr_rrc_ScramblingId(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 const per_sequence_t NZP_CSI_RS_Resource_sequence[] = { + { &hf_nr_rrc_nzp_CSI_RS_ResourceId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { &hf_nr_rrc_resourceMapping, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_ResourceMapping }, + { &hf_nr_rrc_powerControlOffset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M8_15 }, + { &hf_nr_rrc_powerControlOffsetSS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_powerControlOffsetSS }, + { &hf_nr_rrc_scramblingID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ScramblingId }, + { &hf_nr_rrc_periodicityAndOffset, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CSI_ResourcePeriodicityAndOffset }, + { &hf_nr_rrc_qcl_InfoPeriodicCSI_RS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_TCI_StateId }, + { 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_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_Resource_sequence_of[1] = { + { &hf_nr_rrc_nzp_CSI_RS_ResourceToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_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_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_Resource, SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_Resource_sequence_of, + 1, maxNrofNZP_CSI_RS_Resources, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_nzp_CSI_RS_ResourceToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_ResourceId, SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_ResourceId_sequence_of, + 1, maxNrofNZP_CSI_RS_Resources, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_nzp_CSI_RS_Resources_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_ResourceId, SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_ResourceId_sequence_of, + 1, maxNrofNZP_CSI_RS_ResourcesPerSet, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_repetition_vals[] = { + { 0, "on" }, + { 1, "off" }, { 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_) { +dissect_nr_rrc_T_repetition(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); + 2, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_associated_SSB_vals[] = { - { 0, "ffsTypeAndValue" }, +static const value_string nr_rrc_T_trs_Info_vals[] = { + { 0, "true" }, { 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_) { +dissect_nr_rrc_T_trs_Info(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); @@ -9807,19 +17293,47 @@ dissect_nr_rrc_T_associated_SSB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -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 }, +static const per_sequence_t NZP_CSI_RS_ResourceSet_sequence[] = { + { &hf_nr_rrc_nzp_CSI_ResourceSetId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_ResourceSetId }, + { &hf_nr_rrc_nzp_CSI_RS_Resources, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_ResourceId }, + { &hf_nr_rrc_repetition , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_repetition }, + { &hf_nr_rrc_aperiodicTriggeringOffset, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_4 }, + { &hf_nr_rrc_trs_Info , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_trs_Info }, { 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_) { +dissect_nr_rrc_NZP_CSI_RS_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_T_csi_rs_MeasurementBW, T_csi_rs_MeasurementBW_sequence); + ett_nr_rrc_NZP_CSI_RS_ResourceSet, NZP_CSI_RS_ResourceSet_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSet_sequence_of[1] = { + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_ResourceSet }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_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_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSet, SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSet_sequence_of, + 1, maxNrofNZP_CSI_RS_ResourceSets, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSetId_sequence_of[1] = { + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_ResourceSetId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_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_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSetId, SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSetId_sequence_of, + 1, maxNrofNZP_CSI_RS_ResourceSets, FALSE); return offset; } @@ -9827,150 +17341,220 @@ dissect_nr_rrc_T_csi_rs_MeasurementBW(tvbuff_t *tvb _U_, int offset _U_, asn1_ct 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_) { +dissect_nr_rrc_CSI_IM_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, maxNrofCSI_RS_ResourcesRRM_1, NULL, FALSE); + 0U, maxNrofCSI_IM_Resources_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" }, +static const value_string nr_rrc_T_subcarrierLocation_p0_vals[] = { + { 0, "s0" }, + { 1, "s2" }, + { 2, "s4" }, + { 3, "s6" }, + { 4, "s8" }, + { 5, "s10" }, { 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); +dissect_nr_rrc_T_subcarrierLocation_p0(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 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 }, + +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 per_sequence_t T_pattern0_sequence[] = { + { &hf_nr_rrc_subcarrierLocation_p0, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_subcarrierLocation_p0 }, + { &hf_nr_rrc_symbolLocation_p0, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_12 }, { 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_) { +dissect_nr_rrc_T_pattern0(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); + ett_nr_rrc_T_pattern0, T_pattern0_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 const value_string nr_rrc_T_subcarrierLocation_p1_vals[] = { + { 0, "s0" }, + { 1, "s4" }, + { 2, "s8" }, + { 0, NULL } }; + 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); +dissect_nr_rrc_T_subcarrierLocation_p1(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 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 }, +static const per_sequence_t T_pattern1_sequence[] = { + { &hf_nr_rrc_subcarrierLocation_p1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_subcarrierLocation_p1 }, + { &hf_nr_rrc_symbolLocation_p1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_13 }, { 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_) { +dissect_nr_rrc_T_pattern1(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); + ett_nr_rrc_T_pattern1, T_pattern1_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 }, +static const value_string nr_rrc_T_csi_IM_ResourceElementPattern_vals[] = { + { 0, "pattern0" }, + { 1, "pattern1" }, + { 0, NULL } +}; + +static const per_choice_t T_csi_IM_ResourceElementPattern_choice[] = { + { 0, &hf_nr_rrc_pattern0 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_pattern0 }, + { 1, &hf_nr_rrc_pattern1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_pattern1 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_csi_IM_ResourceElementPattern(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_IM_ResourceElementPattern, T_csi_IM_ResourceElementPattern_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CSI_IM_Resource_sequence[] = { + { &hf_nr_rrc_csi_IM_ResourceId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_IM_ResourceId }, + { &hf_nr_rrc_csi_IM_ResourceElementPattern, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_IM_ResourceElementPattern }, + { &hf_nr_rrc_freqBand , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CSI_FrequencyOccupation }, + { &hf_nr_rrc_periodicityAndOffset, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CSI_ResourcePeriodicityAndOffset }, { 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_) { +dissect_nr_rrc_CSI_IM_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_ReferenceSignalConfig, ReferenceSignalConfig_sequence); + ett_nr_rrc_CSI_IM_Resource, CSI_IM_Resource_sequence); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_Resource_sequence_of[1] = { + { &hf_nr_rrc_csi_IM_ResourceToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_IM_Resource }, +}; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_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_IM_Resources_OF_CSI_IM_Resource, SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_Resource_sequence_of, + 1, maxNrofCSI_IM_Resources, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_csi_IM_ResourceToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_IM_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_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_maxNrofCSI_IM_Resources_OF_CSI_IM_ResourceId, SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_ResourceId_sequence_of, + 1, maxNrofCSI_IM_Resources, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_CSI_IM_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, 127U, NULL, FALSE); + 0U, maxNrofCSI_IM_ResourceSets_1, 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 }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_csi_IM_Resources_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_IM_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_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_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_ResourceId, SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_ResourceId_sequence_of, + 1, maxNrofCSI_IM_ResourcesPerSet, FALSE); + + return offset; +} + + +static const per_sequence_t CSI_IM_ResourceSet_sequence[] = { + { &hf_nr_rrc_csi_IM_ResourceSetId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_IM_ResourceSetId }, + { &hf_nr_rrc_csi_IM_Resources, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_ResourceId }, { 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_) { +dissect_nr_rrc_CSI_IM_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_ThresholdNR, ThresholdNR_sequence); + ett_nr_rrc_CSI_IM_ResourceSet, CSI_IM_ResourceSet_sequence); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSet_sequence_of[1] = { + { &hf_nr_rrc_csi_IM_ResourceSetToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_IM_ResourceSet }, +}; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_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_IM_ResourceSets_OF_CSI_IM_ResourceSet, SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSet_sequence_of, + 1, maxNrofCSI_IM_ResourceSets, FALSE); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSetId_sequence_of[1] = { + { &hf_nr_rrc_csi_IM_ResourceSetToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_IM_ResourceSetId }, +}; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_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_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSetId, SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSetId_sequence_of, + 1, maxNrofCSI_IM_ResourceSets, FALSE); return offset; } @@ -9978,99 +17562,66 @@ dissect_nr_rrc_INTEGER_2_maxNroCSI_RS_ResourcesToAverage(tvbuff_t *tvb _U_, int 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_) { +dissect_nr_rrc_CSI_SSB_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, - 1U, maxQuantityConfigId, NULL, FALSE); + 0U, maxNrofCSI_SSB_ResourceSets_1, 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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_SSB_Index_sequence_of[1] = { + { &hf_nr_rrc_csi_SSB_ResourceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_Index }, }; -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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_SSB_Index, SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_SSB_Index_sequence_of, + 1, maxNrofCSI_SSB_ResourcePerSet, FALSE); 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 }, +static const per_sequence_t CSI_SSB_ResourceSet_sequence[] = { + { &hf_nr_rrc_csi_SSB_ResourceSetId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_SSB_ResourceSetId }, + { &hf_nr_rrc_csi_SSB_ResourceList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_SSB_Index }, { 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_) { +dissect_nr_rrc_CSI_SSB_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_Q_OffsetRangeList, Q_OffsetRangeList_sequence); + ett_nr_rrc_CSI_SSB_ResourceSet, CSI_SSB_ResourceSet_sequence); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSet_sequence_of[1] = { + { &hf_nr_rrc_csi_SSB_ResourceSetToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_SSB_ResourceSet }, +}; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_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_SSB_ResourceSets_OF_CSI_SSB_ResourceSet, SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSet_sequence_of, + 1, maxNrofCSI_SSB_ResourceSets, 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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSetId_sequence_of[1] = { + { &hf_nr_rrc_csi_SSB_ResourceSetToAddReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_SSB_ResourceSetId }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_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_CellIndexList, CellIndexList_sequence_of, - 1, maxNrofCellMeas, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSetId, SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSetId_sequence_of, + 1, maxNrofCSI_SSB_ResourceSets, FALSE); return offset; } @@ -10078,271 +17629,384 @@ dissect_nr_rrc_CellIndexList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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_) { +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, - 1U, maxNrofCellMeas, NULL, FALSE); + 0U, maxNrofCSI_ResourceConfigurations_1, 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 }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_ResourceSetId_sequence_of[1] = { + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NZP_CSI_RS_ResourceSetId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_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_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_ResourceSetId, SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_ResourceSetId_sequence_of, + 1, maxNrofNZP_CSI_RS_ResourceSetsPerConfig, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_ResourceSetId_sequence_of[1] = { + { &hf_nr_rrc_csi_SSB_ResourceSetList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_SSB_ResourceSetId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_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_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_ResourceSetId, SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_ResourceSetId_sequence_of, + 1, maxNrofCSI_SSB_ResourceSetsPerConfig, FALSE); + + return offset; +} + + +static const per_sequence_t T_nzp_CSI_RS_SSB_sequence[] = { + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_ResourceSetId }, + { &hf_nr_rrc_csi_SSB_ResourceSetList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_ResourceSetId }, { 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_) { +dissect_nr_rrc_T_nzp_CSI_RS_SSB(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); + ett_nr_rrc_T_nzp_CSI_RS_SSB, T_nzp_CSI_RS_SSB_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_ResourceSetId_sequence_of[1] = { + { &hf_nr_rrc_csi_IM_ResourceSetList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_IM_ResourceSetId }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_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_CellsToAddModList, CellsToAddModList_sequence_of, - 1, maxNrofCellMeas, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_ResourceSetId, SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_ResourceSetId_sequence_of, + 1, maxNrofCSI_IM_ResourceSetsPerConfig, 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" }, +static const value_string nr_rrc_T_csi_RS_ResourceSetList_vals[] = { + { 0, "nzp-CSI-RS-SSB" }, + { 1, "csi-IM-ResourceSetList" }, { 0, NULL } }; +static const per_choice_t T_csi_RS_ResourceSetList_choice[] = { + { 0, &hf_nr_rrc_nzp_CSI_RS_SSB, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_nzp_CSI_RS_SSB }, + { 1, &hf_nr_rrc_csi_IM_ResourceSetList, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_ResourceSetId }, + { 0, NULL, 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_) { +dissect_nr_rrc_T_csi_RS_ResourceSetList(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_ResourceSetList, T_csi_RS_ResourceSetList_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_resourceType_vals[] = { + { 0, "aperiodic" }, + { 1, "semiPersistent" }, + { 2, "periodic" }, + { 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_enumerated(tvb, offset, actx, tree, hf_index, - 16, NULL, FALSE, 0, NULL); + 3, 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 }, +static const per_sequence_t CSI_ResourceConfig_sequence[] = { + { &hf_nr_rrc_csi_ResourceConfigId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ResourceConfigId }, + { &hf_nr_rrc_csi_RS_ResourceSetList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_csi_RS_ResourceSetList }, + { &hf_nr_rrc_bwp_Id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Id }, + { &hf_nr_rrc_resourceType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourceType }, { 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_) { +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_PhysCellIdRange, PhysCellIdRange_sequence); + ett_nr_rrc_CSI_ResourceConfig, CSI_ResourceConfig_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig_sequence_of[1] = { + { &hf_nr_rrc_csi_ResourceConfigToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ResourceConfig }, }; 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); +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 const per_sequence_t BlackCellsToAddModList_sequence_of[1] = { - { &hf_nr_rrc_BlackCellsToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BlackCellsToAddMod }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfigId_sequence_of[1] = { + { &hf_nr_rrc_csi_ResourceConfigToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ResourceConfigId }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_BlackCellsToAddModList, BlackCellsToAddModList_sequence_of, - 1, maxNrofCellMeas, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfigId, SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfigId_sequence_of, + 1, maxNrofCSI_ResourceConfigurations, 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_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_ReportConfigurations_1, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_CSI_ReportPeriodicityAndOffset_vals[] = { + { 0, "slots4" }, + { 1, "slots5" }, + { 2, "slots8" }, + { 3, "slots10" }, + { 4, "slots16" }, + { 5, "slots20" }, + { 6, "slots40" }, + { 7, "slots80" }, + { 8, "slots160" }, + { 9, "slots320" }, + { 0, NULL } +}; + +static const per_choice_t CSI_ReportPeriodicityAndOffset_choice[] = { + { 0, &hf_nr_rrc_slots4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_3 }, + { 1, &hf_nr_rrc_slots5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_4 }, + { 2, &hf_nr_rrc_slots8 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_7 }, + { 3, &hf_nr_rrc_slots10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_9 }, + { 4, &hf_nr_rrc_slots16 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_15 }, + { 5, &hf_nr_rrc_slots20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_19 }, + { 6, &hf_nr_rrc_slots40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 7, &hf_nr_rrc_slots80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 8, &hf_nr_rrc_slots160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 9, &hf_nr_rrc_slots320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 0, NULL, 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); +dissect_nr_rrc_CSI_ReportPeriodicityAndOffset(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_CSI_ReportPeriodicityAndOffset, CSI_ReportPeriodicityAndOffset_choice, + NULL); 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 const value_string nr_rrc_PUCCH_CSI_Resource_vals[] = { + { 0, "uplinkBandwidthPartId" }, + { 1, "pucch-Resource" }, + { 0, NULL } +}; + +static const per_choice_t PUCCH_CSI_Resource_choice[] = { + { 0, &hf_nr_rrc_uplinkBandwidthPartId, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BWP_Id }, + { 1, &hf_nr_rrc_pucch_Resource, ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_Resource }, + { 0, NULL, 0, NULL } }; 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_) { +dissect_nr_rrc_PUCCH_CSI_Resource(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_PUCCH_CSI_Resource, PUCCH_CSI_Resource_choice, + NULL); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource_sequence_of[1] = { + { &hf_nr_rrc_pucch_CSI_ResourceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_CSI_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_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_WhiteCellsToAddModList, WhiteCellsToAddModList_sequence_of, - 1, maxNrofCellMeas, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource, SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource_sequence_of, + 1, maxNrofBWPs, 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 }, +static const per_sequence_t T_periodic_sequence[] = { + { &hf_nr_rrc_reportSlotConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportPeriodicityAndOffset }, + { &hf_nr_rrc_pucch_CSI_ResourceList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource }, { 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_) { +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_MeasObjectNR, MeasObjectNR_sequence); + ett_nr_rrc_T_periodic, T_periodic_sequence); return offset; } -static const per_sequence_t MeasObjectEUTRA_sequence[] = { +static const per_sequence_t T_semiPersistentOnPUCCH_sequence[] = { + { &hf_nr_rrc_reportSlotConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportPeriodicityAndOffset }, + { &hf_nr_rrc_pucch_CSI_ResourceList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource }, { 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_) { +dissect_nr_rrc_T_semiPersistentOnPUCCH(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); + ett_nr_rrc_T_semiPersistentOnPUCCH, T_semiPersistentOnPUCCH_sequence); return offset; } -static const value_string nr_rrc_T_measObject_vals[] = { - { 0, "measObjectNR" }, - { 1, "measObjectEUTRA" }, +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_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_reportSlotConfig(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, + 7, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_reportSlotOffsetList_sequence_of[1] = { + { &hf_nr_rrc_reportSlotOffsetList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_7 }, }; 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); +dissect_nr_rrc_T_reportSlotOffsetList(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_reportSlotOffsetList, T_reportSlotOffsetList_sequence_of, + 1, 4, FALSE); 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 }, +static const per_sequence_t T_semiPersistentOnPUSCH_sequence[] = { + { &hf_nr_rrc_reportSlotConfig_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportSlotConfig }, + { &hf_nr_rrc_reportSlotOffsetList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportSlotOffsetList }, + { &hf_nr_rrc_csi_RNTI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RNTI_Value }, + { &hf_nr_rrc_p0alpha , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_P0_PUSCH_AlphaSetId }, { 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_) { +dissect_nr_rrc_T_semiPersistentOnPUSCH(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); + ett_nr_rrc_T_semiPersistentOnPUSCH, T_semiPersistentOnPUSCH_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 const per_sequence_t T_reportSlotOffsetList_01_sequence_of[1] = { + { &hf_nr_rrc_reportSlotOffsetList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_7 }, }; 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_) { +dissect_nr_rrc_T_reportSlotOffsetList_01(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); + ett_nr_rrc_T_reportSlotOffsetList_01, T_reportSlotOffsetList_01_sequence_of, + 1, 16, FALSE); return offset; } +static const per_sequence_t T_aperiodic_sequence[] = { + { &hf_nr_rrc_reportSlotOffsetList_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportSlotOffsetList_01 }, + { NULL, 0, 0, NULL } +}; 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); +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 per_sequence_t ReportConfigToRemoveList_sequence_of[1] = { - { &hf_nr_rrc_ReportConfigToRemoveList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportConfigId }, +static const value_string nr_rrc_T_reportConfigType_vals[] = { + { 0, "periodic" }, + { 1, "semiPersistentOnPUCCH" }, + { 2, "semiPersistentOnPUSCH" }, + { 3, "aperiodic" }, + { 0, NULL } +}; + +static const per_choice_t T_reportConfigType_choice[] = { + { 0, &hf_nr_rrc_periodic , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_periodic }, + { 1, &hf_nr_rrc_semiPersistentOnPUCCH, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_semiPersistentOnPUCCH }, + { 2, &hf_nr_rrc_semiPersistentOnPUSCH, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_semiPersistentOnPUSCH }, + { 3, &hf_nr_rrc_aperiodic , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_aperiodic }, + { 0, NULL, 0, NULL } }; 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); +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_rsType_01_vals[] = { - { 0, "ssb" }, - { 1, "csi-rs" }, +static const value_string nr_rrc_T_pdsch_BundleSizeForCSI_vals[] = { + { 0, "n2" }, + { 1, "n4" }, { 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_) { +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); @@ -10350,103 +18014,243 @@ dissect_nr_rrc_T_rsType_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } -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" }, +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, "none" }, + { 1, "cri-RI-PMI-CQI" }, + { 2, "cri-RI-i1" }, + { 3, "cri-RI-i1-CQI" }, + { 4, "cri-RI-CQI" }, + { 5, "cri-RSRP" }, + { 6, "ssb-Index-RSRP" }, + { 7, "cri-RI-LI-PMI-CQI" }, { 0, NULL } }; +static const per_choice_t T_reportQuantity_choice[] = { + { 0, &hf_nr_rrc_none , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_cri_RI_PMI_CQI, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 2, &hf_nr_rrc_cri_RI_i1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 3, &hf_nr_rrc_cri_RI_i1_CQI, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_cri_RI_i1_CQI }, + { 4, &hf_nr_rrc_cri_RI_CQI , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 5, &hf_nr_rrc_cri_RSRP , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 6, &hf_nr_rrc_ssb_Index_RSRP, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 7, &hf_nr_rrc_cri_RI_LI_PMI_CQI, ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 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_) { +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, - 16, NULL, FALSE, 0, NULL); + 2, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_reportAmount_01_vals[] = { - { 0, "ffs" }, +static const value_string nr_rrc_T_pmi_FormatIndicator_vals[] = { + { 0, "widebandPMI" }, + { 1, "subbandPMI" }, { 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_) { +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, - 1, NULL, FALSE, 0, NULL); + 2, 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 }, + +static int +dissect_nr_rrc_BIT_STRING_SIZE_9(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, + 9, 9, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_11(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, + 11, 11, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_13(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, + 13, 13, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_15(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, + 15, 15, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_17(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, + 17, 17, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_csi_ReportingBand_vals[] = { + { 0, "subbands3" }, + { 1, "subbands4" }, + { 2, "subbands5" }, + { 3, "subbands6" }, + { 4, "subbands7" }, + { 5, "subbands8" }, + { 6, "subbands9" }, + { 7, "subbands10" }, + { 8, "subbands11" }, + { 9, "subbands12" }, + { 10, "subbands13" }, + { 11, "subbands14" }, + { 12, "subbands15" }, + { 13, "subbands16" }, + { 14, "subbands17" }, + { 15, "subbands18" }, + { 0, NULL } +}; + +static const per_choice_t T_csi_ReportingBand_choice[] = { + { 0, &hf_nr_rrc_subbands3 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_3 }, + { 1, &hf_nr_rrc_subbands4 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_4 }, + { 2, &hf_nr_rrc_subbands5 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_5 }, + { 3, &hf_nr_rrc_subbands6 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_6 }, + { 4, &hf_nr_rrc_subbands7 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_7 }, + { 5, &hf_nr_rrc_subbands8 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { 6, &hf_nr_rrc_subbands9 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_9 }, + { 7, &hf_nr_rrc_subbands10 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_10 }, + { 8, &hf_nr_rrc_subbands11 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_11 }, + { 9, &hf_nr_rrc_subbands12 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_12 }, + { 10, &hf_nr_rrc_subbands13 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_13 }, + { 11, &hf_nr_rrc_subbands14 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_14 }, + { 12, &hf_nr_rrc_subbands15 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_15 }, + { 13, &hf_nr_rrc_subbands16 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { 14, &hf_nr_rrc_subbands17 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_17 }, + { 15, &hf_nr_rrc_subbands18 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_BIT_STRING_SIZE_18 }, + { 0, NULL, 0, NULL } +}; + +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_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_csi_ReportingBand, T_csi_ReportingBand_choice, + 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_OPTIONAL , dissect_nr_rrc_T_csi_ReportingBand }, { 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_) { +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_MeasReportQuantity, MeasReportQuantity_sequence); + ett_nr_rrc_T_reportFreqConfiguration, T_reportFreqConfiguration_sequence); return offset; } +static const value_string nr_rrc_T_timeRestrictionForChannelMeasurements_vals[] = { + { 0, "configured" }, + { 1, "notConfigured" }, + { 0, NULL } +}; + 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); +dissect_nr_rrc_T_timeRestrictionForChannelMeasurements(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_timeRestrictionForInterferenceMeasurements_vals[] = { + { 0, "configured" }, + { 1, "notConfigured" }, + { 0, NULL } +}; + 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); +dissect_nr_rrc_T_timeRestrictionForInterferenceMeasurements(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 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 }, +static const per_sequence_t T_two_sequence[] = { + { &hf_nr_rrc_twoTX_CodebookSubsetRestriction, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_6 }, { 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_) { +dissect_nr_rrc_T_two(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); + ett_nr_rrc_T_two, T_two_sequence); return offset; } @@ -10454,8 +18258,9 @@ dissect_nr_rrc_PeriodicalReportConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ct 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); +dissect_nr_rrc_BIT_STRING_SIZE_96(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, + 96, 96, FALSE, NULL, NULL); return offset; } @@ -10463,8 +18268,9 @@ dissect_nr_rrc_RSRPRange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ 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); +dissect_nr_rrc_BIT_STRING_SIZE_128(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, + 128, 128, FALSE, NULL, NULL); return offset; } @@ -10472,247 +18278,419 @@ dissect_nr_rrc_RSRQRange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ 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); +dissect_nr_rrc_BIT_STRING_SIZE_32(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, + 32, 32, FALSE, NULL, NULL); return offset; } -static const value_string nr_rrc_MeasTriggerQuantity_vals[] = { - { 0, "rsrp" }, - { 1, "rsrq" }, - { 2, "sinr" }, + +static int +dissect_nr_rrc_BIT_STRING_SIZE_192(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, + 192, 192, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_48(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, + 48, 48, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_256(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, + 256, 256, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_n1_n2_vals[] = { + { 0, "two-one-TypeI-SinglePanel-Restriction" }, + { 1, "two-two-TypeI-SinglePanel-Restriction" }, + { 2, "four-one-TypeI-SinglePanel-Restriction" }, + { 3, "three-two-TypeI-SinglePanel-Restriction" }, + { 4, "six-one-TypeI-SinglePanel-Restriction" }, + { 5, "four-two-TypeI-SinglePanel-Restriction" }, + { 6, "eight-one-TypeI-SinglePanel-Restriction" }, + { 7, "four-three-TypeI-SinglePanel-Restriction" }, + { 8, "six-two-TypeI-SinglePanel-Restriction" }, + { 9, "twelve-one-TypeI-SinglePanel-Restriction" }, + { 10, "four-four-TypeI-SinglePanel-Restriction" }, + { 11, "eight-two-TypeI-SinglePanel-Restriction" }, + { 12, "sixteen-one-TypeI-SinglePanel-Restriction" }, { 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 }, +static const per_choice_t T_n1_n2_choice[] = { + { 0, &hf_nr_rrc_two_one_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { 1, &hf_nr_rrc_two_two_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_64 }, + { 2, &hf_nr_rrc_four_one_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { 3, &hf_nr_rrc_three_two_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_96 }, + { 4, &hf_nr_rrc_six_one_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_24 }, + { 5, &hf_nr_rrc_four_two_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_128 }, + { 6, &hf_nr_rrc_eight_one_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_32 }, + { 7, &hf_nr_rrc_four_three_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_192 }, + { 8, &hf_nr_rrc_six_two_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_192 }, + { 9, &hf_nr_rrc_twelve_one_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_48 }, + { 10, &hf_nr_rrc_four_four_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_256 }, + { 11, &hf_nr_rrc_eight_two_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_256 }, + { 12, &hf_nr_rrc_sixteen_one_TypeI_SinglePanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_64 }, { 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_) { +dissect_nr_rrc_T_n1_n2(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, + ett_nr_rrc_T_n1_n2, T_n1_n2_choice, NULL); return offset; } +static const per_sequence_t T_moreThanTwo_sequence[] = { + { &hf_nr_rrc_n1_n2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_n1_n2 }, + { &hf_nr_rrc_typeI_SinglePanel_codebookSubsetRestriction_i2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_T_moreThanTwo(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_moreThanTwo, T_moreThanTwo_sequence); 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" }, +static const value_string nr_rrc_T_nrOfAntennaPorts_vals[] = { + { 0, "two" }, + { 1, "moreThanTwo" }, { 0, NULL } }; +static const per_choice_t T_nrOfAntennaPorts_choice[] = { + { 0, &hf_nr_rrc_two , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_two }, + { 1, &hf_nr_rrc_moreThanTwo , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_moreThanTwo }, + { 0, NULL, 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); +dissect_nr_rrc_T_nrOfAntennaPorts(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_nrOfAntennaPorts, T_nrOfAntennaPorts_choice, + 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 }, +static const per_sequence_t T_typeI_SinglePanel_sequence[] = { + { &hf_nr_rrc_nrOfAntennaPorts, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrOfAntennaPorts }, + { &hf_nr_rrc_typeI_SinglePanel_ri_Restriction, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_8 }, { 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_) { +dissect_nr_rrc_T_typeI_SinglePanel(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); + ett_nr_rrc_T_typeI_SinglePanel, T_typeI_SinglePanel_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 }, +static const value_string nr_rrc_T_ng_n1_n2_vals[] = { + { 0, "two-two-one-TypeI-MultiPanel-Restriction" }, + { 1, "two-four-one-TypeI-MultiPanel-Restriction" }, + { 2, "four-two-one-TypeI-MultiPanel-Restriction" }, + { 3, "two-two-two-TypeI-MultiPanel-Restriction" }, + { 4, "two-eight-one-TypeI-MultiPanel-Restriction" }, + { 5, "four-four-one-TypeI-MultiPanel-Restriction" }, + { 6, "two-four-two-TypeI-MultiPanel-Restriction" }, + { 7, "four-two-two-TypeI-MultiPanel-Restriction" }, + { 0, NULL } +}; + +static const per_choice_t T_ng_n1_n2_choice[] = { + { 0, &hf_nr_rrc_two_two_one_TypeI_MultiPanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { 1, &hf_nr_rrc_two_four_one_TypeI_MultiPanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_32 }, + { 2, &hf_nr_rrc_four_two_one_TypeI_MultiPanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_32 }, + { 3, &hf_nr_rrc_two_two_two_TypeI_MultiPanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_128 }, + { 4, &hf_nr_rrc_two_eight_one_TypeI_MultiPanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_64 }, + { 5, &hf_nr_rrc_four_four_one_TypeI_MultiPanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_64 }, + { 6, &hf_nr_rrc_two_four_two_TypeI_MultiPanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_256 }, + { 7, &hf_nr_rrc_four_two_two_TypeI_MultiPanel_Restriction, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_256 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ng_n1_n2(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_ng_n1_n2, T_ng_n1_n2_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_typeI_MultiPanel_sequence[] = { + { &hf_nr_rrc_ng_n1_n2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ng_n1_n2 }, + { &hf_nr_rrc_ri_Restriction, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_4 }, { 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_) { +dissect_nr_rrc_T_typeI_MultiPanel(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); + ett_nr_rrc_T_typeI_MultiPanel, T_typeI_MultiPanel_sequence); return offset; } -static const value_string nr_rrc_MeasTriggerQuantityOffset_vals[] = { - { 0, "rsrp" }, - { 1, "rsrq" }, - { 2, "sinr" }, +static const value_string nr_rrc_T_subType_vals[] = { + { 0, "typeI-SinglePanel" }, + { 1, "typeI-MultiPanel" }, { 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 }, +static const per_choice_t T_subType_choice[] = { + { 0, &hf_nr_rrc_typeI_SinglePanel, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_typeI_SinglePanel }, + { 1, &hf_nr_rrc_typeI_MultiPanel, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_typeI_MultiPanel }, { 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_) { +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_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_MeasTriggerQuantityOffset, MeasTriggerQuantityOffset_choice, + ett_nr_rrc_T_subType, T_subType_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 }, +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_INTEGER_1_2 }, { 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_) { +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_eventA3, T_eventA3_sequence); + ett_nr_rrc_T_type1, T_type1_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_BIT_STRING_SIZE_139(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, + 139, 139, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_59(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, + 59, 59, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_49(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, + 49, 49, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_75(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, + 75, 75, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_65(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, + 65, 65, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_107(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, + 107, 107, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_129(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, + 129, 129, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_n1_n2_codebookSubsetRestriction_vals[] = { + { 0, "two-one" }, + { 1, "two-two" }, + { 2, "four-one" }, + { 3, "three-two" }, + { 4, "six-one" }, + { 5, "four-two" }, + { 6, "eight-one" }, + { 7, "four-three" }, + { 8, "six-two" }, + { 9, "twelve-one" }, + { 10, "four-four" }, + { 11, "eight-two" }, + { 12, "sixteen-one" }, + { 0, NULL } +}; + +static const per_choice_t T_n1_n2_codebookSubsetRestriction_choice[] = { + { 0, &hf_nr_rrc_two_one , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { 1, &hf_nr_rrc_two_two , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_139 }, + { 2, &hf_nr_rrc_four_one , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_32 }, + { 3, &hf_nr_rrc_three_two , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_59 }, + { 4, &hf_nr_rrc_six_one , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_49 }, + { 5, &hf_nr_rrc_four_two , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_75 }, + { 6, &hf_nr_rrc_eight_one , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_65 }, + { 7, &hf_nr_rrc_four_three , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_107 }, + { 8, &hf_nr_rrc_six_two , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_107 }, + { 9, &hf_nr_rrc_twelve_one , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_129 }, + { 10, &hf_nr_rrc_four_four , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_139 }, + { 11, &hf_nr_rrc_eight_two , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_139 }, + { 12, &hf_nr_rrc_sixteen_one , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_129 }, + { 0, NULL, 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); +dissect_nr_rrc_T_n1_n2_codebookSubsetRestriction(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_n1_n2_codebookSubsetRestriction, T_n1_n2_codebookSubsetRestriction_choice, + NULL); 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 }, +static const per_sequence_t T_typeII_sequence[] = { + { &hf_nr_rrc_n1_n2_codebookSubsetRestriction, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_n1_n2_codebookSubsetRestriction }, + { &hf_nr_rrc_typeII_RI_Restriction, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_2 }, { 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_) { +dissect_nr_rrc_T_typeII(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); + ett_nr_rrc_T_typeII, T_typeII_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 }, +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 const per_sequence_t T_typeII_PortSelection_sequence[] = { + { &hf_nr_rrc_portSelectionSamplingSize, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_portSelectionSamplingSize }, + { &hf_nr_rrc_typeII_PortSelectionRI_Restriction, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_2 }, { 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_) { +dissect_nr_rrc_T_typeII_PortSelection(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); + ett_nr_rrc_T_typeII_PortSelection, T_typeII_PortSelection_sequence); return offset; } -static const value_string nr_rrc_T_eventId_vals[] = { - { 0, "eventA1" }, - { 1, "eventA2" }, - { 2, "eventA3" }, - { 3, "eventA4" }, - { 4, "eventA5" }, - { 5, "eventA6" }, +static const value_string nr_rrc_T_subType_01_vals[] = { + { 0, "typeII" }, + { 1, "typeII-PortSelection" }, { 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 }, +static const per_choice_t T_subType_01_choice[] = { + { 0, &hf_nr_rrc_typeII , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_typeII }, + { 1, &hf_nr_rrc_typeII_PortSelection, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_typeII_PortSelection }, { 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_) { +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_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_eventId, T_eventId_choice, + ett_nr_rrc_T_subType_01, T_subType_01_choice, NULL); return offset; } -static const value_string nr_rrc_T_rsType_vals[] = { - { 0, "ss" }, - { 1, "csi-rs" }, +static const value_string nr_rrc_T_phaseAlphabetSize_vals[] = { + { 0, "n4" }, + { 1, "n8" }, { 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_) { +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); @@ -10720,1061 +18698,3123 @@ dissect_nr_rrc_T_rsType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, } -static const value_string nr_rrc_T_reportAmount_vals[] = { - { 0, "ffs" }, +static const value_string nr_rrc_T_numberOfBeams_vals[] = { + { 0, "two" }, + { 1, "three" }, + { 2, "four" }, { 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_) { +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, - 1, NULL, FALSE, 0, NULL); + 3, 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 }, +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 }, { 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_) { +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_EventTriggerConfig, EventTriggerConfig_sequence); + ett_nr_rrc_T_type2, T_type2_sequence); return offset; } -static const value_string nr_rrc_T_reportType_vals[] = { - { 0, "periodical" }, - { 1, "eventTriggered" }, - { 2, "reportCGI" }, +static const value_string nr_rrc_T_codebookType_vals[] = { + { 0, "type1" }, + { 1, "type2" }, { 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 }, +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_reportType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_reportType, T_reportType_choice, + ett_nr_rrc_T_codebookType, T_codebookType_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 }, +static const per_sequence_t CodebookConfig_sequence[] = { + { &hf_nr_rrc_codebookType , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_codebookType }, { 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_) { +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_ReportConfigNR, ReportConfigNR_sequence); + 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 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 ReportConfigEUTRA_sequence[] = { +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_ReportConfigEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_ReportConfigEUTRA, ReportConfigEUTRA_sequence); + ett_nr_rrc_T_disabled, T_disabled_sequence); return offset; } -static const value_string nr_rrc_T_reportConfig_vals[] = { - { 0, "reportConfigNR" }, - { 1, "reportConfigEUTRA" }, +static const value_string nr_rrc_T_groupBasedBeamReporting_vals[] = { + { 0, "enabled" }, + { 1, "disabled" }, { 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 }, +static const per_choice_t T_groupBasedBeamReporting_choice[] = { + { 0, &hf_nr_rrc_enabled , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_disabled , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_disabled }, { 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_) { +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_reportConfig, T_reportConfig_choice, + ett_nr_rrc_T_groupBasedBeamReporting, T_groupBasedBeamReporting_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 }, +static const value_string nr_rrc_T_cqi_Table_vals[] = { + { 0, "table1" }, + { 1, "table2" }, + { 2, "spare2" }, + { 3, "spare1" }, + { 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, "zerodot1" }, + { 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 int +dissect_nr_rrc_PortIndex8(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 per_sequence_t SEQUENCE_SIZE_1_2_OF_PortIndex8_sequence_of[1] = { + { &hf_nr_rrc_rank2_8_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex8 }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex8(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_2_OF_PortIndex8, SEQUENCE_SIZE_1_2_OF_PortIndex8_sequence_of, + 1, 2, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_3_OF_PortIndex8_sequence_of[1] = { + { &hf_nr_rrc_rank3_8_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex8 }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_3_OF_PortIndex8(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_3_OF_PortIndex8, SEQUENCE_SIZE_1_3_OF_PortIndex8_sequence_of, + 1, 3, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_4_OF_PortIndex8_sequence_of[1] = { + { &hf_nr_rrc_rank4_8_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex8 }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_4_OF_PortIndex8(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_PortIndex8, SEQUENCE_SIZE_1_4_OF_PortIndex8_sequence_of, + 1, 4, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_5_OF_PortIndex8_sequence_of[1] = { + { &hf_nr_rrc_rank5_8_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex8 }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_5_OF_PortIndex8(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_5_OF_PortIndex8, SEQUENCE_SIZE_1_5_OF_PortIndex8_sequence_of, + 1, 5, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_6_OF_PortIndex8_sequence_of[1] = { + { &hf_nr_rrc_rank6_8_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex8 }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_6_OF_PortIndex8(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_6_OF_PortIndex8, SEQUENCE_SIZE_1_6_OF_PortIndex8_sequence_of, + 1, 6, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_7_OF_PortIndex8_sequence_of[1] = { + { &hf_nr_rrc_rank7_8_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex8 }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_7_OF_PortIndex8(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_7_OF_PortIndex8, SEQUENCE_SIZE_1_7_OF_PortIndex8_sequence_of, + 1, 7, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_8_OF_PortIndex8_sequence_of[1] = { + { &hf_nr_rrc_rank8_8_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex8 }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_8_OF_PortIndex8(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_8_OF_PortIndex8, SEQUENCE_SIZE_1_8_OF_PortIndex8_sequence_of, + 1, 8, FALSE); + + return offset; +} + + +static const per_sequence_t T_portIndex8_sequence[] = { + { &hf_nr_rrc_rank1_8 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex8 }, + { &hf_nr_rrc_rank2_8 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex8 }, + { &hf_nr_rrc_rank3_8 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_3_OF_PortIndex8 }, + { &hf_nr_rrc_rank4_8 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_4_OF_PortIndex8 }, + { &hf_nr_rrc_rank5_8 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_5_OF_PortIndex8 }, + { &hf_nr_rrc_rank6_8 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_6_OF_PortIndex8 }, + { &hf_nr_rrc_rank7_8 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_7_OF_PortIndex8 }, + { &hf_nr_rrc_rank8_8 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_8_OF_PortIndex8 }, { 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_) { +dissect_nr_rrc_T_portIndex8(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); + ett_nr_rrc_T_portIndex8, T_portIndex8_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_PortIndex4(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 const per_sequence_t SEQUENCE_SIZE_1_2_OF_PortIndex4_sequence_of[1] = { + { &hf_nr_rrc_rank2_4_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex4 }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex4(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); + ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex4, SEQUENCE_SIZE_1_2_OF_PortIndex4_sequence_of, + 1, 2, FALSE); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_3_OF_PortIndex4_sequence_of[1] = { + { &hf_nr_rrc_rank3_4_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex4 }, +}; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_3_OF_PortIndex4(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_3_OF_PortIndex4, SEQUENCE_SIZE_1_3_OF_PortIndex4_sequence_of, + 1, 3, 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 const per_sequence_t SEQUENCE_SIZE_1_4_OF_PortIndex4_sequence_of[1] = { + { &hf_nr_rrc_rank4_4_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex4 }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_4_OF_PortIndex4(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); + ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_PortIndex4, SEQUENCE_SIZE_1_4_OF_PortIndex4_sequence_of, + 1, 4, 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 }, +static const per_sequence_t T_portIndex4_sequence[] = { + { &hf_nr_rrc_rank1_4 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex4 }, + { &hf_nr_rrc_rank2_4 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex4 }, + { &hf_nr_rrc_rank3_4 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_3_OF_PortIndex4 }, + { &hf_nr_rrc_rank4_4 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_4_OF_PortIndex4 }, { 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_) { +dissect_nr_rrc_T_portIndex4(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); + ett_nr_rrc_T_portIndex4, T_portIndex4_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_PortIndex2(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 const per_sequence_t SEQUENCE_SIZE_1_2_OF_PortIndex2_sequence_of[1] = { + { &hf_nr_rrc_rank2_2_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex2 }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex2(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); + ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex2, SEQUENCE_SIZE_1_2_OF_PortIndex2_sequence_of, + 1, 2, FALSE); return offset; } -static const value_string nr_rrc_T_s_MeasureConfig_vals[] = { - { 0, "ssb-rsrp" }, - { 1, "csi-rsrp" }, +static const per_sequence_t T_portIndex2_sequence[] = { + { &hf_nr_rrc_rank1_2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndex2 }, + { &hf_nr_rrc_rank2_2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex2 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_portIndex2(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_portIndex2, T_portIndex2_sequence); + + return offset; +} + + +static const value_string nr_rrc_PortIndexFor8Ranks_vals[] = { + { 0, "portIndex8" }, + { 1, "portIndex4" }, + { 2, "portIndex2" }, + { 3, "portIndex1" }, { 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 }, +static const per_choice_t PortIndexFor8Ranks_choice[] = { + { 0, &hf_nr_rrc_portIndex8 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_portIndex8 }, + { 1, &hf_nr_rrc_portIndex4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_portIndex4 }, + { 2, &hf_nr_rrc_portIndex2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_portIndex2 }, + { 3, &hf_nr_rrc_portIndex1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, { 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_) { +dissect_nr_rrc_PortIndexFor8Ranks(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, + ett_nr_rrc_PortIndexFor8Ranks, PortIndexFor8Ranks_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks_sequence_of[1] = { + { &hf_nr_rrc_non_PMI_PortIndication_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PortIndexFor8Ranks }, }; - 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks(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_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks, SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks_sequence_of, + 1, maxNrofNZP_CSI_RS_ResourcesPerConfig, FALSE); 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 }, +static const per_sequence_t CSI_ReportConfig_sequence[] = { + { &hf_nr_rrc_reportConfigId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportConfigId }, + { &hf_nr_rrc_carrier , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_resourcesForChannelMeasurement, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ResourceConfigId }, + { &hf_nr_rrc_csi_IM_ResourcesForInterference, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CSI_ResourceConfigId }, + { &hf_nr_rrc_nzp_CSI_RS_ResourcesForInterference, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CSI_ResourceConfigId }, + { &hf_nr_rrc_reportConfigType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportConfigType }, + { &hf_nr_rrc_reportQuantity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportQuantity }, + { &hf_nr_rrc_reportFreqConfiguration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportFreqConfiguration }, + { &hf_nr_rrc_timeRestrictionForChannelMeasurements, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_timeRestrictionForChannelMeasurements }, + { &hf_nr_rrc_timeRestrictionForInterferenceMeasurements, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_timeRestrictionForInterferenceMeasurements }, + { &hf_nr_rrc_codebookConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CodebookConfig }, + { &hf_nr_rrc_nrofCQIsPerReport, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nrofCQIsPerReport }, + { &hf_nr_rrc_groupBasedBeamReporting, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_groupBasedBeamReporting }, + { &hf_nr_rrc_cqi_Table , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_cqi_Table }, + { &hf_nr_rrc_subbandSize , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_subbandSize }, + { &hf_nr_rrc_bler_Target , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_bler_Target }, + { &hf_nr_rrc_non_PMI_PortIndication, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks }, { 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_) { +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_QuantityConfigRS, QuantityConfigRS_sequence); + ett_nr_rrc_CSI_ReportConfig, CSI_ReportConfig_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfig_sequence_of[1] = { + { &hf_nr_rrc_csi_ReportConfigToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportConfig }, }; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_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_ReportConfigurations_OF_CSI_ReportConfig, SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfig_sequence_of, + 1, maxNrofCSI_ReportConfigurations, FALSE); return offset; } -static const per_sequence_t MeasGapConfig_sequence[] = { +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfigId_sequence_of[1] = { + { &hf_nr_rrc_csi_ReportConfigToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportConfigId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfigId, SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfigId_sequence_of, + 1, maxNrofCSI_ReportConfigurations, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig(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, maxNrofNZP_CSI_RS_ResourceSetsPerConfig, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId_sequence_of[1] = { + { &hf_nr_rrc_qcl_info_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TCI_StateId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId(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_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId, SEQUENCE_SIZE_1_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId_sequence_of, + 1, maxNrofAP_CSI_RS_ResourcesPerSet, FALSE); + + return offset; +} + + +static const per_sequence_t T_nzp_CSI_RS_sequence[] = { + { &hf_nr_rrc_resourceSet , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig }, + { &hf_nr_rrc_qcl_info , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId }, { 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_) { +dissect_nr_rrc_T_nzp_CSI_RS(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); + ett_nr_rrc_T_nzp_CSI_RS, T_nzp_CSI_RS_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 }, + +static int +dissect_nr_rrc_INTEGER_1_maxNrofCSI_SSB_ResourceSetsPerConfig(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, maxNrofCSI_SSB_ResourceSetsPerConfig, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_resourcesForChannel_vals[] = { + { 0, "nzp-CSI-RS" }, + { 1, "csi-SSB-ResourceSet" }, + { 0, NULL } +}; + +static const per_choice_t T_resourcesForChannel_choice[] = { + { 0, &hf_nr_rrc_nzp_CSI_RS , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_nzp_CSI_RS }, + { 1, &hf_nr_rrc_csi_SSB_ResourceSet, ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_1_maxNrofCSI_SSB_ResourceSetsPerConfig }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_resourcesForChannel(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_resourcesForChannel, T_resourcesForChannel_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxNrofCSI_IM_ResourceSetsPerConfig(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, maxNrofCSI_IM_ResourceSetsPerConfig, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t CSI_AssociatedReportConfigInfo_sequence[] = { + { &hf_nr_rrc_reportConfigId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportConfigId }, + { &hf_nr_rrc_resourcesForChannel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourcesForChannel }, + { &hf_nr_rrc_csi_IM_ResourcesforInteference, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNrofCSI_IM_ResourceSetsPerConfig }, + { &hf_nr_rrc_nzp_CSI_RS_ResourcesforInterference, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig }, { 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_) { +dissect_nr_rrc_CSI_AssociatedReportConfigInfo(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); + ett_nr_rrc_CSI_AssociatedReportConfigInfo, CSI_AssociatedReportConfigInfo_sequence); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo_sequence_of[1] = { + { &hf_nr_rrc_associatedReportConfigInfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_AssociatedReportConfigInfo }, +}; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo(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_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo, SEQUENCE_SIZE_1_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo_sequence_of, + 1, maxNrofReportConfigPerAperiodicTrigger, FALSE); return offset; } -static const per_sequence_t T_nonCriticalExtension_01_sequence[] = { +static const per_sequence_t CSI_AperiodicTriggerState_sequence[] = { + { &hf_nr_rrc_associatedReportConfigInfoList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_CSI_AperiodicTriggerState(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_01, T_nonCriticalExtension_01_sequence); + ett_nr_rrc_CSI_AperiodicTriggerState, CSI_AperiodicTriggerState_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_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_01 }, +static const per_sequence_t CSI_AperiodicTriggerStateList_sequence_of[1] = { + { &hf_nr_rrc_CSI_AperiodicTriggerStateList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_AperiodicTriggerState }, +}; + +static int +dissect_nr_rrc_CSI_AperiodicTriggerStateList(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_CSI_AperiodicTriggerStateList, CSI_AperiodicTriggerStateList_sequence_of, + 1, maxNrOfCSI_AperiodicTriggers, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_aperiodicTriggerStateList_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_aperiodicTriggerStateList_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_16 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_AperiodicTriggerStateList }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_aperiodicTriggerStateList(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_aperiodicTriggerStateList, T_aperiodicTriggerStateList_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CSI_SemiPersistentOnPUSCH_TriggerState_sequence[] = { + { &hf_nr_rrc_associatedReportConfigInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportConfigId }, { 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_) { +dissect_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerState(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); + ett_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerState, CSI_SemiPersistentOnPUSCH_TriggerState_sequence); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_02_sequence[] = { +static const per_sequence_t CSI_SemiPersistentOnPUSCH_TriggerStateList_sequence_of[1] = { + { &hf_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerState }, +}; + +static int +dissect_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList(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_CSI_SemiPersistentOnPUSCH_TriggerStateList, CSI_SemiPersistentOnPUSCH_TriggerStateList_sequence_of, + 1, maxNrOfSemiPersistentPUSCH_Triggers, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_semiPersistentOnPUSCH_TriggerStateList_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_semiPersistentOnPUSCH_TriggerStateList_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_17 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_semiPersistentOnPUSCH_TriggerStateList(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_semiPersistentOnPUSCH_TriggerStateList, T_semiPersistentOnPUSCH_TriggerStateList_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CSI_MeasConfig_sequence[] = { + { &hf_nr_rrc_nzp_CSI_RS_ResourceToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_Resource }, + { &hf_nr_rrc_nzp_CSI_RS_ResourceToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_ResourceId }, + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSet }, + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSetId }, + { &hf_nr_rrc_csi_IM_ResourceToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_Resource }, + { &hf_nr_rrc_csi_IM_ResourceToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_ResourceId }, + { &hf_nr_rrc_csi_IM_ResourceSetToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSet }, + { &hf_nr_rrc_csi_IM_ResourceSetToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSetId }, + { &hf_nr_rrc_csi_SSB_ResourceSetToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSet }, + { &hf_nr_rrc_csi_SSB_ResourceSetToAddReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSetId }, + { &hf_nr_rrc_csi_ResourceConfigToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig }, + { &hf_nr_rrc_csi_ResourceConfigToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfigId }, + { &hf_nr_rrc_csi_ReportConfigToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfig }, + { &hf_nr_rrc_csi_ReportConfigToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfigId }, + { &hf_nr_rrc_reportTriggerSize, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_6 }, + { &hf_nr_rrc_aperiodicTriggerStateList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_aperiodicTriggerStateList }, + { &hf_nr_rrc_semiPersistentOnPUSCH_TriggerStateList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_semiPersistentOnPUSCH_TriggerStateList }, { 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_) { +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_T_criticalExtensionsFuture_02, T_criticalExtensionsFuture_02_sequence); + ett_nr_rrc_CSI_MeasConfig, CSI_MeasConfig_sequence); return offset; } -static const value_string nr_rrc_T_criticalExtensions_02_vals[] = { - { 0, "rrcReconfiguration" }, - { 1, "criticalExtensionsFuture" }, +static const value_string nr_rrc_T_csi_MeasConfig_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_02_choice[] = { - { 0, &hf_nr_rrc_rrcReconfiguration_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfiguration_IEs }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_02, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_02 }, +static const per_choice_t T_csi_MeasConfig_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_37 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_MeasConfig }, { 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_) { +dissect_nr_rrc_T_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_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensions_02, T_criticalExtensions_02_choice, + ett_nr_rrc_T_csi_MeasConfig, T_csi_MeasConfig_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_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_02 }, +static const per_sequence_t SRS_CC_SetIndex_sequence[] = { + { &hf_nr_rrc_cc_SetIndex , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_3 }, + { &hf_nr_rrc_cc_IndexInOneCC_Set, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_7 }, { 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"); +dissect_nr_rrc_SRS_CC_SetIndex(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_CC_SetIndex, SRS_CC_SetIndex_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex_sequence_of[1] = { + { &hf_nr_rrc_srs_CC_SetIndexlist_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_CC_SetIndex }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex(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_SRS_CC_SetIndex, SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex_sequence_of, + 1, 4, FALSE); + + return offset; +} + + +static const per_sequence_t SRS_TPC_PDCCH_Config_sequence[] = { + { &hf_nr_rrc_startingBitOfFormat2_3, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_31 }, + { &hf_nr_rrc_fieldTypeFormat2_3, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1 }, + { &hf_nr_rrc_srs_CC_SetIndexlist, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex }, + { NULL, 0, 0, NULL } +}; +static int +dissect_nr_rrc_SRS_TPC_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_RRCReconfiguration, RRCReconfiguration_sequence); + ett_nr_rrc_SRS_TPC_PDCCH_Config, SRS_TPC_PDCCH_Config_sequence); return offset; } -static const value_string nr_rrc_T_c1_01_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" }, +static const per_sequence_t SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config_sequence_of[1] = { + { &hf_nr_rrc_typeA_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_TPC_PDCCH_Config }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_32_OF_SRS_TPC_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_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config, SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config_sequence_of, + 1, 32, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_srs_TPC_PDCCH_Group_vals[] = { + { 0, "typeA" }, + { 1, "typeB" }, { 0, NULL } }; -static const per_choice_t T_c1_01_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 }, +static const per_choice_t T_srs_TPC_PDCCH_Group_choice[] = { + { 0, &hf_nr_rrc_typeA , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config }, + { 1, &hf_nr_rrc_typeB , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SRS_TPC_PDCCH_Config }, { 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_) { +dissect_nr_rrc_T_srs_TPC_PDCCH_Group(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, + ett_nr_rrc_T_srs_TPC_PDCCH_Group, T_srs_TPC_PDCCH_Group_choice, NULL); return offset; } -static const per_sequence_t T_messageClassExtension_01_sequence[] = { +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofServingCells_OF_SlotFormatCombinationsPerCell_sequence_of[1] = { + { &hf_nr_rrc_srs_CellToSFI_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SlotFormatCombinationsPerCell }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_SlotFormatCombinationsPerCell(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_maxNrofServingCells_OF_SlotFormatCombinationsPerCell, SEQUENCE_SIZE_1_maxNrofServingCells_OF_SlotFormatCombinationsPerCell_sequence_of, + 1, maxNrofServingCells, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex_sequence_of[1] = { + { &hf_nr_rrc_monitoringCells_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex, SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex_sequence_of, + 1, maxNrofServingCells, FALSE); + + return offset; +} + + +static const per_sequence_t SRS_CarrierSwitching_sequence[] = { + { &hf_nr_rrc_srs_SwitchFromServCellIndex, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_31 }, + { &hf_nr_rrc_srs_TPC_PDCCH_Group, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_srs_TPC_PDCCH_Group }, + { &hf_nr_rrc_srs_CellToSFI, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_SlotFormatCombinationsPerCell }, + { &hf_nr_rrc_monitoringCells, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex }, { 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_) { +dissect_nr_rrc_SRS_CarrierSwitching(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); + ett_nr_rrc_SRS_CarrierSwitching, SRS_CarrierSwitching_sequence); return offset; } -static const value_string nr_rrc_DL_DCCH_MessageType_vals[] = { - { 0, "c1" }, - { 1, "messageClassExtension" }, +static const value_string nr_rrc_T_carrierSwitching_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; -static const per_choice_t DL_DCCH_MessageType_choice[] = { - { 0, &hf_nr_rrc_c1_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_01 }, - { 1, &hf_nr_rrc_messageClassExtension_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_01 }, +static const per_choice_t T_carrierSwitching_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_38 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SRS_CarrierSwitching }, { 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_) { +dissect_nr_rrc_T_carrierSwitching(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, + ett_nr_rrc_T_carrierSwitching, T_carrierSwitching_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 }, +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 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_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; +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); - col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC"); - col_clear(actx->pinfo->cinfo, COL_INFO); + return offset; +} - 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; +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 per_sequence_t T_other_sequence[] = { + { &hf_nr_rrc_schedulingCellId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, + { &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_DL_DCCH_Message, DL_DCCH_Message_sequence); + 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 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 }, +static const per_sequence_t CrossCarrierSchedulingConfig_sequence[] = { + { &hf_nr_rrc_schedulingCellInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_schedulingCellInfo }, { 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_) { +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_ResultsSSBCell, ResultsSSBCell_sequence); + 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 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 }, +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 ServingCellConfig_sequence[] = { + { &hf_nr_rrc_tdd_UL_DL_ConfigurationDedicated, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_TDD_UL_DL_ConfigDedicated }, + { &hf_nr_rrc_initialDownlinkBWP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BWP_DownlinkDedicated }, + { &hf_nr_rrc_downlinkBWP_ToReleaseList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id }, + { &hf_nr_rrc_downlinkBWP_ToAddModList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink }, + { &hf_nr_rrc_firstActiveDownlinkBWP_Id, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BWP_Id }, + { &hf_nr_rrc_bwp_InactivityTimer, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_InactivityTimer }, + { &hf_nr_rrc_defaultDownlinkBWP_Id, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BWP_Id }, + { &hf_nr_rrc_uplinkConfig , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfig }, + { &hf_nr_rrc_supplementaryUplink_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfig }, + { &hf_nr_rrc_pdsch_ServingCellConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_ServingCellConfig }, + { &hf_nr_rrc_csi_MeasConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_MeasConfig }, + { &hf_nr_rrc_carrierSwitching, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_carrierSwitching }, + { &hf_nr_rrc_sCellDeactivationTimer, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sCellDeactivationTimer }, + { &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_ResultsCSI_RSCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_ServingCellConfig(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); + ett_nr_rrc_ServingCellConfig, ServingCellConfig_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 }, +static const per_sequence_t SpCellConfig_sequence[] = { + { &hf_nr_rrc_servCellIndex, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_reconfigurationWithSync, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ReconfigurationWithSync }, + { &hf_nr_rrc_rlf_TimersAndConstants, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rlf_TimersAndConstants }, + { &hf_nr_rrc_rlmInSyncOutOfSyncThreshold, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1 }, + { &hf_nr_rrc_spCellConfigDedicated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ServingCellConfig }, { 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_) { +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_T_cellResults, T_cellResults_sequence); + ett_nr_rrc_SpCellConfig, SpCellConfig_sequence); 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 }, + +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_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SCellIndex }, + { &hf_nr_rrc_sCellConfigCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ServingCellConfigCommon }, + { &hf_nr_rrc_sCellConfigDedicated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ServingCellConfig }, { 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_) { +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_ResultsPerSSBIndex, ResultsPerSSBIndex_sequence); + ett_nr_rrc_SCellConfig, SCellConfig_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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig_sequence_of[1] = { + { &hf_nr_rrc_sCellToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SCellConfig }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig, SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig_sequence_of, + 1, maxNrofSCells, FALSE); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex_sequence_of[1] = { + { &hf_nr_rrc_sCellToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SCellIndex }, +}; 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); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex, SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex_sequence_of, + 1, maxNrofSCells, FALSE); 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 }, +static const per_sequence_t CellGroupConfig_sequence[] = { + { &hf_nr_rrc_cellGroupId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellGroupId }, + { &hf_nr_rrc_rlc_BearerToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_Bearer_Config }, + { &hf_nr_rrc_rlc_BearerToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentity }, + { &hf_nr_rrc_mac_CellGroupConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MAC_CellGroupConfig }, + { &hf_nr_rrc_physicalCellGroupConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PhysicalCellGroupConfig }, + { &hf_nr_rrc_spCellConfig , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SpCellConfig }, + { &hf_nr_rrc_sCellToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig }, + { &hf_nr_rrc_sCellToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex }, { 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_) { +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_ResultsPerCSI_RSIndex, ResultsPerCSI_RSIndex_sequence); + ett_nr_rrc_CellGroupConfig, CellGroupConfig_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 const per_sequence_t MeasResultServFreq2NR_sequence[] = { + { &hf_nr_rrc_ssbFrequency , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_refFreqCSI_RS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_measResultServingCell, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultNR }, + { &hf_nr_rrc_measResultBestNeighCell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasResultNR }, + { NULL, 0, 0, NULL } }; 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_) { +dissect_nr_rrc_MeasResultServFreq2NR(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_MeasResultServFreq2NR, MeasResultServFreq2NR_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultServFreqList2NR_sequence_of[1] = { + { &hf_nr_rrc_MeasResultServFreqList2NR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultServFreq2NR }, +}; + +static int +dissect_nr_rrc_MeasResultServFreqList2NR(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); + ett_nr_rrc_MeasResultServFreqList2NR, MeasResultServFreqList2NR_sequence_of, + 1, maxNrofServingCells, 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 }, +static const per_sequence_t MeasResult2NR_sequence[] = { + { &hf_nr_rrc_ssbFrequency , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_refFreqCSI_RS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_measResultListNR, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultListNR }, { 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_) { +dissect_nr_rrc_MeasResult2NR(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); + ett_nr_rrc_MeasResult2NR, MeasResult2NR_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 }, +static const per_sequence_t MeasResultList2NR_sequence_of[1] = { + { &hf_nr_rrc_MeasResultList2NR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResult2NR }, +}; + +static int +dissect_nr_rrc_MeasResultList2NR(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_MeasResultList2NR, MeasResultList2NR_sequence_of, + 1, maxFreq, FALSE); + + return offset; +} + + +static const per_sequence_t MeasResultSCG_Failure_sequence[] = { + { &hf_nr_rrc_measResultServFreqList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultServFreqList2NR }, + { &hf_nr_rrc_measResultNeighCells_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultList2NR }, { 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_) { +dissect_nr_rrc_MeasResultSCG_Failure(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); + ett_nr_rrc_MeasResultSCG_Failure, MeasResultSCG_Failure_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 }, + +static int +dissect_nr_rrc_FreqBandIndicatorEUTRA(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, maxBandsEUTRA, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_CA_BandwidthClassEUTRA_vals[] = { + { 0, "a" }, + { 1, "b" }, + { 2, "c" }, + { 3, "d" }, + { 4, "e" }, + { 5, "f" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_CA_BandwidthClassEUTRA(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, TRUE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_mimo_CapabilityDL_vals[] = { + { 0, "twoLayers" }, + { 1, "fourLayers" }, + { 2, "eightLayers" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mimo_CapabilityDL(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 IntraBandContiguousCC_InfoDL_EUTRA_sequence[] = { + { &hf_nr_rrc_mimo_CapabilityDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_mimo_CapabilityDL }, { 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_) { +dissect_nr_rrc_IntraBandContiguousCC_InfoDL_EUTRA(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); + ett_nr_rrc_IntraBandContiguousCC_InfoDL_EUTRA, IntraBandContiguousCC_InfoDL_EUTRA_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 }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoDL_EUTRA_sequence_of[1] = { + { &hf_nr_rrc_intraBandContiguousCC_InfoDL_EUTRA_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_IntraBandContiguousCC_InfoDL_EUTRA }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoDL_EUTRA(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_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoDL_EUTRA, SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoDL_EUTRA_sequence_of, + 1, maxNrofServingCellsEUTRA, FALSE); + + return offset; +} + + +static const per_sequence_t BandAndDL_ParametersEUTRA_sequence[] = { + { &hf_nr_rrc_bandEUTRA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorEUTRA }, + { &hf_nr_rrc_ca_BandwidthClassDL_EUTRA, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CA_BandwidthClassEUTRA }, + { &hf_nr_rrc_intraBandContiguousCC_InfoDL_EUTRA_List, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoDL_EUTRA }, { 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_) { +dissect_nr_rrc_BandAndDL_ParametersEUTRA(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); + ett_nr_rrc_BandAndDL_ParametersEUTRA, BandAndDL_ParametersEUTRA_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 const value_string nr_rrc_CA_BandwidthClassNR_vals[] = { + { 0, "a" }, + { 1, "b" }, + { 2, "c" }, + { 3, "d" }, + { 4, "e" }, + { 5, "f" }, + { 6, "g" }, + { 7, "h" }, + { 8, "i" }, + { 9, "j" }, + { 10, "k" }, + { 11, "l" }, + { 12, "m" }, + { 13, "n" }, + { 14, "o" }, + { 15, "p" }, + { 16, "q" }, + { 0, NULL } }; +static value_string_ext nr_rrc_CA_BandwidthClassNR_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_CA_BandwidthClassNR_vals); + + 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); +dissect_nr_rrc_CA_BandwidthClassNR(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, + 17, NULL, TRUE, 0, NULL); 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 const value_string nr_rrc_FreqSeparationClass_vals[] = { + { 0, "c1" }, + { 1, "c2" }, + { 2, "c3" }, + { 0, NULL } }; + 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_) { +dissect_nr_rrc_FreqSeparationClass(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, TRUE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_MIMO_LayersDL_vals[] = { + { 0, "twoLayers" }, + { 1, "fourLayers" }, + { 2, "eightLayers" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_MIMO_LayersDL(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 IntraBandContiguousCC_InfoDL_sequence[] = { + { &hf_nr_rrc_maxNumberMIMO_LayersPDSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_LayersDL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_IntraBandContiguousCC_InfoDL(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_IntraBandContiguousCC_InfoDL, IntraBandContiguousCC_InfoDL_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoDL_sequence_of[1] = { + { &hf_nr_rrc_intraBandContiguousCC_InfoDL_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_IntraBandContiguousCC_InfoDL }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoDL(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); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoDL, SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoDL_sequence_of, + 1, maxNrofServingCells, FALSE); return offset; } -static const per_sequence_t MeasResultListEUTRA_sequence[] = { +static const per_sequence_t BandAndDL_ParametersNR_sequence[] = { + { &hf_nr_rrc_bandNR , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorNR }, + { &hf_nr_rrc_ca_BandwidthClassDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CA_BandwidthClassNR }, + { &hf_nr_rrc_intraBandFreqSeparationDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FreqSeparationClass }, + { &hf_nr_rrc_intraBandContiguousCC_InfoDL_List, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoDL }, { 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_) { +dissect_nr_rrc_BandAndDL_ParametersNR(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); + ett_nr_rrc_BandAndDL_ParametersNR, BandAndDL_ParametersNR_sequence); return offset; } -static const value_string nr_rrc_T_measResultNeighCells_vals[] = { - { 0, "measResultListNR" }, - { 1, "measResultListEUTRA" }, +static const value_string nr_rrc_BandAndDL_Parameters_vals[] = { + { 0, "bandAndDL-ParametersEUTRA" }, + { 1, "bandAndDL-ParametersNR" }, { 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 }, +static const per_choice_t BandAndDL_Parameters_choice[] = { + { 0, &hf_nr_rrc_bandAndDL_ParametersEUTRA, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BandAndDL_ParametersEUTRA }, + { 1, &hf_nr_rrc_bandAndDL_ParametersNR, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BandAndDL_ParametersNR }, { 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_) { +dissect_nr_rrc_BandAndDL_Parameters(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, + ett_nr_rrc_BandAndDL_Parameters, BandAndDL_Parameters_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 }, +static const per_sequence_t BandAndDL_ParametersList_sequence_of[1] = { + { &hf_nr_rrc_BandAndDL_ParametersList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandAndDL_Parameters }, +}; + +static int +dissect_nr_rrc_BandAndDL_ParametersList(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_BandAndDL_ParametersList, BandAndDL_ParametersList_sequence_of, + 1, maxSimultaneousBands, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_1_maxBandComb(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, + 1, maxBandComb, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_multipleTimingAdvances_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_multipleTimingAdvances(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_simultaneousRxTxInterBandCA_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_simultaneousRxTxInterBandCA(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_BIT_STRING_SIZE_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_bit_string(tvb, offset, actx, tree, hf_index, + 1, 32, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t CA_ParametersNR_sequence[] = { + { &hf_nr_rrc_multipleTimingAdvances, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleTimingAdvances }, + { &hf_nr_rrc_simultaneousRxTxInterBandCA, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_simultaneousRxTxInterBandCA }, + { &hf_nr_rrc_supportedBandwidthCombinationSet, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_1_32 }, { 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_) { +dissect_nr_rrc_CA_ParametersNR(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); + ett_nr_rrc_CA_ParametersNR, CA_ParametersNR_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 }, +static const value_string nr_rrc_T_singleUL_Transmission_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_singleUL_Transmission(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_ul_SharingEUTRA_NR_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ul_SharingEUTRA_NR(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_ul_SwitchingTimeEUTRA_NR_vals[] = { + { 0, "type1" }, + { 1, "type2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ul_SwitchingTimeEUTRA_NR(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_simultaneousRxTxInterBandENDC_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_simultaneousRxTxInterBandENDC(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_asyncIntraBandENDC_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_asyncIntraBandENDC(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_BasebandProcessingCombinationIndex(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, maxBasebandProcComb, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex_sequence_of[1] = { + { &hf_nr_rrc_basebandProcessingCombinationLinkedIndexSN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandProcessingCombinationIndex }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex(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_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex, SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex_sequence_of, + 1, maxBasebandProcComb, FALSE); + + return offset; +} + + +static const per_sequence_t BasebandProcessingCombinationLink_sequence[] = { + { &hf_nr_rrc_basebandProcessingCombinationIndexMN, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandProcessingCombinationIndex }, + { &hf_nr_rrc_basebandProcessingCombinationLinkedIndexSN, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex }, { 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_) { +dissect_nr_rrc_BasebandProcessingCombinationLink(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); + ett_nr_rrc_BasebandProcessingCombinationLink, BasebandProcessingCombinationLink_sequence); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_01_sequence[] = { +static const per_sequence_t BasebandProcessingCombinationMRDC_sequence_of[1] = { + { &hf_nr_rrc_BasebandProcessingCombinationMRDC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandProcessingCombinationLink }, +}; + +static int +dissect_nr_rrc_BasebandProcessingCombinationMRDC(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_BasebandProcessingCombinationMRDC, BasebandProcessingCombinationMRDC_sequence_of, + 1, maxBasebandProcComb, FALSE); + + return offset; +} + + +static const per_sequence_t MRDC_Parameters_sequence[] = { + { &hf_nr_rrc_singleUL_Transmission, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_singleUL_Transmission }, + { &hf_nr_rrc_ul_SharingEUTRA_NR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ul_SharingEUTRA_NR }, + { &hf_nr_rrc_ul_SwitchingTimeEUTRA_NR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ul_SwitchingTimeEUTRA_NR }, + { &hf_nr_rrc_simultaneousRxTxInterBandENDC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_simultaneousRxTxInterBandENDC }, + { &hf_nr_rrc_asyncIntraBandENDC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_asyncIntraBandENDC }, + { &hf_nr_rrc_basebandProcesingCombinationMRDC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandProcessingCombinationMRDC }, { 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_) { +dissect_nr_rrc_MRDC_Parameters(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); + ett_nr_rrc_MRDC_Parameters, MRDC_Parameters_sequence); return offset; } -static const value_string nr_rrc_T_criticalExtensions_01_vals[] = { - { 0, "measurementReport" }, - { 1, "criticalExtensionsFuture" }, +static const per_sequence_t BandCombinationParameters_sequence[] = { + { &hf_nr_rrc_ca_ParametersNR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CA_ParametersNR }, + { &hf_nr_rrc_mrdc_Parameters, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MRDC_Parameters }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BandCombinationParameters(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_BandCombinationParameters, BandCombinationParameters_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxBandComb_OF_BandCombinationParameters_sequence_of[1] = { + { &hf_nr_rrc_bandCombinationParametersList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationParameters }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxBandComb_OF_BandCombinationParameters(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_maxBandComb_OF_BandCombinationParameters, SEQUENCE_SIZE_1_maxBandComb_OF_BandCombinationParameters_sequence_of, + 1, maxBandComb, FALSE); + + return offset; +} + + +static const per_sequence_t BandCombination_sequence[] = { + { &hf_nr_rrc_bandAndDL_ParametersList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandAndDL_ParametersList }, + { &hf_nr_rrc_bandCombinationsUL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_1_maxBandComb }, + { &hf_nr_rrc_bandCombinationParametersList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxBandComb_OF_BandCombinationParameters }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BandCombination(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_BandCombination, BandCombination_sequence); + + return offset; +} + + +static const per_sequence_t BandCombinationList_sequence_of[1] = { + { &hf_nr_rrc_BandCombinationList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombination }, +}; + +static int +dissect_nr_rrc_BandCombinationList(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_BandCombinationList, BandCombinationList_sequence_of, + 1, maxBandComb, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_mimo_CapabilityUL_vals[] = { + { 0, "twoLayers" }, + { 1, "fourLayers" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_01_choice[] = { - { 0, &hf_nr_rrc_measurementReport_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasurementReport_IEs }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_01 }, + +static int +dissect_nr_rrc_T_mimo_CapabilityUL(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 IntraBandContiguousCC_InfoUL_EUTRA_sequence[] = { + { &hf_nr_rrc_mimo_CapabilityUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_mimo_CapabilityUL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_IntraBandContiguousCC_InfoUL_EUTRA(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_IntraBandContiguousCC_InfoUL_EUTRA, IntraBandContiguousCC_InfoUL_EUTRA_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoUL_EUTRA_sequence_of[1] = { + { &hf_nr_rrc_intraBandContiguousCC_InfoUL_EUTRA_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_IntraBandContiguousCC_InfoUL_EUTRA }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoUL_EUTRA(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_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoUL_EUTRA, SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoUL_EUTRA_sequence_of, + 1, maxNrofServingCellsEUTRA, FALSE); + + return offset; +} + + +static const per_sequence_t BandParametersUL_EUTRA_sequence[] = { + { &hf_nr_rrc_ca_BandwidthClassUL_EUTRA, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CA_BandwidthClassEUTRA }, + { &hf_nr_rrc_intraBandContiguousCC_InfoUL_EUTRA_List, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoUL_EUTRA }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BandParametersUL_EUTRA(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_BandParametersUL_EUTRA, BandParametersUL_EUTRA_sequence); + + return offset; +} + + +static const value_string nr_rrc_MIMO_LayersUL_vals[] = { + { 0, "oneLayer" }, + { 1, "twoLayers" }, + { 2, "fourLayers" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_MIMO_LayersUL(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 IntraBandContiguousCC_InfoUL_sequence[] = { + { &hf_nr_rrc_maxNumberMIMO_LayersCB_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_LayersUL }, + { &hf_nr_rrc_maxNumberMIMO_LayersNonCB_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_LayersUL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_IntraBandContiguousCC_InfoUL(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_IntraBandContiguousCC_InfoUL, IntraBandContiguousCC_InfoUL_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoUL_sequence_of[1] = { + { &hf_nr_rrc_intraBandContiguousCC_InfoUL_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_IntraBandContiguousCC_InfoUL }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoUL(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_maxNrofServingCells_OF_IntraBandContiguousCC_InfoUL, SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoUL_sequence_of, + 1, maxNrofServingCells, FALSE); + + return offset; +} + + +static const per_sequence_t BandParametersUL_NR_sequence[] = { + { &hf_nr_rrc_ca_BandwidthClassUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CA_BandwidthClassNR }, + { &hf_nr_rrc_intraBandFreqSeparationUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FreqSeparationClass }, + { &hf_nr_rrc_intraBandContiguousCC_InfoUL_List, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoUL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BandParametersUL_NR(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_BandParametersUL_NR, BandParametersUL_NR_sequence); + + return offset; +} + + +static const value_string nr_rrc_BandParametersUL_vals[] = { + { 0, "bandParametersUL-EUTRA" }, + { 1, "bandParametersUL-NR" }, + { 0, NULL } +}; + +static const per_choice_t BandParametersUL_choice[] = { + { 0, &hf_nr_rrc_bandParametersUL_EUTRA, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BandParametersUL_EUTRA }, + { 1, &hf_nr_rrc_bandParametersUL_NR, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BandParametersUL_NR }, { 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_) { +dissect_nr_rrc_BandParametersUL(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, + ett_nr_rrc_BandParametersUL, BandParametersUL_choice, NULL); return offset; } -static const per_sequence_t MeasurementReport_sequence[] = { - { &hf_nr_rrc_criticalExtensions_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_01 }, +static const per_sequence_t BandCombinationParametersUL_sequence_of[1] = { + { &hf_nr_rrc_BandCombinationParametersUL_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandParametersUL }, +}; + +static int +dissect_nr_rrc_BandCombinationParametersUL(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_BandCombinationParametersUL, BandCombinationParametersUL_sequence_of, + 1, maxSimultaneousBands, FALSE); + + return offset; +} + + +static const per_sequence_t BandCombinationParametersUL_List_sequence_of[1] = { + { &hf_nr_rrc_BandCombinationParametersUL_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationParametersUL }, +}; + +static int +dissect_nr_rrc_BandCombinationParametersUL_List(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_BandCombinationParametersUL_List, BandCombinationParametersUL_List_sequence_of, + 1, maxBandComb, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_freqRange_vals[] = { + { 0, "fr1" }, + { 1, "fr2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_freqRange(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_fr1_vals[] = { + { 0, "mhz5" }, + { 1, "mhz10" }, + { 2, "mhz15" }, + { 3, "mhz20" }, + { 4, "mhz25" }, + { 5, "mhz30" }, + { 6, "mhz40" }, + { 7, "mhz50" }, + { 8, "mhz60" }, + { 9, "mhz80" }, + { 10, "mhz100" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_fr1(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_fr2_vals[] = { + { 0, "mhz50" }, + { 1, "mhz100" }, + { 2, "mhz200" }, + { 3, "mhz400" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_fr2(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_supportedBandwidthUL_vals[] = { + { 0, "fr1" }, + { 1, "fr2" }, + { 0, NULL } +}; + +static const per_choice_t T_supportedBandwidthUL_choice[] = { + { 0, &hf_nr_rrc_fr1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr1 }, + { 1, &hf_nr_rrc_fr2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr2 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_supportedBandwidthUL(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_supportedBandwidthUL, T_supportedBandwidthUL_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_scalingFactor0dot75_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scalingFactor0dot75(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_ModulationOrder_vals[] = { + { 0, "bpsk-halfpi" }, + { 1, "bpsk" }, + { 2, "qpsk" }, + { 3, "qam16" }, + { 4, "qam64" }, + { 5, "qam256" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_ModulationOrder(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_maxNumberAperiodicSRS_PerBWP_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 3, "n8" }, + { 4, "n16" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberAperiodicSRS_PerBWP(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_1_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, + 1U, 6U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_maxNumberPeriodicSRS_PerBWP_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 3, "n8" }, + { 4, "n16" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberPeriodicSRS_PerBWP(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_maxNumberSemiPersitentSRS_PerBWP_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n4" }, + { 4, "n8" }, + { 5, "n16" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberSemiPersitentSRS_PerBWP(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_maxNumberSRS_Ports_PerResource_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberSRS_Ports_PerResource(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_Resources_sequence[] = { + { &hf_nr_rrc_maxNumberAperiodicSRS_PerBWP, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberAperiodicSRS_PerBWP }, + { &hf_nr_rrc_maxNumberAperiodicSRS_PerBWP_PerSlot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_6 }, + { &hf_nr_rrc_maxNumberPeriodicSRS_PerBWP, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberPeriodicSRS_PerBWP }, + { &hf_nr_rrc_maxNumberPeriodicSRS_PerBWP_PerSlot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_6 }, + { &hf_nr_rrc_maxNumberSemiPersitentSRS_PerBWP, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberSemiPersitentSRS_PerBWP }, + { &hf_nr_rrc_maxNumberSP_SRS_PerBWP_PerSlot, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_6 }, + { &hf_nr_rrc_maxNumberSRS_Ports_PerResource, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberSRS_Ports_PerResource }, { 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"); +dissect_nr_rrc_SRS_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_SRS_Resources, SRS_Resources_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_supportedSRS_TxPortSwitch_vals[] = { + { 0, "t1r2" }, + { 1, "t1r4" }, + { 2, "t2r4" }, + { 3, "t1r4-t2r4" }, + { 0, NULL } +}; + +static int +dissect_nr_rrc_T_supportedSRS_TxPortSwitch(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_txSwitchImpactToRx_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_txSwitchImpactToRx(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 SRS_TxSwitch_sequence[] = { + { &hf_nr_rrc_supportedSRS_TxPortSwitch, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_supportedSRS_TxPortSwitch }, + { &hf_nr_rrc_txSwitchImpactToRx, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_txSwitchImpactToRx }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SRS_TxSwitch(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, MeasurementReport_sequence); + ett_nr_rrc_SRS_TxSwitch, SRS_TxSwitch_sequence); return offset; } -static const per_sequence_t RRCReconfigurationComplete_IEs_sequence[] = { +static const value_string nr_rrc_T_lowLatencyCSI_Feedback_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_lowLatencyCSI_Feedback(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_scs_15kHz_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_15kHz(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_scs_30kHz_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_30kHz(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_scs_60kHz_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_60kHz(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_scs_120kHz_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_120kHz(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_pusch_DifferentTB_PerSlot_sequence[] = { + { &hf_nr_rrc_scs_15kHz , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_15kHz }, + { &hf_nr_rrc_scs_30kHz , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_30kHz }, + { &hf_nr_rrc_scs_60kHz , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz }, + { &hf_nr_rrc_scs_120kHz , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_120kHz }, { 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_) { +dissect_nr_rrc_T_pusch_DifferentTB_PerSlot(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); + ett_nr_rrc_T_pusch_DifferentTB_PerSlot, T_pusch_DifferentTB_PerSlot_sequence); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_03_sequence[] = { +static const value_string nr_rrc_T_twoPUCCH_Group_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_twoPUCCH_Group(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_diffNumerologyAcrossPUCCH_Group_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_diffNumerologyAcrossPUCCH_Group(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_diffNumerologyWithinPUCCH_Group_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_diffNumerologyWithinPUCCH_Group(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_crossCarrierScheduling_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_crossCarrierScheduling(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_supportedNumberTAG_vals[] = { + { 0, "n2" }, + { 1, "n3" }, + { 2, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_supportedNumberTAG(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_dynamicSwitchSUL_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dynamicSwitchSUL(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_simultaneousTxSUL_NonSUL_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_simultaneousTxSUL_NonSUL(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_searchSpaceSharingCA_UL_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_searchSpaceSharingCA_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, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t BasebandParametersPerCC_UL_sequence[] = { + { &hf_nr_rrc_supportedSubcarrierSpacingUL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_supportedBandwidthUL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_supportedBandwidthUL }, + { &hf_nr_rrc_scalingFactor0dot75, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scalingFactor0dot75 }, + { &hf_nr_rrc_maxNumberMIMO_LayersCB_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_LayersUL }, + { &hf_nr_rrc_maxNumberMIMO_LayersNonCB_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_LayersUL }, + { &hf_nr_rrc_supportedModulationOrderUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ModulationOrder }, + { &hf_nr_rrc_supportedSRS_Resources, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SRS_Resources }, + { &hf_nr_rrc_srs_TxSwitch , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SRS_TxSwitch }, + { &hf_nr_rrc_lowLatencyCSI_Feedback, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_lowLatencyCSI_Feedback }, + { &hf_nr_rrc_pusch_DifferentTB_PerSlot, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_DifferentTB_PerSlot }, + { &hf_nr_rrc_twoPUCCH_Group, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPUCCH_Group }, + { &hf_nr_rrc_diffNumerologyAcrossPUCCH_Group, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_diffNumerologyAcrossPUCCH_Group }, + { &hf_nr_rrc_diffNumerologyWithinPUCCH_Group, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_diffNumerologyWithinPUCCH_Group }, + { &hf_nr_rrc_crossCarrierScheduling, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_crossCarrierScheduling }, + { &hf_nr_rrc_supportedNumberTAG, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_supportedNumberTAG }, + { &hf_nr_rrc_dynamicSwitchSUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicSwitchSUL }, + { &hf_nr_rrc_simultaneousTxSUL_NonSUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_simultaneousTxSUL_NonSUL }, + { &hf_nr_rrc_searchSpaceSharingCA_UL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_searchSpaceSharingCA_UL }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensionsFuture_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_BasebandParametersPerCC_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_criticalExtensionsFuture_03, T_criticalExtensionsFuture_03_sequence); + ett_nr_rrc_BasebandParametersPerCC_UL, BasebandParametersPerCC_UL_sequence); return offset; } -static const value_string nr_rrc_T_criticalExtensions_03_vals[] = { - { 0, "rrcReconfigurationComplete" }, - { 1, "criticalExtensionsFuture" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_UL_sequence_of[1] = { + { &hf_nr_rrc_basebandParametersPerCC_UL_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandParametersPerCC_UL }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_UL(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_maxNrofServingCells_OF_BasebandParametersPerCC_UL, SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_UL_sequence_of, + 1, maxNrofServingCells, FALSE); + + return offset; +} + + +static const per_sequence_t BasebandParametersPerBandUL_sequence[] = { + { &hf_nr_rrc_ca_BandwidthClassUL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CA_BandwidthClassNR }, + { &hf_nr_rrc_freqRange , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_freqRange }, + { &hf_nr_rrc_basebandParametersPerCC_UL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_UL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BasebandParametersPerBandUL(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_BasebandParametersPerBandUL, BasebandParametersPerBandUL_sequence); + + return offset; +} + + +static const per_sequence_t BasebandCombinationParametersUL_sequence_of[1] = { + { &hf_nr_rrc_BasebandCombinationParametersUL_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandParametersPerBandUL }, +}; + +static int +dissect_nr_rrc_BasebandCombinationParametersUL(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_BasebandCombinationParametersUL, BasebandCombinationParametersUL_sequence_of, + 1, maxSimultaneousBands, FALSE); + + return offset; +} + + +static const per_sequence_t BasebandCombinationParametersUL_List_sequence_of[1] = { + { &hf_nr_rrc_BasebandCombinationParametersUL_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandCombinationParametersUL }, +}; + +static int +dissect_nr_rrc_BasebandCombinationParametersUL_List(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_BasebandCombinationParametersUL_List, BasebandCombinationParametersUL_List_sequence_of, + 1, maxBasebandProcComb, FALSE); + + return offset; +} + + +static const value_string nr_rrc_FreqBandInformation_vals[] = { + { 0, "bandEUTRA" }, + { 1, "bandNR" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_03_choice[] = { - { 0, &hf_nr_rrc_rrcReconfigurationComplete_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfigurationComplete_IEs }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_03, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_03 }, +static const per_choice_t FreqBandInformation_choice[] = { + { 0, &hf_nr_rrc_bandEUTRA , ASN1_NO_EXTENSIONS , dissect_nr_rrc_FreqBandIndicatorEUTRA }, + { 1, &hf_nr_rrc_bandNR , ASN1_NO_EXTENSIONS , dissect_nr_rrc_FreqBandIndicatorNR }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensions_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_FreqBandInformation(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_03, T_criticalExtensions_03_choice, + ett_nr_rrc_FreqBandInformation, FreqBandInformation_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_03, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_03 }, - { NULL, 0, 0, NULL } +static const per_sequence_t FreqBandList_sequence_of[1] = { + { &hf_nr_rrc_FreqBandList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandInformation }, }; 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"); +dissect_nr_rrc_FreqBandList(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_FreqBandList, FreqBandList_sequence_of, + 1, maxBandsMRDC, FALSE); + + return offset; +} +static const value_string nr_rrc_RAT_Type_vals[] = { + { RAT_Type_nr, "nr" }, + { RAT_Type_eutra_nr, "eutra-nr" }, + { RAT_Type_spare2, "spare2" }, + { RAT_Type_spare1, "spare1" }, + { 0, NULL } +}; +static int +dissect_nr_rrc_RAT_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + guint32 rat_type; + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 4, &rat_type, TRUE, 0, NULL); + + private_data_set_rat_type(actx, (guint8)rat_type); - 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_02_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" }, +static const value_string nr_rrc_T_freqRange_01_vals[] = { + { 0, "fr1" }, + { 1, "fr2" }, { 0, NULL } }; -static const per_choice_t T_c1_02_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 }, + +static int +dissect_nr_rrc_T_freqRange_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_fr1_01_vals[] = { + { 0, "mhz5" }, + { 1, "mhz10" }, + { 2, "mhz15" }, + { 3, "mhz20" }, + { 4, "mhz25" }, + { 5, "mhz30" }, + { 6, "mhz40" }, + { 7, "mhz50" }, + { 8, "mhz60" }, + { 9, "mhz80" }, + { 10, "mhz100" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_fr1_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, + 11, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_fr2_01_vals[] = { + { 0, "mhz50" }, + { 1, "mhz100" }, + { 2, "mhz200" }, + { 3, "mhz400" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_fr2_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_supportedBandwidthDL_vals[] = { + { 0, "fr1" }, + { 1, "fr2" }, + { 0, NULL } +}; + +static const per_choice_t T_supportedBandwidthDL_choice[] = { + { 0, &hf_nr_rrc_fr1_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr1_01 }, + { 1, &hf_nr_rrc_fr2_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr2_01 }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_c1_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_supportedBandwidthDL(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_02, T_c1_02_choice, + ett_nr_rrc_T_supportedBandwidthDL, T_supportedBandwidthDL_choice, NULL); return offset; } -static const per_sequence_t T_messageClassExtension_02_sequence[] = { +static const value_string nr_rrc_T_scalingFactor0dot75_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scalingFactor0dot75_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_scs_60kHz_01_vals[] = { + { 0, "s7" }, + { 1, "s14" }, + { 2, "s28" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_60kHz_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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_sch_120kHz_vals[] = { + { 0, "s14" }, + { 1, "s28" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sch_120kHz(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_timeDurationForQCL_sequence[] = { + { &hf_nr_rrc_scs_60kHz_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_01 }, + { &hf_nr_rrc_sch_120kHz , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sch_120kHz }, { 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_) { +dissect_nr_rrc_T_timeDurationForQCL(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); + ett_nr_rrc_T_timeDurationForQCL, T_timeDurationForQCL_sequence); return offset; } -static const value_string nr_rrc_UL_DCCH_MessageType_vals[] = { - { 0, "c1" }, - { 1, "messageClassExtension" }, +static const value_string nr_rrc_T_scellWithoutSSB_vals[] = { + { 0, "supported" }, { 0, NULL } }; -static const per_choice_t UL_DCCH_MessageType_choice[] = { - { 0, &hf_nr_rrc_c1_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_02 }, - { 1, &hf_nr_rrc_messageClassExtension_02, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_02 }, - { 0, NULL, 0, NULL } + +static int +dissect_nr_rrc_T_scellWithoutSSB(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_csi_RS_MeasSCellWithoutSSB_vals[] = { + { 0, "supported" }, + { 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); +dissect_nr_rrc_T_csi_RS_MeasSCellWithoutSSB(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 UL_DCCH_Message_sequence[] = { - { &hf_nr_rrc_message_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UL_DCCH_MessageType }, +static const value_string nr_rrc_T_srs_AssocCSI_RS_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_srs_AssocCSI_RS(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_type1_3_CSS_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_type1_3_CSS(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_pdcchMonitoringAnyOccasions_vals[] = { + { 0, "withoutDCI-gap" }, + { 1, "withDCI-gap" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdcchMonitoringAnyOccasions(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_ue_SpecificUL_DL_Assignment_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ue_SpecificUL_DL_Assignment(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_scs_15kHz_01_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_15kHz_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_scs_30kHz_01_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_30kHz_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_scs_60kHz_02_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_60kHz_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 value_string nr_rrc_T_scs_120kHz_01_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_120kHz_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 T_pdsch_DifferentTB_PerSlot_sequence[] = { + { &hf_nr_rrc_scs_15kHz_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_15kHz_01 }, + { &hf_nr_rrc_scs_30kHz_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_30kHz_01 }, + { &hf_nr_rrc_scs_60kHz_02 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_02 }, + { &hf_nr_rrc_scs_120kHz_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_120kHz_01 }, { 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; +dissect_nr_rrc_T_pdsch_DifferentTB_PerSlot(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_pdsch_DifferentTB_PerSlot, T_pdsch_DifferentTB_PerSlot_sequence); - col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC"); - col_clear(actx->pinfo->cinfo, COL_INFO); + return offset; +} - 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; +static const value_string nr_rrc_T_crossCarrierScheduling_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_crossCarrierScheduling_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_searchSpaceSharingCA_DL_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_searchSpaceSharingCA_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, + 1, NULL, FALSE, 0, NULL); + return offset; +} + + +static const per_sequence_t BasebandParametersPerCC_DL_sequence[] = { + { &hf_nr_rrc_supportedSubcarrierSpacingDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_supportedBandwidthDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_supportedBandwidthDL }, + { &hf_nr_rrc_scalingFactor0dot75_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scalingFactor0dot75_01 }, + { &hf_nr_rrc_timeDurationForQCL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_timeDurationForQCL }, + { &hf_nr_rrc_scellWithoutSSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scellWithoutSSB }, + { &hf_nr_rrc_csi_RS_MeasSCellWithoutSSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RS_MeasSCellWithoutSSB }, + { &hf_nr_rrc_maxNumberMIMO_LayersPDSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_LayersDL }, + { &hf_nr_rrc_supportedModulationOrderDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ModulationOrder }, + { &hf_nr_rrc_srs_AssocCSI_RS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_srs_AssocCSI_RS }, + { &hf_nr_rrc_type1_3_CSS , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_type1_3_CSS }, + { &hf_nr_rrc_pdcchMonitoringAnyOccasions, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcchMonitoringAnyOccasions }, + { &hf_nr_rrc_ue_SpecificUL_DL_Assignment, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ue_SpecificUL_DL_Assignment }, + { &hf_nr_rrc_pdsch_DifferentTB_PerSlot, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_DifferentTB_PerSlot }, + { &hf_nr_rrc_crossCarrierScheduling_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_crossCarrierScheduling_01 }, + { &hf_nr_rrc_searchSpaceSharingCA_DL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_searchSpaceSharingCA_DL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BasebandParametersPerCC_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_UL_DCCH_Message, UL_DCCH_Message_sequence); + ett_nr_rrc_BasebandParametersPerCC_DL, BasebandParametersPerCC_DL_sequence); return offset; } -static const per_sequence_t BandCombination_sequence[] = { +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_DL_sequence_of[1] = { + { &hf_nr_rrc_basebandParametersPerCC_DL_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandParametersPerCC_DL }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_DL(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_maxNrofServingCells_OF_BasebandParametersPerCC_DL, SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_DL_sequence_of, + 1, maxNrofServingCells, FALSE); + + return offset; +} + + +static const per_sequence_t BasebandParametersPerBandDL_sequence[] = { + { &hf_nr_rrc_ca_BandwidthClassDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CA_BandwidthClassNR }, + { &hf_nr_rrc_freqRange_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_freqRange_01 }, + { &hf_nr_rrc_basebandParametersPerCC_DL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_DL }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_BandCombination(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_BasebandParametersPerBandDL(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_BandCombination, BandCombination_sequence); + ett_nr_rrc_BasebandParametersPerBandDL, BasebandParametersPerBandDL_sequence); return offset; } -static const per_sequence_t BandCombinationList_sequence_of[1] = { - { &hf_nr_rrc_BandCombinationList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombination }, +static const per_sequence_t SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBandDL_sequence_of[1] = { + { &hf_nr_rrc_basebandParametersDL_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandParametersPerBandDL }, }; static int -dissect_nr_rrc_BandCombinationList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBandDL(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_BandCombinationList, BandCombinationList_sequence_of, - 1, maxBandComb, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBandDL, SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBandDL_sequence_of, + 1, maxSimultaneousBands, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_1_maxBasebandProcComb(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, + 1, maxBasebandProcComb, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t BasebandProcessingCombination_sequence[] = { + { &hf_nr_rrc_basebandParametersDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBandDL }, + { &hf_nr_rrc_basebandParametersUL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_1_maxBasebandProcComb }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BasebandProcessingCombination(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_BasebandProcessingCombination, BasebandProcessingCombination_sequence); + + return offset; +} + + +static const per_sequence_t SupportedBasebandProcessingCombination_sequence_of[1] = { + { &hf_nr_rrc_SupportedBasebandProcessingCombination_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandProcessingCombination }, +}; + +static int +dissect_nr_rrc_SupportedBasebandProcessingCombination(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_SupportedBasebandProcessingCombination, SupportedBasebandProcessingCombination_sequence_of, + 1, maxBasebandProcComb, FALSE); return offset; } -static const value_string nr_rrc_T_intraCarrierConcurrentMeas_vals[] = { + +static int +dissect_nr_rrc_T_ue_CapabilityRAT_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *ue_cap_tvb=NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, &ue_cap_tvb); + + + + if (ue_cap_tvb) { + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_UE_CapabilityRAT_Container); + switch(private_data_get_rat_type(actx)){ + case RAT_Type_nr: + dissect_nr_rrc_UE_NR_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); + break; + case RAT_Type_eutra_nr: + dissect_nr_rrc_UE_MRDC_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); + break; + default: + break; + } + } + return offset; +} + + +static const per_sequence_t UE_CapabilityRAT_Container_sequence[] = { + { &hf_nr_rrc_rat_Type , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RAT_Type }, + { &hf_nr_rrc_ue_CapabilityRAT_Container, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ue_CapabilityRAT_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UE_CapabilityRAT_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + /* Initialise to invalid value */ + private_data_set_rat_type(actx, 0xFF); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UE_CapabilityRAT_Container, UE_CapabilityRAT_Container_sequence); + + + + return offset; +} + + +static const per_sequence_t UE_CapabilityRAT_ContainerList_sequence_of[1] = { + { &hf_nr_rrc_UE_CapabilityRAT_ContainerList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UE_CapabilityRAT_Container }, +}; + +static int +dissect_nr_rrc_UE_CapabilityRAT_ContainerList(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_UE_CapabilityRAT_ContainerList, UE_CapabilityRAT_ContainerList_sequence_of, + 0, maxRAT_CapabilityContainers, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_independentGapConfig_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_intraCarrierConcurrentMeas(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_independentGapConfig(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); @@ -11782,14 +21822,28 @@ dissect_nr_rrc_T_intraCarrierConcurrentMeas(tvbuff_t *tvb _U_, int offset _U_, a } -static const value_string nr_rrc_T_independentGapConfig_vals[] = { +static const per_sequence_t MeasParametersMRDC_Common_sequence[] = { + { &hf_nr_rrc_independentGapConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_independentGapConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasParametersMRDC_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_MeasParametersMRDC_Common, MeasParametersMRDC_Common_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_sftd_MeasPSCell_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_independentGapConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_sftd_MeasPSCell(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); @@ -11797,14 +21851,14 @@ dissect_nr_rrc_T_independentGapConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ct } -static const value_string nr_rrc_T_sstd_MeasType1_vals[] = { +static const value_string nr_rrc_T_sftd_MeasNR_Cell_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_sstd_MeasType1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_sftd_MeasNR_Cell(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); @@ -11812,136 +21866,309 @@ dissect_nr_rrc_T_sstd_MeasType1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -static const per_sequence_t MeasParameters_MRDC_sequence[] = { - { &hf_nr_rrc_intraCarrierConcurrentMeas, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_intraCarrierConcurrentMeas }, - { &hf_nr_rrc_independentGapConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_independentGapConfig }, - { &hf_nr_rrc_sstd_MeasType1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sstd_MeasType1 }, +static const per_sequence_t MeasParametersMRDC_XDD_Diff_sequence[] = { + { &hf_nr_rrc_sftd_MeasPSCell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sftd_MeasPSCell }, + { &hf_nr_rrc_sftd_MeasNR_Cell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sftd_MeasNR_Cell }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasParametersMRDC_XDD_Diff(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_MeasParametersMRDC_XDD_Diff, MeasParametersMRDC_XDD_Diff_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_simultaneousRxDataSSB_DiffNumerology_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_simultaneousRxDataSSB_DiffNumerology(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 MeasParametersMRDC_FRX_Diff_sequence[] = { + { &hf_nr_rrc_simultaneousRxDataSSB_DiffNumerology, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_simultaneousRxDataSSB_DiffNumerology }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasParametersMRDC_FRX_Diff(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_MeasParametersMRDC_FRX_Diff, MeasParametersMRDC_FRX_Diff_sequence); + + return offset; +} + + +static const per_sequence_t MeasParametersMRDC_sequence[] = { + { &hf_nr_rrc_measParametersMRDC_Common, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasParametersMRDC_Common }, + { &hf_nr_rrc_measParametersMRDC_XDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasParametersMRDC_XDD_Diff }, + { &hf_nr_rrc_measParametersMRDC_FRX_Diff, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasParametersMRDC_FRX_Diff }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_MeasParameters_MRDC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MeasParametersMRDC(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_MeasParameters_MRDC, MeasParameters_MRDC_sequence); + ett_nr_rrc_MeasParametersMRDC, MeasParametersMRDC_sequence); return offset; } -static const per_sequence_t RF_Parameters_MRDC_sequence[] = { +static const per_sequence_t RF_ParametersMRDC_sequence[] = { { &hf_nr_rrc_supportedBandCombination, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationList }, + { &hf_nr_rrc_bandCombinationParametersUL_List, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationParametersUL_List }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_RF_Parameters_MRDC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_RF_ParametersMRDC(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_RF_Parameters_MRDC, RF_Parameters_MRDC_sequence); + ett_nr_rrc_RF_ParametersMRDC, RF_ParametersMRDC_sequence); return offset; } +static const value_string nr_rrc_T_dynamicPowerSharing_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + static int -dissect_nr_rrc_BasebandProcessingCombinationIndex(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, maxBasebandProcComb, NULL, FALSE); +dissect_nr_rrc_T_dynamicPowerSharing(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 SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex_sequence_of[1] = { - { &hf_nr_rrc_basebandProcessingCombinationLinkedIndex_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandProcessingCombinationIndex }, +static const value_string nr_rrc_T_tdm_Pattern_vals[] = { + { 0, "supported" }, + { 0, NULL } }; + static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex(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_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex, SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex_sequence_of, - 1, maxBasebandProcComb, FALSE); +dissect_nr_rrc_T_tdm_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, + 1, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t LinkedBasebandProcessingCombination_sequence[] = { - { &hf_nr_rrc_basebandProcessingCombinationIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandProcessingCombinationIndex }, - { &hf_nr_rrc_basebandProcessingCombinationLinkedIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex }, +static const per_sequence_t Phy_ParametersMRDC_XDD_Diff_sequence[] = { + { &hf_nr_rrc_dynamicPowerSharing, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicPowerSharing }, + { &hf_nr_rrc_tdm_Pattern , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_tdm_Pattern }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_LinkedBasebandProcessingCombination(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_Phy_ParametersMRDC_XDD_Diff(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_LinkedBasebandProcessingCombination, LinkedBasebandProcessingCombination_sequence); + ett_nr_rrc_Phy_ParametersMRDC_XDD_Diff, Phy_ParametersMRDC_XDD_Diff_sequence); return offset; } -static const per_sequence_t BasebandProcessingCombination_MRDC_sequence_of[1] = { - { &hf_nr_rrc_BasebandProcessingCombination_MRDC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_LinkedBasebandProcessingCombination }, +static const value_string nr_rrc_T_dynamicPowerSharing_01_vals[] = { + { 0, "supported" }, + { 0, NULL } }; + static int -dissect_nr_rrc_BasebandProcessingCombination_MRDC(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_BasebandProcessingCombination_MRDC, BasebandProcessingCombination_MRDC_sequence_of, - 1, maxBasebandProcComb, FALSE); +dissect_nr_rrc_T_dynamicPowerSharing_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_tdm_Pattern_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_tdm_Pattern_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 PhyLayerParameters_MRDC_sequence[] = { - { &hf_nr_rrc_supportedBasebandProcessingCombination_MRDC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandProcessingCombination_MRDC }, +static const per_sequence_t Phy_ParametersMRDC_FRX_Diff_sequence[] = { + { &hf_nr_rrc_dynamicPowerSharing_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicPowerSharing_01 }, + { &hf_nr_rrc_tdm_Pattern_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_tdm_Pattern_01 }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_PhyLayerParameters_MRDC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_Phy_ParametersMRDC_FRX_Diff(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_PhyLayerParameters_MRDC, PhyLayerParameters_MRDC_sequence); + ett_nr_rrc_Phy_ParametersMRDC_FRX_Diff, Phy_ParametersMRDC_FRX_Diff_sequence); return offset; } -static const per_sequence_t UE_MRDC_Capability_sequence[] = { - { &hf_nr_rrc_measParameters_MRDC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasParameters_MRDC }, - { &hf_nr_rrc_rf_Parameters_MRDC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_Parameters_MRDC }, - { &hf_nr_rrc_phyLayerParameters_MRDC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhyLayerParameters_MRDC }, +static const per_sequence_t Phy_ParametersMRDC_sequence[] = { + { &hf_nr_rrc_phy_ParametersMRDC_XDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersMRDC_XDD_Diff }, + { &hf_nr_rrc_phy_ParametersMRDC_FRX_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersMRDC_FRX_Diff }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_UE_MRDC_Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_Phy_ParametersMRDC(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_UE_MRDC_Capability, UE_MRDC_Capability_sequence); + ett_nr_rrc_Phy_ParametersMRDC, Phy_ParametersMRDC_sequence); return offset; } -static const value_string nr_rrc_T_dataRateDRB_IP_vals[] = { - { 0, "kbps64" }, - { 1, "spare6" }, - { 2, "spare5" }, - { 3, "spare4" }, - { 4, "spare3" }, - { 5, "spare2" }, - { 6, "spare1" }, - { 7, "spare0" }, +static const value_string nr_rrc_T_splitSRB_WithOneUL_Path_vals[] = { + { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_dataRateDRB_IP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_splitSRB_WithOneUL_Path(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); + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_splitDRB_withUL_Both_MCG_SCG_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_splitDRB_withUL_Both_MCG_SCG(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_srb3_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_srb3(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 GeneralParametersMRDC_XDD_Diff_sequence[] = { + { &hf_nr_rrc_splitSRB_WithOneUL_Path, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_splitSRB_WithOneUL_Path }, + { &hf_nr_rrc_splitDRB_withUL_Both_MCG_SCG, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_splitDRB_withUL_Both_MCG_SCG }, + { &hf_nr_rrc_srb3 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_srb3 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_GeneralParametersMRDC_XDD_Diff(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_GeneralParametersMRDC_XDD_Diff, GeneralParametersMRDC_XDD_Diff_sequence); + + return offset; +} + + +static const per_sequence_t UE_MRDC_CapabilityAddXDD_Mode_sequence[] = { + { &hf_nr_rrc_phy_ParametersMRDC_XDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersMRDC_XDD_Diff }, + { &hf_nr_rrc_measParametersMRDC_XDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasParametersMRDC_XDD_Diff }, + { &hf_nr_rrc_generalParametersMRDC_XDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_GeneralParametersMRDC_XDD_Diff }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode(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_UE_MRDC_CapabilityAddXDD_Mode, UE_MRDC_CapabilityAddXDD_Mode_sequence); + + return offset; +} + + +static const per_sequence_t UE_MRDC_CapabilityAddFRX_Mode_sequence[] = { + { &hf_nr_rrc_phy_ParametersMRDC_FRX_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersMRDC_FRX_Diff }, + { &hf_nr_rrc_measParametersMRDC_FRX_Diff, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasParametersMRDC_FRX_Diff }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode(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_UE_MRDC_CapabilityAddFRX_Mode, UE_MRDC_CapabilityAddFRX_Mode_sequence); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_05_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_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_nonCriticalExtension_05, T_nonCriticalExtension_05_sequence); + + return offset; +} + + +static const per_sequence_t UE_MRDC_Capability_sequence[] = { + { &hf_nr_rrc_measParametersMRDC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasParametersMRDC }, + { &hf_nr_rrc_rf_ParametersMRDC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_ParametersMRDC }, + { &hf_nr_rrc_phy_ParametersMRDC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersMRDC }, + { &hf_nr_rrc_generalParametersMRDC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_GeneralParametersMRDC_XDD_Diff }, + { &hf_nr_rrc_fdd_Add_UE_MRDC_Capabilities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode }, + { &hf_nr_rrc_tdd_Add_UE_MRDC_Capabilities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode }, + { &hf_nr_rrc_fr1_Add_UE_MRDC_Capabilities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode }, + { &hf_nr_rrc_fr2_Add_UE_MRDC_Capabilities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_05, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_05 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UE_MRDC_Capability(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_UE_MRDC_Capability, UE_MRDC_Capability_sequence); return offset; } @@ -12060,30 +22287,13 @@ dissect_nr_rrc_T_shortSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ } -static const value_string nr_rrc_T_volteOverNR_PDCP_vals[] = { - { 0, "supported" }, - { 0, NULL } -}; - - -static int -dissect_nr_rrc_T_volteOverNR_PDCP(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 PDCP_Parameters_sequence[] = { - { &hf_nr_rrc_dataRateDRB_IP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dataRateDRB_IP }, { &hf_nr_rrc_supportedROHC_Profiles, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_supportedROHC_Profiles }, { &hf_nr_rrc_maxNumberROHC_ContextSessions, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberROHC_ContextSessions }, { &hf_nr_rrc_uplinkOnlyROHC_Profiles, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_uplinkOnlyROHC_Profiles }, { &hf_nr_rrc_continueROHC_Context, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_continueROHC_Context }, { &hf_nr_rrc_outOfOrderDelivery_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_outOfOrderDelivery }, { &hf_nr_rrc_shortSN , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_shortSN }, - { &hf_nr_rrc_volteOverNR_PDCP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_volteOverNR_PDCP }, { NULL, 0, 0, NULL } }; @@ -12096,14 +22306,14 @@ dissect_nr_rrc_PDCP_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -static const value_string nr_rrc_T_amWithShortSN_vals[] = { +static const value_string nr_rrc_T_am_WithShortSN_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_amWithShortSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_am_WithShortSN(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); @@ -12111,14 +22321,14 @@ dissect_nr_rrc_T_amWithShortSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -static const value_string nr_rrc_T_umWithShortSN_vals[] = { +static const value_string nr_rrc_T_um_WithShortSN_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_umWithShortSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_um_WithShortSN(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); @@ -12126,14 +22336,14 @@ dissect_nr_rrc_T_umWithShortSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -static const value_string nr_rrc_T_umWIthLongSN_vals[] = { +static const value_string nr_rrc_T_um_WIthLongSN_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_umWIthLongSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_um_WIthLongSN(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); @@ -12142,9 +22352,9 @@ dissect_nr_rrc_T_umWIthLongSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static const per_sequence_t RLC_Parameters_sequence[] = { - { &hf_nr_rrc_amWithShortSN, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_amWithShortSN }, - { &hf_nr_rrc_umWithShortSN, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_umWithShortSN }, - { &hf_nr_rrc_umWIthLongSN , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_umWIthLongSN }, + { &hf_nr_rrc_am_WithShortSN, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_am_WithShortSN }, + { &hf_nr_rrc_um_WithShortSN, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_um_WithShortSN }, + { &hf_nr_rrc_um_WIthLongSN, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_um_WIthLongSN }, { NULL, 0, 0, NULL } }; @@ -12172,6 +22382,36 @@ dissect_nr_rrc_T_lcp_Restriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } +static const value_string nr_rrc_T_pucch_SpatialRelInfoMAC_CE_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pucch_SpatialRelInfoMAC_CE(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 MAC_ParametersCommon_sequence[] = { + { &hf_nr_rrc_lcp_Restriction, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_lcp_Restriction }, + { &hf_nr_rrc_pucch_SpatialRelInfoMAC_CE, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_SpatialRelInfoMAC_CE }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MAC_ParametersCommon(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_ParametersCommon, MAC_ParametersCommon_sequence); + + return offset; +} + + static const value_string nr_rrc_T_skipUplinkTxDynamic_vals[] = { { 0, "supported" }, { 0, NULL } @@ -12187,14 +22427,14 @@ dissect_nr_rrc_T_skipUplinkTxDynamic(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } -static const value_string nr_rrc_T_logicalChannelSR_DelayTimer_vals[] = { +static const value_string nr_rrc_T_logicalChannelSR_DelayTimer_01_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_logicalChannelSR_DelayTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_logicalChannelSR_DelayTimer_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); @@ -12232,48 +22472,58 @@ dissect_nr_rrc_T_shortDRX_Cycle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -static const value_string nr_rrc_T_numberOfSR_Configurations_vals[] = { - { 0, "n2" }, - { 1, "n3" }, - { 2, "n4" }, +static const value_string nr_rrc_T_multipleSR_Configurations_vals[] = { + { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_numberOfSR_Configurations(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_multipleSR_Configurations(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, TRUE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_numberOfConfiguredGrantConfigurations_vals[] = { - { 0, "n2" }, - { 1, "n3" }, - { 2, "n4" }, +static const value_string nr_rrc_T_multipleConfiguredGrantConfigurations_vals[] = { + { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_numberOfConfiguredGrantConfigurations(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_multipleConfiguredGrantConfigurations(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, TRUE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t MAC_Parameters_sequence[] = { - { &hf_nr_rrc_lcp_Restriction, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_lcp_Restriction }, +static const per_sequence_t MAC_ParametersXDD_Diff_sequence[] = { { &hf_nr_rrc_skipUplinkTxDynamic_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_skipUplinkTxDynamic }, - { &hf_nr_rrc_logicalChannelSR_DelayTimer, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_logicalChannelSR_DelayTimer }, + { &hf_nr_rrc_logicalChannelSR_DelayTimer_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_logicalChannelSR_DelayTimer_01 }, { &hf_nr_rrc_longDRX_Cycle, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_longDRX_Cycle }, { &hf_nr_rrc_shortDRX_Cycle, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_shortDRX_Cycle }, - { &hf_nr_rrc_numberOfSR_Configurations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_numberOfSR_Configurations }, - { &hf_nr_rrc_numberOfConfiguredGrantConfigurations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_numberOfConfiguredGrantConfigurations }, + { &hf_nr_rrc_multipleSR_Configurations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleSR_Configurations }, + { &hf_nr_rrc_multipleConfiguredGrantConfigurations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleConfiguredGrantConfigurations }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MAC_ParametersXDD_Diff(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_ParametersXDD_Diff, MAC_ParametersXDD_Diff_sequence); + + return offset; +} + + +static const per_sequence_t MAC_Parameters_sequence[] = { + { &hf_nr_rrc_mac_ParametersCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MAC_ParametersCommon }, + { &hf_nr_rrc_mac_ParametersXDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MAC_ParametersXDD_Diff }, { NULL, 0, 0, NULL } }; @@ -12286,173 +22536,1542 @@ dissect_nr_rrc_MAC_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -static const value_string nr_rrc_CA_BandwidthClass_vals[] = { - { 0, "a" }, - { 1, "b" }, - { 2, "c" }, - { 3, "d" }, - { 4, "e" }, - { 5, "f" }, +static const value_string nr_rrc_T_csi_RS_CFRA_ForHO_vals[] = { + { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_CA_BandwidthClass(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_csi_RS_CFRA_ForHO(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, TRUE, 0, NULL); + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_dynamicPRB_BundlingDL_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dynamicPRB_BundlingDL(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_sp_CSI_ReportPUCCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sp_CSI_ReportPUCCH(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_sp_CSI_ReportPUSCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sp_CSI_ReportPUSCH(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_nzp_CSI_RS_IntefMgmt_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nzp_CSI_RS_IntefMgmt(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_type2_SP_CSI_Feedback_LongPUCCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_type2_SP_CSI_Feedback_LongPUCCH(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_multipleCORESET_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_multipleCORESET(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_dynamicSFI_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dynamicSFI(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_precoderGranularityCORESET_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_precoderGranularityCORESET(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_dynamicHARQ_ACK_Codebook_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dynamicHARQ_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, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_semiStaticHARQ_ACK_Codebook_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_semiStaticHARQ_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, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_spatialBundlingHARQ_ACK_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_spatialBundlingHARQ_ACK(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_dynamicBetaOffsetInd_HARQ_ACK_CSI_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dynamicBetaOffsetInd_HARQ_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 value_string nr_rrc_T_pucch_Repetition_F1_3_4_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pucch_Repetition_F1_3_4(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_ra_Type0_PUSCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ra_Type0_PUSCH(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_dynamicSwitchRA_Type0_1_PDSCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dynamicSwitchRA_Type0_1_PDSCH(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_dynamicSwitchRA_Type0_1_PUSCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dynamicSwitchRA_Type0_1_PUSCH(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_pdsch_MappingTypeA_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdsch_MappingTypeA(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_pdsch_MappingTypeB_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdsch_MappingTypeB(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_interleavingVRB_ToPRB_PDSCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_interleavingVRB_ToPRB_PDSCH(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_interleavingVRB_ToPRB_PUSCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_interleavingVRB_ToPRB_PUSCH(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_interSlotFreqHopping_PUSCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_interSlotFreqHopping_PUSCH(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_type1_PUSCH_RepetitionOneSlot_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_type1_PUSCH_RepetitionOneSlot(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_type1_PUSCH_RepetitionMultiSlots_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_type1_PUSCH_RepetitionMultiSlots(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_type2_PUSCH_RepetitionOneSlot_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_type2_PUSCH_RepetitionOneSlot(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_type2_PUSCH_RepetitionMultiSlots_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_type2_PUSCH_RepetitionMultiSlots(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_pusch_RepetitionMultiSlots_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pusch_RepetitionMultiSlots(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_pdsch_RepetitionMultiSlots_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdsch_RepetitionMultiSlots(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_downlinkSPS_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_downlinkSPS(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_configuredUL_GrantType1_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_configuredUL_GrantType1(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_configuredUL_GrantType2_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_configuredUL_GrantType2(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_pre_EmptIndication_DL_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pre_EmptIndication_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, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_cbg_FlushIndication_DL_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_cbg_FlushIndication_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, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dynamicHARQ_ACK_CodeB_CBG_Retx_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, + 1, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t MIMO_Capability_sequence[] = { +static const value_string nr_rrc_T_rateMatchingResrcSetSemi_Static_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_rateMatchingResrcSetSemi_Static(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_rateMatchingResrcSetDynamic_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_rateMatchingResrcSetDynamic(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_rateMatchingLTE_CRS_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_rateMatchingLTE_CRS(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_bwp_SwitchingDelay_vals[] = { + { 0, "type1" }, + { 1, "type2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_bwp_SwitchingDelay(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 Phy_ParametersCommon_sequence[] = { + { &hf_nr_rrc_csi_RS_CFRA_ForHO, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RS_CFRA_ForHO }, + { &hf_nr_rrc_dynamicPRB_BundlingDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicPRB_BundlingDL }, + { &hf_nr_rrc_sp_CSI_ReportPUCCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sp_CSI_ReportPUCCH }, + { &hf_nr_rrc_sp_CSI_ReportPUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sp_CSI_ReportPUSCH }, + { &hf_nr_rrc_nzp_CSI_RS_IntefMgmt, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nzp_CSI_RS_IntefMgmt }, + { &hf_nr_rrc_type2_SP_CSI_Feedback_LongPUCCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_type2_SP_CSI_Feedback_LongPUCCH }, + { &hf_nr_rrc_multipleCORESET, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleCORESET }, + { &hf_nr_rrc_dynamicSFI , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicSFI }, + { &hf_nr_rrc_precoderGranularityCORESET, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_precoderGranularityCORESET }, + { &hf_nr_rrc_dynamicHARQ_ACK_Codebook, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicHARQ_ACK_Codebook }, + { &hf_nr_rrc_semiStaticHARQ_ACK_Codebook, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_semiStaticHARQ_ACK_Codebook }, + { &hf_nr_rrc_spatialBundlingHARQ_ACK, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_spatialBundlingHARQ_ACK }, + { &hf_nr_rrc_dynamicBetaOffsetInd_HARQ_ACK_CSI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicBetaOffsetInd_HARQ_ACK_CSI }, + { &hf_nr_rrc_pucch_Repetition_F1_3_4, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_Repetition_F1_3_4 }, + { &hf_nr_rrc_ra_Type0_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ra_Type0_PUSCH }, + { &hf_nr_rrc_dynamicSwitchRA_Type0_1_PDSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicSwitchRA_Type0_1_PDSCH }, + { &hf_nr_rrc_dynamicSwitchRA_Type0_1_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicSwitchRA_Type0_1_PUSCH }, + { &hf_nr_rrc_pdsch_MappingTypeA, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_MappingTypeA }, + { &hf_nr_rrc_pdsch_MappingTypeB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_MappingTypeB }, + { &hf_nr_rrc_interleavingVRB_ToPRB_PDSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_interleavingVRB_ToPRB_PDSCH }, + { &hf_nr_rrc_interleavingVRB_ToPRB_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_interleavingVRB_ToPRB_PUSCH }, + { &hf_nr_rrc_interSlotFreqHopping_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_interSlotFreqHopping_PUSCH }, + { &hf_nr_rrc_type1_PUSCH_RepetitionOneSlot, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_type1_PUSCH_RepetitionOneSlot }, + { &hf_nr_rrc_type1_PUSCH_RepetitionMultiSlots, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_type1_PUSCH_RepetitionMultiSlots }, + { &hf_nr_rrc_type2_PUSCH_RepetitionOneSlot, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_type2_PUSCH_RepetitionOneSlot }, + { &hf_nr_rrc_type2_PUSCH_RepetitionMultiSlots, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_type2_PUSCH_RepetitionMultiSlots }, + { &hf_nr_rrc_pusch_RepetitionMultiSlots, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_RepetitionMultiSlots }, + { &hf_nr_rrc_pdsch_RepetitionMultiSlots, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_RepetitionMultiSlots }, + { &hf_nr_rrc_downlinkSPS , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_downlinkSPS }, + { &hf_nr_rrc_configuredUL_GrantType1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_configuredUL_GrantType1 }, + { &hf_nr_rrc_configuredUL_GrantType2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_configuredUL_GrantType2 }, + { &hf_nr_rrc_pre_EmptIndication_DL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pre_EmptIndication_DL }, + { &hf_nr_rrc_cbg_TransIndication, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { &hf_nr_rrc_cbg_FlushIndication_DL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_cbg_FlushIndication_DL }, + { &hf_nr_rrc_dynamicHARQ_ACK_CodeB_CBG_Retx_DL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicHARQ_ACK_CodeB_CBG_Retx_DL }, + { &hf_nr_rrc_rateMatchingResrcSetSemi_Static, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_rateMatchingResrcSetSemi_Static }, + { &hf_nr_rrc_rateMatchingResrcSetDynamic, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_rateMatchingResrcSetDynamic }, + { &hf_nr_rrc_rateMatchingLTE_CRS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_rateMatchingLTE_CRS }, + { &hf_nr_rrc_bwp_SwitchingDelay, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_SwitchingDelay }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_MIMO_Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_Phy_ParametersCommon(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_MIMO_Capability, MIMO_Capability_sequence); + ett_nr_rrc_Phy_ParametersCommon, Phy_ParametersCommon_sequence); return offset; } -static const per_sequence_t ModulationOrder_sequence[] = { +static const value_string nr_rrc_T_twoPUCCH_F0_2_ConsecSymbols_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_twoPUCCH_F0_2_ConsecSymbols(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_twoDifferentTPC_Loop_PUSCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_twoDifferentTPC_Loop_PUSCH(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_twoDifferentTPC_Loop_PUCCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_twoDifferentTPC_Loop_PUCCH(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 Phy_ParametersXDD_Diff_sequence[] = { + { &hf_nr_rrc_twoPUCCH_F0_2_ConsecSymbols, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPUCCH_F0_2_ConsecSymbols }, + { &hf_nr_rrc_twoDifferentTPC_Loop_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoDifferentTPC_Loop_PUSCH }, + { &hf_nr_rrc_twoDifferentTPC_Loop_PUCCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoDifferentTPC_Loop_PUCCH }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_ModulationOrder(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_Phy_ParametersXDD_Diff(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_ModulationOrder, ModulationOrder_sequence); + ett_nr_rrc_Phy_ParametersXDD_Diff, Phy_ParametersXDD_Diff_sequence); return offset; } -static const per_sequence_t SubCarrierSpacing_sequence[] = { +static const value_string nr_rrc_T_supportedDMRS_TypeDL_vals[] = { + { 0, "type1" }, + { 1, "type2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_supportedDMRS_TypeDL(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_supportedDMRS_TypeUL_vals[] = { + { 0, "type1" }, + { 1, "type2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_supportedDMRS_TypeUL(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_semiOpenLoopCSI_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_semiOpenLoopCSI(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_csi_ReportWithoutPMI_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_ReportWithoutPMI(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_csi_ReportWithCRI_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_ReportWithCRI(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_csi_ReportWithoutCQI_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_ReportWithoutCQI(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_twoPUCCH_F0_2_ConsecSymbols_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_twoPUCCH_F0_2_ConsecSymbols_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_pucch_F2_WithFH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pucch_F2_WithFH(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_pucch_F3_WithFH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pucch_F3_WithFH(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_pucch_F4_WithFH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pucch_F4_WithFH(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_freqHoppingPUCCH_F0_2_vals[] = { + { 0, "notSupported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_freqHoppingPUCCH_F0_2(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_freqHoppingPUCCH_F1_3_4_vals[] = { + { 0, "notSupported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_freqHoppingPUCCH_F1_3_4(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_mux_SR_HARQ_ACK_CSI_PUCCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mux_SR_HARQ_ACK_CSI_PUCCH(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_uci_CodeBlockSegmentation_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_uci_CodeBlockSegmentation(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_onePUCCH_LongAndShortFormat_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_onePUCCH_LongAndShortFormat(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_twoPUCCH_AnyOthersInSlot_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_twoPUCCH_AnyOthersInSlot(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_intraSlotFreqHopping_PUSCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_intraSlotFreqHopping_PUSCH(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_pusch_LBRM_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pusch_LBRM(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_pdcch_BlindDetectionCA_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdcch_BlindDetectionCA(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_tpc_PUSCH_RNTI_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_tpc_PUSCH_RNTI(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_tpc_PUCCH_RNTI_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_tpc_PUCCH_RNTI(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_tpc_SRS_RNTI_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_tpc_SRS_RNTI(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_absoluteTPC_Command_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_absoluteTPC_Command(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_twoDifferentTPC_Loop_PUSCH_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_twoDifferentTPC_Loop_PUSCH_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_twoDifferentTPC_Loop_PUCCH_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_twoDifferentTPC_Loop_PUCCH_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_pusch_HalfPi_BPSK_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pusch_HalfPi_BPSK(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_pucch_F3_4_HalfPi_BPSK_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pucch_F3_4_HalfPi_BPSK(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_oneSymbolGP_TDD_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_oneSymbolGP_TDD(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_almostContiguousCP_OFDM_UL_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_almostContiguousCP_OFDM_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, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t Phy_ParametersFRX_Diff_sequence[] = { + { &hf_nr_rrc_oneFL_DMRS_TwoAdditionalDMRS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { &hf_nr_rrc_twoFL_DMRS , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { &hf_nr_rrc_twoFL_DMRS_TwoAdditionalDMRS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { &hf_nr_rrc_oneFL_DMRS_ThreeAdditionalDMRS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { &hf_nr_rrc_supportedDMRS_TypeDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_supportedDMRS_TypeDL }, + { &hf_nr_rrc_supportedDMRS_TypeUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_supportedDMRS_TypeUL }, + { &hf_nr_rrc_semiOpenLoopCSI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_semiOpenLoopCSI }, + { &hf_nr_rrc_csi_ReportWithoutPMI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_ReportWithoutPMI }, + { &hf_nr_rrc_csi_ReportWithCRI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_ReportWithCRI }, + { &hf_nr_rrc_csi_ReportWithoutCQI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_ReportWithoutCQI }, + { &hf_nr_rrc_onePortsPTRS , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { &hf_nr_rrc_twoPUCCH_F0_2_ConsecSymbols_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPUCCH_F0_2_ConsecSymbols_01 }, + { &hf_nr_rrc_pucch_F2_WithFH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_F2_WithFH }, + { &hf_nr_rrc_pucch_F3_WithFH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_F3_WithFH }, + { &hf_nr_rrc_pucch_F4_WithFH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_F4_WithFH }, + { &hf_nr_rrc_freqHoppingPUCCH_F0_2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_freqHoppingPUCCH_F0_2 }, + { &hf_nr_rrc_freqHoppingPUCCH_F1_3_4, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_freqHoppingPUCCH_F1_3_4 }, + { &hf_nr_rrc_mux_SR_HARQ_ACK_CSI_PUCCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_mux_SR_HARQ_ACK_CSI_PUCCH }, + { &hf_nr_rrc_uci_CodeBlockSegmentation, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_uci_CodeBlockSegmentation }, + { &hf_nr_rrc_onePUCCH_LongAndShortFormat, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_onePUCCH_LongAndShortFormat }, + { &hf_nr_rrc_twoPUCCH_AnyOthersInSlot, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPUCCH_AnyOthersInSlot }, + { &hf_nr_rrc_intraSlotFreqHopping_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_intraSlotFreqHopping_PUSCH }, + { &hf_nr_rrc_pusch_LBRM , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_LBRM }, + { &hf_nr_rrc_pdcch_BlindDetectionCA, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcch_BlindDetectionCA }, + { &hf_nr_rrc_tpc_PUSCH_RNTI_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_tpc_PUSCH_RNTI }, + { &hf_nr_rrc_tpc_PUCCH_RNTI_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_tpc_PUCCH_RNTI }, + { &hf_nr_rrc_tpc_SRS_RNTI_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_tpc_SRS_RNTI }, + { &hf_nr_rrc_absoluteTPC_Command, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_absoluteTPC_Command }, + { &hf_nr_rrc_twoDifferentTPC_Loop_PUSCH_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoDifferentTPC_Loop_PUSCH_01 }, + { &hf_nr_rrc_twoDifferentTPC_Loop_PUCCH_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoDifferentTPC_Loop_PUCCH_01 }, + { &hf_nr_rrc_pusch_HalfPi_BPSK, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_HalfPi_BPSK }, + { &hf_nr_rrc_pucch_F3_4_HalfPi_BPSK, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_F3_4_HalfPi_BPSK }, + { &hf_nr_rrc_oneSymbolGP_TDD, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_oneSymbolGP_TDD }, + { &hf_nr_rrc_almostContiguousCP_OFDM_UL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_almostContiguousCP_OFDM_UL }, { NULL, 0, 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_) { +dissect_nr_rrc_Phy_ParametersFRX_Diff(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_SubCarrierSpacing, SubCarrierSpacing_sequence); + ett_nr_rrc_Phy_ParametersFRX_Diff, Phy_ParametersFRX_Diff_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_pdcchMonitoringSingleOccasion_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdcchMonitoringSingleOccasion(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_scs_60kHz_03_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_60kHz_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, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_pdsch_256QAM_FR1_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdsch_256QAM_FR1(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 BasebandParametersPerCC_sequence[] = { - { &hf_nr_rrc_supportedMIMO_CapabilityDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_Capability }, - { &hf_nr_rrc_supportedMIMO_CapabilityUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_Capability }, - { &hf_nr_rrc_modulationOrder, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ModulationOrder }, - { &hf_nr_rrc_subCarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubCarrierSpacing }, +static const per_sequence_t Phy_ParametersFR1_sequence[] = { + { &hf_nr_rrc_pdcchMonitoringSingleOccasion, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcchMonitoringSingleOccasion }, + { &hf_nr_rrc_scs_60kHz_03 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_03 }, + { &hf_nr_rrc_pdsch_256QAM_FR1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_256QAM_FR1 }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_BasebandParametersPerCC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_Phy_ParametersFR1(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_BasebandParametersPerCC, BasebandParametersPerCC_sequence); + ett_nr_rrc_Phy_ParametersFR1, Phy_ParametersFR1_sequence); return offset; } -static const per_sequence_t SEQUENCE_SIZE_1_maxServCell_OF_BasebandParametersPerCC_sequence_of[1] = { - { &hf_nr_rrc_basebandParametersPerCC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandParametersPerCC }, +static const value_string nr_rrc_T_calibrationGapPA_vals[] = { + { 0, "supported" }, + { 0, NULL } }; + static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxServCell_OF_BasebandParametersPerCC(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_maxServCell_OF_BasebandParametersPerCC, SEQUENCE_SIZE_1_maxServCell_OF_BasebandParametersPerCC_sequence_of, - 1, maxServCell, FALSE); +dissect_nr_rrc_T_calibrationGapPA(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 Phy_ParametersFR2_sequence[] = { + { &hf_nr_rrc_calibrationGapPA, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_calibrationGapPA }, + { NULL, 0, 0, NULL } +}; static int -dissect_nr_rrc_BWPerCC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_nr_rrc_CA_BandwidthClass(tvb, offset, actx, tree, hf_index); +dissect_nr_rrc_Phy_ParametersFR2(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_Phy_ParametersFR2, Phy_ParametersFR2_sequence); return offset; } -static const per_sequence_t BasebandParametersPerBand_sequence[] = { - { &hf_nr_rrc_ca_BandwidthClassDL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CA_BandwidthClass }, - { &hf_nr_rrc_ca_BandwidthClassUL, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CA_BandwidthClass }, - { &hf_nr_rrc_basebandParametersPerCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxServCell_OF_BasebandParametersPerCC }, - { &hf_nr_rrc_supportedBWPerCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWPerCC }, +static const per_sequence_t Phy_Parameters_sequence[] = { + { &hf_nr_rrc_phy_ParametersCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersCommon }, + { &hf_nr_rrc_phy_ParametersXDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersXDD_Diff }, + { &hf_nr_rrc_phy_ParametersFRX_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersFRX_Diff }, + { &hf_nr_rrc_phy_ParametersFR1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersFR1 }, + { &hf_nr_rrc_phy_ParametersFR2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersFR2 }, + { &hf_nr_rrc_supportedBasebandProcessingCombination, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SupportedBasebandProcessingCombination }, + { &hf_nr_rrc_basebandCombinationParametersUL_List, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandCombinationParametersUL_List }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_BasebandParametersPerBand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_Phy_Parameters(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_BasebandParametersPerBand, BasebandParametersPerBand_sequence); + ett_nr_rrc_Phy_Parameters, Phy_Parameters_sequence); return offset; } -static const per_sequence_t SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBand_sequence_of[1] = { - { &hf_nr_rrc_basebandParametersPerBand_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandParametersPerBand }, +static const value_string nr_rrc_T_maxChannelBW_PerCC_vals[] = { + { 0, "mhz400" }, + { 0, NULL } }; + static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBand(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_maxSimultaneousBands_OF_BasebandParametersPerBand, SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBand_sequence_of, - 1, maxSimultaneousBands, FALSE); +dissect_nr_rrc_T_maxChannelBW_PerCC(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 BasebandProcessingCombination_sequence[] = { - { &hf_nr_rrc_basebandParametersPerBand, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBand }, +static const value_string nr_rrc_T_scs_60kHz_06_vals[] = { + { 0, "s7" }, + { 1, "s14" }, + { 2, "s28" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_60kHz_06(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_sch_120kHz_01_vals[] = { + { 0, "s14" }, + { 1, "s28" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sch_120kHz_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 T_timeDurationForQCL_01_sequence[] = { + { &hf_nr_rrc_scs_60kHz_06 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_06 }, + { &hf_nr_rrc_sch_120kHz_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sch_120kHz_01 }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_BasebandProcessingCombination(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_timeDurationForQCL_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_BasebandProcessingCombination, BasebandProcessingCombination_sequence); + ett_nr_rrc_T_timeDurationForQCL_01, T_timeDurationForQCL_01_sequence); return offset; } -static const per_sequence_t SupportedBasebandProcessingCombination_sequence_of[1] = { - { &hf_nr_rrc_SupportedBasebandProcessingCombination_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BasebandProcessingCombination }, +static const value_string nr_rrc_T_maxNumberConfiguredTCIstates_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 2, "n16" }, + { 3, "n32" }, + { 4, "n64" }, + { 0, NULL } }; + static int -dissect_nr_rrc_SupportedBasebandProcessingCombination(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_SupportedBasebandProcessingCombination, SupportedBasebandProcessingCombination_sequence_of, - 1, maxBasebandProcComb, FALSE); +dissect_nr_rrc_T_maxNumberConfiguredTCIstates(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 per_sequence_t PhyLayerParameters_sequence[] = { - { &hf_nr_rrc_supportedBasebandProcessingCombination, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SupportedBasebandProcessingCombination }, +static const value_string nr_rrc_T_maxNumberActiveTCI_PerCC_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 3, "n8" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberActiveTCI_PerCC(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_pusch_TransCoherence_vals[] = { + { 0, "nonCoherent" }, + { 1, "partialNonCoherent" }, + { 2, "fullCoherent" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pusch_TransCoherence(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_beamCorrespondence_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_beamCorrespondence(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_periodicBeamReport_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_periodicBeamReport(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_aperiodicBeamReport_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_aperiodicBeamReport(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_sp_BeamReportPUCCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sp_BeamReportPUCCH(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_sp_BeamReportPUSCH_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sp_BeamReportPUSCH(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_maxNumberSSB_CSI_RS_ResourceOneTx_vals[] = { + { 0, "n8" }, + { 1, "n16" }, + { 2, "n32" }, + { 3, "n64" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberSSB_CSI_RS_ResourceOneTx(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_maxNumberSSB_CSI_RS_ResourceTwoTx_vals[] = { + { 0, "n0" }, + { 1, "n4" }, + { 2, "n8" }, + { 3, "n16" }, + { 4, "n32" }, + { 5, "n64" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberSSB_CSI_RS_ResourceTwoTx(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_supportedCSI_RS_Density_vals[] = { + { 0, "one" }, + { 1, "three" }, + { 2, "oneAndThree" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_supportedCSI_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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t BeamManagementSSB_CSI_RS_sequence[] = { + { &hf_nr_rrc_maxNumberSSB_CSI_RS_ResourceOneTx, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberSSB_CSI_RS_ResourceOneTx }, + { &hf_nr_rrc_maxNumberSSB_CSI_RS_ResourceTwoTx, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberSSB_CSI_RS_ResourceTwoTx }, + { &hf_nr_rrc_supportedCSI_RS_Density, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_supportedCSI_RS_Density }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_PhyLayerParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_BeamManagementSSB_CSI_RS(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_PhyLayerParameters, PhyLayerParameters_sequence); + ett_nr_rrc_BeamManagementSSB_CSI_RS, BeamManagementSSB_CSI_RS_sequence); return offset; } @@ -12460,8 +24079,721 @@ dissect_nr_rrc_PhyLayerParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int -dissect_nr_rrc_FreqBandIndicatorNR(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); +dissect_nr_rrc_INTEGER_2_8(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, 8U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_scs_15kHz_04_vals[] = { + { 0, "n4" }, + { 1, "n7" }, + { 2, "n14" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_15kHz_04(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_scs_30kHz_04_vals[] = { + { 0, "n4" }, + { 1, "n7" }, + { 2, "n14" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_30kHz_04(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_scs_60kHz_07_vals[] = { + { 0, "n4" }, + { 1, "n7" }, + { 2, "n14" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_60kHz_07(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_scs_120kHz_04_vals[] = { + { 0, "n4" }, + { 1, "n7" }, + { 2, "n14" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_120kHz_04(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_scs_240kHz_vals[] = { + { 0, "n4" }, + { 1, "n7" }, + { 2, "n14" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_240kHz(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 T_maxNumberRxTxBeamSwitchDL_sequence[] = { + { &hf_nr_rrc_scs_15kHz_04 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_15kHz_04 }, + { &hf_nr_rrc_scs_30kHz_04 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_30kHz_04 }, + { &hf_nr_rrc_scs_60kHz_07 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_07 }, + { &hf_nr_rrc_scs_120kHz_04, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_120kHz_04 }, + { &hf_nr_rrc_scs_240kHz , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_240kHz }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_maxNumberRxTxBeamSwitchDL(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_maxNumberRxTxBeamSwitchDL, T_maxNumberRxTxBeamSwitchDL_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_maxNumberNonGroupBeamReporting_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberNonGroupBeamReporting(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_groupBeamReporting_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_groupBeamReporting(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_maxNumberSRS_ResourcePerSet_vals[] = { + { 0, "n8" }, + { 1, "n16" }, + { 2, "n32" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberSRS_ResourcePerSet(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 T_uplinkBeamManagement_sequence[] = { + { &hf_nr_rrc_maxNumberSRS_ResourcePerSet, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberSRS_ResourcePerSet }, + { &hf_nr_rrc_maxNumberSRS_ResourceSet, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_8 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_uplinkBeamManagement(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_uplinkBeamManagement, T_uplinkBeamManagement_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_256(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, 256U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_lowLatencyCSI_Feedback_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_lowLatencyCSI_Feedback_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 MIMO_ParametersPerBand_sequence[] = { + { &hf_nr_rrc_timeDurationForQCL_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_timeDurationForQCL_01 }, + { &hf_nr_rrc_maxNumberMIMO_LayersPDSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_LayersDL }, + { &hf_nr_rrc_maxNumberMIMO_LayersCB_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_LayersUL }, + { &hf_nr_rrc_maxNumberMIMO_LayersNonCB_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_LayersUL }, + { &hf_nr_rrc_maxNumberConfiguredTCIstates, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberConfiguredTCIstates }, + { &hf_nr_rrc_maxNumberActiveTCI_PerCC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberActiveTCI_PerCC }, + { &hf_nr_rrc_pusch_TransCoherence, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_TransCoherence }, + { &hf_nr_rrc_beamCorrespondence, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_beamCorrespondence }, + { &hf_nr_rrc_periodicBeamReport, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_periodicBeamReport }, + { &hf_nr_rrc_aperiodicBeamReport, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_aperiodicBeamReport }, + { &hf_nr_rrc_sp_BeamReportPUCCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sp_BeamReportPUCCH }, + { &hf_nr_rrc_sp_BeamReportPUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sp_BeamReportPUSCH }, + { &hf_nr_rrc_beamManagementSSB_CSI_RS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BeamManagementSSB_CSI_RS }, + { &hf_nr_rrc_maxNumberRxBeam, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_8 }, + { &hf_nr_rrc_maxNumberRxTxBeamSwitchDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberRxTxBeamSwitchDL }, + { &hf_nr_rrc_maxNumberNonGroupBeamReporting, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberNonGroupBeamReporting }, + { &hf_nr_rrc_groupBeamReporting, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_groupBeamReporting }, + { &hf_nr_rrc_uplinkBeamManagement, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_uplinkBeamManagement }, + { &hf_nr_rrc_maxNumberCSI_RS_BFR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_64 }, + { &hf_nr_rrc_maxNumberSSB_BFR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_64 }, + { &hf_nr_rrc_maxNumberCSI_RS_SSB_BFR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_256 }, + { &hf_nr_rrc_twoPortsPTRS , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { &hf_nr_rrc_supportedSRS_Resources, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SRS_Resources }, + { &hf_nr_rrc_srs_TxSwitch , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SRS_TxSwitch }, + { &hf_nr_rrc_maxNumberSimultaneousSRS_PerCC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_4 }, + { &hf_nr_rrc_lowLatencyCSI_Feedback_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_lowLatencyCSI_Feedback_01 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MIMO_ParametersPerBand(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_MIMO_ParametersPerBand, MIMO_ParametersPerBand_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_extendedCP_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_extendedCP(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_phaseCoherenceUL_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_phaseCoherenceUL(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_scellWithoutSSB_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scellWithoutSSB_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_csi_RS_MeasSCellWithoutSSB_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_RS_MeasSCellWithoutSSB_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_srs_AssocCSI_RS_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_srs_AssocCSI_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_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_type1_3_CSS_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_type1_3_CSS_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_multipleTCI_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_multipleTCI(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_pdcchMonitoringAnyOccasions_01_vals[] = { + { 0, "withoutDCI-gap" }, + { 1, "withDCI-gap" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdcchMonitoringAnyOccasions_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_ue_SpecificUL_DL_Assignment_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ue_SpecificUL_DL_Assignment_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_scs_15kHz_02_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_15kHz_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 value_string nr_rrc_T_scs_30kHz_02_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_30kHz_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 value_string nr_rrc_T_scs_60kHz_04_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_60kHz_04(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_scs_120kHz_02_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_120kHz_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_pdsch_DifferentTB_PerSlot_01_sequence[] = { + { &hf_nr_rrc_scs_15kHz_02 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_15kHz_02 }, + { &hf_nr_rrc_scs_30kHz_02 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_30kHz_02 }, + { &hf_nr_rrc_scs_60kHz_04 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_04 }, + { &hf_nr_rrc_scs_120kHz_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_120kHz_02 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_pdsch_DifferentTB_PerSlot_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_pdsch_DifferentTB_PerSlot_01, T_pdsch_DifferentTB_PerSlot_01_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_scs_15kHz_03_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_15kHz_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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_scs_30kHz_03_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_30kHz_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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_scs_60kHz_05_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_60kHz_05(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_scs_120kHz_03_vals[] = { + { 0, "upto2" }, + { 1, "upto7" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_scs_120kHz_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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_pusch_DifferentTB_PerSlot_01_sequence[] = { + { &hf_nr_rrc_scs_15kHz_03 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_15kHz_03 }, + { &hf_nr_rrc_scs_30kHz_03 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_30kHz_03 }, + { &hf_nr_rrc_scs_60kHz_05 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_05 }, + { &hf_nr_rrc_scs_120kHz_03, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_120kHz_03 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_pusch_DifferentTB_PerSlot_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_pusch_DifferentTB_PerSlot_01, T_pusch_DifferentTB_PerSlot_01_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_bwp_SameNumerology_vals[] = { + { 0, "upto2" }, + { 1, "upto4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_bwp_SameNumerology(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_bwp_DiffNumerology_vals[] = { + { 0, "upto4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_bwp_DiffNumerology(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_twoPUCCH_Group_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_twoPUCCH_Group_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_diffNumerologyAcrossPUCCH_Group_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_diffNumerologyAcrossPUCCH_Group_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_diffNumerologyWithinPUCCH_Group_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_diffNumerologyWithinPUCCH_Group_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_crossCarrierScheduling_02_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_crossCarrierScheduling_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_supportedNumberTAG_01_vals[] = { + { 0, "n2" }, + { 1, "n3" }, + { 2, "n4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_supportedNumberTAG_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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_simultaneousTxSUL_NonSUL_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_simultaneousTxSUL_NonSUL_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_searchSpaceSharingCA_DL_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_searchSpaceSharingCA_DL_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_searchSpaceSharingCA_UL_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_searchSpaceSharingCA_UL_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_pdsch_256QAM_FR2_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdsch_256QAM_FR2(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_pusch_256QAM_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pusch_256QAM(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; } @@ -12469,8 +24801,32 @@ dissect_nr_rrc_FreqBandIndicatorNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static const per_sequence_t BandNR_sequence[] = { { &hf_nr_rrc_bandNR , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorNR }, - { &hf_nr_rrc_supportedMIMO_CapabilityDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_Capability }, - { &hf_nr_rrc_supportedMIMO_CapabilityUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_Capability }, + { &hf_nr_rrc_modifiedMPR_Behaviour, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { &hf_nr_rrc_maxChannelBW_PerCC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxChannelBW_PerCC }, + { &hf_nr_rrc_mimo_ParametersPerBand, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_ParametersPerBand }, + { &hf_nr_rrc_extendedCP , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_extendedCP }, + { &hf_nr_rrc_phaseCoherenceUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_phaseCoherenceUL }, + { &hf_nr_rrc_scellWithoutSSB_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scellWithoutSSB_01 }, + { &hf_nr_rrc_csi_RS_MeasSCellWithoutSSB_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RS_MeasSCellWithoutSSB_01 }, + { &hf_nr_rrc_srs_AssocCSI_RS_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_srs_AssocCSI_RS_01 }, + { &hf_nr_rrc_type1_3_CSS_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_type1_3_CSS_01 }, + { &hf_nr_rrc_multipleTCI , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleTCI }, + { &hf_nr_rrc_pdcchMonitoringAnyOccasions_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcchMonitoringAnyOccasions_01 }, + { &hf_nr_rrc_ue_SpecificUL_DL_Assignment_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ue_SpecificUL_DL_Assignment_01 }, + { &hf_nr_rrc_pdsch_DifferentTB_PerSlot_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_DifferentTB_PerSlot_01 }, + { &hf_nr_rrc_pusch_DifferentTB_PerSlot_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_DifferentTB_PerSlot_01 }, + { &hf_nr_rrc_bwp_SameNumerology, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_SameNumerology }, + { &hf_nr_rrc_bwp_DiffNumerology, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_DiffNumerology }, + { &hf_nr_rrc_twoPUCCH_Group_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPUCCH_Group_01 }, + { &hf_nr_rrc_diffNumerologyAcrossPUCCH_Group_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_diffNumerologyAcrossPUCCH_Group_01 }, + { &hf_nr_rrc_diffNumerologyWithinPUCCH_Group_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_diffNumerologyWithinPUCCH_Group_01 }, + { &hf_nr_rrc_crossCarrierScheduling_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_crossCarrierScheduling_02 }, + { &hf_nr_rrc_supportedNumberTAG_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_supportedNumberTAG_01 }, + { &hf_nr_rrc_simultaneousTxSUL_NonSUL_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_simultaneousTxSUL_NonSUL_01 }, + { &hf_nr_rrc_searchSpaceSharingCA_DL_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_searchSpaceSharingCA_DL_01 }, + { &hf_nr_rrc_searchSpaceSharingCA_UL_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_searchSpaceSharingCA_UL_01 }, + { &hf_nr_rrc_pdsch_256QAM_FR2, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_256QAM_FR2 }, + { &hf_nr_rrc_pusch_256QAM , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_256QAM }, { NULL, 0, 0, NULL } }; @@ -12497,14 +24853,30 @@ dissect_nr_rrc_SupportedBandListNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const value_string nr_rrc_T_intraBandAsyncFDD_vals[] = { +static const per_sequence_t RF_Parameters_sequence[] = { + { &hf_nr_rrc_supportedBandListNR, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SupportedBandListNR }, + { &hf_nr_rrc_supportedBandCombination, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationList }, + { &hf_nr_rrc_bandCombinationParametersUL_List, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationParametersUL_List }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RF_Parameters(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_RF_Parameters, RF_Parameters_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_intraAndInterF_MeasAndReport_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_intraBandAsyncFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_intraAndInterF_MeasAndReport(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); @@ -12512,88 +24884,227 @@ dissect_nr_rrc_T_intraBandAsyncFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const per_sequence_t RF_Parameters_sequence[] = { - { &hf_nr_rrc_supportedBandListNR, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SupportedBandListNR }, - { &hf_nr_rrc_supportedBandCombination, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationList }, - { &hf_nr_rrc_intraBandAsyncFDD, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_intraBandAsyncFDD }, +static const value_string nr_rrc_T_eventA_MeasAndReport_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_eventA_MeasAndReport(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 MeasParametersXDD_Diff_sequence[] = { + { &hf_nr_rrc_intraAndInterF_MeasAndReport, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_intraAndInterF_MeasAndReport }, + { &hf_nr_rrc_eventA_MeasAndReport, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_eventA_MeasAndReport }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_RF_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MeasParametersXDD_Diff(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_RF_Parameters, RF_Parameters_sequence); + ett_nr_rrc_MeasParametersXDD_Diff, MeasParametersXDD_Diff_sequence); return offset; } -static const per_sequence_t T_nonCriticalExtension_02_sequence[] = { +static const value_string nr_rrc_T_ss_SINR_Meas_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ss_SINR_Meas(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_csi_RSRP_AndRSRQ_MeasWithSSB_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithSSB(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_csi_RSRP_AndRSRQ_MeasWithoutSSB_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithoutSSB(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_csi_SINR_Meas_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_SINR_Meas(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_csi_RS_RLM_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_csi_RS_RLM(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 MeasParametersFRX_Diff_sequence[] = { + { &hf_nr_rrc_ss_SINR_Meas , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ss_SINR_Meas }, + { &hf_nr_rrc_csi_RSRP_AndRSRQ_MeasWithSSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithSSB }, + { &hf_nr_rrc_csi_RSRP_AndRSRQ_MeasWithoutSSB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithoutSSB }, + { &hf_nr_rrc_csi_SINR_Meas, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_SINR_Meas }, + { &hf_nr_rrc_csi_RS_RLM , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RS_RLM }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MeasParametersFRX_Diff(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_02, T_nonCriticalExtension_02_sequence); + ett_nr_rrc_MeasParametersFRX_Diff, MeasParametersFRX_Diff_sequence); return offset; } -static const per_sequence_t UE_NR_Capability_sequence[] = { - { &hf_nr_rrc_pdcp_Parameters, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PDCP_Parameters }, - { &hf_nr_rrc_rlc_Parameters, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RLC_Parameters }, - { &hf_nr_rrc_mac_Parameters, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MAC_Parameters }, - { &hf_nr_rrc_phyLayerParameters, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhyLayerParameters }, - { &hf_nr_rrc_rf_Parameters, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_Parameters }, - { &hf_nr_rrc_nonCriticalExtension_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_02 }, +static const per_sequence_t MeasParameters_sequence[] = { + { &hf_nr_rrc_measParametersXDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasParametersXDD_Diff }, + { &hf_nr_rrc_measParametersFRX_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasParametersFRX_Diff }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_UE_NR_Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MeasParameters(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_UE_NR_Capability, UE_NR_Capability_sequence); + ett_nr_rrc_MeasParameters, MeasParameters_sequence); return offset; } +static const per_sequence_t UE_NR_CapabilityAddXDD_Mode_sequence[] = { + { &hf_nr_rrc_phy_ParametersXDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersXDD_Diff }, + { &hf_nr_rrc_mac_ParametersXDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MAC_ParametersXDD_Diff }, + { &hf_nr_rrc_measParametersXDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasParametersXDD_Diff }, + { NULL, 0, 0, NULL } +}; static int -dissect_nr_rrc_UECapabilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - tvbuff_t *parameter_tvb; - proto_tree *subtree; +dissect_nr_rrc_UE_NR_CapabilityAddXDD_Mode(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_UE_NR_CapabilityAddXDD_Mode, UE_NR_CapabilityAddXDD_Mode_sequence); - offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); + return offset; +} - if (parameter_tvb) { - subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_UECapabilityInformation); - dissect_lte_rrc_UECapabilityInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); - } +static const per_sequence_t UE_NR_CapabilityAddFRX_Mode_sequence[] = { + { &hf_nr_rrc_phy_ParametersFRX_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersFRX_Diff }, + { &hf_nr_rrc_measParametersFRX_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasParametersFRX_Diff }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UE_NR_CapabilityAddFRX_Mode(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_UE_NR_CapabilityAddFRX_Mode, UE_NR_CapabilityAddFRX_Mode_sequence); return offset; } +static const per_sequence_t T_nonCriticalExtension_06_sequence[] = { + { NULL, 0, 0, NULL } +}; static int -dissect_nr_rrc_RadioBearerConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_nr_rrc_RadioBearerConfig(tvb, offset, actx, tree, hf_index); +dissect_nr_rrc_T_nonCriticalExtension_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_nonCriticalExtension_06, T_nonCriticalExtension_06_sequence); + + return offset; +} + + +static const per_sequence_t UE_NR_Capability_sequence[] = { + { &hf_nr_rrc_pdcp_Parameters, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PDCP_Parameters }, + { &hf_nr_rrc_rlc_Parameters, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RLC_Parameters }, + { &hf_nr_rrc_mac_Parameters, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MAC_Parameters }, + { &hf_nr_rrc_phy_Parameters, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Phy_Parameters }, + { &hf_nr_rrc_rf_Parameters, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_Parameters }, + { &hf_nr_rrc_measParameters, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasParameters }, + { &hf_nr_rrc_fdd_Add_UE_NR_Capabilities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_NR_CapabilityAddXDD_Mode }, + { &hf_nr_rrc_tdd_Add_UE_NR_Capabilities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_NR_CapabilityAddXDD_Mode }, + { &hf_nr_rrc_fr1_Add_UE_NR_Capabilities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_NR_CapabilityAddFRX_Mode }, + { &hf_nr_rrc_fr2_Add_UE_NR_Capabilities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_NR_CapabilityAddFRX_Mode }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_06, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_06 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UE_NR_Capability(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_UE_NR_Capability, UE_NR_Capability_sequence); return offset; } /*--- PDUs ---*/ -int dissect_nr_rrc_SCG_ConfigInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { +int dissect_nr_rrc_CG_ConfigInfo_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_SCG_ConfigInfo(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_SCG_ConfigInfo_PDU); + offset = dissect_nr_rrc_CG_ConfigInfo(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_CG_ConfigInfo_PDU); + offset += 7; offset >>= 3; + return offset; +} +int dissect_nr_rrc_ConfigRestrictInfoSCG_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_ConfigRestrictInfoSCG(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_ConfigRestrictInfoSCG_PDU); offset += 7; offset >>= 3; return offset; } @@ -12645,6 +25156,14 @@ int dissect_nr_rrc_RRCReconfigurationComplete_PDU(tvbuff_t *tvb _U_, packet_info offset += 7; offset >>= 3; return offset; } +int dissect_nr_rrc_SIB1_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_SIB1(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_SIB1_PDU); + offset += 7; offset >>= 3; + return offset; +} int dissect_nr_rrc_CellGroupConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12669,6 +25188,14 @@ int dissect_nr_rrc_RadioBearerConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _ offset += 7; offset >>= 3; return offset; } +int dissect_nr_rrc_FreqBandList_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_FreqBandList(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_FreqBandList_PDU); + offset += 7; offset >>= 3; + return offset; +} int dissect_nr_rrc_UE_MRDC_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -12685,26 +25212,34 @@ int dissect_nr_rrc_UE_NR_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U offset += 7; offset >>= 3; return offset; } -static int dissect_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { +static int dissect_UE_CapabilityRAT_ContainerList_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_UE_CapabilityRAT_ContainerList(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_UE_CapabilityRAT_ContainerList_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_CandidateCellInfoList_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_UECapabilityInformation(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_UECapabilityInformation_PDU); + offset = dissect_nr_rrc_CandidateCellInfoList(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_CandidateCellInfoList_PDU); offset += 7; offset >>= 3; return offset; } -static int dissect_RadioBearerConfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { +static int dissect_MeasResultSCG_Failure_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_RadioBearerConfiguration(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_RadioBearerConfiguration_PDU); + offset = dissect_nr_rrc_MeasResultSCG_Failure(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_MeasResultSCG_Failure_PDU); offset += 7; offset >>= 3; return offset; } /*--- End of included file: packet-nr-rrc-fn.c ---*/ -#line 74 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 72 "./asn1/nr-rrc/packet-nr-rrc-template.c" void proto_register_nr_rrc(void) { @@ -12714,8 +25249,12 @@ void proto_register_nr_rrc(void) { /*--- Included file: packet-nr-rrc-hfarr.c ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-hfarr.c" - { &hf_nr_rrc_nr_rrc_SCG_ConfigInfo_PDU, - { "SCG-ConfigInfo", "nr-rrc.SCG_ConfigInfo_element", + { &hf_nr_rrc_nr_rrc_CG_ConfigInfo_PDU, + { "CG-ConfigInfo", "nr-rrc.CG_ConfigInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nr_rrc_ConfigRestrictInfoSCG_PDU, + { "ConfigRestrictInfoSCG", "nr-rrc.ConfigRestrictInfoSCG_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_BCCH_BCH_Message_PDU, @@ -12742,6 +25281,10 @@ void proto_register_nr_rrc(void) { { "RRCReconfigurationComplete", "nr-rrc.RRCReconfigurationComplete_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_nr_rrc_SIB1_PDU, + { "SIB1", "nr-rrc.SIB1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_nr_rrc_CellGroupConfig_PDU, { "CellGroupConfig", "nr-rrc.CellGroupConfig_element", FT_NONE, BASE_NONE, NULL, 0, @@ -12754,6 +25297,10 @@ void proto_register_nr_rrc(void) { { "RadioBearerConfig", "nr-rrc.RadioBearerConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_nr_rrc_FreqBandList_PDU, + { "FreqBandList", "nr-rrc.FreqBandList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_nr_rrc_UE_MRDC_Capability_PDU, { "UE-MRDC-Capability", "nr-rrc.UE_MRDC_Capability_element", FT_NONE, BASE_NONE, NULL, 0, @@ -12762,14 +25309,22 @@ void proto_register_nr_rrc(void) { { "UE-NR-Capability", "nr-rrc.UE_NR_Capability_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_UECapabilityInformation_PDU, - { "UECapabilityInformation", "nr-rrc.UECapabilityInformation", - FT_BYTES, BASE_NONE, NULL, 0, + { &hf_nr_rrc_UE_CapabilityRAT_ContainerList_PDU, + { "UE-CapabilityRAT-ContainerList", "nr-rrc.UE_CapabilityRAT_ContainerList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_CandidateCellInfoList_PDU, + { "CandidateCellInfoList", "nr-rrc.CandidateCellInfoList", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_RadioBearerConfiguration_PDU, - { "RadioBearerConfiguration", "nr-rrc.RadioBearerConfiguration_element", + { &hf_nr_rrc_MeasResultSCG_Failure_PDU, + { "MeasResultSCG-Failure", "nr-rrc.MeasResultSCG_Failure_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_measuredFrequency, + { "measuredFrequency", "nr-rrc.measuredFrequency", + FT_UINT32, BASE_DEC, NULL, 0, + "ARFCN_ValueNR", HFILL }}, { &hf_nr_rrc_criticalExtensions, { "criticalExtensions", "nr-rrc.criticalExtensions", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_vals), 0, @@ -12778,10 +25333,10 @@ void proto_register_nr_rrc(void) { { "c1", "nr-rrc.c1", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_scg_ConfigInfo_r15, - { "scg-ConfigInfo-r15", "nr-rrc.scg_ConfigInfo_r15_element", + { &hf_nr_rrc_cg_ConfigInfo, + { "cg-ConfigInfo", "nr-rrc.cg_ConfigInfo_element", FT_NONE, BASE_NONE, NULL, 0, - "SCG_ConfigInfo_r15_IEs", HFILL }}, + "CG_ConfigInfo_IEs", HFILL }}, { &hf_nr_rrc_spare3, { "spare3", "nr-rrc.spare3_element", FT_NONE, BASE_NONE, NULL, 0, @@ -12798,18 +25353,34 @@ void proto_register_nr_rrc(void) { { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_eutra_CapabilityInfo, - { "eutra-CapabilityInfo", "nr-rrc.eutra_CapabilityInfo", + { &hf_nr_rrc_ue_CapabilityInfo, + { "ue-CapabilityInfo", "nr-rrc.ue_CapabilityInfo", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_candidateCellInfoListMN, + { "candidateCellInfoListMN", "nr-rrc.candidateCellInfoListMN", + FT_UINT32, BASE_DEC, NULL, 0, + "CandidateCellInfoList", HFILL }}, + { &hf_nr_rrc_candidateCellInfoListSN, + { "candidateCellInfoListSN", "nr-rrc.candidateCellInfoListSN", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_candidateCellInfoList, - { "candidateCellInfoList", "nr-rrc.candidateCellInfoList", + { &hf_nr_rrc_measResultCellListSFTD, + { "measResultCellListSFTD", "nr-rrc.measResultCellListSFTD", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_measResultSSTD, - { "measResultSSTD", "nr-rrc.measResultSSTD_element", + { &hf_nr_rrc_scgFailureInfo, + { "scgFailureInfo", "nr-rrc.scgFailureInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_failureType, + { "failureType", "nr-rrc.failureType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_failureType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_measResultSCG, + { "measResultSCG", "nr-rrc.measResultSCG", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_configRestrictInfo, { "configRestrictInfo", "nr-rrc.configRestrictInfo_element", FT_NONE, BASE_NONE, NULL, 0, @@ -12818,14 +25389,18 @@ void proto_register_nr_rrc(void) { { "drx-InfoMCG", "nr-rrc.drx_InfoMCG_element", FT_NONE, BASE_NONE, NULL, 0, "DRX_Info", HFILL }}, + { &hf_nr_rrc_measConfigMN, + { "measConfigMN", "nr-rrc.measConfigMN_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_sourceConfigSCG, { "sourceConfigSCG", "nr-rrc.sourceConfigSCG", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_p_maxFR1, - { "p-maxFR1", "nr-rrc.p_maxFR1", - FT_INT32, BASE_DEC, NULL, 0, - "P_Max", HFILL }}, + { &hf_nr_rrc_scg_RB_Config, + { "scg-RB-Config", "nr-rrc.scg_RB_Config", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_mcg_RB_Config, { "mcg-RB-Config", "nr-rrc.mcg_RB_Config", FT_BYTES, BASE_NONE, NULL, 0, @@ -12834,30 +25409,162 @@ void proto_register_nr_rrc(void) { { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_restrictedBandCombinationNR, - { "restrictedBandCombinationNR", "nr-rrc.restrictedBandCombinationNR", - FT_INT32, BASE_DEC, NULL, 0, - "INTEGER", HFILL }}, - { &hf_nr_rrc_restrictedBasebandCombinationNR_NR, - { "restrictedBasebandCombinationNR-NR", "nr-rrc.restrictedBasebandCombinationNR_NR", + { &hf_nr_rrc_allowedBC_ListMRDC, + { "allowedBC-ListMRDC", "nr-rrc.allowedBC_ListMRDC", FT_UINT32, BASE_DEC, NULL, 0, + "BandCombinationIndexList", HFILL }}, + { &hf_nr_rrc_allowedBPC_ListMRDC, + { "allowedBPC-ListMRDC", "nr-rrc.allowedBPC_ListMRDC", + FT_UINT32, BASE_DEC, NULL, 0, + "BPC_IndexList", HFILL }}, + { &hf_nr_rrc_powerCoordination_FR1, + { "powerCoordination-FR1", "nr-rrc.powerCoordination_FR1_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_restrictedBasebandCombinationNR_NR_item, - { "restrictedBasebandCombinationNR-NR item", "nr-rrc.restrictedBasebandCombinationNR_NR_item", + { &hf_nr_rrc_p_maxNR, + { "p-maxNR", "nr-rrc.p_maxNR", FT_INT32, BASE_DEC, NULL, 0, - "INTEGER", HFILL }}, + "P_Max", HFILL }}, + { &hf_nr_rrc_p_maxEUTRA, + { "p-maxEUTRA", "nr-rrc.p_maxEUTRA", + FT_INT32, BASE_DEC, NULL, 0, + "P_Max", HFILL }}, + { &hf_nr_rrc_servCellIndexRangeSCG, + { "servCellIndexRangeSCG", "nr-rrc.servCellIndexRangeSCG_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_lowBound, + { "lowBound", "nr-rrc.lowBound", + FT_UINT32, BASE_DEC, NULL, 0, + "ServCellIndex", HFILL }}, + { &hf_nr_rrc_upBound, + { "upBound", "nr-rrc.upBound", + FT_UINT32, BASE_DEC, NULL, 0, + "ServCellIndex", HFILL }}, { &hf_nr_rrc_maxMeasFreqsSCG_NR, { "maxMeasFreqsSCG-NR", "nr-rrc.maxMeasFreqsSCG_NR", - FT_INT32, BASE_DEC, NULL, 0, - "INTEGER", HFILL }}, - { &hf_nr_rrc_cycle, - { "cycle", "nr-rrc.cycle", - FT_INT32, BASE_DEC, NULL, 0, - "INTEGER", HFILL }}, - { &hf_nr_rrc_offset, - { "offset", "nr-rrc.offset", - FT_INT32, BASE_DEC, NULL, 0, - "INTEGER", HFILL }}, + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxMeasFreqsMN", HFILL }}, + { &hf_nr_rrc_BandCombinationIndexList_item, + { "BandCombinationIndex", "nr-rrc.BandCombinationIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_BPC_IndexList_item, + { "BPC-Index", "nr-rrc.BPC_Index", + FT_UINT32, BASE_DEC, NULL, 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|BASE_EXT_STRING, 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_measuredFrequenciesMN, + { "measuredFrequenciesMN", "nr-rrc.measuredFrequenciesMN", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo", HFILL }}, + { &hf_nr_rrc_measuredFrequenciesMN_item, + { "NR-FreqInfo", "nr-rrc.NR_FreqInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measGapConfigFR1, + { "measGapConfigFR1", "nr-rrc.measGapConfigFR1_element", + FT_NONE, BASE_NONE, NULL, 0, + "GapConfig", HFILL }}, + { &hf_nr_rrc_gapPurpose, + { "gapPurpose", "nr-rrc.gapPurpose", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gapPurpose_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_CandidateCellInfoList_item, { "CandidateCellInfo", "nr-rrc.CandidateCellInfo_element", FT_NONE, BASE_NONE, NULL, 0, @@ -12872,26 +25579,22 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_dl_CarrierFreq, { "dl-CarrierFreq", "nr-rrc.dl_CarrierFreq", - FT_INT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_DEC, NULL, 0, "ARFCN_ValueNR", HFILL }}, { &hf_nr_rrc_measResultCell, { "measResultCell", "nr-rrc.measResultCell_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_rsrpResultCell, - { "rsrpResultCell", "nr-rrc.rsrpResultCell", + "MeasQuantityResults", HFILL }}, + { &hf_nr_rrc_candidateRS_IndexListSSB, + { "candidateRS-IndexListSSB", "nr-rrc.candidateRS_IndexListSSB", FT_UINT32, BASE_DEC, NULL, 0, - "RSRP_Range", HFILL }}, - { &hf_nr_rrc_rsrqResultCell, - { "rsrqResultCell", "nr-rrc.rsrqResultCell", - FT_UINT32, BASE_DEC, NULL, 0, - "RSRQ_Range", HFILL }}, - { &hf_nr_rrc_candidateRS_IndexList, - { "candidateRS-IndexList", "nr-rrc.candidateRS_IndexList", + "CandidateRS_IndexInfoListSSB", HFILL }}, + { &hf_nr_rrc_candidateRS_IndexListCSI_RS, + { "candidateRS-IndexListCSI-RS", "nr-rrc.candidateRS_IndexListCSI_RS", FT_UINT32, BASE_DEC, NULL, 0, - "CandidateRS_IndexInfoList", HFILL }}, - { &hf_nr_rrc_CandidateRS_IndexInfoList_item, - { "CandidateRS-IndexInfo", "nr-rrc.CandidateRS_IndexInfo_element", + "CandidateRS_IndexInfoListCSI_RS", HFILL }}, + { &hf_nr_rrc_CandidateRS_IndexInfoListSSB_item, + { "CandidateRS-IndexInfoSSB", "nr-rrc.CandidateRS_IndexInfoSSB_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_ssb_Index, @@ -12901,7 +25604,19 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_measResultSSB, { "measResultSSB", "nr-rrc.measResultSSB_element", FT_NONE, BASE_NONE, NULL, 0, + "MeasQuantityResults", HFILL }}, + { &hf_nr_rrc_CandidateRS_IndexInfoListCSI_RS_item, + { "CandidateRS-IndexInfoCSI-RS", "nr-rrc.CandidateRS_IndexInfoCSI_RS_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_csi_RS_Index, + { "csi-RS-Index", "nr-rrc.csi_RS_Index", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measResultCSI_RS, + { "measResultCSI-RS", "nr-rrc.measResultCSI_RS_element", + FT_NONE, BASE_NONE, NULL, 0, + "MeasQuantityResults", HFILL }}, { &hf_nr_rrc_message, { "message", "nr-rrc.message", FT_UINT32, BASE_DEC, VALS(nr_rrc_BCCH_BCH_MessageType_vals), 0, @@ -12998,32 +25713,24 @@ void proto_register_nr_rrc(void) { { "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 }}, + "BIT_STRING_SIZE_6", 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, VALS(nr_rrc_T_subCarrierSpacingCommon_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_SubcarrierOffset, + { "ssb-SubcarrierOffset", "nr-rrc.ssb_SubcarrierOffset", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_11", HFILL }}, + "INTEGER_0_15", 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", + { &hf_nr_rrc_pdcch_ConfigSIB1, + { "pdcch-ConfigSIB1", "nr-rrc.pdcch_ConfigSIB1", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_255", HFILL }}, { &hf_nr_rrc_cellBarred, @@ -13037,7 +25744,7 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_spare, { "spare", "nr-rrc.spare", FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_0", HFILL }}, + "BIT_STRING_SIZE_1", HFILL }}, { &hf_nr_rrc_criticalExtensions_01, { "criticalExtensions", "nr-rrc.criticalExtensions", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_01_vals), 0, @@ -13054,6 +25761,14 @@ void proto_register_nr_rrc(void) { { "measResults", "nr-rrc.measResults_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_01, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_01", HFILL }}, { &hf_nr_rrc_rrc_TransactionIdentifier, { "rrc-TransactionIdentifier", "nr-rrc.rrc_TransactionIdentifier", FT_UINT32, BASE_DEC, NULL, 0, @@ -13074,38 +25789,18 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_secondaryCellGroup, + { "secondaryCellGroup", "nr-rrc.secondaryCellGroup", + FT_BYTES, BASE_NONE, 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_01, + { &hf_nr_rrc_nonCriticalExtension_02, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_01", HFILL }}, + "T_nonCriticalExtension_02", HFILL }}, { &hf_nr_rrc_criticalExtensions_03, { "criticalExtensions", "nr-rrc.criticalExtensions", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_03_vals), 0, @@ -13118,30 +25813,266 @@ void proto_register_nr_rrc(void) { { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, "T_criticalExtensionsFuture_03", HFILL }}, - { &hf_nr_rrc_bandwidthPartId, - { "bandwidthPartId", "nr-rrc.bandwidthPartId", - FT_UINT32, BASE_DEC, NULL, 0, + { &hf_nr_rrc_nonCriticalExtension_03, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_03", HFILL }}, + { &hf_nr_rrc_frequencyOffsetSSB, + { "frequencyOffsetSSB", "nr-rrc.frequencyOffsetSSB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyOffsetSSB_vals), 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", + { &hf_nr_rrc_ssb_PositionsInBurst, + { "ssb-PositionsInBurst", "nr-rrc.ssb_PositionsInBurst_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_inOneGroup, + { "inOneGroup", "nr-rrc.inOneGroup", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_groupPresence, + { "groupPresence", "nr-rrc.groupPresence", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", 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_ss_PBCH_BlockPower, + { "ss-PBCH-BlockPower", "nr-rrc.ss_PBCH_BlockPower", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M60_50", HFILL }}, + { &hf_nr_rrc_uplinkConfigCommon, + { "uplinkConfigCommon", "nr-rrc.uplinkConfigCommon_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_tdd_UL_DL_Configuration, + { "tdd-UL-DL-Configuration", "nr-rrc.tdd_UL_DL_Configuration_element", + FT_NONE, BASE_NONE, NULL, 0, + "TDD_UL_DL_ConfigCommon", HFILL }}, + { &hf_nr_rrc_tdd_UL_DL_configurationCommon2, + { "tdd-UL-DL-configurationCommon2", "nr-rrc.tdd_UL_DL_configurationCommon2_element", + FT_NONE, BASE_NONE, NULL, 0, + "TDD_UL_DL_ConfigCommon", HFILL }}, + { &hf_nr_rrc_pdcch_ConfigCommon, + { "pdcch-ConfigCommon", "nr-rrc.pdcch_ConfigCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pucch_ConfigCommon, + { "pucch-ConfigCommon", "nr-rrc.pucch_ConfigCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_04, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_04", HFILL }}, + { &hf_nr_rrc_locationAndBandwidth, + { "locationAndBandwidth", "nr-rrc.locationAndBandwidth", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_maxNrofPhysicalResourceBlocks", HFILL }}, + "INTEGER_0_37949", HFILL }}, { &hf_nr_rrc_subcarrierSpacing, { "subcarrierSpacing", "nr-rrc.subcarrierSpacing", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subcarrierSpacing_vals), 0, + FT_UINT32, BASE_DEC, VALS(nr_rrc_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", + { &hf_nr_rrc_bwp_Id, + { "bwp-Id", "nr-rrc.bwp_Id", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_bwp_Common, + { "bwp-Common", "nr-rrc.bwp_Common_element", + FT_NONE, BASE_NONE, NULL, 0, + "BWP_UplinkCommon", HFILL }}, + { &hf_nr_rrc_bwp_Dedicated, + { "bwp-Dedicated", "nr-rrc.bwp_Dedicated_element", + FT_NONE, BASE_NONE, NULL, 0, + "BWP_UplinkDedicated", HFILL }}, + { &hf_nr_rrc_genericParameters, + { "genericParameters", "nr-rrc.genericParameters_element", + FT_NONE, BASE_NONE, NULL, 0, + "BWP", HFILL }}, + { &hf_nr_rrc_rach_ConfigCommon, + { "rach-ConfigCommon", "nr-rrc.rach_ConfigCommon", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rach_ConfigCommon_vals), 0, + NULL, 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, + "RACH_ConfigCommon", HFILL }}, + { &hf_nr_rrc_pusch_ConfigCommon, + { "pusch-ConfigCommon", "nr-rrc.pusch_ConfigCommon", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_ConfigCommon_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_01, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUSCH_ConfigCommon", HFILL }}, + { &hf_nr_rrc_pucch_ConfigCommon_01, + { "pucch-ConfigCommon", "nr-rrc.pucch_ConfigCommon", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pucch_ConfigCommon_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_02, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUCCH_ConfigCommon", HFILL }}, + { &hf_nr_rrc_pucch_Config, + { "pucch-Config", "nr-rrc.pucch_Config", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pucch_Config_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_03, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUCCH_Config", HFILL }}, + { &hf_nr_rrc_pusch_Config, + { "pusch-Config", "nr-rrc.pusch_Config", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_Config_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_04, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUSCH_Config", HFILL }}, + { &hf_nr_rrc_configuredGrantConfig, + { "configuredGrantConfig", "nr-rrc.configuredGrantConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_configuredGrantConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_05, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "ConfiguredGrantConfig", HFILL }}, + { &hf_nr_rrc_srs_Config, + { "srs-Config", "nr-rrc.srs_Config", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srs_Config_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_06, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "SRS_Config", HFILL }}, + { &hf_nr_rrc_beamFailureRecoveryConfig, + { "beamFailureRecoveryConfig", "nr-rrc.beamFailureRecoveryConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_beamFailureRecoveryConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_07, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "BeamFailureRecoveryConfig", HFILL }}, + { &hf_nr_rrc_bwp_Common_01, + { "bwp-Common", "nr-rrc.bwp_Common_element", + FT_NONE, BASE_NONE, NULL, 0, + "BWP_DownlinkCommon", HFILL }}, + { &hf_nr_rrc_bwp_Dedicated_01, + { "bwp-Dedicated", "nr-rrc.bwp_Dedicated_element", + FT_NONE, BASE_NONE, NULL, 0, + "BWP_DownlinkDedicated", HFILL }}, + { &hf_nr_rrc_pdcch_ConfigCommon_01, + { "pdcch-ConfigCommon", "nr-rrc.pdcch_ConfigCommon", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcch_ConfigCommon_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_08, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PDCCH_ConfigCommon", HFILL }}, + { &hf_nr_rrc_pdsch_ConfigCommon, + { "pdsch-ConfigCommon", "nr-rrc.pdsch_ConfigCommon", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_ConfigCommon_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_09, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PDSCH_ConfigCommon", HFILL }}, + { &hf_nr_rrc_pdcch_Config, + { "pdcch-Config", "nr-rrc.pdcch_Config", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcch_Config_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_10, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PDCCH_Config", HFILL }}, + { &hf_nr_rrc_pdsch_Config, + { "pdsch-Config", "nr-rrc.pdsch_Config", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_Config_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_11, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PDSCH_Config", HFILL }}, + { &hf_nr_rrc_sps_Config, + { "sps-Config", "nr-rrc.sps_Config", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sps_Config_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_12, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "SPS_Config", HFILL }}, + { &hf_nr_rrc_radioLinkMonitoringConfig, + { "radioLinkMonitoringConfig", "nr-rrc.radioLinkMonitoringConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_radioLinkMonitoringConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_13, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "RadioLinkMonitoringConfig", HFILL }}, + { &hf_nr_rrc_rootSequenceIndex_BFR, + { "rootSequenceIndex-BFR", "nr-rrc.rootSequenceIndex_BFR", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_137", HFILL }}, + { &hf_nr_rrc_rach_ConfigBFR, + { "rach-ConfigBFR", "nr-rrc.rach_ConfigBFR_element", + FT_NONE, BASE_NONE, NULL, 0, + "RACH_ConfigGeneric", HFILL }}, + { &hf_nr_rrc_candidateBeamThreshold, + { "candidateBeamThreshold", "nr-rrc.candidateBeamThreshold", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRP_Range", HFILL }}, + { &hf_nr_rrc_candidateBeamRSList, + { "candidateBeamRSList", "nr-rrc.candidateBeamRSList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR", HFILL }}, + { &hf_nr_rrc_candidateBeamRSList_item, + { "PRACH-ResourceDedicatedBFR", "nr-rrc.PRACH_ResourceDedicatedBFR", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PRACH_ResourceDedicatedBFR_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ra_ssb_OccasionMaskIndex, + { "ra-ssb-OccasionMaskIndex", "nr-rrc.ra_ssb_OccasionMaskIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_nr_rrc_recoveryControlResourceSetId, + { "recoveryControlResourceSetId", "nr-rrc.recoveryControlResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + "ControlResourceSetId", HFILL }}, + { &hf_nr_rrc_recoverySearchSpaceId, + { "recoverySearchSpaceId", "nr-rrc.recoverySearchSpaceId", + FT_UINT32, BASE_DEC, NULL, 0, + "SearchSpaceId", HFILL }}, + { &hf_nr_rrc_ssb, + { "ssb", "nr-rrc.ssb_element", + FT_NONE, BASE_NONE, NULL, 0, + "BFR_SSB_Resource", HFILL }}, + { &hf_nr_rrc_csi_RS, + { "csi-RS", "nr-rrc.csi_RS_element", + FT_NONE, BASE_NONE, NULL, 0, + "BFR_CSIRS_Resource", HFILL }}, + { &hf_nr_rrc_ssb_01, + { "ssb", "nr-rrc.ssb", + FT_UINT32, BASE_DEC, NULL, 0, + "SSB_Index", HFILL }}, + { &hf_nr_rrc_ra_PreambleIndex, + { "ra-PreambleIndex", "nr-rrc.ra_PreambleIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_nr_rrc_csi_RS_01, + { "csi-RS", "nr-rrc.csi_RS", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_3299", HFILL }}, + "NZP_CSI_RS_ResourceId", HFILL }}, { &hf_nr_rrc_cellGroupId, { "cellGroupId", "nr-rrc.cellGroupId", FT_UINT32, BASE_DEC, NULL, 0, @@ -13149,15 +26080,15 @@ void proto_register_nr_rrc(void) { { &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 }}, + "SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_Bearer_Config", HFILL }}, { &hf_nr_rrc_rlc_BearerToAddModList_item, - { "LCH-Config", "nr-rrc.LCH_Config_element", + { "RLC-Bearer-Config", "nr-rrc.RLC_Bearer_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 }}, + "SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentity", HFILL }}, { &hf_nr_rrc_rlc_BearerToReleaseList_item, { "LogicalChannelIdentity", "nr-rrc.LogicalChannelIdentity", FT_UINT32, BASE_DEC, NULL, 0, @@ -13166,14 +26097,10 @@ void proto_register_nr_rrc(void) { { "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", + { &hf_nr_rrc_physicalCellGroupConfig, + { "physicalCellGroupConfig", "nr-rrc.physicalCellGroupConfig_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, @@ -13181,10 +26108,18 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_sCellToAddModList, { "sCellToAddModList", "nr-rrc.sCellToAddModList", FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig", HFILL }}, + { &hf_nr_rrc_sCellToAddModList_item, + { "SCellConfig", "nr-rrc.SCellConfig_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_sCellToReleaseList, { "sCellToReleaseList", "nr-rrc.sCellToReleaseList", FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex", HFILL }}, + { &hf_nr_rrc_sCellToReleaseList_item, + { "SCellIndex", "nr-rrc.SCellIndex", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_logicalChannelIdentity, { "logicalChannelIdentity", "nr-rrc.logicalChannelIdentity", @@ -13192,8 +26127,16 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_servedRadioBearer, { "servedRadioBearer", "nr-rrc.servedRadioBearer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_servedRadioBearer_vals), 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_drb_Identity, + { "drb-Identity", "nr-rrc.drb_Identity", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_32", HFILL }}, + NULL, HFILL }}, { &hf_nr_rrc_reestablishRLC, { "reestablishRLC", "nr-rrc.reestablishRLC", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reestablishRLC_vals), 0, @@ -13206,42 +26149,82 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_harq_ACK_SpatialBundlingPUCCH, + { "harq-ACK-SpatialBundlingPUCCH", "nr-rrc.harq_ACK_SpatialBundlingPUCCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_harq_ACK_SpatialBundlingPUCCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_harq_ACK_SpatialBundlingPUSCH, + { "harq-ACK-SpatialBundlingPUSCH", "nr-rrc.harq_ACK_SpatialBundlingPUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_harq_ACK_SpatialBundlingPUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_p_NR, + { "p-NR", "nr-rrc.p_NR", + FT_INT32, BASE_DEC, NULL, 0, + "P_Max", HFILL }}, + { &hf_nr_rrc_pdsch_HARQ_ACK_Codebook, + { "pdsch-HARQ-ACK-Codebook", "nr-rrc.pdsch_HARQ_ACK_Codebook", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_HARQ_ACK_Codebook_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_tpc_SRS_RNTI, + { "tpc-SRS-RNTI", "nr-rrc.tpc_SRS_RNTI", + FT_UINT32, BASE_DEC, NULL, 0, + "RNTI_Value", HFILL }}, + { &hf_nr_rrc_tpc_PUCCH_RNTI, + { "tpc-PUCCH-RNTI", "nr-rrc.tpc_PUCCH_RNTI", + FT_UINT32, BASE_DEC, NULL, 0, + "RNTI_Value", HFILL }}, + { &hf_nr_rrc_tpc_PUSCH_RNTI, + { "tpc-PUSCH-RNTI", "nr-rrc.tpc_PUSCH_RNTI", + FT_UINT32, BASE_DEC, NULL, 0, + "RNTI_Value", HFILL }}, + { &hf_nr_rrc_servCellIndex, + { "servCellIndex", "nr-rrc.servCellIndex", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_reconfigurationWithSync, { "reconfigurationWithSync", "nr-rrc.reconfigurationWithSync_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_rlf_TimersAndConstants, + { "rlf-TimersAndConstants", "nr-rrc.rlf_TimersAndConstants", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rlf_TimersAndConstants_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_14, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "RLF_TimersAndConstants", HFILL }}, + { &hf_nr_rrc_rlmInSyncOutOfSyncThreshold, + { "rlmInSyncOutOfSyncThreshold", "nr-rrc.rlmInSyncOutOfSyncThreshold", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1", HFILL }}, + { &hf_nr_rrc_spCellConfigDedicated, + { "spCellConfigDedicated", "nr-rrc.spCellConfigDedicated_element", + FT_NONE, BASE_NONE, NULL, 0, + "ServingCellConfig", 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 }}, + FT_UINT32, BASE_DEC, NULL, 0, + "RNTI_Value", 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, + { "rach-ConfigDedicated", "nr-rrc.rach_ConfigDedicated", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rach_ConfigDedicated_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_spCellConfigDedicated, - { "spCellConfigDedicated", "nr-rrc.spCellConfigDedicated_element", + { &hf_nr_rrc_uplink, + { "uplink", "nr-rrc.uplink_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", + "RACH_ConfigDedicated", HFILL }}, + { &hf_nr_rrc_supplementaryUplink_01, + { "supplementaryUplink", "nr-rrc.supplementaryUplink_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, + "RACH_ConfigDedicated", HFILL }}, { &hf_nr_rrc_sCellIndex, { "sCellIndex", "nr-rrc.sCellIndex", FT_UINT32, BASE_DEC, NULL, 0, @@ -13253,11 +26236,423 @@ void proto_register_nr_rrc(void) { { &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", + "ServingCellConfig", 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_typeI_SinglePanel, + { "typeI-SinglePanel", "nr-rrc.typeI_SinglePanel_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrOfAntennaPorts, + { "nrOfAntennaPorts", "nr-rrc.nrOfAntennaPorts", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrOfAntennaPorts_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_two, + { "two", "nr-rrc.two_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_twoTX_CodebookSubsetRestriction, + { "twoTX-CodebookSubsetRestriction", "nr-rrc.twoTX_CodebookSubsetRestriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6", HFILL }}, + { &hf_nr_rrc_moreThanTwo, + { "moreThanTwo", "nr-rrc.moreThanTwo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_n1_n2, + { "n1-n2", "nr-rrc.n1_n2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_n1_n2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_two_one_TypeI_SinglePanel_Restriction, + { "two-one-TypeI-SinglePanel-Restriction", "nr-rrc.two_one_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_two_two_TypeI_SinglePanel_Restriction, + { "two-two-TypeI-SinglePanel-Restriction", "nr-rrc.two_two_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_64", HFILL }}, + { &hf_nr_rrc_four_one_TypeI_SinglePanel_Restriction, + { "four-one-TypeI-SinglePanel-Restriction", "nr-rrc.four_one_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_three_two_TypeI_SinglePanel_Restriction, + { "three-two-TypeI-SinglePanel-Restriction", "nr-rrc.three_two_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_96", HFILL }}, + { &hf_nr_rrc_six_one_TypeI_SinglePanel_Restriction, + { "six-one-TypeI-SinglePanel-Restriction", "nr-rrc.six_one_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_24", HFILL }}, + { &hf_nr_rrc_four_two_TypeI_SinglePanel_Restriction, + { "four-two-TypeI-SinglePanel-Restriction", "nr-rrc.four_two_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_128", HFILL }}, + { &hf_nr_rrc_eight_one_TypeI_SinglePanel_Restriction, + { "eight-one-TypeI-SinglePanel-Restriction", "nr-rrc.eight_one_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_32", HFILL }}, + { &hf_nr_rrc_four_three_TypeI_SinglePanel_Restriction, + { "four-three-TypeI-SinglePanel-Restriction", "nr-rrc.four_three_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_192", HFILL }}, + { &hf_nr_rrc_six_two_TypeI_SinglePanel_Restriction, + { "six-two-TypeI-SinglePanel-Restriction", "nr-rrc.six_two_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_192", HFILL }}, + { &hf_nr_rrc_twelve_one_TypeI_SinglePanel_Restriction, + { "twelve-one-TypeI-SinglePanel-Restriction", "nr-rrc.twelve_one_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_48", HFILL }}, + { &hf_nr_rrc_four_four_TypeI_SinglePanel_Restriction, + { "four-four-TypeI-SinglePanel-Restriction", "nr-rrc.four_four_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_256", HFILL }}, + { &hf_nr_rrc_eight_two_TypeI_SinglePanel_Restriction, + { "eight-two-TypeI-SinglePanel-Restriction", "nr-rrc.eight_two_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_256", HFILL }}, + { &hf_nr_rrc_sixteen_one_TypeI_SinglePanel_Restriction, + { "sixteen-one-TypeI-SinglePanel-Restriction", "nr-rrc.sixteen_one_TypeI_SinglePanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_64", HFILL }}, + { &hf_nr_rrc_typeI_SinglePanel_codebookSubsetRestriction_i2, + { "typeI-SinglePanel-codebookSubsetRestriction-i2", "nr-rrc.typeI_SinglePanel_codebookSubsetRestriction_i2", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_typeI_SinglePanel_ri_Restriction, + { "typeI-SinglePanel-ri-Restriction", "nr-rrc.typeI_SinglePanel_ri_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_typeI_MultiPanel, + { "typeI-MultiPanel", "nr-rrc.typeI_MultiPanel_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ng_n1_n2, + { "ng-n1-n2", "nr-rrc.ng_n1_n2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ng_n1_n2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_two_two_one_TypeI_MultiPanel_Restriction, + { "two-two-one-TypeI-MultiPanel-Restriction", "nr-rrc.two_two_one_TypeI_MultiPanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_two_four_one_TypeI_MultiPanel_Restriction, + { "two-four-one-TypeI-MultiPanel-Restriction", "nr-rrc.two_four_one_TypeI_MultiPanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_32", HFILL }}, + { &hf_nr_rrc_four_two_one_TypeI_MultiPanel_Restriction, + { "four-two-one-TypeI-MultiPanel-Restriction", "nr-rrc.four_two_one_TypeI_MultiPanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_32", HFILL }}, + { &hf_nr_rrc_two_two_two_TypeI_MultiPanel_Restriction, + { "two-two-two-TypeI-MultiPanel-Restriction", "nr-rrc.two_two_two_TypeI_MultiPanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_128", HFILL }}, + { &hf_nr_rrc_two_eight_one_TypeI_MultiPanel_Restriction, + { "two-eight-one-TypeI-MultiPanel-Restriction", "nr-rrc.two_eight_one_TypeI_MultiPanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_64", HFILL }}, + { &hf_nr_rrc_four_four_one_TypeI_MultiPanel_Restriction, + { "four-four-one-TypeI-MultiPanel-Restriction", "nr-rrc.four_four_one_TypeI_MultiPanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_64", HFILL }}, + { &hf_nr_rrc_two_four_two_TypeI_MultiPanel_Restriction, + { "two-four-two-TypeI-MultiPanel-Restriction", "nr-rrc.two_four_two_TypeI_MultiPanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_256", HFILL }}, + { &hf_nr_rrc_four_two_two_TypeI_MultiPanel_Restriction, + { "four-two-two-TypeI-MultiPanel-Restriction", "nr-rrc.four_two_two_TypeI_MultiPanel_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_256", HFILL }}, + { &hf_nr_rrc_ri_Restriction, + { "ri-Restriction", "nr-rrc.ri_Restriction", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_nr_rrc_codebookMode, + { "codebookMode", "nr-rrc.codebookMode", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_2", 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_typeII, + { "typeII", "nr-rrc.typeII_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_n1_n2_codebookSubsetRestriction, + { "n1-n2-codebookSubsetRestriction", "nr-rrc.n1_n2_codebookSubsetRestriction", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_n1_n2_codebookSubsetRestriction_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_two_one, + { "two-one", "nr-rrc.two_one", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_two_two, + { "two-two", "nr-rrc.two_two", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_139", HFILL }}, + { &hf_nr_rrc_four_one, + { "four-one", "nr-rrc.four_one", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_32", HFILL }}, + { &hf_nr_rrc_three_two, + { "three-two", "nr-rrc.three_two", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_59", HFILL }}, + { &hf_nr_rrc_six_one, + { "six-one", "nr-rrc.six_one", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_49", HFILL }}, + { &hf_nr_rrc_four_two, + { "four-two", "nr-rrc.four_two", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_75", HFILL }}, + { &hf_nr_rrc_eight_one, + { "eight-one", "nr-rrc.eight_one", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_65", HFILL }}, + { &hf_nr_rrc_four_three, + { "four-three", "nr-rrc.four_three", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_107", HFILL }}, + { &hf_nr_rrc_six_two, + { "six-two", "nr-rrc.six_two", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_107", HFILL }}, + { &hf_nr_rrc_twelve_one, + { "twelve-one", "nr-rrc.twelve_one", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_129", HFILL }}, + { &hf_nr_rrc_four_four, + { "four-four", "nr-rrc.four_four", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_139", HFILL }}, + { &hf_nr_rrc_eight_two, + { "eight-two", "nr-rrc.eight_two", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_139", HFILL }}, + { &hf_nr_rrc_sixteen_one, + { "sixteen-one", "nr-rrc.sixteen_one", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_129", 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_PortSelection, + { "typeII-PortSelection", "nr-rrc.typeII_PortSelection_element", + FT_NONE, BASE_NONE, NULL, 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_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_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_frequencyHopping, + { "frequencyHopping", "nr-rrc.frequencyHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyHopping_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cg_DMRS_Configuration, + { "cg-DMRS-Configuration", "nr-rrc.cg_DMRS_Configuration_element", + FT_NONE, BASE_NONE, NULL, 0, + "DMRS_UplinkConfig", 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_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_uci_OnPUSCH, + { "uci-OnPUSCH", "nr-rrc.uci_OnPUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uci_OnPUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_15, + { "setup", "nr-rrc.setup", + FT_UINT32, BASE_DEC, VALS(nr_rrc_CG_UCI_OnPUSCH_vals), 0, + "CG_UCI_OnPUSCH", HFILL }}, + { &hf_nr_rrc_resourceAllocation, + { "resourceAllocation", "nr-rrc.resourceAllocation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourceAllocation_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_powerControlLoopToUse, + { "powerControlLoopToUse", "nr-rrc.powerControlLoopToUse", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_powerControlLoopToUse_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_p0_PUSCH_Alpha, + { "p0-PUSCH-Alpha", "nr-rrc.p0_PUSCH_Alpha", + FT_UINT32, BASE_DEC, NULL, 0, + "P0_PUSCH_AlphaSetId", 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_nrofHARQ_Processes, + { "nrofHARQ-Processes", "nr-rrc.nrofHARQ_Processes", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_16", HFILL }}, + { &hf_nr_rrc_repK, + { "repK", "nr-rrc.repK", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_repK_vals), 0, + NULL, 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_periodicity, + { "periodicity", "nr-rrc.periodicity", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_periodicity_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_configuredGrantTimer, + { "configuredGrantTimer", "nr-rrc.configuredGrantTimer", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_configuredGrantTimer_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rrc_ConfiguredUplinkGrant, + { "rrc-ConfiguredUplinkGrant", "nr-rrc.rrc_ConfiguredUplinkGrant_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_timeDomainOffset, + { "timeDomainOffset", "nr-rrc.timeDomainOffset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_5119", HFILL }}, + { &hf_nr_rrc_timeDomainAllocation, + { "timeDomainAllocation", "nr-rrc.timeDomainAllocation", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_nr_rrc_frequencyDomainAllocation, + { "frequencyDomainAllocation", "nr-rrc.frequencyDomainAllocation", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_18", HFILL }}, + { &hf_nr_rrc_antennaPort, + { "antennaPort", "nr-rrc.antennaPort", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_dmrs_SeqInitialization, + { "dmrs-SeqInitialization", "nr-rrc.dmrs_SeqInitialization", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1", HFILL }}, + { &hf_nr_rrc_precodingAndNumberOfLayers, + { "precodingAndNumberOfLayers", "nr-rrc.precodingAndNumberOfLayers", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_nr_rrc_srs_ResourceIndicator, + { "srs-ResourceIndicator", "nr-rrc.srs_ResourceIndicator", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_nr_rrc_mcsAndTBS, + { "mcsAndTBS", "nr-rrc.mcsAndTBS", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_frequencyHoppingOffset, + { "frequencyHoppingOffset", "nr-rrc.frequencyHoppingOffset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofPhysicalResourceBlocks_1", HFILL }}, + { &hf_nr_rrc_pathlossReferenceIndex, + { "pathlossReferenceIndex", "nr-rrc.pathlossReferenceIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxNrofPUSCH_PathlossReferenceRSs_1", 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_controlResourceSetId, + { "controlResourceSetId", "nr-rrc.controlResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_frequencyDomainResources, + { "frequencyDomainResources", "nr-rrc.frequencyDomainResources", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_45", HFILL }}, + { &hf_nr_rrc_duration, + { "duration", "nr-rrc.duration", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxCoReSetDuration", 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_interleaved, + { "interleaved", "nr-rrc.interleaved_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, 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_interleaverSize, + { "interleaverSize", "nr-rrc.interleaverSize", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interleaverSize_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_shiftIndex, + { "shiftIndex", "nr-rrc.shiftIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxNrofPhysicalResourceBlocks_1", HFILL }}, + { &hf_nr_rrc_nonInterleaved, + { "nonInterleaved", "nr-rrc.nonInterleaved_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_precoderGranularity, + { "precoderGranularity", "nr-rrc.precoderGranularity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_precoderGranularity_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_tci_StatesPDCCH, + { "tci-StatesPDCCH", "nr-rrc.tci_StatesPDCCH", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId", HFILL }}, + { &hf_nr_rrc_tci_StatesPDCCH_item, + { "TCI-StateId", "nr-rrc.TCI_StateId", FT_UINT32, BASE_DEC, 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_pdcch_DMRS_ScramblingID, + { "pdcch-DMRS-ScramblingID", "nr-rrc.pdcch_DMRS_ScramblingID", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, { &hf_nr_rrc_schedulingCellInfo, { "schedulingCellInfo", "nr-rrc.schedulingCellInfo", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_schedulingCellInfo_vals), 0, @@ -13278,244 +26673,360 @@ void proto_register_nr_rrc(void) { { "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", + { &hf_nr_rrc_CSI_AperiodicTriggerStateList_item, + { "CSI-AperiodicTriggerState", "nr-rrc.CSI_AperiodicTriggerState_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_csi_ReportConfigs, - { "csi-ReportConfigs", "nr-rrc.csi_ReportConfigs", + { &hf_nr_rrc_associatedReportConfigInfoList, + { "associatedReportConfigInfoList", "nr-rrc.associatedReportConfigInfoList", 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", + "SEQUENCE_SIZE_1_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo", HFILL }}, + { &hf_nr_rrc_associatedReportConfigInfoList_item, + { "CSI-AssociatedReportConfigInfo", "nr-rrc.CSI_AssociatedReportConfigInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_csi_MeasIdToAddModList, - { "csi-MeasIdToAddModList", "nr-rrc.csi_MeasIdToAddModList", + { &hf_nr_rrc_reportConfigId, + { "reportConfigId", "nr-rrc.reportConfigId", 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, + "CSI_ReportConfigId", HFILL }}, + { &hf_nr_rrc_resourcesForChannel, + { "resourcesForChannel", "nr-rrc.resourcesForChannel", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourcesForChannel_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_reportTrigger, - { "reportTrigger", "nr-rrc.reportTrigger_element", + { &hf_nr_rrc_nzp_CSI_RS, + { "nzp-CSI-RS", "nr-rrc.nzp_CSI_RS_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_reportTriggerSize, - { "reportTriggerSize", "nr-rrc.reportTriggerSize", + { &hf_nr_rrc_resourceSet, + { "resourceSet", "nr-rrc.resourceSet", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_6", HFILL }}, - { &hf_nr_rrc_csi_ResourceConfigId, - { "csi-ResourceConfigId", "nr-rrc.csi_ResourceConfigId", + "INTEGER_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig", HFILL }}, + { &hf_nr_rrc_qcl_info, + { "qcl-info", "nr-rrc.qcl_info", FT_UINT32, BASE_DEC, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_csi_ResourceSets, - { "csi-ResourceSets", "nr-rrc.csi_ResourceSets", + "SEQUENCE_SIZE_1_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId", HFILL }}, + { &hf_nr_rrc_qcl_info_item, + { "TCI-StateId", "nr-rrc.TCI_StateId", 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", + { &hf_nr_rrc_csi_SSB_ResourceSet, + { "csi-SSB-ResourceSet", "nr-rrc.csi_SSB_ResourceSet", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofCSI_SSB_ResourceSetsPerConfig", HFILL }}, + { &hf_nr_rrc_csi_IM_ResourcesforInteference, + { "csi-IM-ResourcesforInteference", "nr-rrc.csi_IM_ResourcesforInteference", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofCSI_IM_ResourceSetsPerConfig", HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_ResourcesforInterference, + { "nzp-CSI-RS-ResourcesforInterference", "nr-rrc.nzp_CSI_RS_ResourcesforInterference", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig", HFILL }}, + { &hf_nr_rrc_startingRB, + { "startingRB", "nr-rrc.startingRB", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxNrofPhysicalResourceBlocks_1", HFILL }}, + { &hf_nr_rrc_nrofRBs, + { "nrofRBs", "nr-rrc.nrofRBs", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_24_maxNrofPhysicalResourceBlocks", HFILL }}, + { &hf_nr_rrc_csi_IM_ResourceId, + { "csi-IM-ResourceId", "nr-rrc.csi_IM_ResourceId", 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, + { &hf_nr_rrc_csi_IM_ResourceElementPattern, + { "csi-IM-ResourceElementPattern", "nr-rrc.csi_IM_ResourceElementPattern", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_IM_ResourceElementPattern_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_aperiodic, - { "aperiodic", "nr-rrc.aperiodic_element", + { &hf_nr_rrc_pattern0, + { "pattern0", "nr-rrc.pattern0_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_semiPersistent, - { "semiPersistent", "nr-rrc.semiPersistent_element", + { &hf_nr_rrc_subcarrierLocation_p0, + { "subcarrierLocation-p0", "nr-rrc.subcarrierLocation_p0", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subcarrierLocation_p0_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_symbolLocation_p0, + { "symbolLocation-p0", "nr-rrc.symbolLocation_p0", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_12", HFILL }}, + { &hf_nr_rrc_pattern1, + { "pattern1", "nr-rrc.pattern1_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_periodic, - { "periodic", "nr-rrc.periodic_element", + { &hf_nr_rrc_subcarrierLocation_p1, + { "subcarrierLocation-p1", "nr-rrc.subcarrierLocation_p1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subcarrierLocation_p1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_symbolLocation_p1, + { "symbolLocation-p1", "nr-rrc.symbolLocation_p1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_13", HFILL }}, + { &hf_nr_rrc_freqBand, + { "freqBand", "nr-rrc.freqBand_element", FT_NONE, BASE_NONE, NULL, 0, + "CSI_FrequencyOccupation", HFILL }}, + { &hf_nr_rrc_periodicityAndOffset, + { "periodicityAndOffset", "nr-rrc.periodicityAndOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_CSI_ResourcePeriodicityAndOffset_vals), 0, + "CSI_ResourcePeriodicityAndOffset", HFILL }}, + { &hf_nr_rrc_csi_IM_ResourceSetId, + { "csi-IM-ResourceSetId", "nr-rrc.csi_IM_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_csi_ResourceSetId, - { "csi-ResourceSetId", "nr-rrc.csi_ResourceSetId", + { &hf_nr_rrc_csi_IM_Resources, + { "csi-IM-Resources", "nr-rrc.csi_IM_Resources", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_ResourceId", HFILL }}, + { &hf_nr_rrc_csi_IM_Resources_item, + { "CSI-IM-ResourceId", "nr-rrc.CSI_IM_ResourceId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_csi_rs_Resources, - { "csi-rs-Resources", "nr-rrc.csi_rs_Resources", + { &hf_nr_rrc_nzp_CSI_RS_ResourceToAddModList, + { "nzp-CSI-RS-ResourceToAddModList", "nr-rrc.nzp_CSI_RS_ResourceToAddModList", 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, + "SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_Resource", HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_ResourceToAddModList_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", + { &hf_nr_rrc_nzp_CSI_RS_ResourceToReleaseList, + { "nzp-CSI-RS-ResourceToReleaseList", "nr-rrc.nzp_CSI_RS_ResourceToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_ResourceId", HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_ResourceToReleaseList_item, + { "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", + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetToAddModList, + { "nzp-CSI-RS-ResourceSetToAddModList", "nr-rrc.nzp_CSI_RS_ResourceSetToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSet", HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetToAddModList_item, + { "NZP-CSI-RS-ResourceSet", "nr-rrc.NZP_CSI_RS_ResourceSet_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, + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetToReleaseList, + { "nzp-CSI-RS-ResourceSetToReleaseList", "nr-rrc.nzp_CSI_RS_ResourceSetToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSetId", HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetToReleaseList_item, + { "NZP-CSI-RS-ResourceSetId", "nr-rrc.NZP_CSI_RS_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 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, + { &hf_nr_rrc_csi_IM_ResourceToAddModList, + { "csi-IM-ResourceToAddModList", "nr-rrc.csi_IM_ResourceToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_Resource", HFILL }}, + { &hf_nr_rrc_csi_IM_ResourceToAddModList_item, + { "CSI-IM-Resource", "nr-rrc.CSI_IM_Resource_element", + FT_NONE, BASE_NONE, NULL, 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, + { &hf_nr_rrc_csi_IM_ResourceToReleaseList, + { "csi-IM-ResourceToReleaseList", "nr-rrc.csi_IM_ResourceToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_ResourceId", HFILL }}, + { &hf_nr_rrc_csi_IM_ResourceToReleaseList_item, + { "CSI-IM-ResourceId", "nr-rrc.CSI_IM_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_csi_RS_FreqBand, - { "csi-RS-FreqBand", "nr-rrc.csi_RS_FreqBand_element", + { &hf_nr_rrc_csi_IM_ResourceSetToAddModList, + { "csi-IM-ResourceSetToAddModList", "nr-rrc.csi_IM_ResourceSetToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSet", HFILL }}, + { &hf_nr_rrc_csi_IM_ResourceSetToAddModList_item, + { "CSI-IM-ResourceSet", "nr-rrc.CSI_IM_ResourceSet_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_powerControlOffset, - { "powerControlOffset", "nr-rrc.powerControlOffset_element", + { &hf_nr_rrc_csi_IM_ResourceSetToReleaseList, + { "csi-IM-ResourceSetToReleaseList", "nr-rrc.csi_IM_ResourceSetToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSetId", HFILL }}, + { &hf_nr_rrc_csi_IM_ResourceSetToReleaseList_item, + { "CSI-IM-ResourceSetId", "nr-rrc.CSI_IM_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_SSB_ResourceSetToAddModList, + { "csi-SSB-ResourceSetToAddModList", "nr-rrc.csi_SSB_ResourceSetToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSet", HFILL }}, + { &hf_nr_rrc_csi_SSB_ResourceSetToAddModList_item, + { "CSI-SSB-ResourceSet", "nr-rrc.CSI_SSB_ResourceSet_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_powerControlOffsetSS, - { "powerControlOffsetSS", "nr-rrc.powerControlOffsetSS_element", + { &hf_nr_rrc_csi_SSB_ResourceSetToAddReleaseList, + { "csi-SSB-ResourceSetToAddReleaseList", "nr-rrc.csi_SSB_ResourceSetToAddReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSetId", HFILL }}, + { &hf_nr_rrc_csi_SSB_ResourceSetToAddReleaseList_item, + { "CSI-SSB-ResourceSetId", "nr-rrc.CSI_SSB_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_ResourceConfigToAddModList, + { "csi-ResourceConfigToAddModList", "nr-rrc.csi_ResourceConfigToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfig", HFILL }}, + { &hf_nr_rrc_csi_ResourceConfigToAddModList_item, + { "CSI-ResourceConfig", "nr-rrc.CSI_ResourceConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_scramblingID, - { "scramblingID", "nr-rrc.scramblingID", + { &hf_nr_rrc_csi_ResourceConfigToReleaseList, + { "csi-ResourceConfigToReleaseList", "nr-rrc.csi_ResourceConfigToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfigId", HFILL }}, + { &hf_nr_rrc_csi_ResourceConfigToReleaseList_item, + { "CSI-ResourceConfigId", "nr-rrc.CSI_ResourceConfigId", 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", + { &hf_nr_rrc_csi_ReportConfigToAddModList, + { "csi-ReportConfigToAddModList", "nr-rrc.csi_ReportConfigToAddModList", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_4", HFILL }}, - { &hf_nr_rrc_sl10, - { "sl10", "nr-rrc.sl10", + "SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfig", HFILL }}, + { &hf_nr_rrc_csi_ReportConfigToAddModList_item, + { "CSI-ReportConfig", "nr-rrc.CSI_ReportConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_ReportConfigToReleaseList, + { "csi-ReportConfigToReleaseList", "nr-rrc.csi_ReportConfigToReleaseList", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_9", HFILL }}, - { &hf_nr_rrc_sl20, - { "sl20", "nr-rrc.sl20", + "SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfigId", HFILL }}, + { &hf_nr_rrc_csi_ReportConfigToReleaseList_item, + { "CSI-ReportConfigId", "nr-rrc.CSI_ReportConfigId", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_19", HFILL }}, - { &hf_nr_rrc_sl40, - { "sl40", "nr-rrc.sl40", + NULL, HFILL }}, + { &hf_nr_rrc_reportTriggerSize, + { "reportTriggerSize", "nr-rrc.reportTriggerSize", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_39", HFILL }}, - { &hf_nr_rrc_sl80, - { "sl80", "nr-rrc.sl80", + "INTEGER_0_6", HFILL }}, + { &hf_nr_rrc_aperiodicTriggerStateList, + { "aperiodicTriggerStateList", "nr-rrc.aperiodicTriggerStateList", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aperiodicTriggerStateList_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_16, + { "setup", "nr-rrc.setup", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_79", HFILL }}, - { &hf_nr_rrc_sl160, - { "sl160", "nr-rrc.sl160", + "CSI_AperiodicTriggerStateList", HFILL }}, + { &hf_nr_rrc_semiPersistentOnPUSCH_TriggerStateList, + { "semiPersistentOnPUSCH-TriggerStateList", "nr-rrc.semiPersistentOnPUSCH_TriggerStateList", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_semiPersistentOnPUSCH_TriggerStateList_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_17, + { "setup", "nr-rrc.setup", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_159", HFILL }}, - { &hf_nr_rrc_sl320, - { "sl320", "nr-rrc.sl320", + "CSI_SemiPersistentOnPUSCH_TriggerStateList", HFILL }}, + { &hf_nr_rrc_carrier, + { "carrier", "nr-rrc.carrier", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_319", HFILL }}, - { &hf_nr_rrc_sl640, - { "sl640", "nr-rrc.sl640", + "ServCellIndex", HFILL }}, + { &hf_nr_rrc_resourcesForChannelMeasurement, + { "resourcesForChannelMeasurement", "nr-rrc.resourcesForChannelMeasurement", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_639", HFILL }}, - { &hf_nr_rrc_reportConfigId, - { "reportConfigId", "nr-rrc.reportConfigId", + "CSI_ResourceConfigId", HFILL }}, + { &hf_nr_rrc_csi_IM_ResourcesForInterference, + { "csi-IM-ResourcesForInterference", "nr-rrc.csi_IM_ResourcesForInterference", FT_UINT32, BASE_DEC, NULL, 0, - "CSI_ReportConfigId", HFILL }}, + "CSI_ResourceConfigId", HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_ResourcesForInterference, + { "nzp-CSI-RS-ResourcesForInterference", "nr-rrc.nzp_CSI_RS_ResourcesForInterference", + FT_UINT32, BASE_DEC, NULL, 0, + "CSI_ResourceConfigId", 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, + { &hf_nr_rrc_periodic, { "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, + FT_UINT32, BASE_DEC, VALS(nr_rrc_CSI_ReportPeriodicityAndOffset_vals), 0, + "CSI_ReportPeriodicityAndOffset", HFILL }}, + { &hf_nr_rrc_pucch_CSI_ResourceList, + { "pucch-CSI-ResourceList", "nr-rrc.pucch_CSI_ResourceList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource", HFILL }}, + { &hf_nr_rrc_pucch_CSI_ResourceList_item, + { "PUCCH-CSI-Resource", "nr-rrc.PUCCH_CSI_Resource", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PUCCH_CSI_Resource_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_pucch_CSI_ResourceIndex, - { "pucch-CSI-ResourceIndex", "nr-rrc.pucch_CSI_ResourceIndex_element", + { &hf_nr_rrc_semiPersistentOnPUCCH, + { "semiPersistentOnPUCCH", "nr-rrc.semiPersistentOnPUCCH_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_semiPersistent_01, - { "semiPersistent", "nr-rrc.semiPersistent_element", + { &hf_nr_rrc_semiPersistentOnPUSCH, + { "semiPersistentOnPUSCH", "nr-rrc.semiPersistentOnPUSCH_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, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportSlotConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportSlotOffsetList, + { "reportSlotOffsetList", "nr-rrc.reportSlotOffsetList", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_aperiodicReportSlotOffset, - { "aperiodicReportSlotOffset", "nr-rrc.aperiodicReportSlotOffset_element", + { &hf_nr_rrc_reportSlotOffsetList_item, + { "reportSlotOffsetList item", "nr-rrc.reportSlotOffsetList_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_nr_rrc_csi_RNTI, + { "csi-RNTI", "nr-rrc.csi_RNTI", + FT_UINT32, BASE_DEC, NULL, 0, + "RNTI_Value", HFILL }}, + { &hf_nr_rrc_p0alpha, + { "p0alpha", "nr-rrc.p0alpha", + FT_UINT32, BASE_DEC, NULL, 0, + "P0_PUSCH_AlphaSetId", HFILL }}, + { &hf_nr_rrc_aperiodic, + { "aperiodic", "nr-rrc.aperiodic_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_reportSlotOffsetList_01, + { "reportSlotOffsetList", "nr-rrc.reportSlotOffsetList", + FT_UINT32, BASE_DEC, NULL, 0, + "T_reportSlotOffsetList_01", 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", + { &hf_nr_rrc_none, + { "none", "nr-rrc.none_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_cRI_RI_i1, - { "cRI-RI-i1", "nr-rrc.cRI_RI_i1_element", + { &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_CQI, - { "cRI-RI-i1-CQI", "nr-rrc.cRI_RI_i1_CQI_element", + { &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", + { &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", + { &hf_nr_rrc_cri_RSRP, + { "cri-RSRP", "nr-rrc.cri_RSRP_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_cRI_RSRP, - { "cRI-RSRP", "nr-rrc.cRI_RSRP_element", + { &hf_nr_rrc_ssb_Index_RSRP, + { "ssb-Index-RSRP", "nr-rrc.ssb_Index_RSRP_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare0, - { "spare0", "nr-rrc.spare0_element", + { &hf_nr_rrc_cri_RI_LI_PMI_CQI, + { "cri-RI-LI-PMI-CQI", "nr-rrc.cri_RI_LI_PMI_CQI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_reportFreqConfiguration, @@ -13532,15 +27043,79 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_csi_ReportingBand, { "csi-ReportingBand", "nr-rrc.csi_ReportingBand", - FT_BYTES, BASE_NONE, NULL, 0, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_ReportingBand_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_measRestrictionTimeForChannel, - { "measRestrictionTimeForChannel", "nr-rrc.measRestrictionTimeForChannel_element", - FT_NONE, BASE_NONE, NULL, 0, + { &hf_nr_rrc_subbands3, + { "subbands3", "nr-rrc.subbands3", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_3", HFILL }}, + { &hf_nr_rrc_subbands4, + { "subbands4", "nr-rrc.subbands4", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_nr_rrc_subbands5, + { "subbands5", "nr-rrc.subbands5", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_5", HFILL }}, + { &hf_nr_rrc_subbands6, + { "subbands6", "nr-rrc.subbands6", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6", HFILL }}, + { &hf_nr_rrc_subbands7, + { "subbands7", "nr-rrc.subbands7", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_7", HFILL }}, + { &hf_nr_rrc_subbands8, + { "subbands8", "nr-rrc.subbands8", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_subbands9, + { "subbands9", "nr-rrc.subbands9", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_9", HFILL }}, + { &hf_nr_rrc_subbands10, + { "subbands10", "nr-rrc.subbands10", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_10", HFILL }}, + { &hf_nr_rrc_subbands11, + { "subbands11", "nr-rrc.subbands11", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_11", HFILL }}, + { &hf_nr_rrc_subbands12, + { "subbands12", "nr-rrc.subbands12", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_12", HFILL }}, + { &hf_nr_rrc_subbands13, + { "subbands13", "nr-rrc.subbands13", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_13", HFILL }}, + { &hf_nr_rrc_subbands14, + { "subbands14", "nr-rrc.subbands14", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_14", HFILL }}, + { &hf_nr_rrc_subbands15, + { "subbands15", "nr-rrc.subbands15", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_15", HFILL }}, + { &hf_nr_rrc_subbands16, + { "subbands16", "nr-rrc.subbands16", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_subbands17, + { "subbands17", "nr-rrc.subbands17", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_17", HFILL }}, + { &hf_nr_rrc_subbands18, + { "subbands18", "nr-rrc.subbands18", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_18", HFILL }}, + { &hf_nr_rrc_timeRestrictionForChannelMeasurements, + { "timeRestrictionForChannelMeasurements", "nr-rrc.timeRestrictionForChannelMeasurements", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_timeRestrictionForChannelMeasurements_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_measRestrictionTimeForInterference, - { "measRestrictionTimeForInterference", "nr-rrc.measRestrictionTimeForInterference_element", - FT_NONE, BASE_NONE, NULL, 0, + { &hf_nr_rrc_timeRestrictionForInterferenceMeasurements, + { "timeRestrictionForInterferenceMeasurements", "nr-rrc.timeRestrictionForInterferenceMeasurements", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_timeRestrictionForInterferenceMeasurements_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_codebookConfig, { "codebookConfig", "nr-rrc.codebookConfig_element", @@ -13558,10 +27133,6 @@ void proto_register_nr_rrc(void) { { "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, @@ -13582,130 +27153,482 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_non_PMI_PortIndication, + { "non-PMI-PortIndication", "nr-rrc.non_PMI_PortIndication", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks", HFILL }}, + { &hf_nr_rrc_non_PMI_PortIndication_item, + { "PortIndexFor8Ranks", "nr-rrc.PortIndexFor8Ranks", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PortIndexFor8Ranks_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, + { &hf_nr_rrc_slots4, + { "slots4", "nr-rrc.slots4", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3", HFILL }}, + { &hf_nr_rrc_slots5, + { "slots5", "nr-rrc.slots5", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4", HFILL }}, + { &hf_nr_rrc_slots8, + { "slots8", "nr-rrc.slots8", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_nr_rrc_slots10, + { "slots10", "nr-rrc.slots10", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_9", HFILL }}, + { &hf_nr_rrc_slots16, + { "slots16", "nr-rrc.slots16", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_nr_rrc_slots20, + { "slots20", "nr-rrc.slots20", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_19", HFILL }}, + { &hf_nr_rrc_slots40, + { "slots40", "nr-rrc.slots40", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_39", HFILL }}, + { &hf_nr_rrc_slots80, + { "slots80", "nr-rrc.slots80", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_79", HFILL }}, + { &hf_nr_rrc_slots160, + { "slots160", "nr-rrc.slots160", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_159", HFILL }}, + { &hf_nr_rrc_slots320, + { "slots320", "nr-rrc.slots320", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_319", HFILL }}, + { &hf_nr_rrc_uplinkBandwidthPartId, + { "uplinkBandwidthPartId", "nr-rrc.uplinkBandwidthPartId", + FT_UINT32, BASE_DEC, NULL, 0, + "BWP_Id", HFILL }}, + { &hf_nr_rrc_pucch_Resource, + { "pucch-Resource", "nr-rrc.pucch_Resource_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_codebookType, - { "codebookType", "nr-rrc.codebookType", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codebookType_vals), 0, + { &hf_nr_rrc_portIndex8, + { "portIndex8", "nr-rrc.portIndex8_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_type1, - { "type1", "nr-rrc.type1_element", + { &hf_nr_rrc_rank1_8, + { "rank1-8", "nr-rrc.rank1_8", + FT_UINT32, BASE_DEC, NULL, 0, + "PortIndex8", HFILL }}, + { &hf_nr_rrc_rank2_8, + { "rank2-8", "nr-rrc.rank2_8", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_2_OF_PortIndex8", HFILL }}, + { &hf_nr_rrc_rank2_8_item, + { "PortIndex8", "nr-rrc.PortIndex8", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rank3_8, + { "rank3-8", "nr-rrc.rank3_8", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_3_OF_PortIndex8", HFILL }}, + { &hf_nr_rrc_rank3_8_item, + { "PortIndex8", "nr-rrc.PortIndex8", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rank4_8, + { "rank4-8", "nr-rrc.rank4_8", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_4_OF_PortIndex8", HFILL }}, + { &hf_nr_rrc_rank4_8_item, + { "PortIndex8", "nr-rrc.PortIndex8", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rank5_8, + { "rank5-8", "nr-rrc.rank5_8", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_5_OF_PortIndex8", HFILL }}, + { &hf_nr_rrc_rank5_8_item, + { "PortIndex8", "nr-rrc.PortIndex8", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rank6_8, + { "rank6-8", "nr-rrc.rank6_8", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_6_OF_PortIndex8", HFILL }}, + { &hf_nr_rrc_rank6_8_item, + { "PortIndex8", "nr-rrc.PortIndex8", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rank7_8, + { "rank7-8", "nr-rrc.rank7_8", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_7_OF_PortIndex8", HFILL }}, + { &hf_nr_rrc_rank7_8_item, + { "PortIndex8", "nr-rrc.PortIndex8", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rank8_8, + { "rank8-8", "nr-rrc.rank8_8", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_8_OF_PortIndex8", HFILL }}, + { &hf_nr_rrc_rank8_8_item, + { "PortIndex8", "nr-rrc.PortIndex8", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_portIndex4, + { "portIndex4", "nr-rrc.portIndex4_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, + { &hf_nr_rrc_rank1_4, + { "rank1-4", "nr-rrc.rank1_4", + FT_UINT32, BASE_DEC, NULL, 0, + "PortIndex4", HFILL }}, + { &hf_nr_rrc_rank2_4, + { "rank2-4", "nr-rrc.rank2_4", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_2_OF_PortIndex4", HFILL }}, + { &hf_nr_rrc_rank2_4_item, + { "PortIndex4", "nr-rrc.PortIndex4", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_codebookMode, - { "codebookMode", "nr-rrc.codebookMode", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codebookMode_vals), 0, + { &hf_nr_rrc_rank3_4, + { "rank3-4", "nr-rrc.rank3_4", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_3_OF_PortIndex4", HFILL }}, + { &hf_nr_rrc_rank3_4_item, + { "PortIndex4", "nr-rrc.PortIndex4", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_numberOfPanels, - { "numberOfPanels", "nr-rrc.numberOfPanels", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_numberOfPanels_vals), 0, + { &hf_nr_rrc_rank4_4, + { "rank4-4", "nr-rrc.rank4_4", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_4_OF_PortIndex4", HFILL }}, + { &hf_nr_rrc_rank4_4_item, + { "PortIndex4", "nr-rrc.PortIndex4", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_codebookSubsetRestrictionType1, - { "codebookSubsetRestrictionType1", "nr-rrc.codebookSubsetRestrictionType1", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codebookSubsetRestrictionType1_vals), 0, + { &hf_nr_rrc_portIndex2, + { "portIndex2", "nr-rrc.portIndex2_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_singlePanel, - { "singlePanel", "nr-rrc.singlePanel", - FT_BYTES, BASE_NONE, NULL, 0, + { &hf_nr_rrc_rank1_2, + { "rank1-2", "nr-rrc.rank1_2", + FT_UINT32, BASE_DEC, NULL, 0, + "PortIndex2", HFILL }}, + { &hf_nr_rrc_rank2_2, + { "rank2-2", "nr-rrc.rank2_2", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_2_OF_PortIndex2", HFILL }}, + { &hf_nr_rrc_rank2_2_item, + { "PortIndex2", "nr-rrc.PortIndex2", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_portIndex1, + { "portIndex1", "nr-rrc.portIndex1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_ResourceConfigId, + { "csi-ResourceConfigId", "nr-rrc.csi_ResourceConfigId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RS_ResourceSetList, + { "csi-RS-ResourceSetList", "nr-rrc.csi_RS_ResourceSetList", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_RS_ResourceSetList_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_SSB, + { "nzp-CSI-RS-SSB", "nr-rrc.nzp_CSI_RS_SSB_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetList, + { "nzp-CSI-RS-ResourceSetList", "nr-rrc.nzp_CSI_RS_ResourceSetList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_ResourceSetId", HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_ResourceSetList_item, + { "NZP-CSI-RS-ResourceSetId", "nr-rrc.NZP_CSI_RS_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_SSB_ResourceSetList, + { "csi-SSB-ResourceSetList", "nr-rrc.csi_SSB_ResourceSetList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_ResourceSetId", HFILL }}, + { &hf_nr_rrc_csi_SSB_ResourceSetList_item, + { "CSI-SSB-ResourceSetId", "nr-rrc.CSI_SSB_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_IM_ResourceSetList, + { "csi-IM-ResourceSetList", "nr-rrc.csi_IM_ResourceSetList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_ResourceSetId", HFILL }}, + { &hf_nr_rrc_csi_IM_ResourceSetList_item, + { "CSI-IM-ResourceSetId", "nr-rrc.CSI_IM_ResourceSetId", + FT_UINT32, BASE_DEC, 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_slots32, + { "slots32", "nr-rrc.slots32", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_slots64, + { "slots64", "nr-rrc.slots64", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_nr_rrc_slots640, + { "slots640", "nr-rrc.slots640", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_639", HFILL }}, + { &hf_nr_rrc_frequencyDomainAllocation_01, + { "frequencyDomainAllocation", "nr-rrc.frequencyDomainAllocation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyDomainAllocation_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_singlePanel2TX, - { "singlePanel2TX", "nr-rrc.singlePanel2TX", + { &hf_nr_rrc_row1, + { "row1", "nr-rrc.row1", FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_6", HFILL }}, - { &hf_nr_rrc_multiPanel, - { "multiPanel", "nr-rrc.multiPanel", + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_nr_rrc_row2, + { "row2", "nr-rrc.row2", FT_BYTES, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_singlePanelCodebookSubsetRestriction_i2, - { "singlePanelCodebookSubsetRestriction-i2", "nr-rrc.singlePanelCodebookSubsetRestriction_i2", + "BIT_STRING_SIZE_12", HFILL }}, + { &hf_nr_rrc_row4, + { "row4", "nr-rrc.row4", 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, + "BIT_STRING_SIZE_3", HFILL }}, + { &hf_nr_rrc_other_01, + { "other", "nr-rrc.other", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6", 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_firstOFDMSymbolInTimeDomain, + { "firstOFDMSymbolInTimeDomain", "nr-rrc.firstOFDMSymbolInTimeDomain", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_13", HFILL }}, + { &hf_nr_rrc_firstOFDMSymbolInTimeDomain2, + { "firstOFDMSymbolInTimeDomain2", "nr-rrc.firstOFDMSymbolInTimeDomain2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_13", HFILL }}, + { &hf_nr_rrc_cdm_Type, + { "cdm-Type", "nr-rrc.cdm_Type", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cdm_Type_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_density, + { "density", "nr-rrc.density", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_density_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dot5, + { "dot5", "nr-rrc.dot5", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dot5_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_one, + { "one", "nr-rrc.one_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_three, + { "three", "nr-rrc.three_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_typeI_SinglePanelRI_Restriction, - { "typeI-SinglePanelRI-Restriction", "nr-rrc.typeI_SinglePanelRI_Restriction", + { &hf_nr_rrc_spare_01, + { "spare", "nr-rrc.spare_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList_item, + { "CSI-SemiPersistentOnPUSCH-TriggerState", "nr-rrc.CSI_SemiPersistentOnPUSCH_TriggerState_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_associatedReportConfigInfo, + { "associatedReportConfigInfo", "nr-rrc.associatedReportConfigInfo", + FT_UINT32, BASE_DEC, NULL, 0, + "CSI_ReportConfigId", HFILL }}, + { &hf_nr_rrc_csi_SSB_ResourceSetId, + { "csi-SSB-ResourceSetId", "nr-rrc.csi_SSB_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_SSB_ResourceList, + { "csi-SSB-ResourceList", "nr-rrc.csi_SSB_ResourceList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_SSB_Index", HFILL }}, + { &hf_nr_rrc_csi_SSB_ResourceList_item, + { "SSB-Index", "nr-rrc.SSB_Index", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, 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", 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", + "BIT_STRING_SIZE_12", HFILL }}, + { &hf_nr_rrc_dmrs_group2, + { "dmrs-group2", "nr-rrc.dmrs_group2", FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_4", HFILL }}, - { &hf_nr_rrc_type2, - { "type2", "nr-rrc.type2_element", + "BIT_STRING_SIZE_12", HFILL }}, + { &hf_nr_rrc_maxLength, + { "maxLength", "nr-rrc.maxLength", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxLength_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_scramblingID0, + { "scramblingID0", "nr-rrc.scramblingID0", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_nr_rrc_scramblingID1, + { "scramblingID1", "nr-rrc.scramblingID1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_65535", HFILL }}, + { &hf_nr_rrc_phaseTrackingRS, + { "phaseTrackingRS", "nr-rrc.phaseTrackingRS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phaseTrackingRS_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_18, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "PTRS_DownlinkConfig", 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_phaseTrackingRS_01, + { "phaseTrackingRS", "nr-rrc.phaseTrackingRS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phaseTrackingRS_01_vals), 0, + "T_phaseTrackingRS_01", HFILL }}, + { &hf_nr_rrc_setup_19, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PTRS_UplinkConfig", HFILL }}, + { &hf_nr_rrc_maxLength_01, + { "maxLength", "nr-rrc.maxLength", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxLength_01_vals), 0, + "T_maxLength_01", HFILL }}, + { &hf_nr_rrc_transformPrecoding, + { "transformPrecoding", "nr-rrc.transformPrecoding", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_transformPrecoding_vals), 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, + { &hf_nr_rrc_disabled_01, + { "disabled", "nr-rrc.disabled_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_disabled_01", HFILL }}, + { &hf_nr_rrc_enabled_01, + { "enabled", "nr-rrc.enabled_element", + FT_NONE, BASE_NONE, NULL, 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, + { &hf_nr_rrc_nPUSCH_Identity, + { "nPUSCH-Identity", "nr-rrc.nPUSCH_Identity", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1007", HFILL }}, + { &hf_nr_rrc_disableSequenceGroupHopping, + { "disableSequenceGroupHopping", "nr-rrc.disableSequenceGroupHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_disableSequenceGroupHopping_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_portSelectionSamplingSize, - { "portSelectionSamplingSize", "nr-rrc.portSelectionSamplingSize", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_portSelectionSamplingSize_vals), 0, + { &hf_nr_rrc_sequenceHoppingEnabled, + { "sequenceHoppingEnabled", "nr-rrc.sequenceHoppingEnabled", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sequenceHoppingEnabled_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_int_RNTI, + { "int-RNTI", "nr-rrc.int_RNTI", + FT_UINT32, BASE_DEC, NULL, 0, + "RNTI_Value", HFILL }}, + { &hf_nr_rrc_timeFrequencySet, + { "timeFrequencySet", "nr-rrc.timeFrequencySet", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_timeFrequencySet_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dci_PayloadSize, + { "dci-PayloadSize", "nr-rrc.dci_PayloadSize", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxINT_DCI_PayloadSize", HFILL }}, + { &hf_nr_rrc_int_ConfigurationPerServingCell, + { "int-ConfigurationPerServingCell", "nr-rrc.int_ConfigurationPerServingCell", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell", HFILL }}, + { &hf_nr_rrc_int_ConfigurationPerServingCell_item, + { "INT-ConfigurationPerServingCell", "nr-rrc.INT_ConfigurationPerServingCell_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_servingCellId, + { "servingCellId", "nr-rrc.servingCellId", + FT_UINT32, BASE_DEC, NULL, 0, + "ServCellIndex", HFILL }}, + { &hf_nr_rrc_positionInDCI, + { "positionInDCI", "nr-rrc.positionInDCI", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxINT_DCI_PayloadSize_1", HFILL }}, + { &hf_nr_rrc_EUTRA_MBSFN_SubframeConfigList_item, + { "EUTRA-MBSFN-SubframeConfig", "nr-rrc.EUTRA_MBSFN_SubframeConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_radioframeAllocationPeriod, + { "radioframeAllocationPeriod", "nr-rrc.radioframeAllocationPeriod", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_radioframeAllocationPeriod_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_codebookSubsetRestrictionType2, - { "codebookSubsetRestrictionType2", "nr-rrc.codebookSubsetRestrictionType2", + { &hf_nr_rrc_radioframeAllocationOffset, + { "radioframeAllocationOffset", "nr-rrc.radioframeAllocationOffset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_nr_rrc_subframeAllocation, + { "subframeAllocation", "nr-rrc.subframeAllocation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subframeAllocation_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_oneFrame, + { "oneFrame", "nr-rrc.oneFrame", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6", HFILL }}, + { &hf_nr_rrc_fourFrames, + { "fourFrames", "nr-rrc.fourFrames", FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_24", HFILL }}, + { &hf_nr_rrc_subframeAllocation_v1430, + { "subframeAllocation-v1430", "nr-rrc.subframeAllocation_v1430", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subframeAllocation_v1430_vals), 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", + { &hf_nr_rrc_oneFrame_v1430, + { "oneFrame-v1430", "nr-rrc.oneFrame_v1430", 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", + { &hf_nr_rrc_fourFrames_v1430, + { "fourFrames-v1430", "nr-rrc.fourFrames_v1430", FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_2", HFILL }}, - { &hf_nr_rrc_csi_measId, - { "csi-measId", "nr-rrc.csi_measId", + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_absoluteFrequencySSB, + { "absoluteFrequencySSB", "nr-rrc.absoluteFrequencySSB", 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", + "ARFCN_ValueNR", HFILL }}, + { &hf_nr_rrc_ssb_SubcarrierOffset_01, + { "ssb-SubcarrierOffset", "nr-rrc.ssb_SubcarrierOffset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_23", HFILL }}, + { &hf_nr_rrc_frequencyBandList, + { "frequencyBandList", "nr-rrc.frequencyBandList", FT_UINT32, BASE_DEC, NULL, 0, + "MultiFrequencyBandListNR", HFILL }}, + { &hf_nr_rrc_absoluteFrequencyPointA, + { "absoluteFrequencyPointA", "nr-rrc.absoluteFrequencyPointA", + FT_UINT32, BASE_DEC, NULL, 0, + "ARFCN_ValueNR", HFILL }}, + { &hf_nr_rrc_scs_SpecificCarrierList, + { "scs-SpecificCarrierList", "nr-rrc.scs_SpecificCarrierList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier", HFILL }}, + { &hf_nr_rrc_scs_SpecificCarrierList_item, + { "SCS-SpecificCarrier", "nr-rrc.SCS_SpecificCarrier_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_measQuantity, - { "measQuantity", "nr-rrc.measQuantity", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_measQuantity_vals), 0, + { &hf_nr_rrc_scs_SpecificCarriers, + { "scs-SpecificCarriers", "nr-rrc.scs_SpecificCarriers", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier", HFILL }}, + { &hf_nr_rrc_scs_SpecificCarriers_item, + { "SCS-SpecificCarrier", "nr-rrc.SCS_SpecificCarrier_element", + FT_NONE, BASE_NONE, NULL, 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, @@ -13718,10 +27641,6 @@ void proto_register_nr_rrc(void) { { "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, @@ -13738,18 +27657,38 @@ void proto_register_nr_rrc(void) { { "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", + { &hf_nr_rrc_allowedServingCells, + { "allowedServingCells", "nr-rrc.allowedServingCells", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex", HFILL }}, + { &hf_nr_rrc_allowedServingCells_item, + { "ServCellIndex", "nr-rrc.ServCellIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_allowedSCS_List, + { "allowedSCS-List", "nr-rrc.allowedSCS_List", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxSCSs_OF_SubcarrierSpacing", HFILL }}, + { &hf_nr_rrc_allowedSCS_List_item, + { "SubcarrierSpacing", "nr-rrc.SubcarrierSpacing", 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_maxPUSCH_Duration, + { "maxPUSCH-Duration", "nr-rrc.maxPUSCH_Duration", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxPUSCH_Duration_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_configuredGrantType1Allowed, + { "configuredGrantType1Allowed", "nr-rrc.configuredGrantType1Allowed", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_configuredGrantType1Allowed_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_logicalChannelGroup, { "logicalChannelGroup", "nr-rrc.logicalChannelGroup", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_maxLCid", HFILL }}, + "INTEGER_0_maxLCG_ID", HFILL }}, + { &hf_nr_rrc_schedulingRequestID, + { "schedulingRequestID", "nr-rrc.schedulingRequestID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_logicalChannelSR_Mask, { "logicalChannelSR-Mask", "nr-rrc.logicalChannelSR_Mask", FT_BOOLEAN, BASE_NONE, NULL, 0, @@ -13760,8 +27699,12 @@ void proto_register_nr_rrc(void) { "BOOLEAN", HFILL }}, { &hf_nr_rrc_drx_Config, { "drx-Config", "nr-rrc.drx_Config", - FT_UINT32, BASE_DEC, VALS(nr_rrc_DRX_Config_vals), 0, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_drx_Config_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_setup_20, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "DRX_Config", HFILL }}, { &hf_nr_rrc_schedulingRequestConfig, { "schedulingRequestConfig", "nr-rrc.schedulingRequestConfig_element", FT_NONE, BASE_NONE, NULL, 0, @@ -13769,34 +27712,42 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_bsr_Config, { "bsr-Config", "nr-rrc.bsr_Config_element", FT_NONE, BASE_NONE, NULL, 0, - "BSR_Configuration", HFILL }}, + NULL, HFILL }}, { &hf_nr_rrc_tag_Config, { "tag-Config", "nr-rrc.tag_Config_element", FT_NONE, BASE_NONE, NULL, 0, - "TAG_Configuration", HFILL }}, + NULL, 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, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_Config_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_setup_21, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PHR_Config", 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, + { &hf_nr_rrc_cs_RNTI, + { "cs-RNTI", "nr-rrc.cs_RNTI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cs_RNTI_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_setup_22, + { "setup", "nr-rrc.setup", + FT_UINT32, BASE_DEC, NULL, 0, + "RNTI_Value", 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, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_drx_onDurationTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_subMilliSeconds, + { "subMilliSeconds", "nr-rrc.subMilliSeconds", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_31", HFILL }}, + { &hf_nr_rrc_milliSeconds, + { "milliSeconds", "nr-rrc.milliSeconds", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_milliSeconds_vals_ext, 0, NULL, HFILL }}, { &hf_nr_rrc_drx_InactivityTimer, { "drx-InactivityTimer", "nr-rrc.drx_InactivityTimer", @@ -13818,110 +27769,22 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_drx_LongCycleStartOffset_01, { "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, + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_LongCycleStartOffset_01_vals_ext, 0, + "T_drx_LongCycleStartOffset_01", HFILL }}, + { &hf_nr_rrc_shortDRX_01, { "shortDRX", "nr-rrc.shortDRX_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_drx_ShortCycle, + "T_shortDRX_01", HFILL }}, + { &hf_nr_rrc_drx_ShortCycle_01, { "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 }}, + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_ShortCycle_01_vals_ext, 0, + "T_drx_ShortCycle_01", 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 }}, + FT_UINT32, BASE_DEC|BASE_EXT_STRING, NULL, 0, + "INTEGER_0_31", HFILL }}, { &hf_nr_rrc_phr_PeriodicTimer, { "phr-PeriodicTimer", "nr-rrc.phr_PeriodicTimer", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_PeriodicTimer_vals), 0, @@ -13953,16 +27816,16 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_tag_ToReleaseList, { "tag-ToReleaseList", "nr-rrc.tag_ToReleaseList", FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id", 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, { "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, + "SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_ToAddMod", HFILL }}, + { &hf_nr_rrc_tag_ToAddModList_item, { "TAG-ToAddMod", "nr-rrc.TAG_ToAddMod_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, @@ -13982,9 +27845,9 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_logicalChannelSR_DelayTimer, + { "logicalChannelSR-DelayTimer", "nr-rrc.logicalChannelSR_DelayTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_logicalChannelSR_DelayTimer_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_measObjectToRemoveList, { "measObjectToRemoveList", "nr-rrc.measObjectToRemoveList", @@ -14014,12 +27877,12 @@ void proto_register_nr_rrc(void) { { "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", + { &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", + { &hf_nr_rrc_csi_RSRP, + { "csi-RSRP", "nr-rrc.csi_RSRP", FT_UINT32, BASE_DEC, NULL, 0, "RSRP_Range", HFILL }}, { &hf_nr_rrc_quantityConfig, @@ -14042,6 +27905,30 @@ void proto_register_nr_rrc(void) { { "ReportConfigId", "nr-rrc.ReportConfigId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_gapFR2, + { "gapFR2", "nr-rrc.gapFR2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gapFR2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_23, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "GapConfig", HFILL }}, + { &hf_nr_rrc_gapOffset, + { "gapOffset", "nr-rrc.gapOffset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_159", HFILL }}, + { &hf_nr_rrc_mgl, + { "mgl", "nr-rrc.mgl", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mgl_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_mgrp, + { "mgrp", "nr-rrc.mgrp", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mgrp_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_mgta, + { "mgta", "nr-rrc.mgta", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mgta_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_MeasIdToAddModList_item, { "MeasIdToAddMod", "nr-rrc.MeasIdToAddMod_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14058,9 +27945,13 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_ssbFrequency, + { "ssbFrequency", "nr-rrc.ssbFrequency", + FT_UINT32, BASE_DEC, NULL, 0, + "ARFCN_ValueNR", HFILL }}, + { &hf_nr_rrc_refFreqCSI_RS, + { "refFreqCSI-RS", "nr-rrc.refFreqCSI_RS", + FT_UINT32, BASE_DEC, NULL, 0, "ARFCN_ValueNR", HFILL }}, { &hf_nr_rrc_referenceSignalConfig, { "referenceSignalConfig", "nr-rrc.referenceSignalConfig_element", @@ -14074,18 +27965,18 @@ void proto_register_nr_rrc(void) { { "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", + { &hf_nr_rrc_nrofSS_BlocksToAverage, + { "nrofSS-BlocksToAverage", "nr-rrc.nrofSS_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", + "INTEGER_2_maxNrofSS_BlocksToAverage", HFILL }}, + { &hf_nr_rrc_nrofCSI_RS_ResourcesToAverage, + { "nrofCSI-RS-ResourcesToAverage", "nr-rrc.nrofCSI_RS_ResourcesToAverage", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_2_maxNroCSI_RS_ResourcesToAverage", HFILL }}, + "INTEGER_2_maxNrofCSI_RS_ResourcesToAverage", HFILL }}, { &hf_nr_rrc_quantityConfigIndex, { "quantityConfigIndex", "nr-rrc.quantityConfigIndex", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_maxQuantityConfigId", HFILL }}, + "INTEGER_1_maxNrofQuantityConfig", HFILL }}, { &hf_nr_rrc_offsetFreq, { "offsetFreq", "nr-rrc.offsetFreq_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14093,7 +27984,7 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_cellsToRemoveList, { "cellsToRemoveList", "nr-rrc.cellsToRemoveList", FT_UINT32, BASE_DEC, NULL, 0, - "CellIndexList", HFILL }}, + "PCI_List", HFILL }}, { &hf_nr_rrc_cellsToAddModList, { "cellsToAddModList", "nr-rrc.cellsToAddModList", FT_UINT32, BASE_DEC, NULL, 0, @@ -14101,7 +27992,7 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_blackCellsToRemoveList, { "blackCellsToRemoveList", "nr-rrc.blackCellsToRemoveList", FT_UINT32, BASE_DEC, NULL, 0, - "CellIndexList", HFILL }}, + "PCI_RangeIndexList", HFILL }}, { &hf_nr_rrc_blackCellsToAddModList, { "blackCellsToAddModList", "nr-rrc.blackCellsToAddModList", FT_UINT32, BASE_DEC, NULL, 0, @@ -14109,39 +28000,31 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_whiteCellsToRemoveList, { "whiteCellsToRemoveList", "nr-rrc.whiteCellsToRemoveList", FT_UINT32, BASE_DEC, NULL, 0, - "CellIndexList", HFILL }}, + "PCI_RangeIndexList", 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", + { &hf_nr_rrc_ssb_ConfigMobility, + { "ssb-ConfigMobility", "nr-rrc.ssb_ConfigMobility_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, + { &hf_nr_rrc_csi_rs_ResourceConfigMobility, + { "csi-rs-ResourceConfigMobility", "nr-rrc.csi_rs_ResourceConfigMobility", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_rs_ResourceConfigMobility_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", + { &hf_nr_rrc_setup_24, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "CSI_RS_ResourceConfigMobility", 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_25, + { "setup", "nr-rrc.setup", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SSB_ToMeasure_vals), 0, + "SSB_ToMeasure", HFILL }}, { &hf_nr_rrc_useServingCellTimingForSync, { "useServingCellTimingForSync", "nr-rrc.useServingCellTimingForSync", FT_BOOLEAN, BASE_NONE, NULL, 0, @@ -14150,7 +28033,7 @@ void proto_register_nr_rrc(void) { { "smtc1", "nr-rrc.smtc1_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_periodicityAndOffset, + { &hf_nr_rrc_periodicityAndOffset_01, { "periodicityAndOffset", "nr-rrc.periodicityAndOffset", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicityAndOffset_vals), 0, NULL, HFILL }}, @@ -14178,30 +28061,10 @@ void proto_register_nr_rrc(void) { { "sf160", "nr-rrc.sf160", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_159", HFILL }}, - { &hf_nr_rrc_duration, + { &hf_nr_rrc_duration_01, { "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, @@ -14209,39 +28072,75 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_pci_List, { "pci-List", "nr-rrc.pci_List", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysicalCellId", HFILL }}, + "SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId", HFILL }}, { &hf_nr_rrc_pci_List_item, - { "PhysicalCellId", "nr-rrc.PhysicalCellId", + { "PhysCellId", "nr-rrc.PhysCellId", 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", + { &hf_nr_rrc_periodicity_01, + { "periodicity", "nr-rrc.periodicity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicity_01_vals), 0, + "T_periodicity_01", HFILL }}, + { &hf_nr_rrc_ss_RSSI_Measurement, + { "ss-RSSI-Measurement", "nr-rrc.ss_RSSI_Measurement_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, + { &hf_nr_rrc_measurementSlots, + { "measurementSlots", "nr-rrc.measurementSlots", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_measurementSlots_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_kHz15, + { "kHz15", "nr-rrc.kHz15", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1", HFILL }}, + { &hf_nr_rrc_kHz30, + { "kHz30", "nr-rrc.kHz30", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_kHz60, + { "kHz60", "nr-rrc.kHz60", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_nr_rrc_kHz120, + { "kHz120", "nr-rrc.kHz120", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_endSymbol, + { "endSymbol", "nr-rrc.endSymbol", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_13", HFILL }}, { &hf_nr_rrc_isServingCellMO, { "isServingCellMO", "nr-rrc.isServingCellMO", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, + { &hf_nr_rrc_csi_RS_CellList_Mobility, + { "csi-RS-CellList-Mobility", "nr-rrc.csi_RS_CellList_Mobility", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility", HFILL }}, + { &hf_nr_rrc_csi_RS_CellList_Mobility_item, + { "CSI-RS-CellMobility", "nr-rrc.CSI_RS_CellMobility_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellId, + { "cellId", "nr-rrc.cellId", + FT_UINT32, BASE_DEC, NULL, 0, + "PhysCellId", 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_nrofPRBs, + { "nrofPRBs", "nr-rrc.nrofPRBs", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofPRBs_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_startPRB, + { "startPRB", "nr-rrc.startPRB", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_2169", HFILL }}, + { &hf_nr_rrc_density_01, + { "density", "nr-rrc.density", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_density_01_vals), 0, + "T_density_01", HFILL }}, { &hf_nr_rrc_csi_rs_ResourceList_Mobility, { "csi-rs-ResourceList-Mobility", "nr-rrc.csi_rs_ResourceList_Mobility", FT_UINT32, BASE_DEC, NULL, 0, @@ -14250,30 +28149,46 @@ void proto_register_nr_rrc(void) { { "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_ms4, + { "ms4", "nr-rrc.ms4", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, NULL, 0, + "INTEGER_0_31", 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", + "INTEGER_0_39", HFILL }}, + { &hf_nr_rrc_ms10_01, + { "ms10", "nr-rrc.ms10", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_79", HFILL }}, + { &hf_nr_rrc_ms20_01, + { "ms20", "nr-rrc.ms20", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_159", HFILL }}, + { &hf_nr_rrc_ms40_01, + { "ms40", "nr-rrc.ms40", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_319", HFILL }}, + { &hf_nr_rrc_associatedSSB, + { "associatedSSB", "nr-rrc.associatedSSB_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_isQuasiColocated, + { "isQuasiColocated", "nr-rrc.isQuasiColocated", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_frequencyDomainAllocation_02, + { "frequencyDomainAllocation", "nr-rrc.frequencyDomainAllocation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyDomainAllocation_01_vals), 0, + "T_frequencyDomainAllocation_01", HFILL }}, { &hf_nr_rrc_sequenceGenerationConfig, - { "sequenceGenerationConfig", "nr-rrc.sequenceGenerationConfig_element", - FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, + { "sequenceGenerationConfig", "nr-rrc.sequenceGenerationConfig", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, { &hf_nr_rrc_rsrpOffsetSSB, { "rsrpOffsetSSB", "nr-rrc.rsrpOffsetSSB", FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, @@ -14298,26 +28213,34 @@ void proto_register_nr_rrc(void) { { "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", + { &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_thresholdRSRP, + { "thresholdRSRP", "nr-rrc.thresholdRSRP", FT_UINT32, BASE_DEC, NULL, 0, "RSRP_Range", HFILL }}, - { &hf_nr_rrc_threshold_RSRQ, - { "threshold-RSRQ", "nr-rrc.threshold_RSRQ", + { &hf_nr_rrc_thresholdRSRQ, + { "thresholdRSRQ", "nr-rrc.thresholdRSRQ", FT_UINT32, BASE_DEC, NULL, 0, "RSRQ_Range", HFILL }}, - { &hf_nr_rrc_threshold_SINR, - { "threshold-SINR", "nr-rrc.threshold_SINR", + { &hf_nr_rrc_thresholdSINR, + { "thresholdSINR", "nr-rrc.thresholdSINR", 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_cellIndividualOffset, { "cellIndividualOffset", "nr-rrc.cellIndividualOffset_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14326,8 +28249,12 @@ void proto_register_nr_rrc(void) { { "BlackCellsToAddMod", "nr-rrc.BlackCellsToAddMod_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_physCellIdRange, - { "physCellIdRange", "nr-rrc.physCellIdRange_element", + { &hf_nr_rrc_pci_RangeIndex, + { "pci-RangeIndex", "nr-rrc.pci_RangeIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pci_Range, + { "pci-Range", "nr-rrc.pci_Range_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_WhiteCellsToAddModList_item, @@ -14346,10 +28273,6 @@ void proto_register_nr_rrc(void) { { "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, @@ -14362,10 +28285,6 @@ void proto_register_nr_rrc(void) { { "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, @@ -14387,8 +28306,8 @@ void proto_register_nr_rrc(void) { 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, + { "cgi-Info", "nr-rrc.cgi_Info", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cgi_Info_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_measResult, { "measResult", "nr-rrc.measResult_element", @@ -14398,86 +28317,158 @@ void proto_register_nr_rrc(void) { { "cellResults", "nr-rrc.cellResults_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_resultsSSBCell, - { "resultsSSBCell", "nr-rrc.resultsSSBCell_element", + { &hf_nr_rrc_resultsSSB_Cell, + { "resultsSSB-Cell", "nr-rrc.resultsSSB_Cell_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_resultsCSI_RSCell, - { "resultsCSI-RSCell", "nr-rrc.resultsCSI_RSCell_element", + "MeasQuantityResults", HFILL }}, + { &hf_nr_rrc_resultsCSI_RS_Cell, + { "resultsCSI-RS-Cell", "nr-rrc.resultsCSI_RS_Cell_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, + "MeasQuantityResults", 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", + { &hf_nr_rrc_resultsSSB_Indexes, + { "resultsSSB-Indexes", "nr-rrc.resultsSSB_Indexes", FT_UINT32, BASE_DEC, NULL, 0, - "ResultsPerSSBIndexList", HFILL }}, - { &hf_nr_rrc_resultsCSI_RSIndexes, - { "resultsCSI-RSIndexes", "nr-rrc.resultsCSI_RSIndexes", + "ResultsPerSSB_IndexList", HFILL }}, + { &hf_nr_rrc_resultsCSI_RS_Indexes, + { "resultsCSI-RS-Indexes", "nr-rrc.resultsCSI_RS_Indexes", FT_UINT32, BASE_DEC, NULL, 0, - "ResultsPerCSI_RSIndexList", HFILL }}, - { &hf_nr_rrc_ssb_Cellrsrp, - { "ssb-Cellrsrp", "nr-rrc.ssb_Cellrsrp", + "ResultsPerCSI_RS_IndexList", HFILL }}, + { &hf_nr_rrc_rsrp, + { "rsrp", "nr-rrc.rsrp", FT_UINT32, BASE_DEC, NULL, 0, "RSRP_Range", HFILL }}, - { &hf_nr_rrc_ssb_Cellrsrq, - { "ssb-Cellrsrq", "nr-rrc.ssb_Cellrsrq", + { &hf_nr_rrc_rsrq, + { "rsrq", "nr-rrc.rsrq", FT_UINT32, BASE_DEC, NULL, 0, "RSRQ_Range", HFILL }}, - { &hf_nr_rrc_ssb_Cellsinr, - { "ssb-Cellsinr", "nr-rrc.ssb_Cellsinr", + { &hf_nr_rrc_sinr, + { "sinr", "nr-rrc.sinr", 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", + { &hf_nr_rrc_ResultsPerSSB_IndexList_item, + { "ResultsPerSSB-Index", "nr-rrc.ResultsPerSSB_Index_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_Results, + { "ssb-Results", "nr-rrc.ssb_Results_element", + FT_NONE, BASE_NONE, NULL, 0, + "MeasQuantityResults", HFILL }}, + { &hf_nr_rrc_ResultsPerCSI_RS_IndexList_item, + { "ResultsPerCSI-RS-Index", "nr-rrc.ResultsPerCSI_RS_Index_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RS_Results, + { "csi-RS-Results", "nr-rrc.csi_RS_Results_element", + FT_NONE, BASE_NONE, NULL, 0, + "MeasQuantityResults", HFILL }}, + { &hf_nr_rrc_measResultServFreqList, + { "measResultServFreqList", "nr-rrc.measResultServFreqList", FT_UINT32, BASE_DEC, NULL, 0, - "RSRQ_Range", HFILL }}, - { &hf_nr_rrc_csi_rs_Cellsinr, - { "csi-rs-Cellsinr", "nr-rrc.csi_rs_Cellsinr", + "MeasResultServFreqList2NR", HFILL }}, + { &hf_nr_rrc_measResultNeighCells_01, + { "measResultNeighCells", "nr-rrc.measResultNeighCells", FT_UINT32, BASE_DEC, NULL, 0, - "SINR_Range", HFILL }}, - { &hf_nr_rrc_ResultsPerSSBIndexList_item, - { "ResultsPerSSBIndex", "nr-rrc.ResultsPerSSBIndex_element", + "MeasResultList2NR", HFILL }}, + { &hf_nr_rrc_MeasResultServFreqList2NR_item, + { "MeasResultServFreq2NR", "nr-rrc.MeasResultServFreq2NR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_MeasResultList2NR_item, + { "MeasResult2NR", "nr-rrc.MeasResult2NR_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_ss_rsrp, - { "ss-rsrp", "nr-rrc.ss_rsrp", + { &hf_nr_rrc_MeasResultCellListSFTD_item, + { "MeasResultCellSFTD", "nr-rrc.MeasResultCellSFTD_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sfn_OffsetResult, + { "sfn-OffsetResult", "nr-rrc.sfn_OffsetResult", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, + { &hf_nr_rrc_frameBoundaryOffsetResult, + { "frameBoundaryOffsetResult", "nr-rrc.frameBoundaryOffsetResult", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M30720_30719", HFILL }}, + { &hf_nr_rrc_rsrp_Result, + { "rsrp-Result", "nr-rrc.rsrp_Result", FT_UINT32, BASE_DEC, NULL, 0, "RSRP_Range", HFILL }}, - { &hf_nr_rrc_ss_rsrq, - { "ss-rsrq", "nr-rrc.ss_rsrq", + { &hf_nr_rrc_MultiFrequencyBandListNR_item, + { "FreqBandIndicatorNR", "nr-rrc.FreqBandIndicatorNR", FT_UINT32, BASE_DEC, NULL, 0, - "RSRQ_Range", HFILL }}, - { &hf_nr_rrc_ss_sinr, - { "ss-sinr", "nr-rrc.ss_sinr", + NULL, HFILL }}, + { &hf_nr_rrc_nzp_CSI_ResourceSetId, + { "nzp-CSI-ResourceSetId", "nr-rrc.nzp_CSI_ResourceSetId", 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, + "NZP_CSI_RS_ResourceSetId", HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_Resources, + { "nzp-CSI-RS-Resources", "nr-rrc.nzp_CSI_RS_Resources", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_ResourceId", HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_Resources_item, + { "NZP-CSI-RS-ResourceId", "nr-rrc.NZP_CSI_RS_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_repetition, + { "repetition", "nr-rrc.repetition", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_repetition_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_aperiodicTriggeringOffset, + { "aperiodicTriggeringOffset", "nr-rrc.aperiodicTriggeringOffset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4", HFILL }}, + { &hf_nr_rrc_trs_Info, + { "trs-Info", "nr-rrc.trs_Info", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_trs_Info_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_csi_rsIndex, - { "csi-rsIndex", "nr-rrc.csi_rsIndex", + { &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_resourceMapping, + { "resourceMapping", "nr-rrc.resourceMapping_element", + FT_NONE, BASE_NONE, NULL, 0, + "CSI_RS_ResourceMapping", HFILL }}, + { &hf_nr_rrc_powerControlOffset, + { "powerControlOffset", "nr-rrc.powerControlOffset", FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M8_15", HFILL }}, + { &hf_nr_rrc_powerControlOffsetSS, + { "powerControlOffsetSS", "nr-rrc.powerControlOffsetSS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_powerControlOffsetSS_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_csi_rsrq, - { "csi-rsrq", "nr-rrc.csi_rsrq", + { &hf_nr_rrc_scramblingID, + { "scramblingID", "nr-rrc.scramblingID", FT_UINT32, BASE_DEC, NULL, 0, - "RSRQ_Range", HFILL }}, - { &hf_nr_rrc_csi_sinr, - { "csi-sinr", "nr-rrc.csi_sinr", + NULL, HFILL }}, + { &hf_nr_rrc_qcl_InfoPeriodicCSI_RS, + { "qcl-InfoPeriodicCSI-RS", "nr-rrc.qcl_InfoPeriodicCSI_RS", FT_UINT32, BASE_DEC, NULL, 0, - "SINR_Range", HFILL }}, + "TCI_StateId", HFILL }}, + { &hf_nr_rrc_PCI_List_item, + { "PhysCellId", "nr-rrc.PhysCellId", + FT_UINT32, BASE_DEC, NULL, 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 }}, + { &hf_nr_rrc_PCI_RangeIndexList_item, + { "PCI-RangeIndex", "nr-rrc.PCI_RangeIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_controlResourceSetToAddModList, { "controlResourceSetToAddModList", "nr-rrc.controlResourceSetToAddModList", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceSet", HFILL }}, + "SEQUENCE_SIZE_1_3_OF_ControlResourceSet", HFILL }}, { &hf_nr_rrc_controlResourceSetToAddModList_item, { "ControlResourceSet", "nr-rrc.ControlResourceSet_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14485,15 +28476,15 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_controlResourceSetToReleaseList, { "controlResourceSetToReleaseList", "nr-rrc.controlResourceSetToReleaseList", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxNrofControlResourceSets_OF_ControlResourceId", HFILL }}, + "SEQUENCE_SIZE_1_3_OF_ControlResourceSetId", HFILL }}, { &hf_nr_rrc_controlResourceSetToReleaseList_item, - { "ControlResourceId", "nr-rrc.ControlResourceId", + { "ControlResourceSetId", "nr-rrc.ControlResourceSetId", 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 }}, + "SEQUENCE_SIZE_1_10_OF_SearchSpace", HFILL }}, { &hf_nr_rrc_searchSpacesToAddModList_item, { "SearchSpace", "nr-rrc.SearchSpace_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14501,191 +28492,79 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_searchSpacesToReleaseList, { "searchSpacesToReleaseList", "nr-rrc.searchSpacesToReleaseList", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxNrofSearchSpaces_OF_SearchSpaceId", HFILL }}, + "SEQUENCE_SIZE_1_10_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, + { &hf_nr_rrc_downlinkPreemption, + { "downlinkPreemption", "nr-rrc.downlinkPreemption", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_downlinkPreemption_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_dl_assignment_to_DL_data, - { "dl-assignment-to-DL-data", "nr-rrc.dl_assignment_to_DL_data_element", + { &hf_nr_rrc_setup_26, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "DownlinkPreemption", HFILL }}, + { &hf_nr_rrc_slotFormatIndicator, + { "slotFormatIndicator", "nr-rrc.slotFormatIndicator", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_slotFormatIndicator_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_ul_assignment_to_UL_data, - { "ul-assignment-to-UL-data", "nr-rrc.ul_assignment_to_UL_data_element", + { &hf_nr_rrc_setup_27, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "SlotFormatIndicator", HFILL }}, + { &hf_nr_rrc_tpc_PUSCH, + { "tpc-PUSCH", "nr-rrc.tpc_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpc_PUSCH_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_dl_data_to_UL_ACK, - { "dl-data-to-UL-ACK", "nr-rrc.dl_data_to_UL_ACK_element", + { &hf_nr_rrc_setup_28, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "PUSCH_TPC_CommandConfig", HFILL }}, + { &hf_nr_rrc_tpc_PUCCH, + { "tpc-PUCCH", "nr-rrc.tpc_PUCCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpc_PUCCH_vals), 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", + { &hf_nr_rrc_setup_29, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_startSymbol, - { "startSymbol", "nr-rrc.startSymbol", + "PUCCH_TPC_CommandConfig", HFILL }}, + { &hf_nr_rrc_commonControlResourcesSets, + { "commonControlResourcesSets", "nr-rrc.commonControlResourcesSets", 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", + "SEQUENCE_SIZE_1_2_OF_ControlResourceSet", HFILL }}, + { &hf_nr_rrc_commonControlResourcesSets_item, + { "ControlResourceSet", "nr-rrc.ControlResourceSet_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_searchSpaceId, - { "searchSpaceId", "nr-rrc.searchSpaceId", + { &hf_nr_rrc_commonSearchSpaces, + { "commonSearchSpaces", "nr-rrc.commonSearchSpaces", 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", + "SEQUENCE_SIZE_1_4_OF_SearchSpace", HFILL }}, + { &hf_nr_rrc_commonSearchSpaces_item, + { "SearchSpace", "nr-rrc.SearchSpace_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_sl2, - { "sl2", "nr-rrc.sl2", + { &hf_nr_rrc_searchSpaceSIB1, + { "searchSpaceSIB1", "nr-rrc.searchSpaceSIB1", 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", + "SearchSpaceId", HFILL }}, + { &hf_nr_rrc_searchSpaceOtherSystemInformation, + { "searchSpaceOtherSystemInformation", "nr-rrc.searchSpaceOtherSystemInformation", 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", + "SearchSpaceId", HFILL }}, + { &hf_nr_rrc_pagingSearchSpace, + { "pagingSearchSpace", "nr-rrc.pagingSearchSpace", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_1", HFILL }}, - { &hf_nr_rrc_slotFormatCombinations, - { "slotFormatCombinations", "nr-rrc.slotFormatCombinations", + "SearchSpaceId", HFILL }}, + { &hf_nr_rrc_ra_ControlResourceSet, + { "ra-ControlResourceSet", "nr-rrc.ra_ControlResourceSet", 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", + "ControlResourceSetId", HFILL }}, + { &hf_nr_rrc_ra_SearchSpace, + { "ra-SearchSpace", "nr-rrc.ra_SearchSpace", FT_UINT32, BASE_DEC, NULL, 0, - NULL, HFILL }}, + "SearchSpaceId", HFILL }}, { &hf_nr_rrc_drb, { "drb", "nr-rrc.drb_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14694,13 +28573,13 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_pdcp_SN_SizeUL, + { "pdcp-SN-SizeUL", "nr-rrc.pdcp_SN_SizeUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcp_SN_SizeUL_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, + { &hf_nr_rrc_pdcp_SN_SizeDL, + { "pdcp-SN-SizeDL", "nr-rrc.pdcp_SN_SizeDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcp_SN_SizeDL_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_headerCompression, { "headerCompression", "nr-rrc.headerCompression", @@ -14758,6 +28637,10 @@ void proto_register_nr_rrc(void) { { "profile0x0104", "nr-rrc.profile0x0104", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, + { &hf_nr_rrc_drb_ContinueROHC, + { "drb-ContinueROHC", "nr-rrc.drb_ContinueROHC", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, { &hf_nr_rrc_uplinkOnlyROHC, { "uplinkOnlyROHC", "nr-rrc.uplinkOnlyROHC_element", FT_NONE, BASE_NONE, NULL, 0, @@ -14768,10 +28651,14 @@ void proto_register_nr_rrc(void) { "T_profiles_01", HFILL }}, { &hf_nr_rrc_integrityProtection, { "integrityProtection", "nr-rrc.integrityProtection", - FT_BOOLEAN, BASE_NONE, NULL, 0, - "BOOLEAN", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_integrityProtection_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_statusReportRequired, { "statusReportRequired", "nr-rrc.statusReportRequired", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_statusReportRequired_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_outOfOrderDelivery, + { "outOfOrderDelivery", "nr-rrc.outOfOrderDelivery", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_nr_rrc_moreThanOneRLC, @@ -14792,472 +28679,976 @@ void proto_register_nr_rrc(void) { "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, + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_UL_DataSplitThreshold_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcp_Duplication, + { "pdcp-Duplication", "nr-rrc.pdcp_Duplication", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcp_Duplication_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, + { &hf_nr_rrc_dataScramblingIdentityPDSCH, + { "dataScramblingIdentityPDSCH", "nr-rrc.dataScramblingIdentityPDSCH", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1007", HFILL }}, + { &hf_nr_rrc_dmrs_DownlinkForPDSCH_MappingTypeA, + { "dmrs-DownlinkForPDSCH-MappingTypeA", "nr-rrc.dmrs_DownlinkForPDSCH_MappingTypeA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeA_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_dmrs_group1, - { "dmrs-group1", "nr-rrc.dmrs_group1_element", + { &hf_nr_rrc_setup_30, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "DMRS_DownlinkConfig", HFILL }}, + { &hf_nr_rrc_dmrs_DownlinkForPDSCH_MappingTypeB, + { "dmrs-DownlinkForPDSCH-MappingTypeB", "nr-rrc.dmrs_DownlinkForPDSCH_MappingTypeB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_dmrs_group2, - { "dmrs-group2", "nr-rrc.dmrs_group2_element", + { &hf_nr_rrc_tci_StatesToAddModList, + { "tci-StatesToAddModList", "nr-rrc.tci_StatesToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_State", HFILL }}, + { &hf_nr_rrc_tci_StatesToAddModList_item, + { "TCI-State", "nr-rrc.TCI_State_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, + { &hf_nr_rrc_tci_StatesToReleaseList, + { "tci-StatesToReleaseList", "nr-rrc.tci_StatesToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_StateId", HFILL }}, + { &hf_nr_rrc_tci_StatesToReleaseList_item, + { "TCI-StateId", "nr-rrc.TCI_StateId", + FT_UINT32, BASE_DEC, NULL, 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", + { &hf_nr_rrc_vrb_ToPRB_Interleaver, + { "vrb-ToPRB-Interleaver", "nr-rrc.vrb_ToPRB_Interleaver", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_vrb_ToPRB_Interleaver_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_resourceAllocation_01, + { "resourceAllocation", "nr-rrc.resourceAllocation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourceAllocation_01_vals), 0, + "T_resourceAllocation_01", HFILL }}, + { &hf_nr_rrc_pdsch_AllocationList, + { "pdsch-AllocationList", "nr-rrc.pdsch_AllocationList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofDL_Allocations_OF_PDSCH_TimeDomainResourceAllocation", HFILL }}, + { &hf_nr_rrc_pdsch_AllocationList_item, + { "PDSCH-TimeDomainResourceAllocation", "nr-rrc.PDSCH_TimeDomainResourceAllocation_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_tci_rs_SetConfig, - { "tci-rs-SetConfig", "nr-rrc.tci_rs_SetConfig_element", + { &hf_nr_rrc_pdsch_AggregationFactor, + { "pdsch-AggregationFactor", "nr-rrc.pdsch_AggregationFactor", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_AggregationFactor_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rateMatchPatternToAddModList, + { "rateMatchPatternToAddModList", "nr-rrc.rateMatchPatternToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern", HFILL }}, + { &hf_nr_rrc_rateMatchPatternToAddModList_item, + { "RateMatchPattern", "nr-rrc.RateMatchPattern_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, + { &hf_nr_rrc_rateMatchPatternToReleaseList, + { "rateMatchPatternToReleaseList", "nr-rrc.rateMatchPatternToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId", HFILL }}, + { &hf_nr_rrc_rateMatchPatternToReleaseList_item, + { "RateMatchPatternId", "nr-rrc.RateMatchPatternId", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_xOverhead, - { "xOverhead", "nr-rrc.xOverhead", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_xOverhead_vals), 0, + { &hf_nr_rrc_rateMatchPatternGroup1, + { "rateMatchPatternGroup1", "nr-rrc.rateMatchPatternGroup1", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId", HFILL }}, + { &hf_nr_rrc_rateMatchPatternGroup1_item, + { "RateMatchPatternId", "nr-rrc.RateMatchPatternId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rateMatchPatternGroup2, + { "rateMatchPatternGroup2", "nr-rrc.rateMatchPatternGroup2", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId", HFILL }}, + { &hf_nr_rrc_rateMatchPatternGroup2_item, + { "RateMatchPatternId", "nr-rrc.RateMatchPatternId", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_pdsch_symbolAllocation, - { "pdsch-symbolAllocation", "nr-rrc.pdsch_symbolAllocation_element", + { &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_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_maxNrofCodeWordsScheduledByDCI, + { "maxNrofCodeWordsScheduledByDCI", "nr-rrc.maxNrofCodeWordsScheduledByDCI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNrofCodeWordsScheduledByDCI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_prb_BundlingType, + { "prb-BundlingType", "nr-rrc.prb_BundlingType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_prb_BundlingType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_static, + { "static", "nr-rrc.static_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_rateMatchResourcesPDSCH, - { "rateMatchResourcesPDSCH", "nr-rrc.rateMatchResourcesPDSCH_element", + { &hf_nr_rrc_bundleSize, + { "bundleSize", "nr-rrc.bundleSize", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bundleSize_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamic_01, + { "dynamic", "nr-rrc.dynamic_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, + { &hf_nr_rrc_bundleSizeSet1, + { "bundleSizeSet1", "nr-rrc.bundleSizeSet1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bundleSizeSet1_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_05, - { "setup", "nr-rrc.setup", + { &hf_nr_rrc_bundleSizeSet2, + { "bundleSizeSet2", "nr-rrc.bundleSizeSet2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bundleSizeSet2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_zp_CSI_RS_ResourceToAddModList, + { "zp-CSI-RS-ResourceToAddModList", "nr-rrc.zp_CSI_RS_ResourceToAddModList", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPattern", HFILL }}, - { &hf_nr_rrc_setup_item, - { "RateMatchPattern", "nr-rrc.RateMatchPattern_element", + "SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_Resource", HFILL }}, + { &hf_nr_rrc_zp_CSI_RS_ResourceToAddModList_item, + { "ZP-CSI-RS-Resource", "nr-rrc.ZP_CSI_RS_Resource_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, + { &hf_nr_rrc_zp_CSI_RS_ResourceToReleaseList, + { "zp-CSI-RS-ResourceToReleaseList", "nr-rrc.zp_CSI_RS_ResourceToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_ResourceId", HFILL }}, + { &hf_nr_rrc_zp_CSI_RS_ResourceToReleaseList_item, + { "ZP-CSI-RS-ResourceId", "nr-rrc.ZP_CSI_RS_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_06, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList, + { "aperiodic-ZP-CSI-RS-ResourceSetsToAddModList", "nr-rrc.aperiodic_ZP_CSI_RS_ResourceSetsToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet", HFILL }}, + { &hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToAddModList_item, + { "ZP-CSI-RS-ResourceSet", "nr-rrc.ZP_CSI_RS_ResourceSet_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, + { &hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList, + { "aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList", "nr-rrc.aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId", HFILL }}, + { &hf_nr_rrc_aperiodic_ZP_CSI_RS_ResourceSetsToReleaseList_item, + { "ZP-CSI-RS-ResourceSetId", "nr-rrc.ZP_CSI_RS_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 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, + { &hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToAddModList, + { "sp-ZP-CSI-RS-ResourceSetsToAddModList", "nr-rrc.sp_ZP_CSI_RS_ResourceSetsToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet", HFILL }}, + { &hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToAddModList_item, + { "ZP-CSI-RS-ResourceSet", "nr-rrc.ZP_CSI_RS_ResourceSet_element", + FT_NONE, BASE_NONE, NULL, 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, + { &hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToReleaseList, + { "sp-ZP-CSI-RS-ResourceSetsToReleaseList", "nr-rrc.sp_ZP_CSI_RS_ResourceSetsToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId", HFILL }}, + { &hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToReleaseList_item, + { "ZP-CSI-RS-ResourceSetId", "nr-rrc.ZP_CSI_RS_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_maxNrofCodeWordsScheduledByDCI, - { "maxNrofCodeWordsScheduledByDCI", "nr-rrc.maxNrofCodeWordsScheduledByDCI", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNrofCodeWordsScheduledByDCI_vals), 0, + { &hf_nr_rrc_codeBlockGroupTransmission, + { "codeBlockGroupTransmission", "nr-rrc.codeBlockGroupTransmission", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codeBlockGroupTransmission_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_nrofHARQ_processesForPDSCH, - { "nrofHARQ-processesForPDSCH", "nr-rrc.nrofHARQ_processesForPDSCH_element", + { &hf_nr_rrc_setup_31, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "PDSCH_CodeBlockGroupTransmission", 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_harq_ACK_Codebook, - { "harq-ACK-Codebook", "nr-rrc.harq_ACK_Codebook", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_harq_ACK_Codebook_vals), 0, + { &hf_nr_rrc_nrofHARQ_ProcessesForPDSCH, + { "nrofHARQ-ProcessesForPDSCH", "nr-rrc.nrofHARQ_ProcessesForPDSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofHARQ_ProcessesForPDSCH_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_pdsch_BundleSize, - { "pdsch-BundleSize", "nr-rrc.pdsch_BundleSize_element", - FT_NONE, BASE_NONE, NULL, 0, + { &hf_nr_rrc_pucch_Cell, + { "pucch-Cell", "nr-rrc.pucch_Cell", + FT_UINT32, BASE_DEC, NULL, 0, + "ServCellIndex", 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_prbBundlingEnabled, - { "prbBundlingEnabled", "nr-rrc.prbBundlingEnabled", + { &hf_nr_rrc_codeBlockGroupFlushIndicator, + { "codeBlockGroupFlushIndicator", "nr-rrc.codeBlockGroupFlushIndicator", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, + { &hf_nr_rrc_k0, + { "k0", "nr-rrc.k0", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_3", HFILL }}, + { &hf_nr_rrc_mappingType, + { "mappingType", "nr-rrc.mappingType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mappingType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_startSymbolAndLength, + { "startSymbolAndLength", "nr-rrc.startSymbolAndLength", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_7", HFILL }}, { &hf_nr_rrc_frequencyDensity, - { "frequencyDensity", "nr-rrc.frequencyDensity_element", - FT_NONE, BASE_NONE, NULL, 0, + { "frequencyDensity", "nr-rrc.frequencyDensity", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_frequencyDensity_item, + { "frequencyDensity item", "nr-rrc.frequencyDensity_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_276", HFILL }}, { &hf_nr_rrc_timeDensity, - { "timeDensity", "nr-rrc.timeDensity_element", - FT_NONE, BASE_NONE, NULL, 0, + { "timeDensity", "nr-rrc.timeDensity", + FT_UINT32, BASE_DEC, 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, + { &hf_nr_rrc_timeDensity_item, + { "timeDensity item", "nr-rrc.timeDensity_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_29", HFILL }}, + { &hf_nr_rrc_epre_RatioPort1, + { "epre-RatioPort1", "nr-rrc.epre_RatioPort1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3", HFILL }}, + { &hf_nr_rrc_epre_RatioPort2, + { "epre-RatioPort2", "nr-rrc.epre_RatioPort2", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_epre_RatioPort2_item, + { "epre-RatioPort2 item", "nr-rrc.epre_RatioPort2_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3", HFILL }}, { &hf_nr_rrc_resourceElementOffset, - { "resourceElementOffset", "nr-rrc.resourceElementOffset_element", + { "resourceElementOffset", "nr-rrc.resourceElementOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourceElementOffset_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_modeSpecificParameters, + { "modeSpecificParameters", "nr-rrc.modeSpecificParameters", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_modeSpecificParameters_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cp_OFDM, + { "cp-OFDM", "nr-rrc.cp_OFDM_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", + { &hf_nr_rrc_frequencyDensity_01, + { "frequencyDensity", "nr-rrc.frequencyDensity", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_4", HFILL }}, - { &hf_nr_rrc_n10, - { "n10", "nr-rrc.n10", + "T_frequencyDensity_01", HFILL }}, + { &hf_nr_rrc_timeDensity_01, + { "timeDensity", "nr-rrc.timeDensity", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_9", HFILL }}, - { &hf_nr_rrc_n20, - { "n20", "nr-rrc.n20", + "T_timeDensity_01", HFILL }}, + { &hf_nr_rrc_maxNrofPorts, + { "maxNrofPorts", "nr-rrc.maxNrofPorts", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNrofPorts_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_resourceElementOffset_01, + { "resourceElementOffset", "nr-rrc.resourceElementOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourceElementOffset_01_vals), 0, + "T_resourceElementOffset_01", HFILL }}, + { &hf_nr_rrc_ptrs_Power, + { "ptrs-Power", "nr-rrc.ptrs_Power", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ptrs_Power_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dft_S_OFDM, + { "dft-S-OFDM", "nr-rrc.dft_S_OFDM_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_dft_S_OFDM", HFILL }}, + { &hf_nr_rrc_sampleDensity, + { "sampleDensity", "nr-rrc.sampleDensity", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_19", HFILL }}, - { &hf_nr_rrc_n40, - { "n40", "nr-rrc.n40", + NULL, HFILL }}, + { &hf_nr_rrc_sampleDensity_item, + { "sampleDensity item", "nr-rrc.sampleDensity_item", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_39", HFILL }}, - { &hf_nr_rrc_resourceSets, - { "resourceSets", "nr-rrc.resourceSets", + "INTEGER_1_276", HFILL }}, + { &hf_nr_rrc_timeDensity_02, + { "timeDensity", "nr-rrc.timeDensity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_timeDensity_02_vals), 0, + "T_timeDensity_02", HFILL }}, + { &hf_nr_rrc_resourceSetToAddModList, + { "resourceSetToAddModList", "nr-rrc.resourceSetToAddModList", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet", HFILL }}, - { &hf_nr_rrc_resourceSets_item, + "SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet", HFILL }}, + { &hf_nr_rrc_resourceSetToAddModList_item, { "PUCCH-ResourceSet", "nr-rrc.PUCCH_ResourceSet_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_resourceSetToReleaseList, + { "resourceSetToReleaseList", "nr-rrc.resourceSetToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId", HFILL }}, + { &hf_nr_rrc_resourceSetToReleaseList_item, + { "PUCCH-ResourceSetId", "nr-rrc.PUCCH_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resourceToAddModList, + { "resourceToAddModList", "nr-rrc.resourceToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource", HFILL }}, + { &hf_nr_rrc_resourceToAddModList_item, + { "PUCCH-Resource", "nr-rrc.PUCCH_Resource_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resourceToReleaseList, + { "resourceToReleaseList", "nr-rrc.resourceToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId", HFILL }}, + { &hf_nr_rrc_resourceToReleaseList_item, + { "PUCCH-ResourceId", "nr-rrc.PUCCH_ResourceId", + FT_UINT32, BASE_DEC, 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, + { &hf_nr_rrc_setup_32, { "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 }}, + "PUCCH_FormatConfig", 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", + { &hf_nr_rrc_format3, + { "format3", "nr-rrc.format3", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_format3_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_schedulingRequestResourceToAddModList, + { "schedulingRequestResourceToAddModList", "nr-rrc.schedulingRequestResourceToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig", HFILL }}, + { &hf_nr_rrc_schedulingRequestResourceToAddModList_item, + { "SchedulingRequestResourceConfig", "nr-rrc.SchedulingRequestResourceConfig_element", FT_NONE, BASE_NONE, NULL, 0, - "T_setup_06", HFILL }}, - { &hf_nr_rrc_maxCodeRate, - { "maxCodeRate", "nr-rrc.maxCodeRate", + NULL, HFILL }}, + { &hf_nr_rrc_schedulingRequestResourceToReleaseList, + { "schedulingRequestResourceToReleaseList", "nr-rrc.schedulingRequestResourceToReleaseList", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_7", HFILL }}, - { &hf_nr_rrc_nrofPRBs, - { "nrofPRBs", "nr-rrc.nrofPRBs", + "SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId", HFILL }}, + { &hf_nr_rrc_schedulingRequestResourceToReleaseList_item, + { "SchedulingRequestResourceId", "nr-rrc.SchedulingRequestResourceId", 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, + { &hf_nr_rrc_multi_CSI_PUCCH_ResourceList, + { "multi-CSI-PUCCH-ResourceList", "nr-rrc.multi_CSI_PUCCH_ResourceList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_2_OF_PUCCH_ResourceId", HFILL }}, + { &hf_nr_rrc_multi_CSI_PUCCH_ResourceList_item, + { "PUCCH-ResourceId", "nr-rrc.PUCCH_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_09, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_dl_DataToUL_ACK, + { "dl-DataToUL-ACK", "nr-rrc.dl_DataToUL_ACK", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dl_DataToUL_ACK_item, + { "dl-DataToUL-ACK item", "nr-rrc.dl_DataToUL_ACK_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_nr_rrc_spatialRelationInfoToAddModList, + { "spatialRelationInfoToAddModList", "nr-rrc.spatialRelationInfoToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo", HFILL }}, + { &hf_nr_rrc_spatialRelationInfoToAddModList_item, + { "PUCCH-SpatialRelationInfo", "nr-rrc.PUCCH_SpatialRelationInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spatialRelationInfoToReleaseList, + { "spatialRelationInfoToReleaseList", "nr-rrc.spatialRelationInfoToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId", HFILL }}, + { &hf_nr_rrc_spatialRelationInfoToReleaseList_item, + { "PUCCH-SpatialRelationInfoId", "nr-rrc.PUCCH_SpatialRelationInfoId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pucch_PowerControl, + { "pucch-PowerControl", "nr-rrc.pucch_PowerControl_element", FT_NONE, BASE_NONE, NULL, 0, - "T_setup_07", HFILL }}, - { &hf_nr_rrc_interslotFrequencyHopping_01, + NULL, HFILL }}, + { &hf_nr_rrc_interslotFrequencyHopping, { "interslotFrequencyHopping", "nr-rrc.interslotFrequencyHopping", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interslotFrequencyHopping_01_vals), 0, - "T_interslotFrequencyHopping_01", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interslotFrequencyHopping_vals), 0, + NULL, 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, + { &hf_nr_rrc_maxCodeRate, + { "maxCodeRate", "nr-rrc.maxCodeRate", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PUCCH_MaxCodeRate_vals), 0, + "PUCCH_MaxCodeRate", HFILL }}, + { &hf_nr_rrc_nrofSlots, { "nrofSlots", "nr-rrc.nrofSlots", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofSlots_01_vals), 0, - "T_nrofSlots_01", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofSlots_vals), 0, + NULL, 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, + { &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_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, + { &hf_nr_rrc_pucch_SpatialRelationInfoId, + { "pucch-SpatialRelationInfoId", "nr-rrc.pucch_SpatialRelationInfoId", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_11, - { "setup", "nr-rrc.setup", + { &hf_nr_rrc_referenceSignal, + { "referenceSignal", "nr-rrc.referenceSignal", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_referenceSignal_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RS_Index_01, + { "csi-RS-Index", "nr-rrc.csi_RS_Index", + FT_UINT32, BASE_DEC, NULL, 0, + "NZP_CSI_RS_ResourceId", HFILL }}, + { &hf_nr_rrc_srs, + { "srs", "nr-rrc.srs", + FT_UINT32, BASE_DEC, NULL, 0, + "SRS_ResourceId", HFILL }}, + { &hf_nr_rrc_pucch_PathlossReferenceRS_Id, + { "pucch-PathlossReferenceRS-Id", "nr-rrc.pucch_PathlossReferenceRS_Id", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_p0_PUCCH_Id, + { "p0-PUCCH-Id", "nr-rrc.p0_PUCCH_Id", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_closedLoopIndex, + { "closedLoopIndex", "nr-rrc.closedLoopIndex", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_closedLoopIndex_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pucch_ResourceSetId, + { "pucch-ResourceSetId", "nr-rrc.pucch_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resources, + { "resources", "nr-rrc.resources", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_8_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId", HFILL }}, + { &hf_nr_rrc_resources_item, + { "PUCCH-ResourceId", "nr-rrc.PUCCH_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxPayloadMinus1, + { "maxPayloadMinus1", "nr-rrc.maxPayloadMinus1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_4_256", HFILL }}, + { &hf_nr_rrc_pucch_ResourceId, + { "pucch-ResourceId", "nr-rrc.pucch_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_startingPRB, + { "startingPRB", "nr-rrc.startingPRB", 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", + "PRB_Id", HFILL }}, + { &hf_nr_rrc_intraSlotFrequencyHopping, + { "intraSlotFrequencyHopping", "nr-rrc.intraSlotFrequencyHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_intraSlotFrequencyHopping_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_secondHopPRB, + { "secondHopPRB", "nr-rrc.secondHopPRB", + FT_UINT32, BASE_DEC, NULL, 0, + "PRB_Id", HFILL }}, + { &hf_nr_rrc_format, + { "format", "nr-rrc.format", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_format_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_format0, + { "format0", "nr-rrc.format0_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUCCH_format0", HFILL }}, + { &hf_nr_rrc_format1_01, + { "format1", "nr-rrc.format1_element", FT_NONE, BASE_NONE, NULL, 0, + "PUCCH_format1", HFILL }}, + { &hf_nr_rrc_format2_01, + { "format2", "nr-rrc.format2_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUCCH_format2", HFILL }}, + { &hf_nr_rrc_format3_01, + { "format3", "nr-rrc.format3_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUCCH_format3", HFILL }}, + { &hf_nr_rrc_format4_01, + { "format4", "nr-rrc.format4_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUCCH_format4", HFILL }}, + { &hf_nr_rrc_initialCyclicShift, + { "initialCyclicShift", "nr-rrc.initialCyclicShift", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_11", HFILL }}, + { &hf_nr_rrc_nrofSymbols, + { "nrofSymbols", "nr-rrc.nrofSymbols", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_2", HFILL }}, + { &hf_nr_rrc_startingSymbolIndex, + { "startingSymbolIndex", "nr-rrc.startingSymbolIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_13", HFILL }}, + { &hf_nr_rrc_nrofSymbols_01, + { "nrofSymbols", "nr-rrc.nrofSymbols", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_4_14", HFILL }}, + { &hf_nr_rrc_startingSymbolIndex_01, + { "startingSymbolIndex", "nr-rrc.startingSymbolIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_10", HFILL }}, + { &hf_nr_rrc_timeDomainOCC, + { "timeDomainOCC", "nr-rrc.timeDomainOCC", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_6", HFILL }}, + { &hf_nr_rrc_nrofPRBs_01, + { "nrofPRBs", "nr-rrc.nrofPRBs", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_16", HFILL }}, + { &hf_nr_rrc_occ_Length, + { "occ-Length", "nr-rrc.occ_Length", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_occ_Length_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_tpc_PUCCH_RNTI, - { "tpc-PUCCH-RNTI", "nr-rrc.tpc_PUCCH_RNTI", + { &hf_nr_rrc_occ_Index, + { "occ-Index", "nr-rrc.occ_Index", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_occ_Index_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pucch_ResourceCommon, + { "pucch-ResourceCommon", "nr-rrc.pucch_ResourceCommon", 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, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_nr_rrc_pucch_GroupHopping, + { "pucch-GroupHopping", "nr-rrc.pucch_GroupHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pucch_GroupHopping_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", + { &hf_nr_rrc_hoppingId, + { "hoppingId", "nr-rrc.hoppingId", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_10", HFILL }}, + { &hf_nr_rrc_p0_nominal, + { "p0-nominal", "nr-rrc.p0_nominal", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M202_24", HFILL }}, + { &hf_nr_rrc_deltaF_PUCCH_f0, + { "deltaF-PUCCH-f0", "nr-rrc.deltaF_PUCCH_f0", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M16_15", HFILL }}, + { &hf_nr_rrc_deltaF_PUCCH_f1, + { "deltaF-PUCCH-f1", "nr-rrc.deltaF_PUCCH_f1", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M16_15", HFILL }}, + { &hf_nr_rrc_deltaF_PUCCH_f2, + { "deltaF-PUCCH-f2", "nr-rrc.deltaF_PUCCH_f2", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M16_15", HFILL }}, + { &hf_nr_rrc_deltaF_PUCCH_f3, + { "deltaF-PUCCH-f3", "nr-rrc.deltaF_PUCCH_f3", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M16_15", HFILL }}, + { &hf_nr_rrc_deltaF_PUCCH_f4, + { "deltaF-PUCCH-f4", "nr-rrc.deltaF_PUCCH_f4", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M16_15", HFILL }}, + { &hf_nr_rrc_p0_Set, + { "p0-Set", "nr-rrc.p0_Set", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH", HFILL }}, + { &hf_nr_rrc_p0_Set_item, + { "P0-PUCCH", "nr-rrc.P0_PUCCH_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, + { &hf_nr_rrc_pathlossReferenceRSs, + { "pathlossReferenceRSs", "nr-rrc.pathlossReferenceRSs", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS", HFILL }}, + { &hf_nr_rrc_pathlossReferenceRSs_item, + { "PUCCH-PathlossReferenceRS", "nr-rrc.PUCCH_PathlossReferenceRS_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_rateMatching, - { "rateMatching", "nr-rrc.rateMatching", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rateMatching_vals), 0, + { &hf_nr_rrc_twoPUCCH_PC_AdjustmentStates, + { "twoPUCCH-PC-AdjustmentStates", "nr-rrc.twoPUCCH_PC_AdjustmentStates", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPUCCH_PC_AdjustmentStates_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_p0_PUCCH_Value, + { "p0-PUCCH-Value", "nr-rrc.p0_PUCCH_Value", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M16_15", HFILL }}, + { &hf_nr_rrc_referenceSignal_01, + { "referenceSignal", "nr-rrc.referenceSignal", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_referenceSignal_01_vals), 0, + "T_referenceSignal_01", HFILL }}, + { &hf_nr_rrc_tpc_IndexPCell, + { "tpc-IndexPCell", "nr-rrc.tpc_IndexPCell", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_15", HFILL }}, + { &hf_nr_rrc_tpc_IndexPUCCH_SCell, + { "tpc-IndexPUCCH-SCell", "nr-rrc.tpc_IndexPUCCH_SCell", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_15", HFILL }}, + { &hf_nr_rrc_dataScramblingIdentityPUSCH, + { "dataScramblingIdentityPUSCH", "nr-rrc.dataScramblingIdentityPUSCH", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1007", HFILL }}, + { &hf_nr_rrc_txConfig, + { "txConfig", "nr-rrc.txConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_txConfig_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_rateMatchResources, - { "rateMatchResources", "nr-rrc.rateMatchResources_element", + { &hf_nr_rrc_dmrs_UplinkForPUSCH_MappingTypeA, + { "dmrs-UplinkForPUSCH-MappingTypeA", "nr-rrc.dmrs_UplinkForPUSCH_MappingTypeA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_33, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "DMRS_UplinkConfig", HFILL }}, + { &hf_nr_rrc_dmrs_UplinkForPUSCH_MappingTypeB, + { "dmrs-UplinkForPUSCH-MappingTypeB", "nr-rrc.dmrs_UplinkForPUSCH_MappingTypeB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_symbolAllocationIndexs, - { "symbolAllocationIndexs", "nr-rrc.symbolAllocationIndexs_element", + { &hf_nr_rrc_pusch_PowerControl, + { "pusch-PowerControl", "nr-rrc.pusch_PowerControl_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_mcs_Table_01, + { &hf_nr_rrc_frequencyHopping_01, + { "frequencyHopping", "nr-rrc.frequencyHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyHopping_01_vals), 0, + "T_frequencyHopping_01", HFILL }}, + { &hf_nr_rrc_frequencyHoppingOffsetLists, + { "frequencyHoppingOffsetLists", "nr-rrc.frequencyHoppingOffsetLists", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_frequencyHoppingOffsetLists_item, + { "frequencyHoppingOffsetLists item", "nr-rrc.frequencyHoppingOffsetLists_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofPhysicalResourceBlocks_1", HFILL }}, + { &hf_nr_rrc_resourceAllocation_02, + { "resourceAllocation", "nr-rrc.resourceAllocation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourceAllocation_02_vals), 0, + "T_resourceAllocation_02", HFILL }}, + { &hf_nr_rrc_pusch_AllocationList, + { "pusch-AllocationList", "nr-rrc.pusch_AllocationList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofUL_Allocations_OF_PUSCH_TimeDomainResourceAllocation", HFILL }}, + { &hf_nr_rrc_pusch_AllocationList_item, + { "PUSCH-TimeDomainResourceAllocation", "nr-rrc.PUSCH_TimeDomainResourceAllocation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pusch_AggregationFactor, + { "pusch-AggregationFactor", "nr-rrc.pusch_AggregationFactor", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_AggregationFactor_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_mcs_Table_02, { "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, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mcs_Table_02_vals), 0, + "T_mcs_Table_02", HFILL }}, + { &hf_nr_rrc_mcs_TableTransformPrecoder_01, { "mcs-TableTransformPrecoder", "nr-rrc.mcs_TableTransformPrecoder", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mcs_TableTransformPrecoder_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_transformPrecoder, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mcs_TableTransformPrecoder_01_vals), 0, + "T_mcs_TableTransformPrecoder_01", HFILL }}, + { &hf_nr_rrc_transformPrecoder_01, { "transformPrecoder", "nr-rrc.transformPrecoder", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_transformPrecoder_vals), 0, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_transformPrecoder_01_vals), 0, + "T_transformPrecoder_01", HFILL }}, + { &hf_nr_rrc_codebookSubset, + { "codebookSubset", "nr-rrc.codebookSubset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codebookSubset_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_rbg_Size_01, + { &hf_nr_rrc_maxRank, + { "maxRank", "nr-rrc.maxRank", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_4", HFILL }}, + { &hf_nr_rrc_rbg_Size_02, { "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, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rbg_Size_02_vals), 0, + "T_rbg_Size_02", HFILL }}, + { &hf_nr_rrc_uci_OnPUSCH_01, + { "uci-OnPUSCH", "nr-rrc.uci_OnPUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uci_OnPUSCH_01_vals), 0, + "T_uci_OnPUSCH_01", HFILL }}, + { &hf_nr_rrc_setup_34, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "UCI_OnPUSCH", HFILL }}, + { &hf_nr_rrc_vrb_ToPRB_Interleaver_01, + { "vrb-ToPRB-Interleaver", "nr-rrc.vrb_ToPRB_Interleaver", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_vrb_ToPRB_Interleaver_01_vals), 0, + "T_vrb_ToPRB_Interleaver_01", HFILL }}, + { &hf_nr_rrc_betaOffsets, + { "betaOffsets", "nr-rrc.betaOffsets", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_betaOffsets_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, + { &hf_nr_rrc_dynamic_02, { "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, + "SEQUENCE_SIZE_4_OF_BetaOffsets", HFILL }}, + { &hf_nr_rrc_scaling, + { "scaling", "nr-rrc.scaling", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scaling_vals), 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, + { &hf_nr_rrc_groupHoppingEnabledTransformPrecoding, + { "groupHoppingEnabledTransformPrecoding", "nr-rrc.groupHoppingEnabledTransformPrecoding", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_groupHoppingEnabledTransformPrecoding_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", + { &hf_nr_rrc_msg3_DeltaPreamble, + { "msg3-DeltaPreamble", "nr-rrc.msg3_DeltaPreamble", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M1_6", HFILL }}, + { &hf_nr_rrc_p0_NominalWithGrant, + { "p0-NominalWithGrant", "nr-rrc.p0_NominalWithGrant", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M202_24", HFILL }}, + { &hf_nr_rrc_tpc_Accumulation, + { "tpc-Accumulation", "nr-rrc.tpc_Accumulation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpc_Accumulation_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_msg3_Alpha, + { "msg3-Alpha", "nr-rrc.msg3_Alpha", + FT_UINT32, BASE_DEC, VALS(nr_rrc_Alpha_vals), 0, + "Alpha", HFILL }}, + { &hf_nr_rrc_p0_NominalWithoutGrant, + { "p0-NominalWithoutGrant", "nr-rrc.p0_NominalWithoutGrant", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M202_24", HFILL }}, + { &hf_nr_rrc_p0_AlphaSets, + { "p0-AlphaSets", "nr-rrc.p0_AlphaSets", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet", HFILL }}, + { &hf_nr_rrc_p0_AlphaSets_item, + { "P0-PUSCH-AlphaSet", "nr-rrc.P0_PUSCH_AlphaSet_element", FT_NONE, BASE_NONE, NULL, 0, - "T_setup_11", HFILL }}, - { &hf_nr_rrc_sampleDensity, - { "sampleDensity", "nr-rrc.sampleDensity_element", + NULL, HFILL }}, + { &hf_nr_rrc_pathlossReferenceRSToAddModList, + { "pathlossReferenceRSToAddModList", "nr-rrc.pathlossReferenceRSToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS", HFILL }}, + { &hf_nr_rrc_pathlossReferenceRSToAddModList_item, + { "PUSCH-PathlossReferenceRS", "nr-rrc.PUSCH_PathlossReferenceRS_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, + { &hf_nr_rrc_pathlossReferenceRSToReleaseList, + { "pathlossReferenceRSToReleaseList", "nr-rrc.pathlossReferenceRSToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_Id", HFILL }}, + { &hf_nr_rrc_pathlossReferenceRSToReleaseList_item, + { "PUSCH-PathlossReferenceRS-Id", "nr-rrc.PUSCH_PathlossReferenceRS_Id", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_sequence, - { "sequence", "nr-rrc.sequence_element", + { &hf_nr_rrc_twoPUSCH_PC_AdjustmentStates, + { "twoPUSCH-PC-AdjustmentStates", "nr-rrc.twoPUSCH_PC_AdjustmentStates", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPUSCH_PC_AdjustmentStates_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_deltaMCS, + { "deltaMCS", "nr-rrc.deltaMCS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_deltaMCS_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sri_PUSCH_MappingToAddModList, + { "sri-PUSCH-MappingToAddModList", "nr-rrc.sri_PUSCH_MappingToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl", HFILL }}, + { &hf_nr_rrc_sri_PUSCH_MappingToAddModList_item, + { "SRI-PUSCH-PowerControl", "nr-rrc.SRI_PUSCH_PowerControl_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_sri_PUSCH_MappingToReleaseList, + { "sri-PUSCH-MappingToReleaseList", "nr-rrc.sri_PUSCH_MappingToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId", HFILL }}, + { &hf_nr_rrc_sri_PUSCH_MappingToReleaseList_item, + { "SRI-PUSCH-PowerControlId", "nr-rrc.SRI_PUSCH_PowerControlId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_p0_PUSCH_AlphaSetId, + { "p0-PUSCH-AlphaSetId", "nr-rrc.p0_PUSCH_AlphaSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_p0, + { "p0", "nr-rrc.p0", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M16_15", HFILL }}, + { &hf_nr_rrc_alpha, + { "alpha", "nr-rrc.alpha", + FT_UINT32, BASE_DEC, VALS(nr_rrc_Alpha_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pusch_PathlossReferenceRS_Id, + { "pusch-PathlossReferenceRS-Id", "nr-rrc.pusch_PathlossReferenceRS_Id", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_referenceSignal_02, + { "referenceSignal", "nr-rrc.referenceSignal", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_referenceSignal_02_vals), 0, + "T_referenceSignal_02", HFILL }}, + { &hf_nr_rrc_sri_PUSCH_PowerControlId, + { "sri-PUSCH-PowerControlId", "nr-rrc.sri_PUSCH_PowerControlId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sri_PUSCH_PathlossReferenceRS_Id, + { "sri-PUSCH-PathlossReferenceRS-Id", "nr-rrc.sri_PUSCH_PathlossReferenceRS_Id", + FT_UINT32, BASE_DEC, NULL, 0, + "PUSCH_PathlossReferenceRS_Id", HFILL }}, + { &hf_nr_rrc_sri_P0_PUSCH_AlphaSetId, + { "sri-P0-PUSCH-AlphaSetId", "nr-rrc.sri_P0_PUSCH_AlphaSetId", + FT_UINT32, BASE_DEC, NULL, 0, + "P0_PUSCH_AlphaSetId", HFILL }}, + { &hf_nr_rrc_sri_PUSCH_ClosedLoopIndex, + { "sri-PUSCH-ClosedLoopIndex", "nr-rrc.sri_PUSCH_ClosedLoopIndex", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sri_PUSCH_ClosedLoopIndex_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_betaOffsetACK_Index1, { "betaOffsetACK-Index1", "nr-rrc.betaOffsetACK_Index1", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_DEC|BASE_EXT_STRING, NULL, 0, "INTEGER_0_31", HFILL }}, { &hf_nr_rrc_betaOffsetACK_Index2, { "betaOffsetACK-Index2", "nr-rrc.betaOffsetACK_Index2", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_DEC|BASE_EXT_STRING, NULL, 0, "INTEGER_0_31", HFILL }}, { &hf_nr_rrc_betaOffsetACK_Index3, { "betaOffsetACK-Index3", "nr-rrc.betaOffsetACK_Index3", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_DEC|BASE_EXT_STRING, 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, + { &hf_nr_rrc_betaOffsetCSI_Part1_Index1, + { "betaOffsetCSI-Part1-Index1", "nr-rrc.betaOffsetCSI_Part1_Index1", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, 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, + { &hf_nr_rrc_betaOffsetCSI_Part1_Index2, + { "betaOffsetCSI-Part1-Index2", "nr-rrc.betaOffsetCSI_Part1_Index2", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, 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, + { &hf_nr_rrc_betaOffsetCSI_Part2_Index1, + { "betaOffsetCSI-Part2-Index1", "nr-rrc.betaOffsetCSI_Part2_Index1", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, 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, + { &hf_nr_rrc_betaOffsetCSI_Part2_Index2, + { "betaOffsetCSI-Part2-Index2", "nr-rrc.betaOffsetCSI_Part2_Index2", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, NULL, 0, "INTEGER_0_31", HFILL }}, - { &hf_nr_rrc_quantityConfigRSindex, - { "quantityConfigRSindex", "nr-rrc.quantityConfigRSindex_element", + { &hf_nr_rrc_codeBlockGroupTransmission_01, + { "codeBlockGroupTransmission", "nr-rrc.codeBlockGroupTransmission", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codeBlockGroupTransmission_01_vals), 0, + "T_codeBlockGroupTransmission_01", HFILL }}, + { &hf_nr_rrc_setup_35, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUSCH_CodeBlockGroupGransmission", 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_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_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_k2, + { "k2", "nr-rrc.k2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_nr_rrc_mappingType_01, + { "mappingType", "nr-rrc.mappingType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mappingType_01_vals), 0, + "T_mappingType_01", HFILL }}, + { &hf_nr_rrc_tpc_Index, + { "tpc-Index", "nr-rrc.tpc_Index", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_15", HFILL }}, + { &hf_nr_rrc_tpc_IndexSUL, + { "tpc-IndexSUL", "nr-rrc.tpc_IndexSUL", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_15", HFILL }}, + { &hf_nr_rrc_targetCell, + { "targetCell", "nr-rrc.targetCell", + FT_UINT32, BASE_DEC, NULL, 0, + "ServCellIndex", HFILL }}, + { &hf_nr_rrc_quantityConfigNR_List, + { "quantityConfigNR-List", "nr-rrc.quantityConfigNR_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_QuantityConfigNR_List_item, + { "QuantityConfigNR", "nr-rrc.QuantityConfigNR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_quantityConfigCell, + { "quantityConfigCell", "nr-rrc.quantityConfigCell_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", + { &hf_nr_rrc_quantityConfigRS_Index, + { "quantityConfigRS-Index", "nr-rrc.quantityConfigRS_Index_element", + FT_NONE, BASE_NONE, NULL, 0, + "QuantityConfigRS", HFILL }}, + { &hf_nr_rrc_ssb_FilterConfig, + { "ssb-FilterConfig", "nr-rrc.ssb_FilterConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + "FilterConfig", HFILL }}, + { &hf_nr_rrc_cs_RS_FilterConfig, + { "cs-RS-FilterConfig", "nr-rrc.cs_RS_FilterConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + "FilterConfig", HFILL }}, + { &hf_nr_rrc_filterCoefficientRSRP, + { "filterCoefficientRSRP", "nr-rrc.filterCoefficientRSRP", FT_UINT32, BASE_DEC, VALS(nr_rrc_FilterCoefficient_vals), 0, "FilterCoefficient", HFILL }}, - { &hf_nr_rrc_csi_rsFilterCoefficientRSRQ, - { "csi-rsFilterCoefficientRSRQ", "nr-rrc.csi_rsFilterCoefficientRSRQ", + { &hf_nr_rrc_filterCoefficientRSRQ, + { "filterCoefficientRSRQ", "nr-rrc.filterCoefficientRSRQ", 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", + { &hf_nr_rrc_filterCoefficientRS_SINR, + { "filterCoefficientRS-SINR", "nr-rrc.filterCoefficientRS_SINR", FT_UINT32, BASE_DEC, VALS(nr_rrc_FilterCoefficient_vals), 0, "FilterCoefficient", HFILL }}, + { &hf_nr_rrc_rach_ConfigGeneric, + { "rach-ConfigGeneric", "nr-rrc.rach_ConfigGeneric_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_totalNumberOfRA_Preambles, + { "totalNumberOfRA-Preambles", "nr-rrc.totalNumberOfRA_Preambles", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_63", HFILL }}, + { &hf_nr_rrc_ssb_perRACH_OccasionAndCB_PreamblesPerSSB, + { "ssb-perRACH-OccasionAndCB-PreamblesPerSSB", "nr-rrc.ssb_perRACH_OccasionAndCB_PreamblesPerSSB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_oneEighth, + { "oneEighth", "nr-rrc.oneEighth", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_oneEighth_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_oneFourth, + { "oneFourth", "nr-rrc.oneFourth", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_oneFourth_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_oneHalf, + { "oneHalf", "nr-rrc.oneHalf", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_oneHalf_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_one_01, + { "one", "nr-rrc.one", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_one_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_two_01, + { "two", "nr-rrc.two", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_two_01_vals), 0, + "T_two_01", HFILL }}, + { &hf_nr_rrc_four, + { "four", "nr-rrc.four", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_16", HFILL }}, + { &hf_nr_rrc_eight, + { "eight", "nr-rrc.eight", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_8", HFILL }}, + { &hf_nr_rrc_sixteen, + { "sixteen", "nr-rrc.sixteen", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_4", HFILL }}, { &hf_nr_rrc_groupBconfigured, { "groupBconfigured", "nr-rrc.groupBconfigured_element", FT_NONE, BASE_NONE, NULL, 0, @@ -15270,26 +29661,22 @@ void proto_register_nr_rrc(void) { { "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", + { &hf_nr_rrc_numberOfRA_PreamblesGroupA, + { "numberOfRA-PreamblesGroupA", "nr-rrc.numberOfRA_PreamblesGroupA", FT_UINT32, BASE_DEC, NULL, 0, - NULL, HFILL }}, + "INTEGER_1_64", 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", + { &hf_nr_rrc_rsrp_ThresholdSSB, + { "rsrp-ThresholdSSB", "nr-rrc.rsrp_ThresholdSSB", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_255", HFILL }}, + "RSRP_Range", HFILL }}, + { &hf_nr_rrc_rsrp_ThresholdSSB_SUL, + { "rsrp-ThresholdSSB-SUL", "nr-rrc.rsrp_ThresholdSSB_SUL", + FT_UINT32, BASE_DEC, NULL, 0, + "RSRP_Range", HFILL }}, { &hf_nr_rrc_prach_RootSequenceIndex, { "prach-RootSequenceIndex", "nr-rrc.prach_RootSequenceIndex", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_prach_RootSequenceIndex_vals), 0, @@ -15302,110 +29689,102 @@ void proto_register_nr_rrc(void) { { "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_msg1_SubcarrierSpacing, + { "msg1-SubcarrierSpacing", "nr-rrc.msg1_SubcarrierSpacing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", 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", + { &hf_nr_rrc_prach_ConfigurationIndex, + { "prach-ConfigurationIndex", "nr-rrc.prach_ConfigurationIndex", FT_UINT32, BASE_DEC, NULL, 0, - "PreambleStartIndex", HFILL }}, - { &hf_nr_rrc_numberofRA_PreamblesGroupA, - { "numberofRA-PreamblesGroupA", "nr-rrc.numberofRA_PreamblesGroupA", + "INTEGER_0_255", HFILL }}, + { &hf_nr_rrc_msg1_FDM, + { "msg1-FDM", "nr-rrc.msg1_FDM", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_msg1_FDM_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_msg1_FrequencyStart, + { "msg1-FrequencyStart", "nr-rrc.msg1_FrequencyStart", FT_UINT32, BASE_DEC, NULL, 0, - "NumberOfRA_Preambles", HFILL }}, - { &hf_nr_rrc_numberOfRA_Preambles, - { "numberOfRA-Preambles", "nr-rrc.numberOfRA_Preambles", + "INTEGER_0_maxNrofPhysicalResourceBlocks_1", HFILL }}, + { &hf_nr_rrc_zeroCorrelationZoneConfig, + { "zeroCorrelationZoneConfig", "nr-rrc.zeroCorrelationZoneConfig", FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_nr_rrc_preambleReceivedTargetPower, + { "preambleReceivedTargetPower", "nr-rrc.preambleReceivedTargetPower", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M200_M74", 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_Resources, - { "ra-Resources", "nr-rrc.ra_Resources_element", - FT_NONE, BASE_NONE, NULL, 0, + { &hf_nr_rrc_powerRampingStep, + { "powerRampingStep", "nr-rrc.powerRampingStep", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_powerRampingStep_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ra_ResponseWindow, + { "ra-ResponseWindow", "nr-rrc.ra_ResponseWindow", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ra_ResponseWindow_vals), 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", + { &hf_nr_rrc_ssb_02, + { "ssb", "nr-rrc.ssb_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_ResourceList, + { "ssb-ResourceList", "nr-rrc.ssb_ResourceList", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxRAssbResources_OF_CFRA_SSB_Resource", HFILL }}, - { &hf_nr_rrc_cfra_ssb_ResourceList_item, + "SEQUENCE_SIZE_1_maxRA_SSB_Resources_OF_CFRA_SSB_Resource", HFILL }}, + { &hf_nr_rrc_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", + { &hf_nr_rrc_csirs, + { "csirs", "nr-rrc.csirs_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csirs_ResourceList, + { "csirs-ResourceList", "nr-rrc.csirs_ResourceList", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxRAcsirsResources_OF_CFRA_CSIRS_Resource", HFILL }}, - { &hf_nr_rrc_cfra_csirs_ResourceList_item, + "SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_OF_CFRA_CSIRS_Resource", HFILL }}, + { &hf_nr_rrc_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", + { &hf_nr_rrc_cfra_csirs_DedicatedRACH_Threshold, + { "cfra-csirs-DedicatedRACH-Threshold", "nr-rrc.cfra_csirs_DedicatedRACH_Threshold", 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 }}, + "RSRP_Range", HFILL }}, + { &hf_nr_rrc_csi_RS_02, + { "csi-RS", "nr-rrc.csi_RS", + FT_UINT32, BASE_DEC, NULL, 0, + "CSI_RS_Index", HFILL }}, + { &hf_nr_rrc_ra_OccasionList, + { "ra-OccasionList", "nr-rrc.ra_OccasionList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ra_OccasionList_item, + { "ra-OccasionList item", "nr-rrc.ra_OccasionList_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxRA_Occasions_1", 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_srb3_ToRelease, + { "srb3-ToRelease", "nr-rrc.srb3_ToRelease", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srb3_ToRelease_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_drb_ToAddModList, { "drb-ToAddModList", "nr-rrc.drb_ToAddModList", FT_UINT32, BASE_DEC, NULL, 0, @@ -15422,14 +29801,14 @@ void proto_register_nr_rrc(void) { { "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_discardOnPDCP, + { "discardOnPDCP", "nr-rrc.discardOnPDCP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_discardOnPDCP_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_pdcp_Config, { "pdcp-Config", "nr-rrc.pdcp_Config_element", FT_NONE, BASE_NONE, NULL, 0, @@ -15450,10 +29829,6 @@ void proto_register_nr_rrc(void) { { "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, @@ -15474,6 +29849,118 @@ void proto_register_nr_rrc(void) { { "keyToUse", "nr-rrc.keyToUse", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_keyToUse_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_failureDetectionResources, + { "failureDetectionResources", "nr-rrc.failureDetectionResources", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS", HFILL }}, + { &hf_nr_rrc_failureDetectionResources_item, + { "RadioLinkMonitoringRS", "nr-rrc.RadioLinkMonitoringRS_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_beamFailureInstanceMaxCount, + { "beamFailureInstanceMaxCount", "nr-rrc.beamFailureInstanceMaxCount", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_beamFailureInstanceMaxCount_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_beamFailureDetectionTimer, + { "beamFailureDetectionTimer", "nr-rrc.beamFailureDetectionTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_beamFailureDetectionTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_purpose, + { "purpose", "nr-rrc.purpose", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_purpose_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_detectionResource, + { "detectionResource", "nr-rrc.detectionResource", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_detectionResource_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rateMatchPatternId, + { "rateMatchPatternId", "nr-rrc.rateMatchPatternId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_patternType, + { "patternType", "nr-rrc.patternType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_patternType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_bitmaps, + { "bitmaps", "nr-rrc.bitmaps_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_UINT32, BASE_DEC, VALS(nr_rrc_T_symbolsInResourceBlock_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_oneSlot, + { "oneSlot", "nr-rrc.oneSlot", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_14", HFILL }}, + { &hf_nr_rrc_twoSlots, + { "twoSlots", "nr-rrc.twoSlots", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_28", HFILL }}, + { &hf_nr_rrc_periodicityAndPattern, + { "periodicityAndPattern", "nr-rrc.periodicityAndPattern", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicityAndPattern_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_n2, + { "n2", "nr-rrc.n2", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_n4, + { "n4", "nr-rrc.n4", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_nr_rrc_n5, + { "n5", "nr-rrc.n5", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_5", HFILL }}, + { &hf_nr_rrc_n8, + { "n8", "nr-rrc.n8", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_n10, + { "n10", "nr-rrc.n10", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_10", HFILL }}, + { &hf_nr_rrc_n20, + { "n20", "nr-rrc.n20", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_20", HFILL }}, + { &hf_nr_rrc_n40, + { "n40", "nr-rrc.n40", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_40", HFILL }}, + { &hf_nr_rrc_controlResourceSet, + { "controlResourceSet", "nr-rrc.controlResourceSet", + FT_UINT32, BASE_DEC, NULL, 0, + "ControlResourceSetId", HFILL }}, + { &hf_nr_rrc_mode, + { "mode", "nr-rrc.mode", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mode_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_carrierFreqDL, + { "carrierFreqDL", "nr-rrc.carrierFreqDL", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_16383", HFILL }}, + { &hf_nr_rrc_carrierBandwidthDL, + { "carrierBandwidthDL", "nr-rrc.carrierBandwidthDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_carrierBandwidthDL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_mbsfn_SubframeConfigList, + { "mbsfn-SubframeConfigList", "nr-rrc.mbsfn_SubframeConfigList", + FT_UINT32, BASE_DEC, NULL, 0, + "EUTRA_MBSFN_SubframeConfigList", 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_reportType, { "reportType", "nr-rrc.reportType", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportType_vals), 0, @@ -15487,8 +29974,8 @@ void proto_register_nr_rrc(void) { FT_NONE, BASE_NONE, NULL, 0, "EventTriggerConfig", HFILL }}, { &hf_nr_rrc_reportCGI, - { "reportCGI", "nr-rrc.reportCGI_element", - FT_NONE, BASE_NONE, NULL, 0, + { "reportCGI", "nr-rrc.reportCGI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportCGI_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_eventId, { "eventId", "nr-rrc.eventId", @@ -15564,8 +30051,8 @@ void proto_register_nr_rrc(void) { "MeasTriggerQuantityOffset", HFILL }}, { &hf_nr_rrc_rsType, { "rsType", "nr-rrc.rsType", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rsType_vals), 0, - NULL, HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_NR_RS_Type_vals), 0, + "NR_RS_Type", HFILL }}, { &hf_nr_rrc_reportInterval, { "reportInterval", "nr-rrc.reportInterval", FT_UINT32, BASE_DEC, VALS(nr_rrc_ReportInterval_vals), 0, @@ -15586,54 +30073,38 @@ void proto_register_nr_rrc(void) { { "reportQuantityRsIndexes", "nr-rrc.reportQuantityRsIndexes_element", FT_NONE, BASE_NONE, NULL, 0, "MeasReportQuantity", HFILL }}, - { &hf_nr_rrc_maxNroIndexesToReport, - { "maxNroIndexesToReport", "nr-rrc.maxNroIndexesToReport", + { &hf_nr_rrc_maxNrofRSIndexesToReport, + { "maxNrofRSIndexesToReport", "nr-rrc.maxNrofRSIndexesToReport", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_maxNroIndexesToReport", HFILL }}, - { &hf_nr_rrc_onlyReportBeamIds, - { "onlyReportBeamIds", "nr-rrc.onlyReportBeamIds", + "INTEGER_1_maxNrofIndexesToReport", HFILL }}, + { &hf_nr_rrc_includeBeamMeasurements, + { "includeBeamMeasurements", "nr-rrc.includeBeamMeasurements", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_nr_rrc_reportAddNeighMeas, - { "reportAddNeighMeas", "nr-rrc.reportAddNeighMeas_element", - FT_NONE, BASE_NONE, NULL, 0, + { "reportAddNeighMeas", "nr-rrc.reportAddNeighMeas", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportAddNeighMeas_vals), 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", + { &hf_nr_rrc_maxNrofRsIndexesToReport, + { "maxNrofRsIndexesToReport", "nr-rrc.maxNrofRsIndexesToReport", 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 }}, + "INTEGER_1_maxNrofIndexesToReport", HFILL }}, { &hf_nr_rrc_rsrp_01, { "rsrp", "nr-rrc.rsrp", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0", HFILL }}, + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M30_30", HFILL }}, { &hf_nr_rrc_rsrq_01, { "rsrq", "nr-rrc.rsrq", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0", HFILL }}, + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M30_30", HFILL }}, { &hf_nr_rrc_sinr_01, { "sinr", "nr-rrc.sinr", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0", HFILL }}, + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M30_30", HFILL }}, { &hf_nr_rrc_rsrp_02, { "rsrp", "nr-rrc.rsrp", FT_BOOLEAN, BASE_NONE, NULL, 0, @@ -15658,10 +30129,6 @@ void proto_register_nr_rrc(void) { { "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, @@ -15696,8 +30163,8 @@ void proto_register_nr_rrc(void) { 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 }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_SN_FieldLengthAM_vals), 0, + "SN_FieldLengthAM", 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, @@ -15724,8 +30191,20 @@ void proto_register_nr_rrc(void) { 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 }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_SN_FieldLengthUM_vals), 0, + "SN_FieldLengthUM", HFILL }}, + { &hf_nr_rrc_t310, + { "t310", "nr-rrc.t310", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t310_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_n310, + { "n310", "nr-rrc.n310", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_n310_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_n311, + { "n311", "nr-rrc.n311", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_n311_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_schedulingRequestToAddModList, { "schedulingRequestToAddModList", "nr-rrc.schedulingRequestToAddModList", FT_UINT32, BASE_DEC, NULL, 0, @@ -15740,183 +30219,319 @@ void proto_register_nr_rrc(void) { "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, + FT_UINT32, 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, + { &hf_nr_rrc_sr_ConfigIndex, + { "sr-ConfigIndex", "nr-rrc.sr_ConfigIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "SchedulingRequestId", 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, + { &hf_nr_rrc_schedulingRequestResourceId, + { "schedulingRequestResourceId", "nr-rrc.schedulingRequestResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodicityAndOffset_02, + { "periodicityAndOffset", "nr-rrc.periodicityAndOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicityAndOffset_01_vals), 0, + "T_periodicityAndOffset_01", HFILL }}, + { &hf_nr_rrc_sym2, + { "sym2", "nr-rrc.sym2_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sym6or7, + { "sym6or7", "nr-rrc.sym6or7_element", + FT_NONE, BASE_NONE, NULL, 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_sl4, + { "sl4", "nr-rrc.sl4", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3", HFILL }}, + { &hf_nr_rrc_sl5, + { "sl5", "nr-rrc.sl5", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4", HFILL }}, + { &hf_nr_rrc_sl8, + { "sl8", "nr-rrc.sl8", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_nr_rrc_sl10, + { "sl10", "nr-rrc.sl10", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_9", HFILL }}, + { &hf_nr_rrc_sl16, + { "sl16", "nr-rrc.sl16", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", 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_resource, + { "resource", "nr-rrc.resource", + FT_UINT32, BASE_DEC, NULL, 0, + "PUCCH_ResourceId", HFILL }}, + { &hf_nr_rrc_offsetToCarrier, + { "offsetToCarrier", "nr-rrc.offsetToCarrier", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_2199", HFILL }}, + { &hf_nr_rrc_k0_01, + { "k0", "nr-rrc.k0", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_k0_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_carrierBandwidth, + { "carrierBandwidth", "nr-rrc.carrierBandwidth", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofPhysicalResourceBlocks", HFILL }}, + { &hf_nr_rrc_pdu_Session, + { "pdu-Session", "nr-rrc.pdu_Session", + FT_UINT32, BASE_DEC, NULL, 0, + "PDU_SessionID", HFILL }}, + { &hf_nr_rrc_sdap_HeaderDL, + { "sdap-HeaderDL", "nr-rrc.sdap_HeaderDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sdap_HeaderDL_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, + { &hf_nr_rrc_sdap_HeaderUL, + { "sdap-HeaderUL", "nr-rrc.sdap_HeaderUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sdap_HeaderUL_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", + { &hf_nr_rrc_mappedQoS_FlowsToAdd, + { "mappedQoS-FlowsToAdd", "nr-rrc.mappedQoS_FlowsToAdd", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI", HFILL }}, - { &hf_nr_rrc_mappedQoSflows_item, + "SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI", HFILL }}, + { &hf_nr_rrc_mappedQoS_FlowsToAdd_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, + { &hf_nr_rrc_mappedQoS_FlowsToRelease, + { "mappedQoS-FlowsToRelease", "nr-rrc.mappedQoS_FlowsToRelease", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI", HFILL }}, + { &hf_nr_rrc_mappedQoS_FlowsToRelease_item, + { "QFI", "nr-rrc.QFI", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_integrityProtAlgorithm, - { "integrityProtAlgorithm", "nr-rrc.integrityProtAlgorithm", - FT_UINT32, BASE_DEC, VALS(nr_rrc_IntegrityProtAlgorithm_vals), 0, + { &hf_nr_rrc_searchSpaceId, + { "searchSpaceId", "nr-rrc.searchSpaceId", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_frequencyInfoDL, - { "frequencyInfoDL", "nr-rrc.frequencyInfoDL_element", - FT_NONE, BASE_NONE, NULL, 0, + { &hf_nr_rrc_monitoringSlotPeriodicityAndOffset, + { "monitoringSlotPeriodicityAndOffset", "nr-rrc.monitoringSlotPeriodicityAndOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_monitoringSlotPeriodicityAndOffset_vals), 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", + { &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_supplementaryUplink, - { "supplementaryUplink", "nr-rrc.supplementaryUplink_element", - FT_NONE, BASE_NONE, NULL, 0, + { &hf_nr_rrc_aggregationLevel1, + { "aggregationLevel1", "nr-rrc.aggregationLevel1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel1_vals), 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, + { &hf_nr_rrc_aggregationLevel2, + { "aggregationLevel2", "nr-rrc.aggregationLevel2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel2_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, + { &hf_nr_rrc_aggregationLevel4, + { "aggregationLevel4", "nr-rrc.aggregationLevel4", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel4_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, + { &hf_nr_rrc_aggregationLevel8, + { "aggregationLevel8", "nr-rrc.aggregationLevel8", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel8_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_aggregationLevel16, + { "aggregationLevel16", "nr-rrc.aggregationLevel16", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel16_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_tdd_UL_DL_configurationCommon, - { "tdd-UL-DL-configurationCommon", "nr-rrc.tdd_UL_DL_configurationCommon_element", + { &hf_nr_rrc_common, + { "common", "nr-rrc.common_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, + { &hf_nr_rrc_dci_Format0_0_AndFormat1_0, + { "dci-Format0-0-AndFormat1-0", "nr-rrc.dci_Format0_0_AndFormat1_0_element", + FT_NONE, BASE_NONE, NULL, 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", + { &hf_nr_rrc_dci_Format2_0, + { "dci-Format2-0", "nr-rrc.dci_Format2_0_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", + { &hf_nr_rrc_nrofCandidates_SFI, + { "nrofCandidates-SFI", "nr-rrc.nrofCandidates_SFI_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_slotSpecificConfigurations, - { "slotSpecificConfigurations", "nr-rrc.slotSpecificConfigurations", - FT_UINT32, BASE_DEC, NULL, 0, + { &hf_nr_rrc_aggregationLevel1_01, + { "aggregationLevel1", "nr-rrc.aggregationLevel1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel1_01_vals), 0, + "T_aggregationLevel1_01", HFILL }}, + { &hf_nr_rrc_aggregationLevel2_01, + { "aggregationLevel2", "nr-rrc.aggregationLevel2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel2_01_vals), 0, + "T_aggregationLevel2_01", HFILL }}, + { &hf_nr_rrc_aggregationLevel4_01, + { "aggregationLevel4", "nr-rrc.aggregationLevel4", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel4_01_vals), 0, + "T_aggregationLevel4_01", HFILL }}, + { &hf_nr_rrc_aggregationLevel8_01, + { "aggregationLevel8", "nr-rrc.aggregationLevel8", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel8_01_vals), 0, + "T_aggregationLevel8_01", HFILL }}, + { &hf_nr_rrc_aggregationLevel16_01, + { "aggregationLevel16", "nr-rrc.aggregationLevel16", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aggregationLevel16_01_vals), 0, + "T_aggregationLevel16_01", HFILL }}, + { &hf_nr_rrc_dci_Format2_1, + { "dci-Format2-1", "nr-rrc.dci_Format2_1_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_slotSpecificConfigurations_item, - { "slotSpecificConfigurations item", "nr-rrc.slotSpecificConfigurations_item_element", + { &hf_nr_rrc_dci_Format2_2, + { "dci-Format2-2", "nr-rrc.dci_Format2_2_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", + { &hf_nr_rrc_dci_Format2_3, + { "dci-Format2-3", "nr-rrc.dci_Format2_3_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_dataScramblingIdentity, - { "dataScramblingIdentity", "nr-rrc.dataScramblingIdentity_element", + { &hf_nr_rrc_monitoringPeriodicity, + { "monitoringPeriodicity", "nr-rrc.monitoringPeriodicity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_monitoringPeriodicity_vals), 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_ue_Specific, + { "ue-Specific", "nr-rrc.ue_Specific_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_pdcch_Config, - { "pdcch-Config", "nr-rrc.pdcch_Config_element", + { &hf_nr_rrc_dci_Formats, + { "dci-Formats", "nr-rrc.dci_Formats", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dci_Formats_vals), 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_tdd_UL_DL_ConfigurationDedicated, + { "tdd-UL-DL-ConfigurationDedicated", "nr-rrc.tdd_UL_DL_ConfigurationDedicated_element", + FT_NONE, BASE_NONE, NULL, 0, + "TDD_UL_DL_ConfigDedicated", HFILL }}, + { &hf_nr_rrc_initialDownlinkBWP, + { "initialDownlinkBWP", "nr-rrc.initialDownlinkBWP_element", FT_NONE, BASE_NONE, NULL, 0, + "BWP_DownlinkDedicated", HFILL }}, + { &hf_nr_rrc_downlinkBWP_ToReleaseList, + { "downlinkBWP-ToReleaseList", "nr-rrc.downlinkBWP_ToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id", HFILL }}, + { &hf_nr_rrc_downlinkBWP_ToReleaseList_item, + { "BWP-Id", "nr-rrc.BWP_Id", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_pdsch_Config, - { "pdsch-Config", "nr-rrc.pdsch_Config_element", + { &hf_nr_rrc_downlinkBWP_ToAddModList, + { "downlinkBWP-ToAddModList", "nr-rrc.downlinkBWP_ToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink", HFILL }}, + { &hf_nr_rrc_downlinkBWP_ToAddModList_item, + { "BWP-Downlink", "nr-rrc.BWP_Downlink_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_csi_MeasConfig, - { "csi-MeasConfig", "nr-rrc.csi_MeasConfig_element", + { &hf_nr_rrc_firstActiveDownlinkBWP_Id, + { "firstActiveDownlinkBWP-Id", "nr-rrc.firstActiveDownlinkBWP_Id", + FT_UINT32, BASE_DEC, NULL, 0, + "BWP_Id", HFILL }}, + { &hf_nr_rrc_bwp_InactivityTimer, + { "bwp-InactivityTimer", "nr-rrc.bwp_InactivityTimer", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_bwp_InactivityTimer_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_defaultDownlinkBWP_Id, + { "defaultDownlinkBWP-Id", "nr-rrc.defaultDownlinkBWP_Id", + FT_UINT32, BASE_DEC, NULL, 0, + "BWP_Id", HFILL }}, + { &hf_nr_rrc_uplinkConfig, + { "uplinkConfig", "nr-rrc.uplinkConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_pucch_Config, - { "pucch-Config", "nr-rrc.pucch_Config_element", + { &hf_nr_rrc_supplementaryUplink_02, + { "supplementaryUplink", "nr-rrc.supplementaryUplink_element", FT_NONE, BASE_NONE, NULL, 0, + "UplinkConfig", HFILL }}, + { &hf_nr_rrc_pdsch_ServingCellConfig, + { "pdsch-ServingCellConfig", "nr-rrc.pdsch_ServingCellConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_ServingCellConfig_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_pusch_Config, - { "pusch-Config", "nr-rrc.pusch_Config_element", + { &hf_nr_rrc_setup_36, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "PDSCH_ServingCellConfig", HFILL }}, + { &hf_nr_rrc_csi_MeasConfig, + { "csi-MeasConfig", "nr-rrc.csi_MeasConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_MeasConfig_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_srs_Config, - { "srs-Config", "nr-rrc.srs_Config_element", + { &hf_nr_rrc_setup_37, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "CSI_MeasConfig", HFILL }}, + { &hf_nr_rrc_carrierSwitching, + { "carrierSwitching", "nr-rrc.carrierSwitching", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_carrierSwitching_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_sps_Config, - { "sps-Config", "nr-rrc.sps_Config_element", + { &hf_nr_rrc_setup_38, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, + "SRS_CarrierSwitching", 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_crossCarrierSchedulingConfig, { "crossCarrierSchedulingConfig", "nr-rrc.crossCarrierSchedulingConfig_element", @@ -15930,66 +30545,150 @@ void proto_register_nr_rrc(void) { { "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", + { &hf_nr_rrc_initialUplinkBWP, + { "initialUplinkBWP", "nr-rrc.initialUplinkBWP_element", FT_NONE, BASE_NONE, NULL, 0, + "BWP_UplinkDedicated", HFILL }}, + { &hf_nr_rrc_uplinkBWP_ToReleaseList, + { "uplinkBWP-ToReleaseList", "nr-rrc.uplinkBWP_ToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id", HFILL }}, + { &hf_nr_rrc_uplinkBWP_ToReleaseList_item, + { "BWP-Id", "nr-rrc.BWP_Id", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_powerControl, - { "powerControl", "nr-rrc.powerControl_element", + { &hf_nr_rrc_uplinkBWP_ToAddModList, + { "uplinkBWP-ToAddModList", "nr-rrc.uplinkBWP_ToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink", HFILL }}, + { &hf_nr_rrc_uplinkBWP_ToAddModList_item, + { "BWP-Uplink", "nr-rrc.BWP_Uplink_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", + { &hf_nr_rrc_firstActiveUplinkBWP_Id, + { "firstActiveUplinkBWP-Id", "nr-rrc.firstActiveUplinkBWP_Id", 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, + "BWP_Id", HFILL }}, + { &hf_nr_rrc_pusch_ServingCellConfig, + { "pusch-ServingCellConfig", "nr-rrc.pusch_ServingCellConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_ServingCellConfig_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, + { &hf_nr_rrc_setup_39, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, - "T_setup_12", HFILL }}, - { &hf_nr_rrc_timeDomainOffset, - { "timeDomainOffset", "nr-rrc.timeDomainOffset_element", + "PUSCH_ServingCellConfig", HFILL }}, + { &hf_nr_rrc_frequencyInfoDL, + { "frequencyInfoDL", "nr-rrc.frequencyInfoDL_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_timeDomainAllocation, - { "timeDomainAllocation", "nr-rrc.timeDomainAllocation_element", + { &hf_nr_rrc_initialDownlinkBWP_01, + { "initialDownlinkBWP", "nr-rrc.initialDownlinkBWP_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_frequencyDomainAllocation, - { "frequencyDomainAllocation", "nr-rrc.frequencyDomainAllocation_element", + "BWP_DownlinkCommon", HFILL }}, + { &hf_nr_rrc_supplementaryUplinkConfig, + { "supplementaryUplinkConfig", "nr-rrc.supplementaryUplinkConfig_element", FT_NONE, BASE_NONE, NULL, 0, + "UplinkConfigCommon", HFILL }}, + { &hf_nr_rrc_ssb_PositionsInBurst_01, + { "ssb-PositionsInBurst", "nr-rrc.ssb_PositionsInBurst", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_PositionsInBurst_01_vals), 0, + "T_ssb_PositionsInBurst_01", 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, - { "dmrs", "nr-rrc.dmrs_element", + { &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_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_40, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "RateMatchPatternLTE_CRS", 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, + "TDD_UL_DL_ConfigCommon", HFILL }}, + { &hf_nr_rrc_tdd_UL_DL_ConfigurationCommon2, + { "tdd-UL-DL-ConfigurationCommon2", "nr-rrc.tdd_UL_DL_ConfigurationCommon2_element", + FT_NONE, BASE_NONE, NULL, 0, + "TDD_UL_DL_ConfigCommon", HFILL }}, + { &hf_nr_rrc_frequencyInfoUL, + { "frequencyInfoUL", "nr-rrc.frequencyInfoUL_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_mcsAndTBS, - { "mcsAndTBS", "nr-rrc.mcsAndTBS_element", + { &hf_nr_rrc_initialUplinkBWP_01, + { "initialUplinkBWP", "nr-rrc.initialUplinkBWP_element", + FT_NONE, BASE_NONE, NULL, 0, + "BWP_UplinkCommon", HFILL }}, + { &hf_nr_rrc_subcarrierSpacing2, + { "subcarrierSpacing2", "nr-rrc.subcarrierSpacing2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, + { &hf_nr_rrc_slotFormatCombinations, + { "slotFormatCombinations", "nr-rrc.slotFormatCombinations", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSlotFormatCombinationsPerSet_OF_SlotFormatCombination", HFILL }}, + { &hf_nr_rrc_slotFormatCombinations_item, + { "SlotFormatCombination", "nr-rrc.SlotFormatCombination_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_repK, - { "repK", "nr-rrc.repK_element", + { &hf_nr_rrc_positionInDCI_01, + { "positionInDCI", "nr-rrc.positionInDCI", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxSFI_DCI_PayloadSize_1", HFILL }}, + { &hf_nr_rrc_slotFormatCombinationId, + { "slotFormatCombinationId", "nr-rrc.slotFormatCombinationId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_slotFormats, + { "slotFormats", "nr-rrc.slotFormats", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_slotFormats_item, + { "slotFormats item", "nr-rrc.slotFormats_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_nr_rrc_sfi_RNTI, + { "sfi-RNTI", "nr-rrc.sfi_RNTI", + FT_UINT32, BASE_DEC, NULL, 0, + "RNTI_Value", HFILL }}, + { &hf_nr_rrc_dci_PayloadSize_01, + { "dci-PayloadSize", "nr-rrc.dci_PayloadSize", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxSFI_DCI_PayloadSize", HFILL }}, + { &hf_nr_rrc_slotFormatCombToAddModList, + { "slotFormatCombToAddModList", "nr-rrc.slotFormatCombToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell", HFILL }}, + { &hf_nr_rrc_slotFormatCombToAddModList_item, + { "SlotFormatCombinationsPerCell", "nr-rrc.SlotFormatCombinationsPerCell_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_slotFormatCombToReleaseList, + { "slotFormatCombToReleaseList", "nr-rrc.slotFormatCombToReleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_ServCellIndex", HFILL }}, + { &hf_nr_rrc_slotFormatCombToReleaseList_item, + { "ServCellIndex", "nr-rrc.ServCellIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodicity_02, + { "periodicity", "nr-rrc.periodicity", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_periodicity_02_vals_ext, 0, + "T_periodicity_02", HFILL }}, + { &hf_nr_rrc_nrofHARQ_Processes_01, + { "nrofHARQ-Processes", "nr-rrc.nrofHARQ_Processes", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_8", HFILL }}, + { &hf_nr_rrc_n1PUCCH_AN, + { "n1PUCCH-AN", "nr-rrc.n1PUCCH_AN_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUCCH_Resource", HFILL }}, { &hf_nr_rrc_srs_ResourceSetToReleaseList, { "srs-ResourceSetToReleaseList", "nr-rrc.srs_ResourceSetToReleaseList", FT_UINT32, BASE_DEC, NULL, 0, @@ -16022,25 +30721,65 @@ void proto_register_nr_rrc(void) { { "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_tpc_Accumulation_01, + { "tpc-Accumulation", "nr-rrc.tpc_Accumulation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpc_Accumulation_01_vals), 0, + "T_tpc_Accumulation_01", 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", + { &hf_nr_rrc_srs_ResourceIdList, + { "srs-ResourceIdList", "nr-rrc.srs_ResourceIdList", FT_UINT32, BASE_DEC, NULL, 0, "SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId", HFILL }}, - { &hf_nr_rrc_srs_ResourcesIds_item, + { &hf_nr_rrc_srs_ResourceIdList_item, { "SRS-ResourceId", "nr-rrc.SRS_ResourceId", FT_UINT32, BASE_DEC, NULL, 0, NULL, 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_01, + { "aperiodic", "nr-rrc.aperiodic_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_aperiodic_01", HFILL }}, { &hf_nr_rrc_aperiodicSRS_ResourceTrigger, - { "aperiodicSRS-ResourceTrigger", "nr-rrc.aperiodicSRS_ResourceTrigger_element", + { "aperiodicSRS-ResourceTrigger", "nr-rrc.aperiodicSRS_ResourceTrigger", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxNrofSRS_TriggerStates_1", HFILL }}, + { &hf_nr_rrc_slotOffset, + { "slotOffset", "nr-rrc.slotOffset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_8", HFILL }}, + { &hf_nr_rrc_semi_persistent, + { "semi-persistent", "nr-rrc.semi_persistent_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_associatedCSI_RS, + { "associatedCSI-RS", "nr-rrc.associatedCSI_RS", + FT_UINT32, BASE_DEC, NULL, 0, + "NZP_CSI_RS_ResourceId", HFILL }}, + { &hf_nr_rrc_periodic_01, + { "periodic", "nr-rrc.periodic_element", FT_NONE, BASE_NONE, NULL, 0, + "T_periodic_01", HFILL }}, + { &hf_nr_rrc_usage, + { "usage", "nr-rrc.usage", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_usage_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_p0_01, + { "p0", "nr-rrc.p0", + FT_INT32, BASE_DEC, NULL, 0, + "INTEGER_M202_24", HFILL }}, + { &hf_nr_rrc_pathlossReferenceRS, + { "pathlossReferenceRS", "nr-rrc.pathlossReferenceRS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pathlossReferenceRS_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_srs_PowerControlAdjustmentStates, + { "srs-PowerControlAdjustmentStates", "nr-rrc.srs_PowerControlAdjustmentStates", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srs_PowerControlAdjustmentStates_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_srs_ResourceId, { "srs-ResourceId", "nr-rrc.srs_ResourceId", @@ -16050,113 +30789,857 @@ void proto_register_nr_rrc(void) { { "nrofSRS-Ports", "nr-rrc.nrofSRS_Ports", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofSRS_Ports_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_ptrs_PortIndex, + { "ptrs-PortIndex", "nr-rrc.ptrs_PortIndex", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ptrs_PortIndex_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", + { &hf_nr_rrc_n2_01, + { "n2", "nr-rrc.n2_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_combOffset_n2, + { "combOffset-n2", "nr-rrc.combOffset_n2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1", HFILL }}, + { &hf_nr_rrc_cyclicShift_n2, + { "cyclicShift-n2", "nr-rrc.cyclicShift_n2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_nr_rrc_n4_01, + { "n4", "nr-rrc.n4_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_combOffset_n4, + { "combOffset-n4", "nr-rrc.combOffset_n4", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3", HFILL }}, + { &hf_nr_rrc_cyclicShift_n4, + { "cyclicShift-n4", "nr-rrc.cyclicShift_n4", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_11", HFILL }}, + { &hf_nr_rrc_resourceMapping_01, + { "resourceMapping", "nr-rrc.resourceMapping_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_startPosition, + { "startPosition", "nr-rrc.startPosition", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_5", HFILL }}, + { &hf_nr_rrc_nrofSymbols_02, + { "nrofSymbols", "nr-rrc.nrofSymbols", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofSymbols_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_repetitionFactor, + { "repetitionFactor", "nr-rrc.repetitionFactor", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_repetitionFactor_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_freqDomainPosition, + { "freqDomainPosition", "nr-rrc.freqDomainPosition", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_67", HFILL }}, + { &hf_nr_rrc_freqDomainShift, + { "freqDomainShift", "nr-rrc.freqDomainShift", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_268", HFILL }}, { &hf_nr_rrc_freqHopping, - { "freqHopping", "nr-rrc.freqHopping", + { "freqHopping", "nr-rrc.freqHopping_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_c_SRS, + { "c-SRS", "nr-rrc.c_SRS", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_63", HFILL }}, + { &hf_nr_rrc_b_SRS, + { "b-SRS", "nr-rrc.b_SRS", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3", HFILL }}, + { &hf_nr_rrc_b_hop, + { "b-hop", "nr-rrc.b_hop", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3", HFILL }}, { &hf_nr_rrc_groupOrSequenceHopping, { "groupOrSequenceHopping", "nr-rrc.groupOrSequenceHopping", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_2", HFILL }}, - { &hf_nr_rrc_resourceType_01, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_groupOrSequenceHopping_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_resourceType_02, { "resourceType", "nr-rrc.resourceType", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourceType_01_vals), 0, - "T_resourceType_01", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourceType_02_vals), 0, + "T_resourceType_02", 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, + "T_aperiodic_02", HFILL }}, + { &hf_nr_rrc_semi_persistent_01, { "semi-persistent", "nr-rrc.semi_persistent_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, + "T_semi_persistent_01", HFILL }}, + { &hf_nr_rrc_periodicityAndOffset_sp, + { "periodicityAndOffset-sp", "nr-rrc.periodicityAndOffset_sp", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_SRS_PeriodicityAndOffset_vals_ext, 0, + "SRS_PeriodicityAndOffset", 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 }}, + "T_periodic_02", HFILL }}, + { &hf_nr_rrc_periodicityAndOffset_p, + { "periodicityAndOffset-p", "nr-rrc.periodicityAndOffset_p", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_SRS_PeriodicityAndOffset_vals_ext, 0, + "SRS_PeriodicityAndOffset", HFILL }}, { &hf_nr_rrc_sequenceId, - { "sequenceId", "nr-rrc.sequenceId_element", + { "sequenceId", "nr-rrc.sequenceId", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_10", 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_sl32, + { "sl32", "nr-rrc.sl32", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_sl64, + { "sl64", "nr-rrc.sl64", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_nr_rrc_sl1280, + { "sl1280", "nr-rrc.sl1280", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1279", HFILL }}, + { &hf_nr_rrc_sl2560, + { "sl2560", "nr-rrc.sl2560", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_2559", HFILL }}, + { &hf_nr_rrc_srs_SwitchFromServCellIndex, + { "srs-SwitchFromServCellIndex", "nr-rrc.srs_SwitchFromServCellIndex", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_srs_TPC_PDCCH_Group, + { "srs-TPC-PDCCH-Group", "nr-rrc.srs_TPC_PDCCH_Group", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srs_TPC_PDCCH_Group_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_typeA, + { "typeA", "nr-rrc.typeA", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config", HFILL }}, + { &hf_nr_rrc_typeA_item, + { "SRS-TPC-PDCCH-Config", "nr-rrc.SRS_TPC_PDCCH_Config_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_antennaSwitching, - { "antennaSwitching", "nr-rrc.antennaSwitching_element", + { &hf_nr_rrc_typeB, + { "typeB", "nr-rrc.typeB_element", + FT_NONE, BASE_NONE, NULL, 0, + "SRS_TPC_PDCCH_Config", HFILL }}, + { &hf_nr_rrc_srs_CellToSFI, + { "srs-CellToSFI", "nr-rrc.srs_CellToSFI", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofServingCells_OF_SlotFormatCombinationsPerCell", HFILL }}, + { &hf_nr_rrc_srs_CellToSFI_item, + { "SlotFormatCombinationsPerCell", "nr-rrc.SlotFormatCombinationsPerCell_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_carrierSwitching, - { "carrierSwitching", "nr-rrc.carrierSwitching_element", + { &hf_nr_rrc_monitoringCells, + { "monitoringCells", "nr-rrc.monitoringCells", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex", HFILL }}, + { &hf_nr_rrc_monitoringCells_item, + { "ServCellIndex", "nr-rrc.ServCellIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_startingBitOfFormat2_3, + { "startingBitOfFormat2-3", "nr-rrc.startingBitOfFormat2_3", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_31", HFILL }}, + { &hf_nr_rrc_fieldTypeFormat2_3, + { "fieldTypeFormat2-3", "nr-rrc.fieldTypeFormat2_3", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1", HFILL }}, + { &hf_nr_rrc_srs_CC_SetIndexlist, + { "srs-CC-SetIndexlist", "nr-rrc.srs_CC_SetIndexlist", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex", HFILL }}, + { &hf_nr_rrc_srs_CC_SetIndexlist_item, + { "SRS-CC-SetIndex", "nr-rrc.SRS_CC_SetIndex_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_cyclicShift, - { "cyclicShift", "nr-rrc.cyclicShift", + { &hf_nr_rrc_cc_SetIndex, + { "cc-SetIndex", "nr-rrc.cc_SetIndex", 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, + "INTEGER_0_3", HFILL }}, + { &hf_nr_rrc_cc_IndexInOneCC_Set, + { "cc-IndexInOneCC-Set", "nr-rrc.cc_IndexInOneCC_Set", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_nr_rrc_tci_StateId, + { "tci-StateId", "nr-rrc.tci_StateId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_qcl_Type1, + { "qcl-Type1", "nr-rrc.qcl_Type1_element", + FT_NONE, BASE_NONE, NULL, 0, + "QCL_Info", HFILL }}, + { &hf_nr_rrc_qcl_Type2, + { "qcl-Type2", "nr-rrc.qcl_Type2_element", + FT_NONE, BASE_NONE, NULL, 0, + "QCL_Info", HFILL }}, + { &hf_nr_rrc_nrofPTRS_Ports, + { "nrofPTRS-Ports", "nr-rrc.nrofPTRS_Ports", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nrofPTRS_Ports_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_cell, + { "cell", "nr-rrc.cell", + FT_UINT32, BASE_DEC, NULL, 0, + "ServCellIndex", HFILL }}, + { &hf_nr_rrc_referenceSignal_03, + { "referenceSignal", "nr-rrc.referenceSignal", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_referenceSignal_03_vals), 0, + "T_referenceSignal_03", HFILL }}, + { &hf_nr_rrc_csi_rs, + { "csi-rs", "nr-rrc.csi_rs", + FT_UINT32, BASE_DEC, NULL, 0, + "NZP_CSI_RS_ResourceId", HFILL }}, + { &hf_nr_rrc_csi_RS_for_tracking, + { "csi-RS-for-tracking", "nr-rrc.csi_RS_for_tracking", + FT_UINT32, BASE_DEC, NULL, 0, + "NZP_CSI_RS_ResourceSetId", HFILL }}, + { &hf_nr_rrc_qcl_Type, + { "qcl-Type", "nr-rrc.qcl_Type", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_qcl_Type_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_referenceSubcarrierSpacing, + { "referenceSubcarrierSpacing", "nr-rrc.referenceSubcarrierSpacing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", 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_maxNrofSlots", HFILL }}, + { &hf_nr_rrc_nrofDownlinkSymbols, + { "nrofDownlinkSymbols", "nr-rrc.nrofDownlinkSymbols", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxNrofSymbols_1", HFILL }}, + { &hf_nr_rrc_nrofUplinkSlots, + { "nrofUplinkSlots", "nr-rrc.nrofUplinkSlots", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxNrofSlots", HFILL }}, + { &hf_nr_rrc_nrofUplinkSymbols, + { "nrofUplinkSymbols", "nr-rrc.nrofUplinkSymbols", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxNrofSymbols_1", HFILL }}, + { &hf_nr_rrc_slotSpecificConfigurationsToAddModList, + { "slotSpecificConfigurationsToAddModList", "nr-rrc.slotSpecificConfigurationsToAddModList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig", HFILL }}, + { &hf_nr_rrc_slotSpecificConfigurationsToAddModList_item, + { "TDD-UL-DL-SlotConfig", "nr-rrc.TDD_UL_DL_SlotConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_slotSpecificConfigurationsToreleaseList, + { "slotSpecificConfigurationsToreleaseList", "nr-rrc.slotSpecificConfigurationsToreleaseList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex", HFILL }}, + { &hf_nr_rrc_slotSpecificConfigurationsToreleaseList_item, + { "TDD-UL-DL-SlotIndex", "nr-rrc.TDD_UL_DL_SlotIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_slotIndex, + { "slotIndex", "nr-rrc.slotIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "TDD_UL_DL_SlotIndex", HFILL }}, + { &hf_nr_rrc_symbols, + { "symbols", "nr-rrc.symbols", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_symbols_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_allDownlink, + { "allDownlink", "nr-rrc.allDownlink_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_allUplink, + { "allUplink", "nr-rrc.allUplink_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_explicit, + { "explicit", "nr-rrc.explicit_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofDownlinkSymbols_01, + { "nrofDownlinkSymbols", "nr-rrc.nrofDownlinkSymbols", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofSymbols_1", HFILL }}, + { &hf_nr_rrc_nrofUplinkSymbols_01, + { "nrofUplinkSymbols", "nr-rrc.nrofUplinkSymbols", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofSymbols_1", HFILL }}, + { &hf_nr_rrc_zp_CSI_RS_ResourceId, + { "zp-CSI-RS-ResourceId", "nr-rrc.zp_CSI_RS_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_zp_CSI_RS_ResourceSetId, + { "zp-CSI-RS-ResourceSetId", "nr-rrc.zp_CSI_RS_ResourceSetId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_zp_CSI_RS_ResourceIdList, + { "zp-CSI-RS-ResourceIdList", "nr-rrc.zp_CSI_RS_ResourceIdList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_CSI_RS_ResourceId", HFILL }}, + { &hf_nr_rrc_zp_CSI_RS_ResourceIdList_item, + { "ZP-CSI-RS-ResourceId", "nr-rrc.ZP_CSI_RS_ResourceId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resourceType_03, + { "resourceType", "nr-rrc.resourceType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_resourceType_03_vals), 0, + "T_resourceType_03", HFILL }}, { &hf_nr_rrc_BandCombinationList_item, { "BandCombination", "nr-rrc.BandCombination_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_measParameters_MRDC, - { "measParameters-MRDC", "nr-rrc.measParameters_MRDC_element", + { &hf_nr_rrc_bandAndDL_ParametersList, + { "bandAndDL-ParametersList", "nr-rrc.bandAndDL_ParametersList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_bandCombinationsUL, + { "bandCombinationsUL", "nr-rrc.bandCombinationsUL", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1_maxBandComb", HFILL }}, + { &hf_nr_rrc_bandCombinationParametersList, + { "bandCombinationParametersList", "nr-rrc.bandCombinationParametersList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxBandComb_OF_BandCombinationParameters", HFILL }}, + { &hf_nr_rrc_bandCombinationParametersList_item, + { "BandCombinationParameters", "nr-rrc.BandCombinationParameters_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_rf_Parameters_MRDC, - { "rf-Parameters-MRDC", "nr-rrc.rf_Parameters_MRDC_element", + { &hf_nr_rrc_BandAndDL_ParametersList_item, + { "BandAndDL-Parameters", "nr-rrc.BandAndDL_Parameters", + FT_UINT32, BASE_DEC, VALS(nr_rrc_BandAndDL_Parameters_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_bandAndDL_ParametersEUTRA, + { "bandAndDL-ParametersEUTRA", "nr-rrc.bandAndDL_ParametersEUTRA_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_phyLayerParameters_MRDC, - { "phyLayerParameters-MRDC", "nr-rrc.phyLayerParameters_MRDC_element", + { &hf_nr_rrc_bandAndDL_ParametersNR, + { "bandAndDL-ParametersNR", "nr-rrc.bandAndDL_ParametersNR_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_supportedBandCombination, - { "supportedBandCombination", "nr-rrc.supportedBandCombination", + { &hf_nr_rrc_ca_ParametersNR, + { "ca-ParametersNR", "nr-rrc.ca_ParametersNR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_mrdc_Parameters, + { "mrdc-Parameters", "nr-rrc.mrdc_Parameters_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_multipleTimingAdvances, + { "multipleTimingAdvances", "nr-rrc.multipleTimingAdvances", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleTimingAdvances_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_simultaneousRxTxInterBandCA, + { "simultaneousRxTxInterBandCA", "nr-rrc.simultaneousRxTxInterBandCA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousRxTxInterBandCA_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedBandwidthCombinationSet, + { "supportedBandwidthCombinationSet", "nr-rrc.supportedBandwidthCombinationSet", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1_32", HFILL }}, + { &hf_nr_rrc_singleUL_Transmission, + { "singleUL-Transmission", "nr-rrc.singleUL_Transmission", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_singleUL_Transmission_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ul_SharingEUTRA_NR, + { "ul-SharingEUTRA-NR", "nr-rrc.ul_SharingEUTRA_NR", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ul_SharingEUTRA_NR_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ul_SwitchingTimeEUTRA_NR, + { "ul-SwitchingTimeEUTRA-NR", "nr-rrc.ul_SwitchingTimeEUTRA_NR", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ul_SwitchingTimeEUTRA_NR_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_simultaneousRxTxInterBandENDC, + { "simultaneousRxTxInterBandENDC", "nr-rrc.simultaneousRxTxInterBandENDC", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousRxTxInterBandENDC_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_asyncIntraBandENDC, + { "asyncIntraBandENDC", "nr-rrc.asyncIntraBandENDC", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_asyncIntraBandENDC_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_basebandProcesingCombinationMRDC, + { "basebandProcesingCombinationMRDC", "nr-rrc.basebandProcesingCombinationMRDC", FT_UINT32, BASE_DEC, NULL, 0, - "BandCombinationList", HFILL }}, - { &hf_nr_rrc_supportedBasebandProcessingCombination_MRDC, - { "supportedBasebandProcessingCombination-MRDC", "nr-rrc.supportedBasebandProcessingCombination_MRDC", + "BasebandProcessingCombinationMRDC", HFILL }}, + { &hf_nr_rrc_bandEUTRA, + { "bandEUTRA", "nr-rrc.bandEUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "FreqBandIndicatorEUTRA", HFILL }}, + { &hf_nr_rrc_ca_BandwidthClassDL_EUTRA, + { "ca-BandwidthClassDL-EUTRA", "nr-rrc.ca_BandwidthClassDL_EUTRA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_CA_BandwidthClassEUTRA_vals), 0, + "CA_BandwidthClassEUTRA", HFILL }}, + { &hf_nr_rrc_intraBandContiguousCC_InfoDL_EUTRA_List, + { "intraBandContiguousCC-InfoDL-EUTRA-List", "nr-rrc.intraBandContiguousCC_InfoDL_EUTRA_List", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoDL_EUTRA", HFILL }}, + { &hf_nr_rrc_intraBandContiguousCC_InfoDL_EUTRA_List_item, + { "IntraBandContiguousCC-InfoDL-EUTRA", "nr-rrc.IntraBandContiguousCC_InfoDL_EUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_bandNR, + { "bandNR", "nr-rrc.bandNR", + FT_UINT32, BASE_DEC, NULL, 0, + "FreqBandIndicatorNR", HFILL }}, + { &hf_nr_rrc_ca_BandwidthClassDL, + { "ca-BandwidthClassDL", "nr-rrc.ca_BandwidthClassDL", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_CA_BandwidthClassNR_vals_ext, 0, + "CA_BandwidthClassNR", HFILL }}, + { &hf_nr_rrc_intraBandFreqSeparationDL, + { "intraBandFreqSeparationDL", "nr-rrc.intraBandFreqSeparationDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_FreqSeparationClass_vals), 0, + "FreqSeparationClass", HFILL }}, + { &hf_nr_rrc_intraBandContiguousCC_InfoDL_List, + { "intraBandContiguousCC-InfoDL-List", "nr-rrc.intraBandContiguousCC_InfoDL_List", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoDL", HFILL }}, + { &hf_nr_rrc_intraBandContiguousCC_InfoDL_List_item, + { "IntraBandContiguousCC-InfoDL", "nr-rrc.IntraBandContiguousCC_InfoDL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberMIMO_LayersPDSCH, + { "maxNumberMIMO-LayersPDSCH", "nr-rrc.maxNumberMIMO_LayersPDSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MIMO_LayersDL_vals), 0, + "MIMO_LayersDL", HFILL }}, + { &hf_nr_rrc_mimo_CapabilityDL, + { "mimo-CapabilityDL", "nr-rrc.mimo_CapabilityDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mimo_CapabilityDL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_BandCombinationParametersUL_List_item, + { "BandCombinationParametersUL", "nr-rrc.BandCombinationParametersUL", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_BandCombinationParametersUL_item, + { "BandParametersUL", "nr-rrc.BandParametersUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_BandParametersUL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_bandParametersUL_EUTRA, + { "bandParametersUL-EUTRA", "nr-rrc.bandParametersUL_EUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_bandParametersUL_NR, + { "bandParametersUL-NR", "nr-rrc.bandParametersUL_NR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ca_BandwidthClassUL_EUTRA, + { "ca-BandwidthClassUL-EUTRA", "nr-rrc.ca_BandwidthClassUL_EUTRA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_CA_BandwidthClassEUTRA_vals), 0, + "CA_BandwidthClassEUTRA", HFILL }}, + { &hf_nr_rrc_intraBandContiguousCC_InfoUL_EUTRA_List, + { "intraBandContiguousCC-InfoUL-EUTRA-List", "nr-rrc.intraBandContiguousCC_InfoUL_EUTRA_List", FT_UINT32, BASE_DEC, NULL, 0, - "BasebandProcessingCombination_MRDC", HFILL }}, - { &hf_nr_rrc_BasebandProcessingCombination_MRDC_item, - { "LinkedBasebandProcessingCombination", "nr-rrc.LinkedBasebandProcessingCombination_element", + "SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoUL_EUTRA", HFILL }}, + { &hf_nr_rrc_intraBandContiguousCC_InfoUL_EUTRA_List_item, + { "IntraBandContiguousCC-InfoUL-EUTRA", "nr-rrc.IntraBandContiguousCC_InfoUL_EUTRA_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_basebandProcessingCombinationIndex, - { "basebandProcessingCombinationIndex", "nr-rrc.basebandProcessingCombinationIndex", + { &hf_nr_rrc_ca_BandwidthClassUL, + { "ca-BandwidthClassUL", "nr-rrc.ca_BandwidthClassUL", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_CA_BandwidthClassNR_vals_ext, 0, + "CA_BandwidthClassNR", HFILL }}, + { &hf_nr_rrc_intraBandFreqSeparationUL, + { "intraBandFreqSeparationUL", "nr-rrc.intraBandFreqSeparationUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_FreqSeparationClass_vals), 0, + "FreqSeparationClass", HFILL }}, + { &hf_nr_rrc_intraBandContiguousCC_InfoUL_List, + { "intraBandContiguousCC-InfoUL-List", "nr-rrc.intraBandContiguousCC_InfoUL_List", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoUL", HFILL }}, + { &hf_nr_rrc_intraBandContiguousCC_InfoUL_List_item, + { "IntraBandContiguousCC-InfoUL", "nr-rrc.IntraBandContiguousCC_InfoUL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberMIMO_LayersCB_PUSCH, + { "maxNumberMIMO-LayersCB-PUSCH", "nr-rrc.maxNumberMIMO_LayersCB_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MIMO_LayersUL_vals), 0, + "MIMO_LayersUL", HFILL }}, + { &hf_nr_rrc_maxNumberMIMO_LayersNonCB_PUSCH, + { "maxNumberMIMO-LayersNonCB-PUSCH", "nr-rrc.maxNumberMIMO_LayersNonCB_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MIMO_LayersUL_vals), 0, + "MIMO_LayersUL", HFILL }}, + { &hf_nr_rrc_mimo_CapabilityUL, + { "mimo-CapabilityUL", "nr-rrc.mimo_CapabilityUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mimo_CapabilityUL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_BasebandCombinationParametersUL_List_item, + { "BasebandCombinationParametersUL", "nr-rrc.BasebandCombinationParametersUL", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_basebandProcessingCombinationLinkedIndex, - { "basebandProcessingCombinationLinkedIndex", "nr-rrc.basebandProcessingCombinationLinkedIndex", + { &hf_nr_rrc_BasebandCombinationParametersUL_item, + { "BasebandParametersPerBandUL", "nr-rrc.BasebandParametersPerBandUL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_freqRange, + { "freqRange", "nr-rrc.freqRange", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_freqRange_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_basebandParametersPerCC_UL, + { "basebandParametersPerCC-UL", "nr-rrc.basebandParametersPerCC_UL", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_UL", HFILL }}, + { &hf_nr_rrc_basebandParametersPerCC_UL_item, + { "BasebandParametersPerCC-UL", "nr-rrc.BasebandParametersPerCC_UL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedSubcarrierSpacingUL, + { "supportedSubcarrierSpacingUL", "nr-rrc.supportedSubcarrierSpacingUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, + { &hf_nr_rrc_supportedBandwidthUL, + { "supportedBandwidthUL", "nr-rrc.supportedBandwidthUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedBandwidthUL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_fr1, + { "fr1", "nr-rrc.fr1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_fr2, + { "fr2", "nr-rrc.fr2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_scalingFactor0dot75, + { "scalingFactor0dot75", "nr-rrc.scalingFactor0dot75", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scalingFactor0dot75_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedModulationOrderUL, + { "supportedModulationOrderUL", "nr-rrc.supportedModulationOrderUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_ModulationOrder_vals), 0, + "ModulationOrder", HFILL }}, + { &hf_nr_rrc_supportedSRS_Resources, + { "supportedSRS-Resources", "nr-rrc.supportedSRS_Resources_element", + FT_NONE, BASE_NONE, NULL, 0, + "SRS_Resources", HFILL }}, + { &hf_nr_rrc_srs_TxSwitch, + { "srs-TxSwitch", "nr-rrc.srs_TxSwitch_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_lowLatencyCSI_Feedback, + { "lowLatencyCSI-Feedback", "nr-rrc.lowLatencyCSI_Feedback", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_lowLatencyCSI_Feedback_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pusch_DifferentTB_PerSlot, + { "pusch-DifferentTB-PerSlot", "nr-rrc.pusch_DifferentTB_PerSlot_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_scs_15kHz, + { "scs-15kHz", "nr-rrc.scs_15kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_15kHz_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_scs_30kHz, + { "scs-30kHz", "nr-rrc.scs_30kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_30kHz_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_scs_60kHz, + { "scs-60kHz", "nr-rrc.scs_60kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_60kHz_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_scs_120kHz, + { "scs-120kHz", "nr-rrc.scs_120kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_120kHz_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_twoPUCCH_Group, + { "twoPUCCH-Group", "nr-rrc.twoPUCCH_Group", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPUCCH_Group_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_diffNumerologyAcrossPUCCH_Group, + { "diffNumerologyAcrossPUCCH-Group", "nr-rrc.diffNumerologyAcrossPUCCH_Group", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_diffNumerologyAcrossPUCCH_Group_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_diffNumerologyWithinPUCCH_Group, + { "diffNumerologyWithinPUCCH-Group", "nr-rrc.diffNumerologyWithinPUCCH_Group", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_diffNumerologyWithinPUCCH_Group_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_crossCarrierScheduling, + { "crossCarrierScheduling", "nr-rrc.crossCarrierScheduling", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_crossCarrierScheduling_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedNumberTAG, + { "supportedNumberTAG", "nr-rrc.supportedNumberTAG", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedNumberTAG_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamicSwitchSUL, + { "dynamicSwitchSUL", "nr-rrc.dynamicSwitchSUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicSwitchSUL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_simultaneousTxSUL_NonSUL, + { "simultaneousTxSUL-NonSUL", "nr-rrc.simultaneousTxSUL_NonSUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousTxSUL_NonSUL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_searchSpaceSharingCA_UL, + { "searchSpaceSharingCA-UL", "nr-rrc.searchSpaceSharingCA_UL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_searchSpaceSharingCA_UL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_BasebandProcessingCombinationMRDC_item, + { "BasebandProcessingCombinationLink", "nr-rrc.BasebandProcessingCombinationLink_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_basebandProcessingCombinationIndexMN, + { "basebandProcessingCombinationIndexMN", "nr-rrc.basebandProcessingCombinationIndexMN", + FT_UINT32, BASE_DEC, NULL, 0, + "BasebandProcessingCombinationIndex", HFILL }}, + { &hf_nr_rrc_basebandProcessingCombinationLinkedIndexSN, + { "basebandProcessingCombinationLinkedIndexSN", "nr-rrc.basebandProcessingCombinationLinkedIndexSN", FT_UINT32, BASE_DEC, NULL, 0, "SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex", HFILL }}, - { &hf_nr_rrc_basebandProcessingCombinationLinkedIndex_item, + { &hf_nr_rrc_basebandProcessingCombinationLinkedIndexSN_item, { "BasebandProcessingCombinationIndex", "nr-rrc.BasebandProcessingCombinationIndex", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_intraCarrierConcurrentMeas, - { "intraCarrierConcurrentMeas", "nr-rrc.intraCarrierConcurrentMeas", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_intraCarrierConcurrentMeas_vals), 0, + { &hf_nr_rrc_FreqBandList_item, + { "FreqBandInformation", "nr-rrc.FreqBandInformation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_FreqBandInformation_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_SupportedBasebandProcessingCombination_item, + { "BasebandProcessingCombination", "nr-rrc.BasebandProcessingCombination_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_basebandParametersDL, + { "basebandParametersDL", "nr-rrc.basebandParametersDL", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBandDL", HFILL }}, + { &hf_nr_rrc_basebandParametersDL_item, + { "BasebandParametersPerBandDL", "nr-rrc.BasebandParametersPerBandDL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_basebandParametersUL, + { "basebandParametersUL", "nr-rrc.basebandParametersUL", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1_maxBasebandProcComb", HFILL }}, + { &hf_nr_rrc_freqRange_01, + { "freqRange", "nr-rrc.freqRange", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_freqRange_01_vals), 0, + "T_freqRange_01", HFILL }}, + { &hf_nr_rrc_basebandParametersPerCC_DL, + { "basebandParametersPerCC-DL", "nr-rrc.basebandParametersPerCC_DL", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_DL", HFILL }}, + { &hf_nr_rrc_basebandParametersPerCC_DL_item, + { "BasebandParametersPerCC-DL", "nr-rrc.BasebandParametersPerCC_DL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedSubcarrierSpacingDL, + { "supportedSubcarrierSpacingDL", "nr-rrc.supportedSubcarrierSpacingDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, + { &hf_nr_rrc_supportedBandwidthDL, + { "supportedBandwidthDL", "nr-rrc.supportedBandwidthDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedBandwidthDL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_fr1_01, + { "fr1", "nr-rrc.fr1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr1_01_vals), 0, + "T_fr1_01", HFILL }}, + { &hf_nr_rrc_fr2_01, + { "fr2", "nr-rrc.fr2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr2_01_vals), 0, + "T_fr2_01", HFILL }}, + { &hf_nr_rrc_scalingFactor0dot75_01, + { "scalingFactor0dot75", "nr-rrc.scalingFactor0dot75", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scalingFactor0dot75_01_vals), 0, + "T_scalingFactor0dot75_01", HFILL }}, + { &hf_nr_rrc_timeDurationForQCL, + { "timeDurationForQCL", "nr-rrc.timeDurationForQCL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_scs_60kHz_01, + { "scs-60kHz", "nr-rrc.scs_60kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_60kHz_01_vals), 0, + "T_scs_60kHz_01", HFILL }}, + { &hf_nr_rrc_sch_120kHz, + { "sch-120kHz", "nr-rrc.sch_120kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sch_120kHz_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_scellWithoutSSB, + { "scellWithoutSSB", "nr-rrc.scellWithoutSSB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scellWithoutSSB_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RS_MeasSCellWithoutSSB, + { "csi-RS-MeasSCellWithoutSSB", "nr-rrc.csi_RS_MeasSCellWithoutSSB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_RS_MeasSCellWithoutSSB_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedModulationOrderDL, + { "supportedModulationOrderDL", "nr-rrc.supportedModulationOrderDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_ModulationOrder_vals), 0, + "ModulationOrder", HFILL }}, + { &hf_nr_rrc_srs_AssocCSI_RS, + { "srs-AssocCSI-RS", "nr-rrc.srs_AssocCSI_RS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srs_AssocCSI_RS_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_type1_3_CSS, + { "type1-3-CSS", "nr-rrc.type1_3_CSS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_type1_3_CSS_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcchMonitoringAnyOccasions, + { "pdcchMonitoringAnyOccasions", "nr-rrc.pdcchMonitoringAnyOccasions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcchMonitoringAnyOccasions_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ue_SpecificUL_DL_Assignment, + { "ue-SpecificUL-DL-Assignment", "nr-rrc.ue_SpecificUL_DL_Assignment", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ue_SpecificUL_DL_Assignment_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdsch_DifferentTB_PerSlot, + { "pdsch-DifferentTB-PerSlot", "nr-rrc.pdsch_DifferentTB_PerSlot_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_scs_15kHz_01, + { "scs-15kHz", "nr-rrc.scs_15kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_15kHz_01_vals), 0, + "T_scs_15kHz_01", HFILL }}, + { &hf_nr_rrc_scs_30kHz_01, + { "scs-30kHz", "nr-rrc.scs_30kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_30kHz_01_vals), 0, + "T_scs_30kHz_01", HFILL }}, + { &hf_nr_rrc_scs_60kHz_02, + { "scs-60kHz", "nr-rrc.scs_60kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_60kHz_02_vals), 0, + "T_scs_60kHz_02", HFILL }}, + { &hf_nr_rrc_scs_120kHz_01, + { "scs-120kHz", "nr-rrc.scs_120kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_120kHz_01_vals), 0, + "T_scs_120kHz_01", HFILL }}, + { &hf_nr_rrc_crossCarrierScheduling_01, + { "crossCarrierScheduling", "nr-rrc.crossCarrierScheduling", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_crossCarrierScheduling_01_vals), 0, + "T_crossCarrierScheduling_01", HFILL }}, + { &hf_nr_rrc_searchSpaceSharingCA_DL, + { "searchSpaceSharingCA-DL", "nr-rrc.searchSpaceSharingCA_DL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_searchSpaceSharingCA_DL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_UE_CapabilityRAT_ContainerList_item, + { "UE-CapabilityRAT-Container", "nr-rrc.UE_CapabilityRAT_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rat_Type, + { "rat-Type", "nr-rrc.rat_Type", + FT_UINT32, BASE_DEC, VALS(nr_rrc_RAT_Type_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ue_CapabilityRAT_Container, + { "ue-CapabilityRAT-Container", "nr-rrc.ue_CapabilityRAT_Container", + FT_BYTES, BASE_NONE, NULL, 0, + "T_ue_CapabilityRAT_Container", HFILL }}, + { &hf_nr_rrc_measParametersMRDC, + { "measParametersMRDC", "nr-rrc.measParametersMRDC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rf_ParametersMRDC, + { "rf-ParametersMRDC", "nr-rrc.rf_ParametersMRDC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_phy_ParametersMRDC, + { "phy-ParametersMRDC", "nr-rrc.phy_ParametersMRDC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_generalParametersMRDC, + { "generalParametersMRDC", "nr-rrc.generalParametersMRDC_element", + FT_NONE, BASE_NONE, NULL, 0, + "GeneralParametersMRDC_XDD_Diff", HFILL }}, + { &hf_nr_rrc_fdd_Add_UE_MRDC_Capabilities, + { "fdd-Add-UE-MRDC-Capabilities", "nr-rrc.fdd_Add_UE_MRDC_Capabilities_element", + FT_NONE, BASE_NONE, NULL, 0, + "UE_MRDC_CapabilityAddXDD_Mode", HFILL }}, + { &hf_nr_rrc_tdd_Add_UE_MRDC_Capabilities, + { "tdd-Add-UE-MRDC-Capabilities", "nr-rrc.tdd_Add_UE_MRDC_Capabilities_element", + FT_NONE, BASE_NONE, NULL, 0, + "UE_MRDC_CapabilityAddXDD_Mode", HFILL }}, + { &hf_nr_rrc_fr1_Add_UE_MRDC_Capabilities, + { "fr1-Add-UE-MRDC-Capabilities", "nr-rrc.fr1_Add_UE_MRDC_Capabilities_element", + FT_NONE, BASE_NONE, NULL, 0, + "UE_MRDC_CapabilityAddFRX_Mode", HFILL }}, + { &hf_nr_rrc_fr2_Add_UE_MRDC_Capabilities, + { "fr2-Add-UE-MRDC-Capabilities", "nr-rrc.fr2_Add_UE_MRDC_Capabilities_element", + FT_NONE, BASE_NONE, NULL, 0, + "UE_MRDC_CapabilityAddFRX_Mode", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_05, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_05", HFILL }}, + { &hf_nr_rrc_phy_ParametersMRDC_XDD_Diff, + { "phy-ParametersMRDC-XDD-Diff", "nr-rrc.phy_ParametersMRDC_XDD_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measParametersMRDC_XDD_Diff, + { "measParametersMRDC-XDD-Diff", "nr-rrc.measParametersMRDC_XDD_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_generalParametersMRDC_XDD_Diff, + { "generalParametersMRDC-XDD-Diff", "nr-rrc.generalParametersMRDC_XDD_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_phy_ParametersMRDC_FRX_Diff, + { "phy-ParametersMRDC-FRX-Diff", "nr-rrc.phy_ParametersMRDC_FRX_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measParametersMRDC_FRX_Diff, + { "measParametersMRDC-FRX-Diff", "nr-rrc.measParametersMRDC_FRX_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedBandCombination, + { "supportedBandCombination", "nr-rrc.supportedBandCombination", + FT_UINT32, BASE_DEC, NULL, 0, + "BandCombinationList", HFILL }}, + { &hf_nr_rrc_bandCombinationParametersUL_List, + { "bandCombinationParametersUL-List", "nr-rrc.bandCombinationParametersUL_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamicPowerSharing, + { "dynamicPowerSharing", "nr-rrc.dynamicPowerSharing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicPowerSharing_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_tdm_Pattern, + { "tdm-Pattern", "nr-rrc.tdm_Pattern", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tdm_Pattern_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamicPowerSharing_01, + { "dynamicPowerSharing", "nr-rrc.dynamicPowerSharing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicPowerSharing_01_vals), 0, + "T_dynamicPowerSharing_01", HFILL }}, + { &hf_nr_rrc_tdm_Pattern_01, + { "tdm-Pattern", "nr-rrc.tdm_Pattern", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tdm_Pattern_01_vals), 0, + "T_tdm_Pattern_01", HFILL }}, + { &hf_nr_rrc_measParametersMRDC_Common, + { "measParametersMRDC-Common", "nr-rrc.measParametersMRDC_Common_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_independentGapConfig, { "independentGapConfig", "nr-rrc.independentGapConfig", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_independentGapConfig_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_sstd_MeasType1, - { "sstd-MeasType1", "nr-rrc.sstd_MeasType1", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sstd_MeasType1_vals), 0, + { &hf_nr_rrc_sftd_MeasPSCell, + { "sftd-MeasPSCell", "nr-rrc.sftd_MeasPSCell", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sftd_MeasPSCell_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sftd_MeasNR_Cell, + { "sftd-MeasNR-Cell", "nr-rrc.sftd_MeasNR_Cell", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sftd_MeasNR_Cell_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_simultaneousRxDataSSB_DiffNumerology, + { "simultaneousRxDataSSB-DiffNumerology", "nr-rrc.simultaneousRxDataSSB_DiffNumerology", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousRxDataSSB_DiffNumerology_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_splitSRB_WithOneUL_Path, + { "splitSRB-WithOneUL-Path", "nr-rrc.splitSRB_WithOneUL_Path", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_splitSRB_WithOneUL_Path_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_splitDRB_withUL_Both_MCG_SCG, + { "splitDRB-withUL-Both-MCG-SCG", "nr-rrc.splitDRB_withUL_Both_MCG_SCG", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_splitDRB_withUL_Both_MCG_SCG_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_srb3, + { "srb3", "nr-rrc.srb3", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srb3_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_pdcp_Parameters, { "pdcp-Parameters", "nr-rrc.pdcp_Parameters_element", @@ -16170,89 +31653,709 @@ void proto_register_nr_rrc(void) { { "mac-Parameters", "nr-rrc.mac_Parameters_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_phyLayerParameters, - { "phyLayerParameters", "nr-rrc.phyLayerParameters_element", + { &hf_nr_rrc_phy_Parameters, + { "phy-Parameters", "nr-rrc.phy_Parameters_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_rf_Parameters, { "rf-Parameters", "nr-rrc.rf_Parameters_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_02, + { &hf_nr_rrc_measParameters, + { "measParameters", "nr-rrc.measParameters_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_fdd_Add_UE_NR_Capabilities, + { "fdd-Add-UE-NR-Capabilities", "nr-rrc.fdd_Add_UE_NR_Capabilities_element", + FT_NONE, BASE_NONE, NULL, 0, + "UE_NR_CapabilityAddXDD_Mode", HFILL }}, + { &hf_nr_rrc_tdd_Add_UE_NR_Capabilities, + { "tdd-Add-UE-NR-Capabilities", "nr-rrc.tdd_Add_UE_NR_Capabilities_element", + FT_NONE, BASE_NONE, NULL, 0, + "UE_NR_CapabilityAddXDD_Mode", HFILL }}, + { &hf_nr_rrc_fr1_Add_UE_NR_Capabilities, + { "fr1-Add-UE-NR-Capabilities", "nr-rrc.fr1_Add_UE_NR_Capabilities_element", + FT_NONE, BASE_NONE, NULL, 0, + "UE_NR_CapabilityAddFRX_Mode", HFILL }}, + { &hf_nr_rrc_fr2_Add_UE_NR_Capabilities, + { "fr2-Add-UE-NR-Capabilities", "nr-rrc.fr2_Add_UE_NR_Capabilities_element", + FT_NONE, BASE_NONE, NULL, 0, + "UE_NR_CapabilityAddFRX_Mode", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_06, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_02", HFILL }}, + "T_nonCriticalExtension_06", HFILL }}, + { &hf_nr_rrc_phy_ParametersXDD_Diff, + { "phy-ParametersXDD-Diff", "nr-rrc.phy_ParametersXDD_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_mac_ParametersXDD_Diff, + { "mac-ParametersXDD-Diff", "nr-rrc.mac_ParametersXDD_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measParametersXDD_Diff, + { "measParametersXDD-Diff", "nr-rrc.measParametersXDD_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_phy_ParametersFRX_Diff, + { "phy-ParametersFRX-Diff", "nr-rrc.phy_ParametersFRX_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measParametersFRX_Diff, + { "measParametersFRX-Diff", "nr-rrc.measParametersFRX_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_phy_ParametersCommon, + { "phy-ParametersCommon", "nr-rrc.phy_ParametersCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_phy_ParametersFR1, + { "phy-ParametersFR1", "nr-rrc.phy_ParametersFR1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_phy_ParametersFR2, + { "phy-ParametersFR2", "nr-rrc.phy_ParametersFR2_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_supportedBasebandProcessingCombination, { "supportedBasebandProcessingCombination", "nr-rrc.supportedBasebandProcessingCombination", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_basebandCombinationParametersUL_List, + { "basebandCombinationParametersUL-List", "nr-rrc.basebandCombinationParametersUL_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RS_CFRA_ForHO, + { "csi-RS-CFRA-ForHO", "nr-rrc.csi_RS_CFRA_ForHO", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_RS_CFRA_ForHO_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamicPRB_BundlingDL, + { "dynamicPRB-BundlingDL", "nr-rrc.dynamicPRB_BundlingDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicPRB_BundlingDL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sp_CSI_ReportPUCCH, + { "sp-CSI-ReportPUCCH", "nr-rrc.sp_CSI_ReportPUCCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sp_CSI_ReportPUCCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sp_CSI_ReportPUSCH, + { "sp-CSI-ReportPUSCH", "nr-rrc.sp_CSI_ReportPUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sp_CSI_ReportPUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_nzp_CSI_RS_IntefMgmt, + { "nzp-CSI-RS-IntefMgmt", "nr-rrc.nzp_CSI_RS_IntefMgmt", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nzp_CSI_RS_IntefMgmt_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_type2_SP_CSI_Feedback_LongPUCCH, + { "type2-SP-CSI-Feedback-LongPUCCH", "nr-rrc.type2_SP_CSI_Feedback_LongPUCCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_type2_SP_CSI_Feedback_LongPUCCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_multipleCORESET, + { "multipleCORESET", "nr-rrc.multipleCORESET", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleCORESET_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamicSFI, + { "dynamicSFI", "nr-rrc.dynamicSFI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicSFI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_precoderGranularityCORESET, + { "precoderGranularityCORESET", "nr-rrc.precoderGranularityCORESET", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_precoderGranularityCORESET_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamicHARQ_ACK_Codebook, + { "dynamicHARQ-ACK-Codebook", "nr-rrc.dynamicHARQ_ACK_Codebook", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicHARQ_ACK_Codebook_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_semiStaticHARQ_ACK_Codebook, + { "semiStaticHARQ-ACK-Codebook", "nr-rrc.semiStaticHARQ_ACK_Codebook", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_semiStaticHARQ_ACK_Codebook_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_spatialBundlingHARQ_ACK, + { "spatialBundlingHARQ-ACK", "nr-rrc.spatialBundlingHARQ_ACK", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_spatialBundlingHARQ_ACK_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamicBetaOffsetInd_HARQ_ACK_CSI, + { "dynamicBetaOffsetInd-HARQ-ACK-CSI", "nr-rrc.dynamicBetaOffsetInd_HARQ_ACK_CSI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicBetaOffsetInd_HARQ_ACK_CSI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pucch_Repetition_F1_3_4, + { "pucch-Repetition-F1-3-4", "nr-rrc.pucch_Repetition_F1_3_4", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pucch_Repetition_F1_3_4_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ra_Type0_PUSCH, + { "ra-Type0-PUSCH", "nr-rrc.ra_Type0_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ra_Type0_PUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamicSwitchRA_Type0_1_PDSCH, + { "dynamicSwitchRA-Type0-1-PDSCH", "nr-rrc.dynamicSwitchRA_Type0_1_PDSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicSwitchRA_Type0_1_PDSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamicSwitchRA_Type0_1_PUSCH, + { "dynamicSwitchRA-Type0-1-PUSCH", "nr-rrc.dynamicSwitchRA_Type0_1_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicSwitchRA_Type0_1_PUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdsch_MappingTypeA, + { "pdsch-MappingTypeA", "nr-rrc.pdsch_MappingTypeA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_MappingTypeA_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdsch_MappingTypeB, + { "pdsch-MappingTypeB", "nr-rrc.pdsch_MappingTypeB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_MappingTypeB_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_interleavingVRB_ToPRB_PDSCH, + { "interleavingVRB-ToPRB-PDSCH", "nr-rrc.interleavingVRB_ToPRB_PDSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interleavingVRB_ToPRB_PDSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_interleavingVRB_ToPRB_PUSCH, + { "interleavingVRB-ToPRB-PUSCH", "nr-rrc.interleavingVRB_ToPRB_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interleavingVRB_ToPRB_PUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_interSlotFreqHopping_PUSCH, + { "interSlotFreqHopping-PUSCH", "nr-rrc.interSlotFreqHopping_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interSlotFreqHopping_PUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_type1_PUSCH_RepetitionOneSlot, + { "type1-PUSCH-RepetitionOneSlot", "nr-rrc.type1_PUSCH_RepetitionOneSlot", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_type1_PUSCH_RepetitionOneSlot_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_type1_PUSCH_RepetitionMultiSlots, + { "type1-PUSCH-RepetitionMultiSlots", "nr-rrc.type1_PUSCH_RepetitionMultiSlots", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_type1_PUSCH_RepetitionMultiSlots_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_type2_PUSCH_RepetitionOneSlot, + { "type2-PUSCH-RepetitionOneSlot", "nr-rrc.type2_PUSCH_RepetitionOneSlot", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_type2_PUSCH_RepetitionOneSlot_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_type2_PUSCH_RepetitionMultiSlots, + { "type2-PUSCH-RepetitionMultiSlots", "nr-rrc.type2_PUSCH_RepetitionMultiSlots", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_type2_PUSCH_RepetitionMultiSlots_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pusch_RepetitionMultiSlots, + { "pusch-RepetitionMultiSlots", "nr-rrc.pusch_RepetitionMultiSlots", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_RepetitionMultiSlots_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdsch_RepetitionMultiSlots, + { "pdsch-RepetitionMultiSlots", "nr-rrc.pdsch_RepetitionMultiSlots", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_RepetitionMultiSlots_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_downlinkSPS, + { "downlinkSPS", "nr-rrc.downlinkSPS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_downlinkSPS_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_configuredUL_GrantType1, + { "configuredUL-GrantType1", "nr-rrc.configuredUL_GrantType1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_configuredUL_GrantType1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_configuredUL_GrantType2, + { "configuredUL-GrantType2", "nr-rrc.configuredUL_GrantType2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_configuredUL_GrantType2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pre_EmptIndication_DL, + { "pre-EmptIndication-DL", "nr-rrc.pre_EmptIndication_DL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pre_EmptIndication_DL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cbg_TransIndication, + { "cbg-TransIndication", "nr-rrc.cbg_TransIndication", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_cbg_FlushIndication_DL, + { "cbg-FlushIndication-DL", "nr-rrc.cbg_FlushIndication_DL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cbg_FlushIndication_DL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dynamicHARQ_ACK_CodeB_CBG_Retx_DL, + { "dynamicHARQ-ACK-CodeB-CBG-Retx-DL", "nr-rrc.dynamicHARQ_ACK_CodeB_CBG_Retx_DL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicHARQ_ACK_CodeB_CBG_Retx_DL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rateMatchingResrcSetSemi_Static, + { "rateMatchingResrcSetSemi-Static", "nr-rrc.rateMatchingResrcSetSemi_Static", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rateMatchingResrcSetSemi_Static_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rateMatchingResrcSetDynamic, + { "rateMatchingResrcSetDynamic", "nr-rrc.rateMatchingResrcSetDynamic", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rateMatchingResrcSetDynamic_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rateMatchingLTE_CRS, + { "rateMatchingLTE-CRS", "nr-rrc.rateMatchingLTE_CRS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rateMatchingLTE_CRS_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_bwp_SwitchingDelay, + { "bwp-SwitchingDelay", "nr-rrc.bwp_SwitchingDelay", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bwp_SwitchingDelay_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_twoPUCCH_F0_2_ConsecSymbols, + { "twoPUCCH-F0-2-ConsecSymbols", "nr-rrc.twoPUCCH_F0_2_ConsecSymbols", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPUCCH_F0_2_ConsecSymbols_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_twoDifferentTPC_Loop_PUSCH, + { "twoDifferentTPC-Loop-PUSCH", "nr-rrc.twoDifferentTPC_Loop_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoDifferentTPC_Loop_PUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_twoDifferentTPC_Loop_PUCCH, + { "twoDifferentTPC-Loop-PUCCH", "nr-rrc.twoDifferentTPC_Loop_PUCCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoDifferentTPC_Loop_PUCCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_oneFL_DMRS_TwoAdditionalDMRS, + { "oneFL-DMRS-TwoAdditionalDMRS", "nr-rrc.oneFL_DMRS_TwoAdditionalDMRS", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_twoFL_DMRS, + { "twoFL-DMRS", "nr-rrc.twoFL_DMRS", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_twoFL_DMRS_TwoAdditionalDMRS, + { "twoFL-DMRS-TwoAdditionalDMRS", "nr-rrc.twoFL_DMRS_TwoAdditionalDMRS", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_oneFL_DMRS_ThreeAdditionalDMRS, + { "oneFL-DMRS-ThreeAdditionalDMRS", "nr-rrc.oneFL_DMRS_ThreeAdditionalDMRS", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_supportedDMRS_TypeDL, + { "supportedDMRS-TypeDL", "nr-rrc.supportedDMRS_TypeDL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedDMRS_TypeDL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedDMRS_TypeUL, + { "supportedDMRS-TypeUL", "nr-rrc.supportedDMRS_TypeUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedDMRS_TypeUL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_semiOpenLoopCSI, + { "semiOpenLoopCSI", "nr-rrc.semiOpenLoopCSI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_semiOpenLoopCSI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_ReportWithoutPMI, + { "csi-ReportWithoutPMI", "nr-rrc.csi_ReportWithoutPMI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_ReportWithoutPMI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_ReportWithCRI, + { "csi-ReportWithCRI", "nr-rrc.csi_ReportWithCRI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_ReportWithCRI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_ReportWithoutCQI, + { "csi-ReportWithoutCQI", "nr-rrc.csi_ReportWithoutCQI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_ReportWithoutCQI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_onePortsPTRS, + { "onePortsPTRS", "nr-rrc.onePortsPTRS", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_twoPUCCH_F0_2_ConsecSymbols_01, + { "twoPUCCH-F0-2-ConsecSymbols", "nr-rrc.twoPUCCH_F0_2_ConsecSymbols", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPUCCH_F0_2_ConsecSymbols_01_vals), 0, + "T_twoPUCCH_F0_2_ConsecSymbols_01", HFILL }}, + { &hf_nr_rrc_pucch_F2_WithFH, + { "pucch-F2-WithFH", "nr-rrc.pucch_F2_WithFH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pucch_F2_WithFH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pucch_F3_WithFH, + { "pucch-F3-WithFH", "nr-rrc.pucch_F3_WithFH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pucch_F3_WithFH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pucch_F4_WithFH, + { "pucch-F4-WithFH", "nr-rrc.pucch_F4_WithFH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pucch_F4_WithFH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_freqHoppingPUCCH_F0_2, + { "freqHoppingPUCCH-F0-2", "nr-rrc.freqHoppingPUCCH_F0_2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_freqHoppingPUCCH_F0_2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_freqHoppingPUCCH_F1_3_4, + { "freqHoppingPUCCH-F1-3-4", "nr-rrc.freqHoppingPUCCH_F1_3_4", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_freqHoppingPUCCH_F1_3_4_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_mux_SR_HARQ_ACK_CSI_PUCCH, + { "mux-SR-HARQ-ACK-CSI-PUCCH", "nr-rrc.mux_SR_HARQ_ACK_CSI_PUCCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mux_SR_HARQ_ACK_CSI_PUCCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_uci_CodeBlockSegmentation, + { "uci-CodeBlockSegmentation", "nr-rrc.uci_CodeBlockSegmentation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uci_CodeBlockSegmentation_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_onePUCCH_LongAndShortFormat, + { "onePUCCH-LongAndShortFormat", "nr-rrc.onePUCCH_LongAndShortFormat", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_onePUCCH_LongAndShortFormat_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_twoPUCCH_AnyOthersInSlot, + { "twoPUCCH-AnyOthersInSlot", "nr-rrc.twoPUCCH_AnyOthersInSlot", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPUCCH_AnyOthersInSlot_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_intraSlotFreqHopping_PUSCH, + { "intraSlotFreqHopping-PUSCH", "nr-rrc.intraSlotFreqHopping_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_intraSlotFreqHopping_PUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pusch_LBRM, + { "pusch-LBRM", "nr-rrc.pusch_LBRM", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_LBRM_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcch_BlindDetectionCA, + { "pdcch-BlindDetectionCA", "nr-rrc.pdcch_BlindDetectionCA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcch_BlindDetectionCA_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_tpc_PUSCH_RNTI_01, + { "tpc-PUSCH-RNTI", "nr-rrc.tpc_PUSCH_RNTI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpc_PUSCH_RNTI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_tpc_PUCCH_RNTI_01, + { "tpc-PUCCH-RNTI", "nr-rrc.tpc_PUCCH_RNTI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpc_PUCCH_RNTI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_tpc_SRS_RNTI_01, + { "tpc-SRS-RNTI", "nr-rrc.tpc_SRS_RNTI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpc_SRS_RNTI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_absoluteTPC_Command, + { "absoluteTPC-Command", "nr-rrc.absoluteTPC_Command", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_absoluteTPC_Command_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_twoDifferentTPC_Loop_PUSCH_01, + { "twoDifferentTPC-Loop-PUSCH", "nr-rrc.twoDifferentTPC_Loop_PUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoDifferentTPC_Loop_PUSCH_01_vals), 0, + "T_twoDifferentTPC_Loop_PUSCH_01", HFILL }}, + { &hf_nr_rrc_twoDifferentTPC_Loop_PUCCH_01, + { "twoDifferentTPC-Loop-PUCCH", "nr-rrc.twoDifferentTPC_Loop_PUCCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoDifferentTPC_Loop_PUCCH_01_vals), 0, + "T_twoDifferentTPC_Loop_PUCCH_01", HFILL }}, + { &hf_nr_rrc_pusch_HalfPi_BPSK, + { "pusch-HalfPi-BPSK", "nr-rrc.pusch_HalfPi_BPSK", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_HalfPi_BPSK_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pucch_F3_4_HalfPi_BPSK, + { "pucch-F3-4-HalfPi-BPSK", "nr-rrc.pucch_F3_4_HalfPi_BPSK", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pucch_F3_4_HalfPi_BPSK_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_oneSymbolGP_TDD, + { "oneSymbolGP-TDD", "nr-rrc.oneSymbolGP_TDD", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_oneSymbolGP_TDD_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_almostContiguousCP_OFDM_UL, + { "almostContiguousCP-OFDM-UL", "nr-rrc.almostContiguousCP_OFDM_UL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_almostContiguousCP_OFDM_UL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcchMonitoringSingleOccasion, + { "pdcchMonitoringSingleOccasion", "nr-rrc.pdcchMonitoringSingleOccasion", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcchMonitoringSingleOccasion_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_scs_60kHz_03, + { "scs-60kHz", "nr-rrc.scs_60kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_60kHz_03_vals), 0, + "T_scs_60kHz_03", HFILL }}, + { &hf_nr_rrc_pdsch_256QAM_FR1, + { "pdsch-256QAM-FR1", "nr-rrc.pdsch_256QAM_FR1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_256QAM_FR1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_calibrationGapPA, + { "calibrationGapPA", "nr-rrc.calibrationGapPA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_calibrationGapPA_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_supportedBandListNR, { "supportedBandListNR", "nr-rrc.supportedBandListNR", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_intraBandAsyncFDD, - { "intraBandAsyncFDD", "nr-rrc.intraBandAsyncFDD", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_intraBandAsyncFDD_vals), 0, - NULL, HFILL }}, { &hf_nr_rrc_SupportedBandListNR_item, { "BandNR", "nr-rrc.BandNR_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_SupportedBasebandProcessingCombination_item, - { "BasebandProcessingCombination", "nr-rrc.BasebandProcessingCombination_element", - FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_basebandParametersPerBand, - { "basebandParametersPerBand", "nr-rrc.basebandParametersPerBand", + { &hf_nr_rrc_modifiedMPR_Behaviour, + { "modifiedMPR-Behaviour", "nr-rrc.modifiedMPR_Behaviour", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_maxChannelBW_PerCC, + { "maxChannelBW-PerCC", "nr-rrc.maxChannelBW_PerCC", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxChannelBW_PerCC_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_mimo_ParametersPerBand, + { "mimo-ParametersPerBand", "nr-rrc.mimo_ParametersPerBand_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_extendedCP, + { "extendedCP", "nr-rrc.extendedCP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_extendedCP_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_phaseCoherenceUL, + { "phaseCoherenceUL", "nr-rrc.phaseCoherenceUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phaseCoherenceUL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_scellWithoutSSB_01, + { "scellWithoutSSB", "nr-rrc.scellWithoutSSB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scellWithoutSSB_01_vals), 0, + "T_scellWithoutSSB_01", HFILL }}, + { &hf_nr_rrc_csi_RS_MeasSCellWithoutSSB_01, + { "csi-RS-MeasSCellWithoutSSB", "nr-rrc.csi_RS_MeasSCellWithoutSSB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_RS_MeasSCellWithoutSSB_01_vals), 0, + "T_csi_RS_MeasSCellWithoutSSB_01", HFILL }}, + { &hf_nr_rrc_srs_AssocCSI_RS_01, + { "srs-AssocCSI-RS", "nr-rrc.srs_AssocCSI_RS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srs_AssocCSI_RS_01_vals), 0, + "T_srs_AssocCSI_RS_01", HFILL }}, + { &hf_nr_rrc_type1_3_CSS_01, + { "type1-3-CSS", "nr-rrc.type1_3_CSS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_type1_3_CSS_01_vals), 0, + "T_type1_3_CSS_01", HFILL }}, + { &hf_nr_rrc_multipleTCI, + { "multipleTCI", "nr-rrc.multipleTCI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleTCI_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcchMonitoringAnyOccasions_01, + { "pdcchMonitoringAnyOccasions", "nr-rrc.pdcchMonitoringAnyOccasions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcchMonitoringAnyOccasions_01_vals), 0, + "T_pdcchMonitoringAnyOccasions_01", HFILL }}, + { &hf_nr_rrc_ue_SpecificUL_DL_Assignment_01, + { "ue-SpecificUL-DL-Assignment", "nr-rrc.ue_SpecificUL_DL_Assignment", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ue_SpecificUL_DL_Assignment_01_vals), 0, + "T_ue_SpecificUL_DL_Assignment_01", HFILL }}, + { &hf_nr_rrc_pdsch_DifferentTB_PerSlot_01, + { "pdsch-DifferentTB-PerSlot", "nr-rrc.pdsch_DifferentTB_PerSlot_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_pdsch_DifferentTB_PerSlot_01", HFILL }}, + { &hf_nr_rrc_scs_15kHz_02, + { "scs-15kHz", "nr-rrc.scs_15kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_15kHz_02_vals), 0, + "T_scs_15kHz_02", HFILL }}, + { &hf_nr_rrc_scs_30kHz_02, + { "scs-30kHz", "nr-rrc.scs_30kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_30kHz_02_vals), 0, + "T_scs_30kHz_02", HFILL }}, + { &hf_nr_rrc_scs_60kHz_04, + { "scs-60kHz", "nr-rrc.scs_60kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_60kHz_04_vals), 0, + "T_scs_60kHz_04", HFILL }}, + { &hf_nr_rrc_scs_120kHz_02, + { "scs-120kHz", "nr-rrc.scs_120kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_120kHz_02_vals), 0, + "T_scs_120kHz_02", HFILL }}, + { &hf_nr_rrc_pusch_DifferentTB_PerSlot_01, + { "pusch-DifferentTB-PerSlot", "nr-rrc.pusch_DifferentTB_PerSlot_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_pusch_DifferentTB_PerSlot_01", HFILL }}, + { &hf_nr_rrc_scs_15kHz_03, + { "scs-15kHz", "nr-rrc.scs_15kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_15kHz_03_vals), 0, + "T_scs_15kHz_03", HFILL }}, + { &hf_nr_rrc_scs_30kHz_03, + { "scs-30kHz", "nr-rrc.scs_30kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_30kHz_03_vals), 0, + "T_scs_30kHz_03", HFILL }}, + { &hf_nr_rrc_scs_60kHz_05, + { "scs-60kHz", "nr-rrc.scs_60kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_60kHz_05_vals), 0, + "T_scs_60kHz_05", HFILL }}, + { &hf_nr_rrc_scs_120kHz_03, + { "scs-120kHz", "nr-rrc.scs_120kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_120kHz_03_vals), 0, + "T_scs_120kHz_03", HFILL }}, + { &hf_nr_rrc_bwp_SameNumerology, + { "bwp-SameNumerology", "nr-rrc.bwp_SameNumerology", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bwp_SameNumerology_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_bwp_DiffNumerology, + { "bwp-DiffNumerology", "nr-rrc.bwp_DiffNumerology", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bwp_DiffNumerology_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_twoPUCCH_Group_01, + { "twoPUCCH-Group", "nr-rrc.twoPUCCH_Group", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPUCCH_Group_01_vals), 0, + "T_twoPUCCH_Group_01", HFILL }}, + { &hf_nr_rrc_diffNumerologyAcrossPUCCH_Group_01, + { "diffNumerologyAcrossPUCCH-Group", "nr-rrc.diffNumerologyAcrossPUCCH_Group", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_diffNumerologyAcrossPUCCH_Group_01_vals), 0, + "T_diffNumerologyAcrossPUCCH_Group_01", HFILL }}, + { &hf_nr_rrc_diffNumerologyWithinPUCCH_Group_01, + { "diffNumerologyWithinPUCCH-Group", "nr-rrc.diffNumerologyWithinPUCCH_Group", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_diffNumerologyWithinPUCCH_Group_01_vals), 0, + "T_diffNumerologyWithinPUCCH_Group_01", HFILL }}, + { &hf_nr_rrc_crossCarrierScheduling_02, + { "crossCarrierScheduling", "nr-rrc.crossCarrierScheduling", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_crossCarrierScheduling_02_vals), 0, + "T_crossCarrierScheduling_02", HFILL }}, + { &hf_nr_rrc_supportedNumberTAG_01, + { "supportedNumberTAG", "nr-rrc.supportedNumberTAG", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedNumberTAG_01_vals), 0, + "T_supportedNumberTAG_01", HFILL }}, + { &hf_nr_rrc_simultaneousTxSUL_NonSUL_01, + { "simultaneousTxSUL-NonSUL", "nr-rrc.simultaneousTxSUL_NonSUL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousTxSUL_NonSUL_01_vals), 0, + "T_simultaneousTxSUL_NonSUL_01", HFILL }}, + { &hf_nr_rrc_searchSpaceSharingCA_DL_01, + { "searchSpaceSharingCA-DL", "nr-rrc.searchSpaceSharingCA_DL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_searchSpaceSharingCA_DL_01_vals), 0, + "T_searchSpaceSharingCA_DL_01", HFILL }}, + { &hf_nr_rrc_searchSpaceSharingCA_UL_01, + { "searchSpaceSharingCA-UL", "nr-rrc.searchSpaceSharingCA_UL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_searchSpaceSharingCA_UL_01_vals), 0, + "T_searchSpaceSharingCA_UL_01", HFILL }}, + { &hf_nr_rrc_pdsch_256QAM_FR2, + { "pdsch-256QAM-FR2", "nr-rrc.pdsch_256QAM_FR2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_256QAM_FR2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pusch_256QAM, + { "pusch-256QAM", "nr-rrc.pusch_256QAM", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_256QAM_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_timeDurationForQCL_01, + { "timeDurationForQCL", "nr-rrc.timeDurationForQCL_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_timeDurationForQCL_01", HFILL }}, + { &hf_nr_rrc_scs_60kHz_06, + { "scs-60kHz", "nr-rrc.scs_60kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_60kHz_06_vals), 0, + "T_scs_60kHz_06", HFILL }}, + { &hf_nr_rrc_sch_120kHz_01, + { "sch-120kHz", "nr-rrc.sch_120kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sch_120kHz_01_vals), 0, + "T_sch_120kHz_01", HFILL }}, + { &hf_nr_rrc_maxNumberConfiguredTCIstates, + { "maxNumberConfiguredTCIstates", "nr-rrc.maxNumberConfiguredTCIstates", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberConfiguredTCIstates_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberActiveTCI_PerCC, + { "maxNumberActiveTCI-PerCC", "nr-rrc.maxNumberActiveTCI_PerCC", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberActiveTCI_PerCC_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pusch_TransCoherence, + { "pusch-TransCoherence", "nr-rrc.pusch_TransCoherence", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_TransCoherence_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_beamCorrespondence, + { "beamCorrespondence", "nr-rrc.beamCorrespondence", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_beamCorrespondence_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_periodicBeamReport, + { "periodicBeamReport", "nr-rrc.periodicBeamReport", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicBeamReport_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_aperiodicBeamReport, + { "aperiodicBeamReport", "nr-rrc.aperiodicBeamReport", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aperiodicBeamReport_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sp_BeamReportPUCCH, + { "sp-BeamReportPUCCH", "nr-rrc.sp_BeamReportPUCCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sp_BeamReportPUCCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sp_BeamReportPUSCH, + { "sp-BeamReportPUSCH", "nr-rrc.sp_BeamReportPUSCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sp_BeamReportPUSCH_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_beamManagementSSB_CSI_RS, + { "beamManagementSSB-CSI-RS", "nr-rrc.beamManagementSSB_CSI_RS_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberRxBeam, + { "maxNumberRxBeam", "nr-rrc.maxNumberRxBeam", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBand", HFILL }}, - { &hf_nr_rrc_basebandParametersPerBand_item, - { "BasebandParametersPerBand", "nr-rrc.BasebandParametersPerBand_element", - FT_NONE, BASE_NONE, NULL, 0, + "INTEGER_2_8", HFILL }}, + { &hf_nr_rrc_maxNumberRxTxBeamSwitchDL, + { "maxNumberRxTxBeamSwitchDL", "nr-rrc.maxNumberRxTxBeamSwitchDL_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_scs_15kHz_04, + { "scs-15kHz", "nr-rrc.scs_15kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_15kHz_04_vals), 0, + "T_scs_15kHz_04", HFILL }}, + { &hf_nr_rrc_scs_30kHz_04, + { "scs-30kHz", "nr-rrc.scs_30kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_30kHz_04_vals), 0, + "T_scs_30kHz_04", HFILL }}, + { &hf_nr_rrc_scs_60kHz_07, + { "scs-60kHz", "nr-rrc.scs_60kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_60kHz_07_vals), 0, + "T_scs_60kHz_07", HFILL }}, + { &hf_nr_rrc_scs_120kHz_04, + { "scs-120kHz", "nr-rrc.scs_120kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_120kHz_04_vals), 0, + "T_scs_120kHz_04", HFILL }}, + { &hf_nr_rrc_scs_240kHz, + { "scs-240kHz", "nr-rrc.scs_240kHz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_240kHz_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberNonGroupBeamReporting, + { "maxNumberNonGroupBeamReporting", "nr-rrc.maxNumberNonGroupBeamReporting", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberNonGroupBeamReporting_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_groupBeamReporting, + { "groupBeamReporting", "nr-rrc.groupBeamReporting", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_groupBeamReporting_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_uplinkBeamManagement, + { "uplinkBeamManagement", "nr-rrc.uplinkBeamManagement_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberSRS_ResourcePerSet, + { "maxNumberSRS-ResourcePerSet", "nr-rrc.maxNumberSRS_ResourcePerSet", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberSRS_ResourcePerSet_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberSRS_ResourceSet, + { "maxNumberSRS-ResourceSet", "nr-rrc.maxNumberSRS_ResourceSet", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_8", HFILL }}, + { &hf_nr_rrc_maxNumberCSI_RS_BFR, + { "maxNumberCSI-RS-BFR", "nr-rrc.maxNumberCSI_RS_BFR", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_64", HFILL }}, + { &hf_nr_rrc_maxNumberSSB_BFR, + { "maxNumberSSB-BFR", "nr-rrc.maxNumberSSB_BFR", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_64", HFILL }}, + { &hf_nr_rrc_maxNumberCSI_RS_SSB_BFR, + { "maxNumberCSI-RS-SSB-BFR", "nr-rrc.maxNumberCSI_RS_SSB_BFR", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_256", HFILL }}, + { &hf_nr_rrc_twoPortsPTRS, + { "twoPortsPTRS", "nr-rrc.twoPortsPTRS", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_maxNumberSimultaneousSRS_PerCC, + { "maxNumberSimultaneousSRS-PerCC", "nr-rrc.maxNumberSimultaneousSRS_PerCC", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_4", HFILL }}, + { &hf_nr_rrc_lowLatencyCSI_Feedback_01, + { "lowLatencyCSI-Feedback", "nr-rrc.lowLatencyCSI_Feedback", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_lowLatencyCSI_Feedback_01_vals), 0, + "T_lowLatencyCSI_Feedback_01", HFILL }}, + { &hf_nr_rrc_maxNumberSSB_CSI_RS_ResourceOneTx, + { "maxNumberSSB-CSI-RS-ResourceOneTx", "nr-rrc.maxNumberSSB_CSI_RS_ResourceOneTx", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberSSB_CSI_RS_ResourceOneTx_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberSSB_CSI_RS_ResourceTwoTx, + { "maxNumberSSB-CSI-RS-ResourceTwoTx", "nr-rrc.maxNumberSSB_CSI_RS_ResourceTwoTx", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberSSB_CSI_RS_ResourceTwoTx_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedCSI_RS_Density, + { "supportedCSI-RS-Density", "nr-rrc.supportedCSI_RS_Density", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedCSI_RS_Density_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberAperiodicSRS_PerBWP, + { "maxNumberAperiodicSRS-PerBWP", "nr-rrc.maxNumberAperiodicSRS_PerBWP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberAperiodicSRS_PerBWP_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberAperiodicSRS_PerBWP_PerSlot, + { "maxNumberAperiodicSRS-PerBWP-PerSlot", "nr-rrc.maxNumberAperiodicSRS_PerBWP_PerSlot", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_6", HFILL }}, + { &hf_nr_rrc_maxNumberPeriodicSRS_PerBWP, + { "maxNumberPeriodicSRS-PerBWP", "nr-rrc.maxNumberPeriodicSRS_PerBWP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberPeriodicSRS_PerBWP_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_ca_BandwidthClassDL, - { "ca-BandwidthClassDL", "nr-rrc.ca_BandwidthClassDL", - FT_UINT32, BASE_DEC, VALS(nr_rrc_CA_BandwidthClass_vals), 0, - "CA_BandwidthClass", HFILL }}, - { &hf_nr_rrc_ca_BandwidthClassUL, - { "ca-BandwidthClassUL", "nr-rrc.ca_BandwidthClassUL", - FT_UINT32, BASE_DEC, VALS(nr_rrc_CA_BandwidthClass_vals), 0, - "CA_BandwidthClass", HFILL }}, - { &hf_nr_rrc_basebandParametersPerCC, - { "basebandParametersPerCC", "nr-rrc.basebandParametersPerCC", + { &hf_nr_rrc_maxNumberPeriodicSRS_PerBWP_PerSlot, + { "maxNumberPeriodicSRS-PerBWP-PerSlot", "nr-rrc.maxNumberPeriodicSRS_PerBWP_PerSlot", FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxServCell_OF_BasebandParametersPerCC", HFILL }}, - { &hf_nr_rrc_basebandParametersPerCC_item, - { "BasebandParametersPerCC", "nr-rrc.BasebandParametersPerCC_element", - FT_NONE, BASE_NONE, NULL, 0, + "INTEGER_1_6", HFILL }}, + { &hf_nr_rrc_maxNumberSemiPersitentSRS_PerBWP, + { "maxNumberSemiPersitentSRS-PerBWP", "nr-rrc.maxNumberSemiPersitentSRS_PerBWP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberSemiPersitentSRS_PerBWP_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_supportedBWPerCC, - { "supportedBWPerCC", "nr-rrc.supportedBWPerCC", - FT_UINT32, BASE_DEC, VALS(nr_rrc_CA_BandwidthClass_vals), 0, - "BWPerCC", HFILL }}, - { &hf_nr_rrc_supportedMIMO_CapabilityDL, - { "supportedMIMO-CapabilityDL", "nr-rrc.supportedMIMO_CapabilityDL_element", - FT_NONE, BASE_NONE, NULL, 0, - "MIMO_Capability", HFILL }}, - { &hf_nr_rrc_supportedMIMO_CapabilityUL, - { "supportedMIMO-CapabilityUL", "nr-rrc.supportedMIMO_CapabilityUL_element", - FT_NONE, BASE_NONE, NULL, 0, - "MIMO_Capability", HFILL }}, - { &hf_nr_rrc_modulationOrder, - { "modulationOrder", "nr-rrc.modulationOrder_element", - FT_NONE, BASE_NONE, NULL, 0, + { &hf_nr_rrc_maxNumberSP_SRS_PerBWP_PerSlot, + { "maxNumberSP-SRS-PerBWP-PerSlot", "nr-rrc.maxNumberSP_SRS_PerBWP_PerSlot", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_6", HFILL }}, + { &hf_nr_rrc_maxNumberSRS_Ports_PerResource, + { "maxNumberSRS-Ports-PerResource", "nr-rrc.maxNumberSRS_Ports_PerResource", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberSRS_Ports_PerResource_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_subCarrierSpacing, - { "subCarrierSpacing", "nr-rrc.subCarrierSpacing_element", - FT_NONE, BASE_NONE, NULL, 0, + { &hf_nr_rrc_supportedSRS_TxPortSwitch, + { "supportedSRS-TxPortSwitch", "nr-rrc.supportedSRS_TxPortSwitch", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedSRS_TxPortSwitch_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_bandNR, - { "bandNR", "nr-rrc.bandNR", - FT_INT32, BASE_DEC, NULL, 0, - "FreqBandIndicatorNR", HFILL }}, - { &hf_nr_rrc_dataRateDRB_IP, - { "dataRateDRB-IP", "nr-rrc.dataRateDRB_IP", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dataRateDRB_IP_vals), 0, + { &hf_nr_rrc_txSwitchImpactToRx, + { "txSwitchImpactToRx", "nr-rrc.txSwitchImpactToRx", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_txSwitchImpactToRx_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_supportedROHC_Profiles, { "supportedROHC-Profiles", "nr-rrc.supportedROHC_Profiles_element", @@ -16282,34 +32385,38 @@ void proto_register_nr_rrc(void) { { "shortSN", "nr-rrc.shortSN", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_shortSN_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_volteOverNR_PDCP, - { "volteOverNR-PDCP", "nr-rrc.volteOverNR_PDCP", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_volteOverNR_PDCP_vals), 0, + { &hf_nr_rrc_am_WithShortSN, + { "am-WithShortSN", "nr-rrc.am_WithShortSN", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_am_WithShortSN_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_amWithShortSN, - { "amWithShortSN", "nr-rrc.amWithShortSN", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_amWithShortSN_vals), 0, + { &hf_nr_rrc_um_WithShortSN, + { "um-WithShortSN", "nr-rrc.um_WithShortSN", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_um_WithShortSN_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_umWithShortSN, - { "umWithShortSN", "nr-rrc.umWithShortSN", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_umWithShortSN_vals), 0, + { &hf_nr_rrc_um_WIthLongSN, + { "um-WIthLongSN", "nr-rrc.um_WIthLongSN", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_um_WIthLongSN_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_umWIthLongSN, - { "umWIthLongSN", "nr-rrc.umWIthLongSN", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_umWIthLongSN_vals), 0, + { &hf_nr_rrc_mac_ParametersCommon, + { "mac-ParametersCommon", "nr-rrc.mac_ParametersCommon_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_lcp_Restriction, { "lcp-Restriction", "nr-rrc.lcp_Restriction", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_lcp_Restriction_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_pucch_SpatialRelInfoMAC_CE, + { "pucch-SpatialRelInfoMAC-CE", "nr-rrc.pucch_SpatialRelInfoMAC_CE", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pucch_SpatialRelInfoMAC_CE_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_skipUplinkTxDynamic_01, { "skipUplinkTxDynamic", "nr-rrc.skipUplinkTxDynamic", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_skipUplinkTxDynamic_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_logicalChannelSR_DelayTimer, + { &hf_nr_rrc_logicalChannelSR_DelayTimer_01, { "logicalChannelSR-DelayTimer", "nr-rrc.logicalChannelSR_DelayTimer", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_logicalChannelSR_DelayTimer_vals), 0, - NULL, HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_logicalChannelSR_DelayTimer_01_vals), 0, + "T_logicalChannelSR_DelayTimer_01", HFILL }}, { &hf_nr_rrc_longDRX_Cycle, { "longDRX-Cycle", "nr-rrc.longDRX_Cycle", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_longDRX_Cycle_vals), 0, @@ -16318,25 +32425,45 @@ void proto_register_nr_rrc(void) { { "shortDRX-Cycle", "nr-rrc.shortDRX_Cycle", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_shortDRX_Cycle_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_numberOfSR_Configurations, - { "numberOfSR-Configurations", "nr-rrc.numberOfSR_Configurations", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_numberOfSR_Configurations_vals), 0, + { &hf_nr_rrc_multipleSR_Configurations, + { "multipleSR-Configurations", "nr-rrc.multipleSR_Configurations", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleSR_Configurations_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_numberOfConfiguredGrantConfigurations, - { "numberOfConfiguredGrantConfigurations", "nr-rrc.numberOfConfiguredGrantConfigurations", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_numberOfConfiguredGrantConfigurations_vals), 0, + { &hf_nr_rrc_multipleConfiguredGrantConfigurations, + { "multipleConfiguredGrantConfigurations", "nr-rrc.multipleConfiguredGrantConfigurations", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleConfiguredGrantConfigurations_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, + { &hf_nr_rrc_intraAndInterF_MeasAndReport, + { "intraAndInterF-MeasAndReport", "nr-rrc.intraAndInterF_MeasAndReport", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_intraAndInterF_MeasAndReport_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_eventA_MeasAndReport, + { "eventA-MeasAndReport", "nr-rrc.eventA_MeasAndReport", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_eventA_MeasAndReport_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ss_SINR_Meas, + { "ss-SINR-Meas", "nr-rrc.ss_SINR_Meas", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ss_SINR_Meas_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RSRP_AndRSRQ_MeasWithSSB, + { "csi-RSRP-AndRSRQ-MeasWithSSB", "nr-rrc.csi_RSRP_AndRSRQ_MeasWithSSB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithSSB_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RSRP_AndRSRQ_MeasWithoutSSB, + { "csi-RSRP-AndRSRQ-MeasWithoutSSB", "nr-rrc.csi_RSRP_AndRSRQ_MeasWithoutSSB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithoutSSB_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_SINR_Meas, + { "csi-SINR-Meas", "nr-rrc.csi_SINR_Meas", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_SINR_Meas_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_csi_RS_RLM, + { "csi-RS-RLM", "nr-rrc.csi_RS_RLM", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_RS_RLM_vals), 0, NULL, HFILL }}, /*--- End of included file: packet-nr-rrc-hfarr.c ---*/ -#line 81 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 79 "./asn1/nr-rrc/packet-nr-rrc-template.c" }; @@ -16345,23 +32472,31 @@ void proto_register_nr_rrc(void) { /*--- Included file: packet-nr-rrc-ettarr.c ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-ettarr.c" - &ett_nr_rrc_SCG_ConfigInfo, + &ett_nr_rrc_NR_FreqInfo, + &ett_nr_rrc_CG_ConfigInfo, &ett_nr_rrc_T_criticalExtensions, &ett_nr_rrc_T_c1, &ett_nr_rrc_T_criticalExtensionsFuture, - &ett_nr_rrc_SCG_ConfigInfo_r15_IEs, + &ett_nr_rrc_CG_ConfigInfo_IEs, + &ett_nr_rrc_T_scgFailureInfo, &ett_nr_rrc_T_nonCriticalExtension, &ett_nr_rrc_ConfigRestrictInfoSCG, - &ett_nr_rrc_T_restrictedBasebandCombinationNR_NR, + &ett_nr_rrc_T_powerCoordination_FR1, + &ett_nr_rrc_T_servCellIndexRangeSCG, + &ett_nr_rrc_BandCombinationIndexList, + &ett_nr_rrc_BPC_IndexList, &ett_nr_rrc_DRX_Info, + &ett_nr_rrc_T_drx_LongCycleStartOffset, + &ett_nr_rrc_T_shortDRX, + &ett_nr_rrc_MeasConfigMN, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo, &ett_nr_rrc_CandidateCellInfoList, &ett_nr_rrc_CandidateCellInfo, &ett_nr_rrc_T_cellIdentification, - &ett_nr_rrc_T_measResultCell, - &ett_nr_rrc_CandidateRS_IndexInfoList, - &ett_nr_rrc_CandidateRS_IndexInfo, - &ett_nr_rrc_T_measResultSSB, - &ett_nr_rrc_MeasResultSSTD, + &ett_nr_rrc_CandidateRS_IndexInfoListSSB, + &ett_nr_rrc_CandidateRS_IndexInfoSSB, + &ett_nr_rrc_CandidateRS_IndexInfoListCSI_RS, + &ett_nr_rrc_CandidateRS_IndexInfoCSI_RS, &ett_nr_rrc_BCCH_BCH_Message, &ett_nr_rrc_BCCH_BCH_MessageType, &ett_nr_rrc_T_messageClassExtension, @@ -16378,81 +32513,200 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_criticalExtensions_01, &ett_nr_rrc_T_criticalExtensionsFuture_01, &ett_nr_rrc_MeasurementReport_IEs, + &ett_nr_rrc_T_nonCriticalExtension_01, &ett_nr_rrc_RRCReconfiguration, &ett_nr_rrc_T_criticalExtensions_02, &ett_nr_rrc_T_criticalExtensionsFuture_02, &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_01, + &ett_nr_rrc_T_nonCriticalExtension_02, &ett_nr_rrc_RRCReconfigurationComplete, &ett_nr_rrc_T_criticalExtensions_03, &ett_nr_rrc_T_criticalExtensionsFuture_03, &ett_nr_rrc_RRCReconfigurationComplete_IEs, - &ett_nr_rrc_BandwidthPart, + &ett_nr_rrc_T_nonCriticalExtension_03, + &ett_nr_rrc_SIB1, + &ett_nr_rrc_T_ssb_PositionsInBurst, + &ett_nr_rrc_T_supplementaryUplink, + &ett_nr_rrc_T_nonCriticalExtension_04, + &ett_nr_rrc_BWP, + &ett_nr_rrc_BWP_Uplink, + &ett_nr_rrc_BWP_UplinkCommon, + &ett_nr_rrc_T_rach_ConfigCommon, + &ett_nr_rrc_T_pusch_ConfigCommon, + &ett_nr_rrc_T_pucch_ConfigCommon, + &ett_nr_rrc_BWP_UplinkDedicated, + &ett_nr_rrc_T_pucch_Config, + &ett_nr_rrc_T_pusch_Config, + &ett_nr_rrc_T_configuredGrantConfig, + &ett_nr_rrc_T_srs_Config, + &ett_nr_rrc_T_beamFailureRecoveryConfig, + &ett_nr_rrc_BWP_Downlink, + &ett_nr_rrc_BWP_DownlinkCommon, + &ett_nr_rrc_T_pdcch_ConfigCommon, + &ett_nr_rrc_T_pdsch_ConfigCommon, + &ett_nr_rrc_BWP_DownlinkDedicated, + &ett_nr_rrc_T_pdcch_Config, + &ett_nr_rrc_T_pdsch_Config, + &ett_nr_rrc_T_sps_Config, + &ett_nr_rrc_T_radioLinkMonitoringConfig, + &ett_nr_rrc_BeamFailureRecoveryConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCandidateBeams_OF_PRACH_ResourceDedicatedBFR, + &ett_nr_rrc_PRACH_ResourceDedicatedBFR, + &ett_nr_rrc_BFR_SSB_Resource, + &ett_nr_rrc_BFR_CSIRS_Resource, &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_SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_Bearer_Config, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentity, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex, + &ett_nr_rrc_RLC_Bearer_Config, + &ett_nr_rrc_T_servedRadioBearer, &ett_nr_rrc_PhysicalCellGroupConfig, &ett_nr_rrc_SpCellConfig, - &ett_nr_rrc_T_reconfigurationWithSync, - &ett_nr_rrc_SCellToReleaseList, - &ett_nr_rrc_SCellToAddModList, + &ett_nr_rrc_T_rlf_TimersAndConstants, + &ett_nr_rrc_ReconfigurationWithSync, + &ett_nr_rrc_T_rach_ConfigDedicated, &ett_nr_rrc_SCellConfig, - &ett_nr_rrc_CellIndexList, + &ett_nr_rrc_CodebookConfig, + &ett_nr_rrc_T_codebookType, + &ett_nr_rrc_T_type1, + &ett_nr_rrc_T_subType, + &ett_nr_rrc_T_typeI_SinglePanel, + &ett_nr_rrc_T_nrOfAntennaPorts, + &ett_nr_rrc_T_two, + &ett_nr_rrc_T_moreThanTwo, + &ett_nr_rrc_T_n1_n2, + &ett_nr_rrc_T_typeI_MultiPanel, + &ett_nr_rrc_T_ng_n1_n2, + &ett_nr_rrc_T_type2, + &ett_nr_rrc_T_subType_01, + &ett_nr_rrc_T_typeII, + &ett_nr_rrc_T_n1_n2_codebookSubsetRestriction, + &ett_nr_rrc_T_typeII_PortSelection, + &ett_nr_rrc_ConfiguredGrantConfig, + &ett_nr_rrc_T_uci_OnPUSCH, + &ett_nr_rrc_T_rrc_ConfiguredUplinkGrant, + &ett_nr_rrc_CG_UCI_OnPUSCH, + &ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets, + &ett_nr_rrc_ControlResourceSet, + &ett_nr_rrc_T_cce_REG_MappingType, + &ett_nr_rrc_T_interleaved, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId, &ett_nr_rrc_CrossCarrierSchedulingConfig, &ett_nr_rrc_T_schedulingCellInfo, &ett_nr_rrc_T_own, &ett_nr_rrc_T_other, + &ett_nr_rrc_CSI_AperiodicTriggerStateList, + &ett_nr_rrc_CSI_AperiodicTriggerState, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofReportConfigPerAperiodicTrigger_OF_CSI_AssociatedReportConfigInfo, + &ett_nr_rrc_CSI_AssociatedReportConfigInfo, + &ett_nr_rrc_T_resourcesForChannel, + &ett_nr_rrc_T_nzp_CSI_RS, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAP_CSI_RS_ResourcesPerSet_OF_TCI_StateId, + &ett_nr_rrc_CSI_FrequencyOccupation, + &ett_nr_rrc_CSI_IM_Resource, + &ett_nr_rrc_T_csi_IM_ResourceElementPattern, + &ett_nr_rrc_T_pattern0, + &ett_nr_rrc_T_pattern1, + &ett_nr_rrc_CSI_IM_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourcesPerSet_OF_CSI_IM_ResourceId, &ett_nr_rrc_CSI_MeasConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_Resource, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_Resources_OF_NZP_CSI_RS_ResourceId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSets_OF_NZP_CSI_RS_ResourceSetId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_Resource, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_Resources_OF_CSI_IM_ResourceId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSets_OF_CSI_IM_ResourceSetId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSets_OF_CSI_SSB_ResourceSetId, &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_SEQUENCE_SIZE_1_maxNrofCSI_ResourceConfigurations_OF_CSI_ResourceConfigId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_ReportConfigurations_OF_CSI_ReportConfigId, + &ett_nr_rrc_T_aperiodicTriggerStateList, + &ett_nr_rrc_T_semiPersistentOnPUSCH_TriggerStateList, &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_SEQUENCE_SIZE_1_maxNrofBWPs_OF_PUCCH_CSI_Resource, + &ett_nr_rrc_T_semiPersistentOnPUCCH, + &ett_nr_rrc_T_semiPersistentOnPUSCH, + &ett_nr_rrc_T_reportSlotOffsetList, &ett_nr_rrc_T_aperiodic, + &ett_nr_rrc_T_reportSlotOffsetList_01, &ett_nr_rrc_T_reportQuantity, - &ett_nr_rrc_T_cRI_RI_i1_CQI, + &ett_nr_rrc_T_cri_RI_i1_CQI, &ett_nr_rrc_T_reportFreqConfiguration, + &ett_nr_rrc_T_csi_ReportingBand, &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_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks, + &ett_nr_rrc_CSI_ReportPeriodicityAndOffset, + &ett_nr_rrc_PUCCH_CSI_Resource, + &ett_nr_rrc_PortIndexFor8Ranks, + &ett_nr_rrc_T_portIndex8, + &ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex8, + &ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_PortIndex8, + &ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_PortIndex8, + &ett_nr_rrc_SEQUENCE_SIZE_1_5_OF_PortIndex8, + &ett_nr_rrc_SEQUENCE_SIZE_1_6_OF_PortIndex8, + &ett_nr_rrc_SEQUENCE_SIZE_1_7_OF_PortIndex8, + &ett_nr_rrc_SEQUENCE_SIZE_1_8_OF_PortIndex8, + &ett_nr_rrc_T_portIndex4, + &ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex4, + &ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_PortIndex4, + &ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_PortIndex4, + &ett_nr_rrc_T_portIndex2, + &ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PortIndex2, + &ett_nr_rrc_CSI_ResourceConfig, + &ett_nr_rrc_T_csi_RS_ResourceSetList, + &ett_nr_rrc_T_nzp_CSI_RS_SSB, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourceSetsPerConfig_OF_NZP_CSI_RS_ResourceSetId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourceSetsPerConfig_OF_CSI_SSB_ResourceSetId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_IM_ResourceSetsPerConfig_OF_CSI_IM_ResourceSetId, + &ett_nr_rrc_CSI_ResourcePeriodicityAndOffset, + &ett_nr_rrc_CSI_RS_ResourceMapping, + &ett_nr_rrc_T_frequencyDomainAllocation, + &ett_nr_rrc_T_density, + &ett_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList, + &ett_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerState, + &ett_nr_rrc_CSI_SSB_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_SSB_ResourcePerSet_OF_SSB_Index, + &ett_nr_rrc_DMRS_DownlinkConfig, + &ett_nr_rrc_T_phaseTrackingRS, + &ett_nr_rrc_DMRS_UplinkConfig, + &ett_nr_rrc_T_phaseTrackingRS_01, + &ett_nr_rrc_T_transformPrecoding, + &ett_nr_rrc_T_disabled_01, + &ett_nr_rrc_T_enabled, + &ett_nr_rrc_DownlinkPreemption, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_INT_ConfigurationPerServingCell, + &ett_nr_rrc_INT_ConfigurationPerServingCell, + &ett_nr_rrc_EUTRA_MBSFN_SubframeConfigList, + &ett_nr_rrc_EUTRA_MBSFN_SubframeConfig, + &ett_nr_rrc_T_subframeAllocation, + &ett_nr_rrc_T_subframeAllocation_v1430, + &ett_nr_rrc_FrequencyInfoDL, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier, &ett_nr_rrc_FrequencyInfoUL, &ett_nr_rrc_LogicalChannelConfig, &ett_nr_rrc_T_ul_SpecificParameters, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SubcarrierSpacing, &ett_nr_rrc_MAC_CellGroupConfig, + &ett_nr_rrc_T_drx_Config, + &ett_nr_rrc_T_phr_Config, + &ett_nr_rrc_T_cs_RNTI, &ett_nr_rrc_DRX_Config, - &ett_nr_rrc_T_setup, - &ett_nr_rrc_T_drx_LongCycleStartOffset, - &ett_nr_rrc_T_shortDRX, + &ett_nr_rrc_T_drx_onDurationTimer, + &ett_nr_rrc_T_drx_LongCycleStartOffset_01, + &ett_nr_rrc_T_shortDRX_01, &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_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_ToAddMod, &ett_nr_rrc_TAG_ToAddMod, &ett_nr_rrc_BSR_Config, &ett_nr_rrc_MeasConfig, @@ -16460,26 +32714,33 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_MeasObjectToRemoveList, &ett_nr_rrc_MeasIdToRemoveList, &ett_nr_rrc_ReportConfigToRemoveList, + &ett_nr_rrc_MeasGapConfig, + &ett_nr_rrc_T_gapFR2, + &ett_nr_rrc_GapConfig, &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_csi_rs_ResourceConfigMobility, + &ett_nr_rrc_SSB_ConfigMobility, + &ett_nr_rrc_T_ssb_ToMeasure, &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_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId, + &ett_nr_rrc_T_ss_RSSI_Measurement, + &ett_nr_rrc_T_measurementSlots, + &ett_nr_rrc_CSI_RS_ResourceConfigMobility, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility, + &ett_nr_rrc_CSI_RS_CellMobility, &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_T_associatedSSB, + &ett_nr_rrc_T_frequencyDomainAllocation_01, &ett_nr_rrc_Q_OffsetRangeList, + &ett_nr_rrc_SSB_ToMeasure, &ett_nr_rrc_ThresholdNR, &ett_nr_rrc_CellsToAddModList, &ett_nr_rrc_CellsToAddMod, @@ -16499,30 +32760,37 @@ void proto_register_nr_rrc(void) { &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_MeasQuantityResults, + &ett_nr_rrc_ResultsPerSSB_IndexList, + &ett_nr_rrc_ResultsPerSSB_Index, + &ett_nr_rrc_ResultsPerCSI_RS_IndexList, + &ett_nr_rrc_ResultsPerCSI_RS_Index, + &ett_nr_rrc_MeasResultSCG_Failure, + &ett_nr_rrc_MeasResultServFreqList2NR, + &ett_nr_rrc_MeasResultServFreq2NR, + &ett_nr_rrc_MeasResultList2NR, + &ett_nr_rrc_MeasResult2NR, + &ett_nr_rrc_MeasResultCellListSFTD, + &ett_nr_rrc_MeasResultCellSFTD, + &ett_nr_rrc_MultiFrequencyBandListNR, + &ett_nr_rrc_NZP_CSI_RS_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerSet_OF_NZP_CSI_RS_ResourceId, + &ett_nr_rrc_NZP_CSI_RS_Resource, + &ett_nr_rrc_PCI_List, + &ett_nr_rrc_PCI_Range, + &ett_nr_rrc_PCI_RangeIndexList, &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_SEQUENCE_SIZE_1_3_OF_ControlResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_3_OF_ControlResourceSetId, + &ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpace, + &ett_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpaceId, + &ett_nr_rrc_T_downlinkPreemption, + &ett_nr_rrc_T_slotFormatIndicator, + &ett_nr_rrc_T_tpc_PUSCH, + &ett_nr_rrc_T_tpc_PUCCH, + &ett_nr_rrc_PDCCH_ConfigCommon, + &ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_ControlResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpace, &ett_nr_rrc_PDCP_Config, &ett_nr_rrc_T_drb, &ett_nr_rrc_T_headerCompression, @@ -16532,54 +32800,117 @@ void proto_register_nr_rrc(void) { &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_T_dmrs_DownlinkForPDSCH_MappingTypeA, + &ett_nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_State, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_States_OF_TCI_StateId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofDL_Allocations_OF_PDSCH_TimeDomainResourceAllocation, &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_SEQUENCE_SIZE_1_maxNrofRateMatchPatterns_OF_RateMatchPatternId, + &ett_nr_rrc_T_prb_BundlingType, + &ett_nr_rrc_T_static, + &ett_nr_rrc_T_dynamic, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_Resource, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Resources_OF_ZP_CSI_RS_ResourceId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_Sets_OF_ZP_CSI_RS_ResourceSetId, + &ett_nr_rrc_PDSCH_ConfigCommon, + &ett_nr_rrc_PDSCH_ServingCellConfig, + &ett_nr_rrc_T_codeBlockGroupTransmission, + &ett_nr_rrc_PDSCH_CodeBlockGroupTransmission, + &ett_nr_rrc_PDSCH_TimeDomainResourceAllocation, + &ett_nr_rrc_PTRS_DownlinkConfig, + &ett_nr_rrc_T_frequencyDensity, + &ett_nr_rrc_T_timeDensity, + &ett_nr_rrc_T_epre_RatioPort2, + &ett_nr_rrc_PTRS_UplinkConfig, + &ett_nr_rrc_T_modeSpecificParameters, + &ett_nr_rrc_T_cp_OFDM, + &ett_nr_rrc_T_frequencyDensity_01, + &ett_nr_rrc_T_timeDensity_01, + &ett_nr_rrc_T_dft_S_OFDM, + &ett_nr_rrc_T_sampleDensity, &ett_nr_rrc_PUCCH_Config, - &ett_nr_rrc_SEQUENCE_SIZE_1_1_OF_PUCCH_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId, &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_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId, + &ett_nr_rrc_SEQUENCE_SIZE_1_2_OF_PUCCH_ResourceId, + &ett_nr_rrc_T_dl_DataToUL_ACK, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfo, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelationInfoId, + &ett_nr_rrc_PUCCH_FormatConfig, + &ett_nr_rrc_PUCCH_SpatialRelationInfo, + &ett_nr_rrc_T_referenceSignal, &ett_nr_rrc_PUCCH_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_8_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId, + &ett_nr_rrc_PUCCH_Resource, + &ett_nr_rrc_T_format, + &ett_nr_rrc_PUCCH_format0, + &ett_nr_rrc_PUCCH_format1, + &ett_nr_rrc_PUCCH_format2, + &ett_nr_rrc_PUCCH_format3, + &ett_nr_rrc_PUCCH_format4, + &ett_nr_rrc_PUCCH_ConfigCommon, + &ett_nr_rrc_PUCCH_PowerControl, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_P0_PerSet_OF_P0_PUCCH, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_PathlossReferenceRSs_OF_PUCCH_PathlossReferenceRS, + &ett_nr_rrc_P0_PUCCH, + &ett_nr_rrc_PUCCH_PathlossReferenceRS, + &ett_nr_rrc_T_referenceSignal_01, + &ett_nr_rrc_PUCCH_TPC_CommandConfig, &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_T_dmrs_UplinkForPUSCH_MappingTypeA, + &ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB, + &ett_nr_rrc_T_frequencyHoppingOffsetLists, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofUL_Allocations_OF_PUSCH_TimeDomainResourceAllocation, + &ett_nr_rrc_T_uci_OnPUSCH_01, + &ett_nr_rrc_UCI_OnPUSCH, + &ett_nr_rrc_T_betaOffsets, + &ett_nr_rrc_SEQUENCE_SIZE_4_OF_BetaOffsets, + &ett_nr_rrc_PUSCH_ConfigCommon, + &ett_nr_rrc_PUSCH_PowerControl, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUSCH_PathlossReferenceRSs_OF_PUSCH_PathlossReferenceRS_Id, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControl, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRI_PUSCH_Mappings_OF_SRI_PUSCH_PowerControlId, + &ett_nr_rrc_P0_PUSCH_AlphaSet, + &ett_nr_rrc_PUSCH_PathlossReferenceRS, + &ett_nr_rrc_T_referenceSignal_02, + &ett_nr_rrc_SRI_PUSCH_PowerControl, &ett_nr_rrc_BetaOffsets, + &ett_nr_rrc_PUSCH_ServingCellConfig, + &ett_nr_rrc_T_codeBlockGroupTransmission_01, + &ett_nr_rrc_PUSCH_CodeBlockGroupGransmission, + &ett_nr_rrc_PUSCH_TimeDomainResourceAllocation, + &ett_nr_rrc_PUSCH_TPC_CommandConfig, &ett_nr_rrc_QuantityConfig, + &ett_nr_rrc_QuantityConfigNR_List, + &ett_nr_rrc_QuantityConfigNR, &ett_nr_rrc_QuantityConfigRS, + &ett_nr_rrc_FilterConfig, &ett_nr_rrc_RACH_ConfigCommon, + &ett_nr_rrc_T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB, &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_ConfigGeneric, &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_T_ssb, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxRA_SSB_Resources_OF_CFRA_SSB_Resource, + &ett_nr_rrc_T_csirs, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_OF_CFRA_CSIRS_Resource, &ett_nr_rrc_CFRA_SSB_Resource, &ett_nr_rrc_CFRA_CSIRS_Resource, + &ett_nr_rrc_T_ra_OccasionList, &ett_nr_rrc_RadioBearerConfig, &ett_nr_rrc_SRB_ToAddModList, &ett_nr_rrc_SRB_ToAddMod, @@ -16588,6 +32919,16 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_cnAssociation, &ett_nr_rrc_DRB_ToReleaseList, &ett_nr_rrc_SecurityConfig, + &ett_nr_rrc_RadioLinkMonitoringConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS, + &ett_nr_rrc_RadioLinkMonitoringRS, + &ett_nr_rrc_T_detectionResource, + &ett_nr_rrc_RateMatchPattern, + &ett_nr_rrc_T_patternType, + &ett_nr_rrc_T_bitmaps, + &ett_nr_rrc_T_symbolsInResourceBlock, + &ett_nr_rrc_T_periodicityAndPattern, + &ett_nr_rrc_RateMatchPatternLTE_CRS, &ett_nr_rrc_ReportConfigNR, &ett_nr_rrc_T_reportType, &ett_nr_rrc_EventTriggerConfig, @@ -16619,22 +32960,45 @@ void proto_register_nr_rrc(void) { &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_SchedulingRequestResourceConfig, + &ett_nr_rrc_T_periodicityAndOffset_01, + &ett_nr_rrc_SCS_SpecificCarrier, &ett_nr_rrc_SDAP_Config, - &ett_nr_rrc_SEQUENCE_SIZE_0_maxNrofQFIs_OF_QFI, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI, + &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_dci_Format0_0_AndFormat1_0, + &ett_nr_rrc_T_dci_Format2_0, + &ett_nr_rrc_T_nrofCandidates_SFI, + &ett_nr_rrc_T_dci_Format2_1, + &ett_nr_rrc_T_dci_Format2_2, + &ett_nr_rrc_T_dci_Format2_3, + &ett_nr_rrc_T_ue_Specific, &ett_nr_rrc_SecurityAlgorithmConfig, + &ett_nr_rrc_ServingCellConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Id, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Downlink, + &ett_nr_rrc_T_pdsch_ServingCellConfig, + &ett_nr_rrc_T_csi_MeasConfig, + &ett_nr_rrc_T_carrierSwitching, + &ett_nr_rrc_UplinkConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_BWP_Uplink, + &ett_nr_rrc_T_pusch_ServingCellConfig, &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_T_ssb_PositionsInBurst_01, + &ett_nr_rrc_T_lte_CRS_ToMatchAround, + &ett_nr_rrc_UplinkConfigCommon, + &ett_nr_rrc_SlotFormatCombinationsPerCell, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinationsPerSet_OF_SlotFormatCombination, + &ett_nr_rrc_SlotFormatCombination, + &ett_nr_rrc_T_slotFormats, + &ett_nr_rrc_SlotFormatIndicator, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_SlotFormatCombinationsPerCell, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofAggregatedCellsPerCellGroup_OF_ServCellIndex, &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, @@ -16642,50 +33006,137 @@ void proto_register_nr_rrc(void) { &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_T_pathlossReferenceRS, + &ett_nr_rrc_SRS_Resource, + &ett_nr_rrc_T_transmissionComb, + &ett_nr_rrc_T_n2, + &ett_nr_rrc_T_n4, + &ett_nr_rrc_T_resourceMapping, + &ett_nr_rrc_T_freqHopping, + &ett_nr_rrc_T_resourceType_02, + &ett_nr_rrc_T_aperiodic_02, + &ett_nr_rrc_T_semi_persistent_01, + &ett_nr_rrc_T_periodic_02, + &ett_nr_rrc_T_spatialRelationInfo, + &ett_nr_rrc_SRS_PeriodicityAndOffset, + &ett_nr_rrc_SRS_CarrierSwitching, + &ett_nr_rrc_T_srs_TPC_PDCCH_Group, + &ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_SRS_TPC_PDCCH_Config, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_SlotFormatCombinationsPerCell, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex, + &ett_nr_rrc_SRS_TPC_PDCCH_Config, + &ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SRS_CC_SetIndex, + &ett_nr_rrc_SRS_CC_SetIndex, + &ett_nr_rrc_TCI_State, + &ett_nr_rrc_QCL_Info, + &ett_nr_rrc_T_referenceSignal_03, + &ett_nr_rrc_TDD_UL_DL_ConfigCommon, + &ett_nr_rrc_TDD_UL_DL_ConfigDedicated, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlots_OF_TDD_UL_DL_SlotIndex, + &ett_nr_rrc_TDD_UL_DL_SlotConfig, + &ett_nr_rrc_T_symbols, + &ett_nr_rrc_T_explicit, + &ett_nr_rrc_ZP_CSI_RS_Resource, + &ett_nr_rrc_ZP_CSI_RS_ResourceSet, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourcesPerSet_OF_ZP_CSI_RS_ResourceId, &ett_nr_rrc_BandCombinationList, &ett_nr_rrc_BandCombination, - &ett_nr_rrc_UE_MRDC_Capability, - &ett_nr_rrc_RF_Parameters_MRDC, - &ett_nr_rrc_PhyLayerParameters_MRDC, - &ett_nr_rrc_BasebandProcessingCombination_MRDC, - &ett_nr_rrc_LinkedBasebandProcessingCombination, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxBandComb_OF_BandCombinationParameters, + &ett_nr_rrc_BandAndDL_ParametersList, + &ett_nr_rrc_BandAndDL_Parameters, + &ett_nr_rrc_BandCombinationParameters, + &ett_nr_rrc_CA_ParametersNR, + &ett_nr_rrc_MRDC_Parameters, + &ett_nr_rrc_BandAndDL_ParametersEUTRA, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoDL_EUTRA, + &ett_nr_rrc_BandAndDL_ParametersNR, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoDL, + &ett_nr_rrc_IntraBandContiguousCC_InfoDL, + &ett_nr_rrc_IntraBandContiguousCC_InfoDL_EUTRA, + &ett_nr_rrc_BandCombinationParametersUL_List, + &ett_nr_rrc_BandCombinationParametersUL, + &ett_nr_rrc_BandParametersUL, + &ett_nr_rrc_BandParametersUL_EUTRA, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCellsEUTRA_OF_IntraBandContiguousCC_InfoUL_EUTRA, + &ett_nr_rrc_BandParametersUL_NR, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_IntraBandContiguousCC_InfoUL, + &ett_nr_rrc_IntraBandContiguousCC_InfoUL, + &ett_nr_rrc_IntraBandContiguousCC_InfoUL_EUTRA, + &ett_nr_rrc_BasebandCombinationParametersUL_List, + &ett_nr_rrc_BasebandCombinationParametersUL, + &ett_nr_rrc_BasebandParametersPerBandUL, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_UL, + &ett_nr_rrc_BasebandParametersPerCC_UL, + &ett_nr_rrc_T_supportedBandwidthUL, + &ett_nr_rrc_T_pusch_DifferentTB_PerSlot, + &ett_nr_rrc_BasebandProcessingCombinationMRDC, + &ett_nr_rrc_BasebandProcessingCombinationLink, &ett_nr_rrc_SEQUENCE_SIZE_1_maxBasebandProcComb_OF_BasebandProcessingCombinationIndex, - &ett_nr_rrc_MeasParameters_MRDC, + &ett_nr_rrc_FreqBandList, + &ett_nr_rrc_FreqBandInformation, + &ett_nr_rrc_SupportedBasebandProcessingCombination, + &ett_nr_rrc_BasebandProcessingCombination, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBandDL, + &ett_nr_rrc_BasebandParametersPerBandDL, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_BasebandParametersPerCC_DL, + &ett_nr_rrc_BasebandParametersPerCC_DL, + &ett_nr_rrc_T_supportedBandwidthDL, + &ett_nr_rrc_T_timeDurationForQCL, + &ett_nr_rrc_T_pdsch_DifferentTB_PerSlot, + &ett_nr_rrc_UE_CapabilityRAT_ContainerList, + &ett_nr_rrc_UE_CapabilityRAT_Container, + &ett_nr_rrc_UE_MRDC_Capability, + &ett_nr_rrc_T_nonCriticalExtension_05, + &ett_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode, + &ett_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode, + &ett_nr_rrc_RF_ParametersMRDC, + &ett_nr_rrc_Phy_ParametersMRDC, + &ett_nr_rrc_Phy_ParametersMRDC_XDD_Diff, + &ett_nr_rrc_Phy_ParametersMRDC_FRX_Diff, + &ett_nr_rrc_MeasParametersMRDC, + &ett_nr_rrc_MeasParametersMRDC_Common, + &ett_nr_rrc_MeasParametersMRDC_XDD_Diff, + &ett_nr_rrc_MeasParametersMRDC_FRX_Diff, + &ett_nr_rrc_GeneralParametersMRDC_XDD_Diff, &ett_nr_rrc_UE_NR_Capability, - &ett_nr_rrc_T_nonCriticalExtension_02, - &ett_nr_rrc_PhyLayerParameters, + &ett_nr_rrc_T_nonCriticalExtension_06, + &ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode, + &ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode, + &ett_nr_rrc_Phy_Parameters, + &ett_nr_rrc_Phy_ParametersCommon, + &ett_nr_rrc_Phy_ParametersXDD_Diff, + &ett_nr_rrc_Phy_ParametersFRX_Diff, + &ett_nr_rrc_Phy_ParametersFR1, + &ett_nr_rrc_Phy_ParametersFR2, &ett_nr_rrc_RF_Parameters, &ett_nr_rrc_SupportedBandListNR, - &ett_nr_rrc_SupportedBasebandProcessingCombination, - &ett_nr_rrc_BasebandProcessingCombination, - &ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BasebandParametersPerBand, - &ett_nr_rrc_BasebandParametersPerBand, - &ett_nr_rrc_SEQUENCE_SIZE_1_maxServCell_OF_BasebandParametersPerCC, - &ett_nr_rrc_BasebandParametersPerCC, &ett_nr_rrc_BandNR, - &ett_nr_rrc_MIMO_Capability, - &ett_nr_rrc_ModulationOrder, - &ett_nr_rrc_SubCarrierSpacing, + &ett_nr_rrc_T_pdsch_DifferentTB_PerSlot_01, + &ett_nr_rrc_T_pusch_DifferentTB_PerSlot_01, + &ett_nr_rrc_MIMO_ParametersPerBand, + &ett_nr_rrc_T_timeDurationForQCL_01, + &ett_nr_rrc_T_maxNumberRxTxBeamSwitchDL, + &ett_nr_rrc_T_uplinkBeamManagement, + &ett_nr_rrc_BeamManagementSSB_CSI_RS, + &ett_nr_rrc_SRS_Resources, + &ett_nr_rrc_SRS_TxSwitch, &ett_nr_rrc_PDCP_Parameters, &ett_nr_rrc_T_supportedROHC_Profiles, &ett_nr_rrc_RLC_Parameters, &ett_nr_rrc_MAC_Parameters, - &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, + &ett_nr_rrc_MAC_ParametersCommon, + &ett_nr_rrc_MAC_ParametersXDD_Diff, + &ett_nr_rrc_MeasParameters, + &ett_nr_rrc_MeasParametersXDD_Diff, + &ett_nr_rrc_MeasParametersFRX_Diff, /*--- End of included file: packet-nr-rrc-ettarr.c ---*/ -#line 87 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 85 "./asn1/nr-rrc/packet-nr-rrc-template.c" &ett_nr_rrc_UECapabilityInformation }; @@ -16706,7 +33157,7 @@ void proto_register_nr_rrc(void) { /*--- End of included file: packet-nr-rrc-dis-reg.c ---*/ -#line 99 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 97 "./asn1/nr-rrc/packet-nr-rrc-template.c" } void diff --git a/epan/dissectors/packet-nr-rrc.h b/epan/dissectors/packet-nr-rrc.h index b261aa72b1..317464c338 100644 --- a/epan/dissectors/packet-nr-rrc.h +++ b/epan/dissectors/packet-nr-rrc.h @@ -1,7 +1,7 @@ /* Do not modify this file. Changes will be overwritten. */ /* Generated automatically by the ASN.1 to Wireshark dissector compiler */ /* packet-nr-rrc.h */ -/* asn2wrs.py -L -p nr-rrc -c ./nr-rrc.cnf -s ./packet-nr-rrc-template -D . -O ../.. NR-InterNodeDefinitions.asn NR-RRC-Definitions.asn */ +/* asn2wrs.py -L -p nr-rrc -c ./nr-rrc.cnf -s ./packet-nr-rrc-template -D . -O ../.. NR-InterNodeDefinitions.asn NR-RRC-Definitions.asn NR-UE-Variables.asn */ /* Input file: packet-nr-rrc-template.h */ @@ -22,14 +22,17 @@ /*--- Included file: packet-nr-rrc-exp.h ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-exp.h" -int dissect_nr_rrc_SCG_ConfigInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +int dissect_nr_rrc_CG_ConfigInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +int dissect_nr_rrc_ConfigRestrictInfoSCG_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_UL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_MIB_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_RRCReconfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_RRCReconfigurationComplete_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +int dissect_nr_rrc_SIB1_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_CellGroupConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_MeasResults_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_RadioBearerConfig_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +int dissect_nr_rrc_FreqBandList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_UE_MRDC_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_UE_NR_Capability_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); diff --git a/epan/dissectors/packet-x2ap.c b/epan/dissectors/packet-x2ap.c index f460490334..11efbb6f42 100644 --- a/epan/dissectors/packet-x2ap.c +++ b/epan/dissectors/packet-x2ap.c @@ -6622,7 +6622,7 @@ dissect_x2ap_MeNBtoSgNBContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * x2ap_data->triggering_message == successful_outcome)) { dissect_nr_rrc_RRCReconfigurationComplete_PDU(parameter_tvb, actx->pinfo, subtree, NULL); } else { - dissect_nr_rrc_SCG_ConfigInfo_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + dissect_nr_rrc_CG_ConfigInfo_PDU(parameter_tvb, actx->pinfo, subtree, NULL); } @@ -7802,7 +7802,7 @@ dissect_x2ap_SgNBtoMeNBContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * if (!parameter_tvb) return offset; subtree = proto_item_add_subtree(actx->created_item, ett_x2ap_SgNBtoMeNBContainer); - dissect_nr_rrc_SCG_ConfigInfo_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + dissect_nr_rrc_CG_ConfigInfo_PDU(parameter_tvb, actx->pinfo, subtree, NULL); |