diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2018-10-04 17:53:19 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2018-10-05 13:31:31 +0000 |
commit | a3e18c180746188f10389c87282a54a0e22c46d1 (patch) | |
tree | 3eb3fa9bdff05443b3bb4aafbbcb8fd84bd67d7b | |
parent | 7c890e3307aac34ecf394e67cec7a29d1f1e364d (diff) |
NR RRC: upgrade dissector to v15.3.0
Change-Id: Ie43e784b3bcfe391e2c8fca898ac20ec111f3484
Reviewed-on: https://code.wireshark.org/review/30019
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn | 513 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn | 7928 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn | 98 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/nr-rrc.cnf | 666 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/packet-nr-rrc-template.c | 465 | ||||
-rw-r--r-- | epan/dissectors/packet-nr-rrc.c | 27069 |
6 files changed, 26928 insertions, 9811 deletions
diff --git a/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn b/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn index 3c8400bbd7..beb7efff8e 100644 --- a/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn +++ b/epan/dissectors/asn1/nr-rrc/NR-InterNodeDefinitions.asn @@ -1,283 +1,386 @@ --- 3GPP TS 38.331 V15.2.0 (2018-06) +-- 3GPP TS 38.331 V15.3.0 (2018-09) NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= BEGIN IMPORTS - ARFCN-ValueNR, - CellIdentity, - CSI-RS-Index, - GapConfig, - maxBandComb, - maxNrofSCells, - maxNrofServingCells-1, - maxNrofIndexesToReport, - MeasQuantityResults, - MeasResultList2NR, - MeasResultSCG-Failure, - MeasResultCellListSFTD, - P-Max, - PhysCellId, - RadioBearerConfig, - RRCReconfiguration, - ServCellIndex, --- SetupRelease, - SSB-Index, - SSB-MTC, - ShortMAC-I, - UE-CapabilityRAT-ContainerList + ARFCN-ValueNR, + ARFCN-ValueEUTRA, + CellIdentity, + CSI-RS-Index, + FreqBandIndicatorNR, + GapConfig, + maxBandComb, + maxBands, + maxFeatureSetsPerBand, + maxFreqIDC-MRDC, + maxNrofCombIDC, + maxNrofSCells, + maxNrofServingCells, + maxNrofServingCells-1, + maxNrofServingCellsEUTRA, + maxNrofIndexesToReport, + MeasQuantityResults, + MeasResultSCG-Failure, + MeasResultCellListSFTD, + MeasResultList2NR, + P-Max, + PhysCellId, + RadioBearerConfig, + RAN-NotificationAreaInfo, + RRCReconfiguration, + ServCellIndex, + SetupRelease, + SSB-Index, + SSB-MTC, + SS-RSSI-Measurement, + ShortMAC-I, + SubcarrierSpacing, + UE-CapabilityRAT-ContainerList FROM NR-RRC-Definitions; -- TAG_NR-INTER-NODE-DEFINITIONS-STOP -- TAG-HANDOVER-COMMAND-START -HandoverCommand ::= SEQUENCE { - criticalExtensions CHOICE { - c1 CHOICE{ - handoverCommand HandoverCommand-IEs, - spare3 NULL, spare2 NULL, spare1 NULL - }, - criticalExtensionsFuture SEQUENCE {} - } +HandoverCommand ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverCommand HandoverCommand-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } } -HandoverCommand-IEs ::= SEQUENCE { - handoverCommandMessage OCTET STRING (CONTAINING RRCReconfiguration), - nonCriticalExtension SEQUENCE {} OPTIONAL +HandoverCommand-IEs ::= SEQUENCE { + handoverCommandMessage OCTET STRING (CONTAINING RRCReconfiguration), + nonCriticalExtension SEQUENCE {} OPTIONAL } -- TAG-HANDOVER-COMMAND-STOP -- TAG-HANDOVER-PREPARATION-INFORMATION-START -HandoverPreparationInformation ::= SEQUENCE { - criticalExtensions CHOICE { - c1 CHOICE{ - handoverPreparationInformation HandoverPreparationInformation-IEs, - spare3 NULL, spare2 NULL, spare1 NULL - }, - criticalExtensionsFuture SEQUENCE {} - } +HandoverPreparationInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + handoverPreparationInformation HandoverPreparationInformation-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } } HandoverPreparationInformation-IEs ::= SEQUENCE { - ue-CapabilityRAT-List UE-CapabilityRAT-ContainerList, - sourceConfig OCTET STRING (CONTAINING RRCReconfiguration), - rrm-Config RRM-Config OPTIONAL, - as-Context AS-Context OPTIONAL, - nonCriticalExtension SEQUENCE {} OPTIONAL + ue-CapabilityRAT-List UE-CapabilityRAT-ContainerList, + sourceConfig AS-Config OPTIONAL, -- Cond HO + rrm-Config RRM-Config OPTIONAL, + as-Context AS-Context OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } -AS-Context ::= SEQUENCE { - reestablishmentInfo SEQUENCE { - sourcePhysCellId PhysCellId, - targetCellShortMAC-I ShortMAC-I, - additionalReestabInfoList ReestabNCellInfoList OPTIONAL - } OPTIONAL, - -- FFS Whether to change e.g. move all re-establishment info to Xx - configRestrictInfo ConfigRestrictInfoSCG OPTIONAL, - ... +AS-Config ::= SEQUENCE { + rrcReconfiguration OCTET STRING (CONTAINING RRCReconfiguration), + ... } -ReestabNCellInfoList ::= SEQUENCE ( SIZE (1..maxCellPrep) ) OF ReestabNCellInfo +AS-Context ::= SEQUENCE { + reestablishmentInfo ReestablishmentInfo OPTIONAL, + configRestrictInfo ConfigRestrictInfoSCG OPTIONAL, + ..., + [[ ran-NotificationAreaInfo RAN-NotificationAreaInfo OPTIONAL + ]] +} + +ReestablishmentInfo ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellShortMAC-I ShortMAC-I, + additionalReestabInfoList ReestabNCellInfoList OPTIONAL +} + +ReestabNCellInfoList ::= SEQUENCE ( SIZE (1..maxCellPrep) ) OF ReestabNCellInfo ReestabNCellInfo::= SEQUENCE{ - cellIdentity CellIdentity, - key-gNodeB-Star BIT STRING (SIZE (256)), - shortMAC-I ShortMAC-I -} - -RRM-Config ::= SEQUENCE { - 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 MeasResultList2NR OPTIONAL, - ... + cellIdentity CellIdentity, + key-gNodeB-Star BIT STRING (SIZE (256)), + shortMAC-I ShortMAC-I +} + +RRM-Config ::= SEQUENCE { + 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 MeasResultList2NR OPTIONAL, + ... } -- TAG-HANDOVER-PREPARATION-INFORMATION-STOP -- TAG-CG-CONFIG-START -CG-Config ::= SEQUENCE { - criticalExtensions CHOICE { - c1 CHOICE{ - cg-Config CG-Config-IEs, - spare3 NULL, spare2 NULL, spare1 NULL - }, - criticalExtensionsFuture SEQUENCE {} - } +CG-Config ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + cg-Config CG-Config-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } } -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 MeasResultList2NR) OPTIONAL, - measConfigSN MeasConfigSN OPTIONAL, - selectedBandCombinationNR BandCombinationIndex OPTIONAL, - fr-InfoListSCG FR-InfoList 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 MeasResultList2NR) OPTIONAL, + measConfigSN MeasConfigSN OPTIONAL, + selectedBandCombinationNR BandCombinationInfoSN OPTIONAL, + fr-InfoListSCG FR-InfoList OPTIONAL, + candidateServingFreqListNR CandidateServingFreqListNR OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } MeasConfigSN ::= SEQUENCE { - measuredFrequenciesSN SEQUENCE (SIZE (1.. maxMeasFreqsSN)) OF NR-FreqInfo OPTIONAL, - ... + measuredFrequenciesSN SEQUENCE (SIZE (1..maxMeasFreqsSN)) OF NR-FreqInfo OPTIONAL, + ... } NR-FreqInfo ::= SEQUENCE { - measuredFrequency ARFCN-ValueNR OPTIONAL, - ... + measuredFrequency ARFCN-ValueNR OPTIONAL, + ... } -ConfigRestrictModReqSCG ::= SEQUENCE { - requestedBC-MRDC BandCombinationIndex OPTIONAL, - requestedP-MaxFR1 P-Max OPTIONAL, - ... +ConfigRestrictModReqSCG ::= SEQUENCE { + requestedBC-MRDC BandCombinationInfoSN OPTIONAL, + requestedP-MaxFR1 P-Max OPTIONAL, + ... } BandCombinationIndex ::= INTEGER (1..maxBandComb) +BandCombinationInfoSN ::= SEQUENCE { + bandCombinationIndex BandCombinationIndex, + requestedFeatureSets FeatureSetEntryIndex +} + FR-InfoList ::= SEQUENCE (SIZE (1..maxNrofServingCells-1)) OF FR-Info FR-Info ::= SEQUENCE { - servCellIndex ServCellIndex, - fr-Type ENUMERATED {fr1, fr2} + servCellIndex ServCellIndex, + fr-Type ENUMERATED {fr1, fr2} } +CandidateServingFreqListNR ::= SEQUENCE (SIZE (1.. maxFreqIDC-MRDC)) OF ARFCN-ValueNR + + -- 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 {} - } -} - -CG-ConfigInfo-IEs ::= SEQUENCE { - ue-CapabilityInfo OCTET STRING (CONTAINING UE-CapabilityRAT-ContainerList) OPTIONAL,-- Cond SN-Addition - candidateCellInfoListMN MeasResultList2NR OPTIONAL, - candidateCellInfoListSN OCTET STRING (CONTAINING MeasResultList2NR) 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, - 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, - maxMeasIdentitiesSCG-NR INTEGER(1..maxMeasIdentitiesMN) OPTIONAL, - ... -} - -BandCombinationIndexList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationIndex - -DRX-Info ::= SEQUENCE { - 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 +CG-ConfigInfo ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + cg-ConfigInfo CG-ConfigInfo-IEs, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +CG-ConfigInfo-IEs ::= SEQUENCE { + ue-CapabilityInfo OCTET STRING (CONTAINING UE-CapabilityRAT-ContainerList) OPTIONAL,-- Cond SN-Addition + candidateCellInfoListMN MeasResultList2NR OPTIONAL, + candidateCellInfoListSN OCTET STRING (CONTAINING MeasResultList2NR) 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, + mrdc-AssistanceInfo MRDC-AssistanceInfo OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +ConfigRestrictInfoSCG ::= SEQUENCE { + allowedBC-ListMRDC BandCombinationInfoList OPTIONAL, + powerCoordination-FR1 SEQUENCE { + p-maxNR-FR1 P-Max OPTIONAL, + p-maxEUTRA P-Max OPTIONAL, + p-maxUE-FR1 P-Max OPTIONAL + } OPTIONAL, + servCellIndexRangeSCG SEQUENCE { + lowBound ServCellIndex, + upBound ServCellIndex + } OPTIONAL, -- Cond SN-Addition + maxMeasFreqsSCG-NR INTEGER(1..maxMeasFreqsMN) OPTIONAL, + maxMeasIdentitiesSCG-NR INTEGER(1..maxMeasIdentitiesMN) OPTIONAL, + ... +} + +BandCombinationInfoList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationInfo + +BandCombinationInfo ::= SEQUENCE { + bandCombinationIndex BandCombinationIndex, + allowedFeatureSetsList SEQUENCE (SIZE (1..maxFeatureSetsPerBand)) OF FeatureSetEntryIndex +} + +FeatureSetEntryIndex ::= INTEGER (1.. maxFeatureSetsPerBand) + +DRX-Info ::= SEQUENCE { + 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, - measGapConfig CHOICE { release NULL, setup GapConfig } OPTIONAL, - gapPurpose ENUMERATED {perUE, perFR1} OPTIONAL, - ... + measuredFrequenciesMN SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF NR-FreqInfo OPTIONAL, + measGapConfig CHOICE { release NULL, setup GapConfig } OPTIONAL, + gapPurpose ENUMERATED {perUE, perFR1} OPTIONAL, + ... } +MRDC-AssistanceInfo ::= SEQUENCE { + affectedCarrierFreqCombInfoListMRDC SEQUENCE (SIZE (1..maxNrofCombIDC)) OF AffectedCarrierFreqCombInfoMRDC, + ... +} + +AffectedCarrierFreqCombInfoMRDC ::= SEQUENCE { + victimSystemType VictimSystemType, + interferenceDirectionMRDC ENUMERATED {eutra-nr, nr, other, utra-nr-other, nr-other, spare3, spare2, spare1}, + affectedCarrierFreqCombMRDC SEQUENCE { + affectedCarrierFreqCombEUTRA AffectedCarrierFreqCombEUTRA OPTIONAL, + affectedCarrierFreqCombNR AffectedCarrierFreqCombNR + } OPTIONAL +} + +VictimSystemType ::= SEQUENCE { + gps ENUMERATED {true} OPTIONAL, + glonass ENUMERATED {true} OPTIONAL, + bds ENUMERATED {true} OPTIONAL, + galileo ENUMERATED {true} OPTIONAL, + wlan ENUMERATED {true} OPTIONAL, + bluetooth ENUMERATED {true} OPTIONAL +} + +AffectedCarrierFreqCombEUTRA ::= SEQUENCE (SIZE (1..maxNrofServingCellsEUTRA)) OF ARFCN-ValueEUTRA + +AffectedCarrierFreqCombNR ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF ARFCN-ValueNR -- 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 ::= 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 +MeasurementTimingConfiguration-IEs ::= SEQUENCE { + measTiming MeasTimingList OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } MeasTimingList ::= SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF MeasTiming MeasTiming ::= SEQUENCE { - frequencyAndTiming SEQUENCE { - carrierFreq ARFCN-ValueNR, - ssb-MeasurementTimingConfiguration SSB-MTC - } OPTIONAL, - ... + frequencyAndTiming SEQUENCE { + carrierFreq ARFCN-ValueNR, + ssbSubcarrierSpacing SubcarrierSpacing, + ssb-MeasurementTimingConfiguration SSB-MTC, + ss-RSSI-Measurement SS-RSSI-Measurement OPTIONAL + } OPTIONAL, + ... } -- TAG-MEASUREMENT-TIMING-CONFIGURATION-STOP + +UERadioPagingInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioPagingInformation UERadioPagingInformation-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioPagingInformation-IEs ::= SEQUENCE { + supportedBandListNRForPaging SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicatorNR OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + + +UERadioAccessCapabilityInformation ::= SEQUENCE { + criticalExtensions CHOICE { + c1 CHOICE{ + ueRadioAccessCapabilityInformation + UERadioAccessCapabilityInformation-IEs, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + criticalExtensionsFuture SEQUENCE {} + } +} + +UERadioAccessCapabilityInformation-IEs ::= SEQUENCE { + ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UE-CapabilityRAT-ContainerList), + nonCriticalExtension SEQUENCE {} OPTIONAL +} + -- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-START -maxMeasFreqsMN INTEGER ::= 32 -- Maximum number of MN-configured measurement frequencies -maxMeasFreqsSN INTEGER ::= 32 -- Maximum number of SN-configured measurement frequencies -maxMeasIdentitiesMN INTEGER ::= 62 -- Maximum number of measurement identities that a UE can be configured with -maxCellPrep INTEGER ::= 32 -- Maximum number of cells prepared for handover +maxMeasFreqsMN INTEGER ::= 32 -- Maximum number of MN-configured measurement frequencies +maxMeasFreqsSN INTEGER ::= 32 -- Maximum number of SN-configured measurement frequencies +maxMeasIdentitiesMN INTEGER ::= 62 -- Maximum number of measurement identities that a UE can be configured with +maxCellPrep INTEGER ::= 32 -- Maximum number of cells prepared for handover -- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-STOP -- TAG_NR-INTER-NODE-DEFINITIONS-END-START diff --git a/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn b/epan/dissectors/asn1/nr-rrc/NR-RRC-Definitions.asn index 96502b461a..7b7bb1b170 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.2.0 (2018-06) +-- 3GPP TS 38.331 V15.3.0 (2018-09) NR-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= @@ -7,152 +7,899 @@ BEGIN -- TAG-NR-RRC-DEFINITIONS-STOP -- TAG-BCCH-BCH-MESSAGE-START -BCCH-BCH-Message ::= SEQUENCE { - message BCCH-BCH-MessageType +BCCH-BCH-Message ::= SEQUENCE { + message BCCH-BCH-MessageType } -BCCH-BCH-MessageType ::= CHOICE { - mib MIB, - messageClassExtension SEQUENCE {} +BCCH-BCH-MessageType ::= CHOICE { + mib MIB, + messageClassExtension SEQUENCE {} } -- TAG-BCCH-BCH-MESSAGE-STOP +-- TAG-BCCH-DL-SCH-MESSAGE-START + +BCCH-DL-SCH-Message ::= SEQUENCE { + message BCCH-DL-SCH-MessageType +} + +BCCH-DL-SCH-MessageType ::= CHOICE { + c1 CHOICE { + systemInformation SystemInformation, + systemInformationBlockType1 SIB1 + }, + messageClassExtension SEQUENCE {} +} + +-- TAG-BCCH-DL-SCH-MESSAGE-STOP +-- TAG-DL-CCCH-MESSAGE-START + + +DL-CCCH-Message ::= SEQUENCE { + message DL-CCCH-MessageType +} + +DL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcReject RRCReject, + rrcSetup RRCSetup, + spare2 NULL, + spare1 NULL + }, + messageClassExtension SEQUENCE {} +} + +-- TAG-DL-CCCH-MESSAGE-STOP -- TAG-DL-DCCH-MESSAGE-START -DL-DCCH-Message ::= SEQUENCE { - message DL-DCCH-MessageType +DL-DCCH-Message ::= SEQUENCE { + message DL-DCCH-MessageType } -DL-DCCH-MessageType ::= CHOICE { - c1 CHOICE { - rrcReconfiguration RRCReconfiguration, - spare15 NULL, spare14 NULL, spare13 NULL, - spare12 NULL, spare11 NULL, spare10 NULL, - spare9 NULL, spare8 NULL, spare7 NULL, - spare6 NULL, spare5 NULL, spare4 NULL, - spare3 NULL, spare2 NULL, spare1 NULL - }, - messageClassExtension SEQUENCE {} +DL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcReconfiguration RRCReconfiguration, + rrcResume RRCResume, + rrcRelease RRCRelease, + rrcReestablishment RRCReestablishment, + securityModeCommand SecurityModeCommand, + dlInformationTransfer DLInformationTransfer, + ueCapabilityEnquiry UECapabilityEnquiry, + counterCheck CounterCheck, + mobilityFromNRCommand MobilityFromNRCommand, + spare7 NULL, + spare6 NULL, spare5 NULL, spare4 NULL, + spare3 NULL, spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} } -- TAG-DL-DCCH-MESSAGE-STOP --- TAG-UL-DCCH-MESSAGE-START +-- TAG-PCCH-PCH-MESSAGE-START + +PCCH-Message ::= SEQUENCE { + message PCCH-MessageType +} -UL-DCCH-Message ::= SEQUENCE { - message UL-DCCH-MessageType +PCCH-MessageType ::= CHOICE { + c1 CHOICE { + paging Paging, + spare1 NULL + }, + messageClassExtension SEQUENCE {} } -UL-DCCH-MessageType ::= CHOICE { - c1 CHOICE { - measurementReport MeasurementReport, - rrcReconfigurationComplete RRCReconfigurationComplete, - spare14 NULL, spare13 NULL, spare12 NULL, - spare11 NULL, spare10 NULL, spare9 NULL, - spare8 NULL, spare7 NULL, spare6 NULL, - spare5 NULL, spare4 NULL, spare3 NULL, - spare2 NULL, spare1 NULL - }, - messageClassExtension SEQUENCE {} +-- TAG-PCCH-PCH-MESSAGE-STOP +-- TAG-UL-CCCH-MESSAGE-START + + +UL-CCCH-Message ::= SEQUENCE { + message UL-CCCH-MessageType +} + +UL-CCCH-MessageType ::= CHOICE { + c1 CHOICE { + rrcSetupRequest RRCSetupRequest, + rrcResumeRequest RRCResumeRequest, + rrcReestablishmentRequest RRCReestablishmentRequest, + rrcSystemInfoRequest RRCSystemInfoRequest + }, + messageClassExtension SEQUENCE {} +} + +-- TAG-UL-CCCH-MESSAGE-STOP +-- TAG-UL-CCCH1-MESSAGE-START + + +UL-CCCH1-Message ::= SEQUENCE { + message UL-CCCH1-MessageType +} + +UL-CCCH1-MessageType ::= CHOICE { + c1 CHOICE { + rrcResumeRequest1 RRCResumeRequest1, + spare3 NULL, + spare2 NULL, + spare1 NULL + + }, + messageClassExtension SEQUENCE {} +} + +-- TAG-UL-CCCH1-MESSAGE-STOP +-- TAG-UL-DCCH-MESSAGE-START + +UL-DCCH-Message ::= SEQUENCE { + message UL-DCCH-MessageType +} + +UL-DCCH-MessageType ::= CHOICE { + c1 CHOICE { + measurementReport MeasurementReport, + rrcReconfigurationComplete RRCReconfigurationComplete, + rrcSetupComplete RRCSetupComplete, + rrcReestablishmentComplete RRCReestablishmentComplete, + rrcResumeComplete RRCResumeComplete, + securityModeComplete SecurityModeComplete, + securityModeFailure SecurityModeFailure, + ulInformationTransfer ULInformationTransfer, + locationMeasurementIndication LocationMeasurementIndication, + ueCapabilityInformation UECapabilityInformation, + counterCheckResponse CounterCheckResponse, + ueAssistanceInformation UEAssistanceInformation, + spare4 NULL, spare3 NULL, + spare2 NULL, spare1 NULL + }, + messageClassExtension SEQUENCE {} } -- TAG-UL-DCCH-MESSAGE-STOP +-- TAG-COUNTERCHECK-START + + +CounterCheck ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheck CounterCheck-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheck-IEs ::= SEQUENCE { + drb-CountMSB-InfoList DRB-CountMSB-InfoList, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info + +DRB-CountMSB-Info ::= SEQUENCE { + drb-Identity DRB-Identity, + countMSB-Uplink INTEGER(0..33554431), + countMSB-Downlink INTEGER(0..33554431) +} + +-- TAG-COUNTERCHECK-STOP +-- TAG-COUNTERCHECKRESPONSE-START + +CounterCheckResponse ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + counterCheckResponse CounterCheckResponse-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +CounterCheckResponse-IEs ::= SEQUENCE { + drb-CountInfoList DRB-CountInfoList, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL + +} + +DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo + +DRB-CountInfo ::= SEQUENCE { + drb-Identity DRB-Identity, + count-Uplink INTEGER(0..4294967295), + count-Downlink INTEGER(0..4294967295) +} + +-- TAG-COUNTERCHECKRESPONSE-STOP +-- TAG-DLINFORMATIONTRANSFER-START + +DLInformationTransfer ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + dlInformationTransfer DLInformationTransfer-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +DLInformationTransfer-IEs ::= SEQUENCE { + dedicatedNAS-Message DedicatedNAS-Message OPTIONAL, -- Need N + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- TAG-DLINFORMATIONTRANSFER-STOP +-- TAG-LOCATIONMEASUREMENTINDICATION-START + +LocationMeasurementIndication ::= SEQUENCE { + criticalExtensions CHOICE { + locationMeasurementIndication LocationMeasurementIndication-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +LocationMeasurementIndication-IEs ::= SEQUENCE { + measurementIndication CHOICE { release NULL, setup LocationMeasurementInfo}, + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +-- TAG-LOCATIONMEASUREMENTINDICATION-STOP -- TAG-MIB-START -MIB ::= SEQUENCE { - systemFrameNumber BIT STRING (SIZE (6)), - subCarrierSpacingCommon ENUMERATED {scs15or60, scs30or120}, - ssb-SubcarrierOffset INTEGER (0..15), - dmrs-TypeA-Position ENUMERATED {pos2, pos3}, - pdcch-ConfigSIB1 INTEGER (0..255), - cellBarred ENUMERATED {barred, notBarred}, - intraFreqReselection ENUMERATED {allowed, notAllowed}, - spare BIT STRING (SIZE (1)) +MIB ::= SEQUENCE { + systemFrameNumber BIT STRING (SIZE (6)), + subCarrierSpacingCommon ENUMERATED {scs15or60, scs30or120}, + ssb-SubcarrierOffset INTEGER (0..15), + dmrs-TypeA-Position ENUMERATED {pos2, pos3}, + pdcch-ConfigSIB1 PDCCH-ConfigSIB1, + cellBarred ENUMERATED {barred, notBarred}, + intraFreqReselection ENUMERATED {allowed, notAllowed}, + spare BIT STRING (SIZE (1)) } -- TAG-MIB-STOP -- TAG-MEASUREMENTREPORT-START -MeasurementReport ::= SEQUENCE { - criticalExtensions CHOICE { - measurementReport MeasurementReport-IEs, - criticalExtensionsFuture SEQUENCE {} - } +MeasurementReport ::= SEQUENCE { + criticalExtensions CHOICE { + measurementReport MeasurementReport-IEs, + criticalExtensionsFuture SEQUENCE {} + } } -MeasurementReport-IEs ::= SEQUENCE { - measResults MeasResults, +MeasurementReport-IEs ::= SEQUENCE { + measResults MeasResults, - lateNonCriticalExtension OCTET STRING OPTIONAL, - nonCriticalExtension SEQUENCE{} OPTIONAL + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL } -- TAG-MEASUREMENTREPORT-STOP --- TAG-RRCRECONFIGURATION-START +-- TAG-MOBILITYFROMNRCOMMAND-START + +MobilityFromNRCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + mobilityFromNRCommand MobilityFromNRCommand-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +MobilityFromNRCommand-IEs ::= SEQUENCE { + targetRAT-Type ENUMERATED { eutra, spare3, spare2, spare1, ...}, + targetRAT-MessageContainer OCTET STRING, + nas-SecurityParamFromNR OCTET STRING OPTIONAL, -- Cond HO-ToEPC + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- TAG-MOBILITYFROMNRCOMMAND-STOP +-- TAG-PAGING-START + +Paging ::= SEQUENCE { + pagingRecordList PagingRecordList OPTIONAL, -- Need N + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +PagingRecordList ::= SEQUENCE (SIZE(1..maxNrofPageRec)) OF PagingRecord + +PagingRecord ::= SEQUENCE { + ue-Identity PagingUE-Identity, + accessType ENUMERATED {non3GPP} OPTIONAL, -- Need N + ... +} + +PagingUE-Identity ::= CHOICE { + ng-5G-S-TMSI NG-5G-S-TMSI, + i-RNTI I-RNTI-Value, + ... +} + +-- TAG-PAGING-STOP +-- TAG-RRCREESTABLISHMENT-START + +RRCReestablishment ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcReestablishment RRCReestablishment-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCReestablishment-IEs ::= SEQUENCE { + nextHopChainingCount NextHopChainingCount, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- TAG-RRCREESTABLISHMENT-STOP +-- TAG-RRCREESTABLISHMENTCOMPLETE-START + +RRCReestablishmentComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcReestablishmentComplete RRCReestablishmentComplete-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCReestablishmentComplete-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- TAG-RRCREESTABLISHMENTCOMPLETE-STOP +-- TAG-RRCREESTABLISHMENTREQUEST-START -RRCReconfiguration ::= SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - rrcReconfiguration RRCReconfiguration-IEs, - criticalExtensionsFuture SEQUENCE {} - } + +RRCReestablishmentRequest ::= SEQUENCE { + rrcReestablishmentRequest RRCReestablishmentRequest-IEs +} + +RRCReestablishmentRequest-IEs ::= SEQUENCE { + ue-Identity ReestabUE-Identity, + reestablishmentCause ReestablishmentCause, + spare BIT STRING (SIZE (1)) } -RRCReconfiguration-IEs ::= SEQUENCE { - radioBearerConfig RadioBearerConfig OPTIONAL, -- Need M - secondaryCellGroup OCTET STRING (CONTAINING CellGroupConfig) OPTIONAL, -- Need M - measConfig MeasConfig OPTIONAL, -- Need M +ReestabUE-Identity ::= SEQUENCE { + c-RNTI RNTI-Value, + physCellId PhysCellId, + shortMAC-I ShortMAC-I +} + +ReestablishmentCause ::= ENUMERATED {reconfigurationFailure, handoverFailure, otherFailure, spare1} + +-- TAG-RRCREESTABLISHMENTREQUEST-STOP +-- TAG-RRCRECONFIGURATION-START - lateNonCriticalExtension OCTET STRING OPTIONAL, - nonCriticalExtension SEQUENCE {} OPTIONAL +RRCReconfiguration ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcReconfiguration RRCReconfiguration-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCReconfiguration-IEs ::= SEQUENCE { + radioBearerConfig RadioBearerConfig OPTIONAL, -- Need M + secondaryCellGroup OCTET STRING (CONTAINING CellGroupConfig) OPTIONAL, -- Need M + measConfig MeasConfig OPTIONAL, -- Need M + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCReconfiguration-v1530-IEs OPTIONAL +} + +RRCReconfiguration-v1530-IEs ::= SEQUENCE { + masterCellGroup OCTET STRING (CONTAINING CellGroupConfig) OPTIONAL, -- Need M + fullConfig ENUMERATED {true} OPTIONAL, -- Cond FullConfig + dedicatedNAS-MessageList SEQUENCE (SIZE(1..maxDRB)) OF DedicatedNAS-Message OPTIONAL, -- Cond nonHO + masterKeyUpdate MasterKeyUpdate OPTIONAL, -- Cond MasterKeyChange + dedicatedSIB1-Delivery OCTET STRING (CONTAINING SIB1) OPTIONAL, -- Need N + dedicatedSystemInformationDelivery OCTET STRING (CONTAINING SystemInformation) OPTIONAL, -- Need N + otherConfig OtherConfig OPTIONAL, -- Need N + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +MasterKeyUpdate ::= SEQUENCE { + keySetChangeIndicator BOOLEAN, + nextHopChainingCount NextHopChainingCount, + nas-Container OCTET STRING OPTIONAL, -- Cond securityNASC + ... } -- TAG-RRCRECONFIGURATION-STOP -- TAG-RRCRECONFIGURATIONCOMPLETE-START -RRCReconfigurationComplete ::= SEQUENCE { - rrc-TransactionIdentifier RRC-TransactionIdentifier, - criticalExtensions CHOICE { - rrcReconfigurationComplete RRCReconfigurationComplete-IEs, - criticalExtensionsFuture SEQUENCE {} - } +RRCReconfigurationComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcReconfigurationComplete RRCReconfigurationComplete-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCReconfigurationComplete-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension RRCReconfigurationComplete-v1530-IEs OPTIONAL } -RRCReconfigurationComplete-IEs ::= SEQUENCE { - lateNonCriticalExtension OCTET STRING OPTIONAL, - nonCriticalExtension SEQUENCE {} OPTIONAL +RRCReconfigurationComplete-v1530-IEs ::= SEQUENCE { + uplinkTxDirectCurrentList UplinkTxDirectCurrentList OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } -- TAG-RRCRECONFIGURATIONCOMPLETE-STOP --- TAG-SIB1-START +-- TAG-RRCREJECT-START + +RRCReject ::= SEQUENCE { + criticalExtensions CHOICE { + rrcReject RRCReject-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCReject-IEs ::= SEQUENCE { + waitTime RejectWaitTime OPTIONAL, -- Need N + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +RejectWaitTime ::= INTEGER (1..16) + +-- TAG-RRCREJECT-STOP +-- TAG-RRCRELEASE-START + +RRCRelease ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcRelease RRCRelease-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCRelease-IEs ::= SEQUENCE { + redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need N + cellReselectionPriorities CellReselectionPriorities OPTIONAL, -- Need R + suspendConfig SuspendConfig OPTIONAL, -- Need R + deprioritisationReq SEQUENCE { + deprioritisationType ENUMERATED {frequency, nr}, + deprioritisationTimer ENUMERATED {min5, min10, min15, min30} + } OPTIONAL, -- Need N + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL + +} + +RedirectedCarrierInfo ::= CHOICE { + nr CarrierInfoNR, + eutra RedirectedCarrierInfo-EUTRA, + ... +} + +RedirectedCarrierInfo-EUTRA ::= SEQUENCE { + eutraFrequency ARFCN-ValueEUTRA, + cnType-r15 ENUMERATED {epc,fiveGC} OPTIONAL +} -SIB1 ::= SEQUENCE { +CarrierInfoNR ::= SEQUENCE { + carrierFreq ARFCN-ValueNR, + ssbSubcarrierSpacing SubcarrierSpacing, + smtc SSB-MTC OPTIONAL, -- Need S + ... +} + +SuspendConfig ::= SEQUENCE { + fullI-RNTI I-RNTI-Value, + shortI-RNTI ShortI-RNTI-Value, + ran-PagingCycle PagingCycle, + ran-NotificationAreaInfo RAN-NotificationAreaInfo OPTIONAL, -- Need M + t380 PeriodicRNAU-TimerValue OPTIONAL, -- Need R + nextHopChainingCount NextHopChainingCount, + ... +} + + +PeriodicRNAU-TimerValue ::= ENUMERATED { min5, min10, min20, min30, min60, min120, min360, min720} + + +CellReselectionPriorities ::= SEQUENCE { + freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need M + freqPriorityListNR FreqPriorityListNR OPTIONAL, -- Need M + t320 ENUMERATED {min5, min10, min20, min30, min60, min120, min180, spare1} OPTIONAL, -- Need R + ... +} + +PagingCycle ::= ENUMERATED {rf32, rf64, rf128, rf256} + +FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA + +FreqPriorityListNR ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityNR + +FreqPriorityEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + cellReselectionPriority CellReselectionPriority, + cellReselectionSubPriority CellReselectionSubPriority OPTIONAL -- Need R +} + +FreqPriorityNR ::= SEQUENCE { + carrierFreq ARFCN-ValueNR, + cellReselectionPriority CellReselectionPriority, + cellReselectionSubPriority CellReselectionSubPriority OPTIONAL -- Need R +} + +RAN-NotificationAreaInfo ::= CHOICE { + cellList PLMN-RAN-AreaCellList, + ran-AreaConfigList PLMN-RAN-AreaConfigList, + ... +} + +PLMN-RAN-AreaCellList ::= SEQUENCE (SIZE (1.. maxPLMNIdentities)) OF PLMN-RAN-AreaCell + +PLMN-RAN-AreaCell ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, -- Need S + ran-AreaCells SEQUENCE (SIZE (1..32)) OF CellIdentity +} + +PLMN-RAN-AreaConfigList ::= SEQUENCE (SIZE (1..maxPLMNIdentities)) OF PLMN-RAN-AreaConfig + +PLMN-RAN-AreaConfig ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, -- Need S + ran-Area SEQUENCE (SIZE (1..16)) OF RAN-AreaConfig +} + +RAN-AreaConfig ::= SEQUENCE { + trackingAreaCode TrackingAreaCode, + ran-AreaCodeList SEQUENCE (SIZE (1..32)) OF RAN-AreaCode OPTIONAL -- Need R +} + +-- TAG-RRCRELEASE-STOP +-- TAG-RRCRESUME-START + +RRCResume ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcResume RRCResume-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCResume-IEs ::= SEQUENCE { + radioBearerConfig RadioBearerConfig OPTIONAL, -- Need M + masterCellGroup OCTET STRING (CONTAINING CellGroupConfig) OPTIONAL, -- Need M + measConfig MeasConfig OPTIONAL, -- Need M + fullConfig ENUMERATED {true} OPTIONAL, -- Need N + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL + +} + +-- TAG-RRCRESUME-STOP +-- TAG-RRCRESUMECOMPLETE-START + +RRCResumeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcResumeComplete RRCResumeComplete-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCResumeComplete-IEs ::= SEQUENCE { + dedicatedNAS-Message DedicatedNAS-Message OPTIONAL, + selectedPLMN-Identity INTEGER (1..maxPLMN) OPTIONAL, + uplinkTxDirectCurrentList UplinkTxDirectCurrentList OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +-- TAG-RRCRESUMECOMPLETE-STOP +-- TAG-RRCRESUMEREQUEST-START + +RRCResumeRequest ::= SEQUENCE { + rrcResumeRequest RRCResumeRequest-IEs +} + +RRCResumeRequest-IEs ::= SEQUENCE { + resumeIdentity ShortI-RNTI-Value, + resumeMAC-I BIT STRING (SIZE (16)), + resumeCause ResumeCause, + spare BIT STRING (SIZE (1)) +} + +-- TAG-RRCRESUMEREQUEST-STOP +-- TAG-RRCRESUMEREQUEST1-START + +RRCResumeRequest1 ::= SEQUENCE { + rrcResumeRequest1 RRCResumeRequest1-IEs +} + +RRCResumeRequest1-IEs ::= SEQUENCE { + resumeIdentity I-RNTI-Value, + resumeMAC-I BIT STRING (SIZE (16)), + resumeCause ResumeCause, + spare BIT STRING (SIZE (1)) +} + +-- TAG-RRCRESUMEREQUEST1-STOP +-- TAG-RRCSETUP-START + +RRCSetup ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcSetup RRCSetup-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCSetup-IEs ::= SEQUENCE { + radioBearerConfig RadioBearerConfig, + masterCellGroup OCTET STRING (CONTAINING CellGroupConfig), + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +-- TAG-RRCSETUP-STOP +-- TAG-RRCSETUPCOMPLETE-START + +RRCSetupComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + rrcSetupComplete RRCSetupComplete-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCSetupComplete-IEs ::= SEQUENCE { + selectedPLMN-Identity INTEGER (1..maxPLMN), + registeredAMF RegisteredAMF OPTIONAL, + guami-Type ENUMERATED {native, mapped} OPTIONAL, + s-nssai-List SEQUENCE (SIZE (1..maxNrofS-NSSAI)) OF S-NSSAI OPTIONAL, + dedicatedNAS-Message DedicatedNAS-Message, + ng-5G-S-TMSI-Value CHOICE { + ng-5G-S-TMSI NG-5G-S-TMSI, + ng-5G-S-TMSI-Part2 BIT STRING (SIZE (9)) + } OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +RegisteredAMF ::= SEQUENCE { + plmn-Identity PLMN-Identity OPTIONAL, + amf-Identifier AMF-Identifier +} + +-- TAG-RRCSETUPCOMPLETE-STOP +-- TAG-RRCSETUPREQUEST-START + +RRCSetupRequest ::= SEQUENCE { + rrcSetupRequest RRCSetupRequest-IEs +} + +RRCSetupRequest-IEs ::= SEQUENCE { + ue-Identity InitialUE-Identity, + establishmentCause EstablishmentCause, + spare BIT STRING (SIZE (1)) +} + +InitialUE-Identity ::= CHOICE { + ng-5G-S-TMSI-Part1 BIT STRING (SIZE (39)), + randomValue BIT STRING (SIZE (39)) +} + +EstablishmentCause ::= ENUMERATED { + emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, mo-VoiceCall, mo-VideoCall, mo-SMS, mps-PriorityAccess, mcs-PriorityAccess, + spare6, spare5, spare4, spare3, spare2, spare1} + +-- TAG-RRCSETUPREQUEST-STOP +-- TAG-RRCSYETEMINFOREQUEST-START + +RRCSystemInfoRequest ::= SEQUENCE { + criticalExtensions CHOICE { + rrcSystemInfoRequest-r15 RRCSystemInfoRequest-r15-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +RRCSystemInfoRequest-r15-IEs ::= SEQUENCE { + requested-SI-List BIT STRING (SIZE (maxSI-Message)), --32bits + spare BIT STRING (SIZE (12)) +} + +-- TAG-RRCSYETEMINFOREQUEST-STOP +-- TAG-SECURITYMODECOMMAND-START + +SecurityModeCommand ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeCommand SecurityModeCommand-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SecurityModeCommand-IEs ::= SEQUENCE { + securityConfigSMC SecurityConfigSMC, + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +SecurityConfigSMC ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig, + ... +} - -- FFS / TODO: Add other parameters. - frequencyOffsetSSB ENUMERATED {khz-5, khz5} OPTIONAL, -- Need R - ssb-PositionsInBurst SEQUENCE { - inOneGroup BIT STRING (SIZE (8)), - groupPresence BIT STRING (SIZE (8)) OPTIONAL -- Cond above6GHzOnly - }, - ssb-PeriodicityServingCell ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160, spare1, spare2}, - ss-PBCH-BlockPower INTEGER (-60..50), +-- TAG-SECURITYMODECOMMAND-STOP +-- TAG-SECURITYMODECOMPLETE-START - uplinkConfigCommon UplinkConfigCommon OPTIONAL, - supplementaryUplink SEQUENCE { - uplinkConfigCommon UplinkConfigCommon OPTIONAL - -- FFS: Add additional (selection) criteria determining when/whether the UE shall use the SUL frequency - } OPTIONAL, -- Cond SUL +SecurityModeComplete ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeComplete SecurityModeComplete-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} - tdd-UL-DL-Configuration TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD - tdd-UL-DL-configurationCommon2 TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD +SecurityModeComplete-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} - pdcch-ConfigCommon PDCCH-ConfigCommon OPTIONAL, - pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, +-- TAG-SECURITYMODECOMPLETE-STOP +-- TAG-SECURITYMODEFAILURE-START - lateNonCriticalExtension OCTET STRING OPTIONAL, - nonCriticalExtension SEQUENCE{} OPTIONAL +SecurityModeFailure ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + securityModeFailure SecurityModeFailure-IEs, + criticalExtensionsFuture SEQUENCE {} + } } +SecurityModeFailure-IEs ::= SEQUENCE { + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +-- TAG-SECURITYMODEFAILURE-STOP +-- TAG-SIB1-START + +SIB1 ::= SEQUENCE { + cellSelectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need R + q-RxLevMinSUL Q-RxLevMin OPTIONAL, -- Need R + q-QualMin Q-QualMin OPTIONAL, -- Need R + q-QualMinOffset INTEGER (1..8) OPTIONAL -- Need R + } OPTIONAL, -- Need S + cellAccessRelatedInfo CellAccessRelatedInfo, + connEstFailureControl ConnEstFailureControl OPTIONAL, -- Need R + si-SchedulingInfo SI-SchedulingInfo OPTIONAL, -- Need R + servingCellConfigCommon ServingCellConfigCommonSIB OPTIONAL, -- Need R + ims-EmergencySupport ENUMERATED {true} OPTIONAL, -- Need R + eCallOverIMS-Support ENUMERATED {true} OPTIONAL, -- Cond Absent + ue-TimersAndConstants UE-TimersAndConstants OPTIONAL, -- Need R + + uac-BarringInfo SEQUENCE { + uac-BarringForCommon UAC-BarringPerCatList OPTIONAL, -- Need S + uac-BarringPerPLMN-List UAC-BarringPerPLMN-List OPTIONAL, -- Need S + uac-BarringInfoSetList UAC-BarringInfoSetList, + uac-AccessCategory1-SelectionAssistanceInfo CHOICE { + plmnCommon UAC-AccessCategory1-SelectionAssistanceInfo, + individualPLMNList SEQUENCE (SIZE (2..maxPLMN)) OF UAC-AccessCategory1-SelectionAssistanceInfo + } OPTIONAL + } OPTIONAL, -- Need R + + useFullResumeID ENUMERATED {true} OPTIONAL, -- Need N + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +UAC-AccessCategory1-SelectionAssistanceInfo ::= ENUMERATED {a, b, c} + -- TAG-SIB1-STOP + +SystemInformation ::= SEQUENCE { + criticalExtensions CHOICE { + systemInformation-r15 SystemInformation-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +SystemInformation-IEs ::= SEQUENCE { + sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE { + sib2 SIB2, + sib3 SIB3, + sib4 SIB4, + sib5 SIB5, + sib6 SIB6, + sib7 SIB7, + sib8 SIB8, + sib9 SIB9, + ... + }, + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- TAG-UEASSISTANCEINFORMATION-START + +UEAssistanceInformation ::= SEQUENCE { + criticalExtensions CHOICE { + ueAssistanceInformation UEAssistanceInformation-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +UEAssistanceInformation-IEs ::= SEQUENCE { + delayBudgetReport DelayBudgetReport OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + + +DelayBudgetReport::= CHOICE { + type1 ENUMERATED { + msMinus1280, msMinus640, msMinus320, msMinus160,msMinus80, msMinus60, msMinus40, + msMinus20, ms0, ms20,ms40, ms60, ms80, ms160, ms320, ms640, ms1280}, + ... +} + +-- TAG-UEASSISTANCEINFORMATION-STOP +-- TAG-UECAPABILITYENQUIRY-START + +UECapabilityEnquiry ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + ueCapabilityEnquiry UECapabilityEnquiry-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityEnquiry-IEs ::= SEQUENCE { + ue-CapabilityRAT-RequestList UE-CapabilityRAT-RequestList, + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +-- TAG-UECAPABILITYENQUIRY-STOP +-- TAG-UECAPABILITYINFORMATION-START + +UECapabilityInformation ::= SEQUENCE { + rrc-TransactionIdentifier RRC-TransactionIdentifier, + criticalExtensions CHOICE { + ueCapabilityInformation UECapabilityInformation-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +UECapabilityInformation-IEs ::= SEQUENCE { + ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList OPTIONAL, + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL +} + +-- TAG-UECAPABILITYINFORMATION-STOP +-- TAG-ULINFORMATIONTRANSFER-START + +ULInformationTransfer ::= SEQUENCE { + criticalExtensions CHOICE { + ulInformationTransfer ULInformationTransfer-IEs, + criticalExtensionsFuture SEQUENCE {} + } +} + +ULInformationTransfer-IEs ::= SEQUENCE { + dedicatedNAS-Message DedicatedNAS-Message OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- TAG-ULINFORMATIONTRANSFER-STOP -- TAG-SETUP-RELEASE-START -- WS modification: asn2wrs does not support this syntax; replace all occurrences @@ -162,1109 +909,1563 @@ SIB1 ::= SEQUENCE { -- } -- TAG-SETUP-RELEASE-STOP +-- TAG-SIB2-START + +SIB2 ::= SEQUENCE { + cellReselectionInfoCommon SEQUENCE { + nrofSS-BlocksToAverage INTEGER (2..maxNrofSS-BlocksToAverage) OPTIONAL, -- Need R + absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL, -- Need R + rangeToBestCell RangeToBestCell OPTIONAL, -- Need R + q-Hyst ENUMERATED { + dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10, + dB12, dB14, dB16, dB18, dB20, dB22, dB24}, + speedStateReselectionPars SEQUENCE { + mobilityStateParameters MobilityStateParameters, + q-HystSF SEQUENCE { + sf-Medium ENUMERATED { + dB-6, dB-4, dB-2, dB0}, + sf-High ENUMERATED { + dB-6, dB-4, dB-2, dB0} + } + } OPTIONAL, -- Need R + ... + }, + cellReselectionServingFreqInfo SEQUENCE { + s-NonIntraSearchP ReselectionThreshold OPTIONAL, -- Need R + s-NonIntraSearchQ ReselectionThresholdQ OPTIONAL, -- Need R + threshServingLowP ReselectionThreshold, + threshServingLowQ ReselectionThresholdQ OPTIONAL, -- Need R + cellReselectionPriority CellReselectionPriority, + cellReselectionSubPriority CellReselectionSubPriority OPTIONAL, -- Need R + ... + }, + intraFreqCellReselectionInfo SEQUENCE { + q-RxLevMin Q-RxLevMin, + q-RxLevMinSUL Q-RxLevMin OPTIONAL, -- Need R + q-QualMin Q-QualMin OPTIONAL, -- Need S + s-IntraSearchP ReselectionThreshold, -- Need S + s-IntraSearchQ ReselectionThresholdQ OPTIONAL, -- Cond RSRQ + t-ReselectionNR T-Reselection, + frequencyBandList MultiFrequencyBandListNR-SIB OPTIONAL, -- Need R + frequencyBandListSUL MultiFrequencyBandListNR-SIB OPTIONAL, -- Need R + p-Max P-Max OPTIONAL, -- Need R + smtc SSB-MTC OPTIONAL, -- Need R + ss-RSSI-Measurement SS-RSSI-Measurement OPTIONAL, -- Need R + ssb-ToMeasure SSB-ToMeasure OPTIONAL, -- Need R + deriveSSB-IndexFromCell BOOLEAN, + ... + }, + ... +} + +RangeToBestCell ::= Q-OffsetRange + +-- TAG-SIB2-STOP +-- TAG-SIB3-START + +SIB3 ::= SEQUENCE { + intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need R + intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need R + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo + +IntraFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + q-RxLevMinOffsetCell INTEGER (1..8) OPTIONAL, -- Need R + q-RxLevMinOffsetCellSUL INTEGER (1..8) OPTIONAL, -- Need R + q-QualMinOffsetCell INTEGER (1..8) OPTIONAL, -- Need R + ... +} + +IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PCI-Range + +-- TAG-SIB3-STOP +-- TAG-SIB4-START + +SIB4 ::= SEQUENCE { + interFreqCarrierFreqList InterFreqCarrierFreqList, + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo + +InterFreqCarrierFreqInfo ::= SEQUENCE { + dl-CarrierFreq ARFCN-ValueNR, + frequencyBandList MultiFrequencyBandListNR-SIB OPTIONAL, -- Need R + frequencyBandListSUL MultiFrequencyBandListNR-SIB OPTIONAL, -- Need R + nrofSS-BlocksToAverage INTEGER (2..maxNrofSS-BlocksToAverage) OPTIONAL, + absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL, + smtc SSB-MTC OPTIONAL, -- Need R + ssbSubcarrierSpacing SubcarrierSpacing, + ssb-ToMeasure SSB-ToMeasure OPTIONAL, -- Need R + deriveSSB-IndexFromCell BOOLEAN, + ss-RSSI-Measurement SS-RSSI-Measurement OPTIONAL, + q-RxLevMin Q-RxLevMin, + q-RxLevMinSUL Q-RxLevMin OPTIONAL, -- Need R + q-QualMin Q-QualMin OPTIONAL, -- Need R, + p-Max P-Max OPTIONAL, -- Need R + t-ReselectionNR T-Reselection, + t-ReselectionNR-SF SpeedStateScaleFactors OPTIONAL, -- Need N + threshX-HighP ReselectionThreshold, + threshX-LowP ReselectionThreshold, + threshX-Q SEQUENCE { + threshX-HighQ ReselectionThresholdQ, + threshX-LowQ ReselectionThresholdQ + } OPTIONAL, -- Cond RSRQ + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need R + cellReselectionSubPriority CellReselectionSubPriority OPTIONAL, -- Need R + q-OffsetFreq Q-OffsetRange DEFAULT dB0, + interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need R + interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need R + ... +} + +InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo + +InterFreqNeighCellInfo ::= SEQUENCE { + physCellId PhysCellId, + q-OffsetCell Q-OffsetRange, + q-RxLevMinOffsetCell INTEGER (1..8) OPTIONAL, -- Need R + q-RxLevMinOffsetCellSUL INTEGER (1..8) OPTIONAL, -- Need R + q-QualMinOffsetCell INTEGER (1..8) OPTIONAL, -- Need R + ... + +} + +InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PCI-Range + +-- TAG-SIB4-STOP +-- TAG-SIB5-START + +SIB5 ::= SEQUENCE { + carrierFreqListEUTRA CarrierFreqListEUTRA OPTIONAL, -- Need R + t-ReselectionEUTRA T-Reselection, + t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need N + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +CarrierFreqListEUTRA ::= SEQUENCE (SIZE (1..maxEUTRA-Carrier)) OF CarrierFreqEUTRA + +CarrierFreqEUTRA ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + eutra-multiBandInfoList EUTRA-MultiBandInfoList OPTIONAL, -- Need R + eutra-FreqNeighCellList EUTRA-FreqNeighCellList OPTIONAL, -- Need R + eutra-BlackCellList EUTRA-FreqBlackCellList OPTIONAL, -- Need R + allowedMeasBandwidth EUTRA-AllowedMeasBandwidth, + presenceAntennaPort1 EUTRA-PresenceAntennaPort1, + cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need R + cellReselectionSubPriority CellReselectionSubPriority OPTIONAL, -- Need R + threshX-High ReselectionThreshold, + threshX-Low ReselectionThreshold, + q-RxLevMin INTEGER (-70..-22), + q-QualMin INTEGER (-34..-3), + p-MaxEUTRA INTEGER (-30..33), + threshX-Q SEQUENCE { + threshX-HighQ ReselectionThresholdQ, + threshX-LowQ ReselectionThresholdQ + } OPTIONAL -- Cond RSRQ +} + +EUTRA-FreqBlackCellList ::= SEQUENCE (SIZE (1..maxEUTRA-CellBlack)) OF EUTRA-PhysCellIdRange + +EUTRA-FreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellEUTRA)) OF EUTRA-FreqNeighCellInfo + +EUTRA-FreqNeighCellInfo ::= SEQUENCE { + physCellId EUTRA-PhysCellId, + q-OffsetCell EUTRA-Q-OffsetRange, + q-RxLevMinOffsetCell INTEGER (1..8) OPTIONAL, -- Need R + q-QualMinOffsetCell INTEGER (1..8) OPTIONAL -- Need R +} + +-- TAG-SIB5-STOP +-- TAG-SIB6-START + +SIB6 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningType OCTET STRING (SIZE (2)), + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +-- TAG-SIB6-STOP +-- TAG-SIB7-START + +SIB7 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +-- TAG-SIB7-STOP +-- TAG-SIB8-START + +SIB8 ::= SEQUENCE { + messageIdentifier BIT STRING (SIZE (16)), + serialNumber BIT STRING (SIZE (16)), + warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment}, + warningMessageSegmentNumber INTEGER (0..63), + warningMessageSegment OCTET STRING, + dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1 + warningAreaCoordinatesSegment OCTET STRING OPTIONAL, -- Need R + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +-- TAG-SIB8-STOP +-- TAG-SIB9-START + +SIB9 ::= SEQUENCE { + timeInfo SEQUENCE { + timeInfoUTC INTEGER (0..549755813887), + dayLightSavingTime BIT STRING (SIZE (2)) OPTIONAL, -- Need R + leapSeconds INTEGER (-127..128) OPTIONAL, -- Need R + localTimeOffset INTEGER (-63..64) OPTIONAL -- Need R + } OPTIONAL, -- Need R + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +-- TAG-SIB9-STOP -- TAG-ADDITIONALSPECTRUMEMISSION-START -AdditionalSpectrumEmission ::= INTEGER (0..7) +AdditionalSpectrumEmission ::= INTEGER (0..7) -- TAG-ADDITIONALSPECTRUMEMISSION-STOP -- TAG-ALPHA-START -Alpha ::= ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1} +Alpha ::= ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1} -- TAG-ALPHA-STOP +-- TAG-AMF-IDENTIFIER-START + +AMF-Identifier ::= BIT STRING (SIZE (24)) + +-- TAG-AMF-IDENTIFIER-STOP +-- TAG-ARFCN-VALUEEUTRA-START + +ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN) + +-- TAG-ARFCN-VALUEEUTRA-STOP -- TAG-ARFCN-VALUE-NR-START -ARFCN-ValueNR ::= INTEGER (0..3279165) +ARFCN-ValueNR ::= INTEGER (0..maxNARFCN) -- TAG-ARFCN-VALUE-NR-STOP --- TAG-BANDWIDTH-PART-START +-- TAG-BEAM-FAILURE-RECOVERY-CONFIG-START -BWP ::= SEQUENCE { - locationAndBandwidth INTEGER (0..37949), - subcarrierSpacing SubcarrierSpacing, - cyclicPrefix ENUMERATED { extended } OPTIONAL -- Need R +BeamFailureRecoveryConfig ::= SEQUENCE { + rootSequenceIndex-BFR INTEGER (0..137) OPTIONAL, -- Need M + rach-ConfigBFR RACH-ConfigGeneric OPTIONAL, -- Need M + rsrp-ThresholdSSB RSRP-Range OPTIONAL, -- Need M + candidateBeamRSList SEQUENCE (SIZE(1..maxNrofCandidateBeams)) OF PRACH-ResourceDedicatedBFR OPTIONAL, -- Need M + ssb-perRACH-Occasion ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen} OPTIONAL, -- Need M + ra-ssb-OccasionMaskIndex INTEGER (0..15) OPTIONAL, -- Need M + recoverySearchSpaceId SearchSpaceId OPTIONAL, -- Cond CF-BFR + ra-Prioritization RA-Prioritization OPTIONAL, -- Need R + beamFailureRecoveryTimer ENUMERATED {ms10, ms20, ms40, ms60, ms80, ms100, ms150, ms200} OPTIONAL, -- Need M + ..., + [[ + msg1-SubcarrierSpacing-v1530 SubcarrierSpacing OPTIONAL -- Need M + ]] +} + +PRACH-ResourceDedicatedBFR ::= CHOICE { + ssb BFR-SSB-Resource, + csi-RS BFR-CSIRS-Resource +} + +BFR-SSB-Resource ::= SEQUENCE { + ssb SSB-Index, + ra-PreambleIndex INTEGER (0..63), + ... } -BWP-Uplink ::= SEQUENCE { - bwp-Id BWP-Id, - bwp-Common BWP-UplinkCommon OPTIONAL, -- Need M - bwp-Dedicated BWP-UplinkDedicated OPTIONAL, -- Need M - ... +BFR-CSIRS-Resource ::= SEQUENCE { + csi-RS NZP-CSI-RS-ResourceId, + ra-OccasionList SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS)) OF INTEGER (0..maxRA-Occasions-1) OPTIONAL, -- Need R + ra-PreambleIndex INTEGER (0..63) OPTIONAL, -- Need R + ... } -BWP-UplinkCommon ::= SEQUENCE { - genericParameters BWP, - rach-ConfigCommon CHOICE { release NULL, setup RACH-ConfigCommon } OPTIONAL, -- Need M - pusch-ConfigCommon CHOICE { release NULL, setup PUSCH-ConfigCommon } OPTIONAL, -- Need M - pucch-ConfigCommon CHOICE { release NULL, setup PUCCH-ConfigCommon } OPTIONAL, -- Need M - ... +-- TAG-BEAM-FAILURE-RECOVERY-CONFIG-STOP +-- TAG-BSR-CONFIG-START + +BSR-Config ::= SEQUENCE { + 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, spare5, spare4, spare3, spare2, spare1}, + logicalChannelSR-DelayTimer ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} OPTIONAL, -- Need R + ... } -BWP-UplinkDedicated ::= SEQUENCE { - pucch-Config CHOICE { release NULL, setup PUCCH-Config } OPTIONAL, -- Need M - pusch-Config CHOICE { release NULL, setup PUSCH-Config } OPTIONAL, -- Cond SetupOnly - configuredGrantConfig CHOICE { release NULL, setup ConfiguredGrantConfig } OPTIONAL, -- Need M - srs-Config CHOICE { release NULL, setup SRS-Config } OPTIONAL, -- Need M - beamFailureRecoveryConfig CHOICE { release NULL, setup BeamFailureRecoveryConfig } OPTIONAL, -- Cond SpCellOnly - ... +-- TAG-BSR-CONFIG-STOP +-- TAG-BANDWIDTH-PART-START + +BWP ::= SEQUENCE { + locationAndBandwidth INTEGER (0..37949), + subcarrierSpacing SubcarrierSpacing, + cyclicPrefix ENUMERATED { extended } OPTIONAL -- Need R } -BWP-Downlink ::= SEQUENCE { - bwp-Id BWP-Id, - bwp-Common BWP-DownlinkCommon OPTIONAL, -- Need M - bwp-Dedicated BWP-DownlinkDedicated OPTIONAL, -- Need M - ... + +-- TAG-BANDWIDTH-PART-STOP +-- TAG-BWP-DOWNLINK-START + +BWP-Downlink ::= SEQUENCE { + bwp-Id BWP-Id, + bwp-Common BWP-DownlinkCommon OPTIONAL, -- Cond SetupOtherBWP + 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 - ... +-- TAG-BWP-DOWNLINK-STOP +-- TAG-BWP-DOWNLINKCOMMON-START + +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 - ... +-- TAG-BWP-DOWNLINKCOMMON-STOP +-- TAG-BWP-DOWNLINKDEDICATED-START + +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 + ... } --- TAG-BANDWIDTH-PART-STOP +-- TAG-BWP-DOWNLINKDEDICATED-STOP -- TAG-BWP-ID-START -BWP-Id ::= INTEGER (0..maxNrofBWPs) +BWP-Id ::= INTEGER (0..maxNrofBWPs) -- TAG-BWP-ID-STOP --- TAG-BEAM-FAILURE-RECOVERY-CONFIG-START +-- TAG-BWP-UPLINK-START -BeamFailureRecoveryConfig ::= SEQUENCE { - rootSequenceIndex-BFR INTEGER (0..137) OPTIONAL, -- Need M - rach-ConfigBFR RACH-ConfigGeneric OPTIONAL, -- Need M - rsrp-ThresholdSSB RSRP-Range OPTIONAL, -- Need M - candidateBeamRSList SEQUENCE (SIZE(1..maxNrofCandidateBeams)) OF PRACH-ResourceDedicatedBFR OPTIONAL, -- Need M - ssb-perRACH-Occasion ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen} OPTIONAL, -- Need M - ra-ssb-OccasionMaskIndex INTEGER (0..15) OPTIONAL, -- Need M - recoverySearchSpaceId SearchSpaceId OPTIONAL, -- Cond CF-BFR - ra-Prioritization RA-Prioritization OPTIONAL, -- Need R - beamFailureRecoveryTimer ENUMERATED {ms10, ms20, ms40, ms60, ms80, ms100, ms150, ms200} OPTIONAL, -- Need M - ... +BWP-Uplink ::= SEQUENCE { + bwp-Id BWP-Id, + bwp-Common BWP-UplinkCommon OPTIONAL, -- Cond SetupOtherBWP + bwp-Dedicated BWP-UplinkDedicated OPTIONAL, -- Need M + ... } -PRACH-ResourceDedicatedBFR ::= CHOICE { - ssb BFR-SSB-Resource, - csi-RS BFR-CSIRS-Resource +-- TAG-BWP-UPLINK-STOP +-- TAG-BWP-UPLINKCOMMON-START + +BWP-UplinkCommon ::= SEQUENCE { + genericParameters BWP, + rach-ConfigCommon CHOICE { release NULL, setup RACH-ConfigCommon } OPTIONAL, -- Need M + pusch-ConfigCommon CHOICE { release NULL, setup PUSCH-ConfigCommon } OPTIONAL, -- Need M + pucch-ConfigCommon CHOICE { release NULL, setup PUCCH-ConfigCommon } OPTIONAL, -- Need M + ... } -BFR-SSB-Resource ::= SEQUENCE { - ssb SSB-Index, - ra-PreambleIndex INTEGER (0..63), - ... +-- TAG-BWP-UPLINKCOMMON-STOP +-- TAG-BWP-UPLINKDEDICATED-START + +BWP-UplinkDedicated ::= SEQUENCE { + pucch-Config CHOICE { release NULL, setup PUCCH-Config } OPTIONAL, -- Need M + pusch-Config CHOICE { release NULL, setup PUSCH-Config } OPTIONAL, -- Need M + configuredGrantConfig CHOICE { release NULL, setup ConfiguredGrantConfig } OPTIONAL, -- Need M + srs-Config CHOICE { release NULL, setup SRS-Config } OPTIONAL, -- Need M + beamFailureRecoveryConfig CHOICE { release NULL, setup BeamFailureRecoveryConfig } OPTIONAL, -- Cond SpCellOnly + ... } -BFR-CSIRS-Resource ::= SEQUENCE { - csi-RS NZP-CSI-RS-ResourceId, - ra-OccasionList SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS)) OF INTEGER (0..maxRA-Occasions-1) OPTIONAL, -- Need R - ra-PreambleIndex INTEGER (0..63) OPTIONAL, -- Need R - ... +-- TAG-BWP-UPLINKDEDICATED-STOP +-- TAG-CELL-ACCESS-RELATED-INFO-START + +CellAccessRelatedInfo ::= SEQUENCE { + plmn-IdentityList PLMN-IdentityInfoList, + cellReservedForOtherUse ENUMERATED {true} OPTIONAL, -- Need R + ... } --- TAG-BEAM-FAILURE-RECOVERY-CONFIG-STOP +-- TAG- CELL-ACCESS-RELATED-INFO-STOP +-- TAG-CELL-ACCESS-RELATED-INFO-EUTRA-5GC-START + +CellAccessRelatedInfo-EUTRA-5GC ::= SEQUENCE { + plmn-IdentityList-eutra-5gc PLMN-IdentityList-EUTRA-5GC, + trackingAreaCode-eutra-5gc TrackingAreaCode, + ranac-5gc RAN-AreaCode OPTIONAL, + cellIdentity-eutra-5gc CellIdentity-EUTRA-5GC +} + +PLMN-IdentityList-EUTRA-5GC::= SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity-EUTRA-5GC + +PLMN-Identity-EUTRA-5GC ::= CHOICE { + plmn-Identity-EUTRA-5GC PLMN-Identity, +plmn-index INTEGER (1..maxPLMN) +} + +CellIdentity-EUTRA-5GC ::= CHOICE { + cellIdentity-EUTRA BIT STRING (SIZE (28)), +cellId-index INTEGER (1..maxPLMN) +} + +-- TAG-CELL-ACCESS-RELATED-INFO-EUTRA-5GC-STOP +-- TAG-CELL-ACCESS-RELATED-INFO-EUTRA-EPC-START + +CellAccessRelatedInfo-EUTRA-EPC ::= SEQUENCE { + plmn-IdentityList-eutra-epc PLMN-IdentityList-EUTRA-EPC, + trackingAreaCode-eutra-epc BIT STRING (SIZE (16)), + cellIdentity-eutra-epc BIT STRING (SIZE (28)) +} + +PLMN-IdentityList-EUTRA-EPC::= SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity + +-- TAG-CELL-ACCESS-RELATED-INFO-EUTRA-5GC-STOP -- TAG-CELL-GROUP-CONFIG-START -- Configuration of one Cell-Group: -CellGroupConfig ::= SEQUENCE { - cellGroupId CellGroupId, +CellGroupConfig ::= SEQUENCE { + cellGroupId CellGroupId, - rlc-BearerToAddModList SEQUENCE (SIZE(1..maxLC-ID)) OF RLC-BearerConfig OPTIONAL, -- Need N - rlc-BearerToReleaseList SEQUENCE (SIZE(1..maxLC-ID)) OF LogicalChannelIdentity OPTIONAL, -- Need N + rlc-BearerToAddModList SEQUENCE (SIZE(1..maxLC-ID)) OF RLC-BearerConfig OPTIONAL, -- Need N + rlc-BearerToReleaseList SEQUENCE (SIZE(1..maxLC-ID)) OF LogicalChannelIdentity OPTIONAL, -- Need N - mac-CellGroupConfig MAC-CellGroupConfig OPTIONAL, -- Need M + mac-CellGroupConfig MAC-CellGroupConfig OPTIONAL, -- Need M - physicalCellGroupConfig PhysicalCellGroupConfig OPTIONAL, -- Need M + physicalCellGroupConfig PhysicalCellGroupConfig OPTIONAL, -- Need M - spCellConfig SpCellConfig OPTIONAL, -- Need M - sCellToAddModList SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig OPTIONAL, -- Need N - sCellToReleaseList SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex OPTIONAL, -- Need N - ... + spCellConfig SpCellConfig OPTIONAL, -- Need M + sCellToAddModList SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig OPTIONAL, -- Need N + sCellToReleaseList SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex OPTIONAL, -- Need N + ..., + [[ + reportUplinkTxDirectCurrent-v1530 ENUMERATED {true} OPTIONAL -- Cond BWP-Reconfig + ]] } -- Serving cell specific MAC and PHY parameters for a SpCell: -SpCellConfig ::= SEQUENCE { - servCellIndex ServCellIndex OPTIONAL, -- Cond SCG - reconfigurationWithSync ReconfigurationWithSync OPTIONAL, -- Cond ReconfWithSync - rlf-TimersAndConstants CHOICE { release NULL, setup RLF-TimersAndConstants } OPTIONAL, -- Need M - rlmInSyncOutOfSyncThreshold ENUMERATED {n1} OPTIONAL, -- Need S - spCellConfigDedicated ServingCellConfig OPTIONAL, -- Need M - ... +SpCellConfig ::= SEQUENCE { + servCellIndex ServCellIndex OPTIONAL, -- Cond SCG + reconfigurationWithSync ReconfigurationWithSync OPTIONAL, -- Cond ReconfWithSync + rlf-TimersAndConstants CHOICE { release NULL, setup RLF-TimersAndConstants } OPTIONAL, -- Need M + rlmInSyncOutOfSyncThreshold ENUMERATED {n1} OPTIONAL, -- Need S + spCellConfigDedicated ServingCellConfig OPTIONAL, -- Need M + ... } -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 - ... +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 + ..., + [[ + smtc SSB-MTC OPTIONAL -- Need S + ]] } -SCellConfig ::= SEQUENCE { - sCellIndex SCellIndex, - sCellConfigCommon ServingCellConfigCommon OPTIONAL, -- Cond SCellAdd - sCellConfigDedicated ServingCellConfig OPTIONAL, -- Cond SCellAddMod - ... +SCellConfig ::= SEQUENCE { + sCellIndex SCellIndex, + sCellConfigCommon ServingCellConfigCommon OPTIONAL, -- Cond SCellAdd + sCellConfigDedicated ServingCellConfig OPTIONAL, -- Cond SCellAddMod + ..., + [[ + smtc SSB-MTC OPTIONAL -- Need S + ]] } -- TAG-CELL-GROUP-CONFIG-STOP -- TAG-CELLGROUPID-START -CellGroupId ::= INTEGER (0.. maxSecondaryCellGroups) +CellGroupId ::= INTEGER (0.. maxSecondaryCellGroups) -- TAG-CELLGROUPID-STOP + +CellIdentity ::= BIT STRING (SIZE (36)) + +-- TAG-CELLRESELECTIONPRIORITY-START + +CellReselectionPriority ::= INTEGER (0..7) + +-- TAG-CELLRESELECTIONPRIORITY-STOP + +CellReselectionSubPriority ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8} + +-- TAG-CGI-Info-START + +CGI-Info ::= SEQUENCE { + plmn-IdentityInfoList PLMN-IdentityInfoList OPTIONAL, + frequencyBandList MultiFrequencyBandListNR OPTIONAL, + noSIB1 SEQUENCE { + ssb-SubcarrierOffset INTEGER (0..15), + pdcch-ConfigSIB1 PDCCH-ConfigSIB1 + } OPTIONAL, + ... +} + +-- TAG-CGI-Info -STOP -- TAG-CODEBOOKCONFIG-START -CodebookConfig ::= SEQUENCE { - codebookType CHOICE { - type1 SEQUENCE { - subType CHOICE { - typeI-SinglePanel SEQUENCE { - nrOfAntennaPorts CHOICE { - two SEQUENCE { - twoTX-CodebookSubsetRestriction BIT STRING (SIZE (6)) - }, - moreThanTwo SEQUENCE { - 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)) - }, - typeI-SinglePanel-codebookSubsetRestriction-i2 BIT STRING (SIZE (16)) OPTIONAL - } - }, - typeI-SinglePanel-ri-Restriction BIT STRING (SIZE (8)) - }, - typeI-MultiPanel SEQUENCE { - ng-n1-n2 CHOICE { - two-two-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (8)), - two-four-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (16)), - four-two-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (8)), - two-two-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (64)), - two-eight-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (32)), - four-four-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (16)), - two-four-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (128)), - four-two-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (64)) - }, - ri-Restriction BIT STRING (SIZE (4)) - } - }, - codebookMode INTEGER (1..2) - - }, - type2 SEQUENCE { - subType CHOICE { - typeII SEQUENCE { - n1-n2-codebookSubsetRestriction CHOICE { - two-one BIT STRING (SIZE (16)), - two-two BIT STRING (SIZE (43)), - four-one BIT STRING (SIZE (32)), - three-two BIT STRING (SIZE (59)), - six-one BIT STRING (SIZE (48)), - four-two BIT STRING (SIZE (75)), - eight-one BIT STRING (SIZE (64)), - four-three BIT STRING (SIZE (107)), - six-two BIT STRING (SIZE (107)), - twelve-one BIT STRING (SIZE (96)), - four-four BIT STRING (SIZE (139)), - eight-two BIT STRING (SIZE (139)), - sixteen-one BIT STRING (SIZE (128)) - }, - typeII-RI-Restriction BIT STRING (SIZE (2)) - }, - typeII-PortSelection SEQUENCE { - portSelectionSamplingSize ENUMERATED {n1, n2, n3, n4} OPTIONAL, -- Cond TypeII-PortSelection - typeII-PortSelectionRI-Restriction BIT STRING (SIZE (2)) - } - }, - phaseAlphabetSize ENUMERATED {n4, n8}, - subbandAmplitude BOOLEAN, - numberOfBeams ENUMERATED {two, three, four} - } - } +CodebookConfig ::= SEQUENCE { + codebookType CHOICE { + type1 SEQUENCE { + subType CHOICE { + typeI-SinglePanel SEQUENCE { + nrOfAntennaPorts CHOICE { + two SEQUENCE { + twoTX-CodebookSubsetRestriction BIT STRING (SIZE (6)) + }, + moreThanTwo SEQUENCE { + 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)) + }, + typeI-SinglePanel-codebookSubsetRestriction-i2 BIT STRING (SIZE (16)) OPTIONAL -- Need R + } + }, + typeI-SinglePanel-ri-Restriction BIT STRING (SIZE (8)) + }, + typeI-MultiPanel SEQUENCE { + ng-n1-n2 CHOICE { + two-two-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (8)), + two-four-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (16)), + four-two-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (8)), + two-two-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (64)), + two-eight-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (32)), + four-four-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (16)), + two-four-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (128)), + four-two-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (64)) + }, + ri-Restriction BIT STRING (SIZE (4)) + } + }, + codebookMode INTEGER (1..2) + + }, + type2 SEQUENCE { + subType CHOICE { + typeII SEQUENCE { + n1-n2-codebookSubsetRestriction CHOICE { + two-one BIT STRING (SIZE (16)), + two-two BIT STRING (SIZE (43)), + four-one BIT STRING (SIZE (32)), + three-two BIT STRING (SIZE (59)), + six-one BIT STRING (SIZE (48)), + four-two BIT STRING (SIZE (75)), + eight-one BIT STRING (SIZE (64)), + four-three BIT STRING (SIZE (107)), + six-two BIT STRING (SIZE (107)), + twelve-one BIT STRING (SIZE (96)), + four-four BIT STRING (SIZE (139)), + eight-two BIT STRING (SIZE (139)), + sixteen-one BIT STRING (SIZE (128)) + }, + typeII-RI-Restriction BIT STRING (SIZE (2)) + }, + typeII-PortSelection SEQUENCE { + portSelectionSamplingSize ENUMERATED {n1, n2, n3, n4} OPTIONAL, -- Need R + typeII-PortSelectionRI-Restriction BIT STRING (SIZE (2)) + } + }, + phaseAlphabetSize ENUMERATED {n4, n8}, + subbandAmplitude BOOLEAN, + numberOfBeams ENUMERATED {two, three, four} + } + } } -- TAG-CODEBOOKCONFIG-STOP -- TAG-CONFIGUREDGRANTCONFIG-START -ConfiguredGrantConfig ::= SEQUENCE { - frequencyHopping ENUMERATED {mode1, mode2} OPTIONAL, -- Need S, - cg-DMRS-Configuration DMRS-UplinkConfig, - mcs-Table ENUMERATED {qam256, spare1} OPTIONAL, -- Need S - mcs-TableTransformPrecoder ENUMERATED {qam256, spare1} OPTIONAL, -- Need S - uci-OnPUSCH CHOICE { release NULL, setup CG-UCI-OnPUSCH }, - resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch }, - rbg-Size ENUMERATED {config2} OPTIONAL, -- Need S - powerControlLoopToUse ENUMERATED {n0, n1}, - p0-PUSCH-Alpha P0-PUSCH-AlphaSetId, - transformPrecoder ENUMERATED {enabled} OPTIONAL, -- Need S - nrofHARQ-Processes INTEGER(1..16), - repK ENUMERATED {n1, n2, n4, n8}, - repK-RV ENUMERATED {s1-0231, s2-0303, s3-0000} OPTIONAL, -- Cond RepK - 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 - }, - configuredGrantTimer INTEGER (1..64) OPTIONAL, -- Need R - rrc-ConfiguredUplinkGrant SEQUENCE { - timeDomainOffset INTEGER (0..5119), - timeDomainAllocation INTEGER (0..15), - frequencyDomainAllocation BIT STRING (SIZE(18)), - antennaPort INTEGER (0..31), - dmrs-SeqInitialization INTEGER (0..1) OPTIONAL, -- Cond NoTransformPrecoder - precodingAndNumberOfLayers INTEGER (0..63), - srs-ResourceIndicator INTEGER (0..15), - mcsAndTBS INTEGER (0..31), - frequencyHoppingOffset INTEGER (1.. maxNrofPhysicalResourceBlocks-1) OPTIONAL, -- Need M - pathlossReferenceIndex INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1), - ... - } OPTIONAL -- Need R +ConfiguredGrantConfig ::= SEQUENCE { + frequencyHopping ENUMERATED {intraSlot, interSlot} OPTIONAL, -- Need S, + cg-DMRS-Configuration DMRS-UplinkConfig, + mcs-Table ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S + mcs-TableTransformPrecoder ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S + uci-OnPUSCH CHOICE { release NULL, setup CG-UCI-OnPUSCH } OPTIONAL, -- Need M + resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch }, + rbg-Size ENUMERATED {config2} OPTIONAL, -- Need S + powerControlLoopToUse ENUMERATED {n0, n1}, + p0-PUSCH-Alpha P0-PUSCH-AlphaSetId, + transformPrecoder ENUMERATED {enabled, disabled} OPTIONAL, -- Need S + nrofHARQ-Processes INTEGER(1..16), + repK ENUMERATED {n1, n2, n4, n8}, + repK-RV ENUMERATED {s1-0231, s2-0303, s3-0000} OPTIONAL, -- Need R + 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 + }, + configuredGrantTimer INTEGER (1..64) OPTIONAL, -- Need R + rrc-ConfiguredUplinkGrant SEQUENCE { + timeDomainOffset INTEGER (0..5119), + timeDomainAllocation INTEGER (0..15), + frequencyDomainAllocation BIT STRING (SIZE(18)), + antennaPort INTEGER (0..31), + dmrs-SeqInitialization INTEGER (0..1) OPTIONAL, -- Need R + precodingAndNumberOfLayers INTEGER (0..63), + srs-ResourceIndicator INTEGER (0..15) OPTIONAL, -- Need R + mcsAndTBS INTEGER (0..31), + frequencyHoppingOffset INTEGER (1.. maxNrofPhysicalResourceBlocks-1) OPTIONAL, -- Need R + pathlossReferenceIndex INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1), + ... + } OPTIONAL, -- Need R + ... } CG-UCI-OnPUSCH ::= CHOICE { - dynamic SEQUENCE (SIZE (1..4)) OF BetaOffsets, - semiStatic BetaOffsets + dynamic SEQUENCE (SIZE (1..4)) OF BetaOffsets, + semiStatic BetaOffsets } -- TAG-CONFIGUREDGRANTCONFIG-STOP +-- TAG-CONNESTFAILURECONTROL-START + +ConnEstFailureControl ::= SEQUENCE { + connEstFailCount ENUMERATED {n1, n2, n3, n4}, + connEstFailOffsetValidity ENUMERATED {s30, s60, s120, s240, s300, s420, s600, s900}, + connEstFailOffset INTEGER (0..15) OPTIONAL -- Need S +} + +-- TAG-CONNESTFAILURECONTROL-STOP -- TAG-CONTROLRESOURCESET-START -ControlResourceSet ::= SEQUENCE { - controlResourceSetId ControlResourceSetId, - - frequencyDomainResources BIT STRING (SIZE (45)), - duration INTEGER (1..maxCoReSetDuration), - cce-REG-MappingType CHOICE { - interleaved SEQUENCE { - reg-BundleSize ENUMERATED {n2, n3, n6}, - interleaverSize ENUMERATED {n2, n3, n6}, - shiftIndex INTEGER(0..maxNrofPhysicalResourceBlocks-1) OPTIONAL -- Need S - }, - nonInterleaved NULL - }, - precoderGranularity ENUMERATED {sameAsREG-bundle, allContiguousRBs}, - tci-StatesPDCCH-ToAddList SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId OPTIONAL, -- Need N - tci-StatesPDCCH-ToReleaseList SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId OPTIONAL, -- Need N -tci-PresentInDCI ENUMERATED {enabled} OPTIONAL, -- Need S - pdcch-DMRS-ScramblingID INTEGER (0..65535) OPTIONAL, -- Need S - ... +ControlResourceSet ::= SEQUENCE { + controlResourceSetId ControlResourceSetId, + + frequencyDomainResources BIT STRING (SIZE (45)), + duration INTEGER (1..maxCoReSetDuration), + cce-REG-MappingType CHOICE { + interleaved SEQUENCE { + reg-BundleSize ENUMERATED {n2, n3, n6}, + interleaverSize ENUMERATED {n2, n3, n6}, + shiftIndex INTEGER(0..maxNrofPhysicalResourceBlocks-1) OPTIONAL -- Need S + }, + nonInterleaved NULL + }, + precoderGranularity ENUMERATED {sameAsREG-bundle, allContiguousRBs}, + tci-StatesPDCCH-ToAddList SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId OPTIONAL, -- Need N + tci-StatesPDCCH-ToReleaseList SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId OPTIONAL, -- Need N +tci-PresentInDCI ENUMERATED {enabled} OPTIONAL, -- Need S + pdcch-DMRS-ScramblingID INTEGER (0..65535) OPTIONAL, -- Need S + ... } -- TAG-CONTROLRESOURCESET-STOP -- TAG-CONTROL-RESOURCE-SET-ID-START -ControlResourceSetId ::= INTEGER (0..maxNrofControlResourceSets-1) +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, - cif-InSchedulingCell INTEGER (1..7) - } -- Cond SCellOnly - }, - ... +-- TAG-CONTROLRESOURCESETZERO-START + +ControlResourceSetZero ::= INTEGER (0..15) + +-- TAG-CONTROLRESOURCESETZERO-STOP + +CrossCarrierSchedulingConfig ::= SEQUENCE { + schedulingCellInfo CHOICE { + own SEQUENCE { -- No cross carrier scheduling + cif-Presence BOOLEAN + }, + other SEQUENCE { -- Cross carrier scheduling + schedulingCellId ServCellIndex, + cif-InSchedulingCell INTEGER (1..7) + } + }, + ... } -- TAG-CSI-APERIODICTRIGGERSTATELIST-START -CSI-AperiodicTriggerStateList ::= SEQUENCE (SIZE (1..maxNrOfCSI-AperiodicTriggers)) OF CSI-AperiodicTriggerState +CSI-AperiodicTriggerStateList ::= SEQUENCE (SIZE (1..maxNrOfCSI-AperiodicTriggers)) OF CSI-AperiodicTriggerState -CSI-AperiodicTriggerState ::= SEQUENCE { - associatedReportConfigInfoList SEQUENCE (SIZE(1..maxNrofReportConfigPerAperiodicTrigger)) OF CSI-AssociatedReportConfigInfo, - ... +CSI-AperiodicTriggerState ::= SEQUENCE { + associatedReportConfigInfoList SEQUENCE (SIZE(1..maxNrofReportConfigPerAperiodicTrigger)) OF CSI-AssociatedReportConfigInfo, + ... } -CSI-AssociatedReportConfigInfo ::= SEQUENCE { - reportConfigId CSI-ReportConfigId, - resourcesForChannel CHOICE { - nzp-CSI-RS SEQUENCE { - resourceSet INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig), - qcl-info SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet)) OF TCI-StateId OPTIONAL -- Cond Aperiodic - }, - csi-SSB-ResourceSet INTEGER (1..maxNrofCSI-SSB-ResourceSetsPerConfig) - }, - csi-IM-ResourcesforInteference INTEGER(1..maxNrofCSI-IM-ResourceSetsPerConfig) OPTIONAL, -- Cond CSI-IM-forInterference - nzp-CSI-RS-ResourcesforInterference INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig) OPTIONAL, -- Cond NZP-CSI-RS-forInterference - ... +CSI-AssociatedReportConfigInfo ::= SEQUENCE { + reportConfigId CSI-ReportConfigId, + resourcesForChannel CHOICE { + nzp-CSI-RS SEQUENCE { + resourceSet INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig), + qcl-info SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet)) OF TCI-StateId OPTIONAL -- Cond Aperiodic + }, + csi-SSB-ResourceSet INTEGER (1..maxNrofCSI-SSB-ResourceSetsPerConfig) + }, + csi-IM-ResourcesForInterference INTEGER(1..maxNrofCSI-IM-ResourceSetsPerConfig) OPTIONAL, -- Cond CSI-IM-ForInterference + nzp-CSI-RS-ResourcesForInterference INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig) OPTIONAL, -- Cond NZP-CSI-RS-ForInterference + ... } -- TAG-CSI-APERIODICTRIGGERSTATELIST-STOP -- TAG-CSI-FREQUENCYOCCUPATION-START -CSI-FrequencyOccupation ::= SEQUENCE { - startingRB INTEGER (0..maxNrofPhysicalResourceBlocks-1), - nrofRBs INTEGER (24..maxNrofPhysicalResourceBlocksPlus1), - ... +CSI-FrequencyOccupation ::= SEQUENCE { + startingRB INTEGER (0..maxNrofPhysicalResourceBlocks-1), + nrofRBs INTEGER (24..maxNrofPhysicalResourceBlocksPlus1), + ... } -- TAG-CSI-FREQUENCYOCCUPATION-STOP -- TAG-CSI-IM-RESOURCE-START -CSI-IM-Resource ::= SEQUENCE { - csi-IM-ResourceId CSI-IM-ResourceId, - csi-IM-ResourceElementPattern CHOICE { - pattern0 SEQUENCE { - subcarrierLocation-p0 ENUMERATED { s0, s2, s4, s6, s8, s10 }, - symbolLocation-p0 INTEGER (0..12) - }, - pattern1 SEQUENCE { - subcarrierLocation-p1 ENUMERATED { s0, s4, s8 }, - symbolLocation-p1 INTEGER (0..13) - } - } OPTIONAL, -- Need M - freqBand CSI-FrequencyOccupation OPTIONAL, -- Need M - periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, -- Cond PeriodicOrSemiPersistent - ... +CSI-IM-Resource ::= SEQUENCE { + csi-IM-ResourceId CSI-IM-ResourceId, + csi-IM-ResourceElementPattern CHOICE { + pattern0 SEQUENCE { + subcarrierLocation-p0 ENUMERATED { s0, s2, s4, s6, s8, s10 }, + symbolLocation-p0 INTEGER (0..12) + }, + pattern1 SEQUENCE { + subcarrierLocation-p1 ENUMERATED { s0, s4, s8 }, + symbolLocation-p1 INTEGER (0..13) + } + } OPTIONAL, -- Need M + freqBand CSI-FrequencyOccupation OPTIONAL, -- Need M + periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, -- Cond PeriodicOrSemiPersistent + ... } -- TAG-CSI-IM-RESOURCE-STOP -- TAG-CSI-IM-RESOURCEID-START -CSI-IM-ResourceId ::= INTEGER (0..maxNrofCSI-IM-Resources-1) +CSI-IM-ResourceId ::= INTEGER (0..maxNrofCSI-IM-Resources-1) -- TAG-CSI-IM-RESOURCEID-STOP -- TAG-CSI-IM-RESOURCESET-START -CSI-IM-ResourceSet ::= SEQUENCE { - csi-IM-ResourceSetId CSI-IM-ResourceSetId, - csi-IM-Resources SEQUENCE (SIZE(1..maxNrofCSI-IM-ResourcesPerSet)) OF CSI-IM-ResourceId, - ... +CSI-IM-ResourceSet ::= SEQUENCE { + csi-IM-ResourceSetId CSI-IM-ResourceSetId, + csi-IM-Resources SEQUENCE (SIZE(1..maxNrofCSI-IM-ResourcesPerSet)) OF CSI-IM-ResourceId, + ... } -- TAG-CSI-IM-RESOURCESET-STOP -- TAG-CSI-IM-RESOURCESETID-START -CSI-IM-ResourceSetId ::= INTEGER (0..maxNrofCSI-IM-ResourceSets-1) +CSI-IM-ResourceSetId ::= INTEGER (0..maxNrofCSI-IM-ResourceSets-1) -- TAG-CSI-IM-RESOURCESETID-STOP -- TAG-CSI-MEAS-CONFIG-START -CSI-MeasConfig ::= SEQUENCE { - 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 - 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 - 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 - 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 - 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 - 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-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 - - reportTriggerSize INTEGER (0..6) OPTIONAL, - aperiodicTriggerStateList CHOICE { release NULL, setup CSI-AperiodicTriggerStateList } OPTIONAL, -- Need M - semiPersistentOnPUSCH-TriggerStateList CHOICE { release NULL, setup CSI-SemiPersistentOnPUSCH-TriggerStateList } OPTIONAL, -- Need M - ... +CSI-MeasConfig ::= SEQUENCE { + 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 + 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 + 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 + 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 + 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 + 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-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 + + reportTriggerSize INTEGER (0..6) OPTIONAL, -- Need M + aperiodicTriggerStateList CHOICE { release NULL, setup CSI-AperiodicTriggerStateList } OPTIONAL, -- Need M + semiPersistentOnPUSCH-TriggerStateList CHOICE { release NULL, setup CSI-SemiPersistentOnPUSCH-TriggerStateList } OPTIONAL, -- Need M + ... } -- TAG-CSI-MEAS-CONFIG-STOP -- TAG-CSI-REPORTCONFIG-START -CSI-ReportConfig ::= SEQUENCE { - reportConfigId CSI-ReportConfigId, - carrier ServCellIndex OPTIONAL, -- Need S - resourcesForChannelMeasurement CSI-ResourceConfigId, - csi-IM-ResourcesForInterference CSI-ResourceConfigId OPTIONAL, -- Need R - nzp-CSI-RS-ResourcesForInterference CSI-ResourceConfigId OPTIONAL, -- Need R - reportConfigType CHOICE { - periodic SEQUENCE { - reportSlotConfig CSI-ReportPeriodicityAndOffset, - pucch-CSI-ResourceList SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource - }, - semiPersistentOnPUCCH SEQUENCE { - reportSlotConfig CSI-ReportPeriodicityAndOffset, - pucch-CSI-ResourceList SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource - }, - semiPersistentOnPUSCH SEQUENCE { - reportSlotConfig ENUMERATED {sl5, sl10, sl20, sl40, sl80, sl160, sl320}, - reportSlotOffsetList SEQUENCE (SIZE (1.. maxNrofUL-Allocations)) OF INTEGER(0..32), - p0alpha P0-PUSCH-AlphaSetId - }, - aperiodic SEQUENCE { - reportSlotOffsetList SEQUENCE (SIZE (1..maxNrofUL-Allocations)) OF INTEGER(0..32) - } - }, - reportQuantity CHOICE { - none NULL, - cri-RI-PMI-CQI NULL, - cri-RI-i1 NULL, - cri-RI-i1-CQI SEQUENCE { - pdsch-BundleSizeForCSI ENUMERATED {n2, n4} OPTIONAL - }, - cri-RI-CQI NULL, - cri-RSRP NULL, - ssb-Index-RSRP NULL, - cri-RI-LI-PMI-CQI NULL - }, - reportFreqConfiguration SEQUENCE { - cqi-FormatIndicator ENUMERATED { widebandCQI, subbandCQI } OPTIONAL, -- Need R - pmi-FormatIndicator ENUMERATED { widebandPMI, subbandPMI } OPTIONAL, -- Need R - 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 - - } OPTIONAL, -- Need R - timeRestrictionForChannelMeasurements ENUMERATED {configured, notConfigured}, - timeRestrictionForInterferenceMeasurements ENUMERATED {configured, notConfigured}, - codebookConfig CodebookConfig OPTIONAL, -- Need R - nrofCQIsPerReport ENUMERATED {n1, n2} OPTIONAL, -- Need R - groupBasedBeamReporting CHOICE { - enabled NULL, - disabled SEQUENCE { - nrofReportedRS ENUMERATED {n1, n2, n3, n4} OPTIONAL -- Need S - } - }, - cqi-Table ENUMERATED {table1, table2, spare2, spare1} OPTIONAL, -- Need R - subbandSize ENUMERATED {value1, value2}, - non-PMI-PortIndication SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerConfig)) OF PortIndexFor8Ranks OPTIONAL, -- Need R - ... -} - -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 ::= SEQUENCE { - uplinkBandwidthPartId BWP-Id, - pucch-Resource PUCCH-ResourceId -} - -PortIndexFor8Ranks ::= CHOICE { - portIndex8 SEQUENCE{ - rank1-8 PortIndex8 OPTIONAL, -- Need R - rank2-8 SEQUENCE(SIZE(2)) OF PortIndex8 OPTIONAL, -- Need R - rank3-8 SEQUENCE(SIZE(3)) OF PortIndex8 OPTIONAL, -- Need R - rank4-8 SEQUENCE(SIZE(4)) OF PortIndex8 OPTIONAL, -- Need R - rank5-8 SEQUENCE(SIZE(5)) OF PortIndex8 OPTIONAL, -- Need R - rank6-8 SEQUENCE(SIZE(6)) OF PortIndex8 OPTIONAL, -- Need R - rank7-8 SEQUENCE(SIZE(7)) OF PortIndex8 OPTIONAL, -- Need R - rank8-8 SEQUENCE(SIZE(8)) OF PortIndex8 OPTIONAL -- Need R - }, - portIndex4 SEQUENCE{ - rank1-4 PortIndex4 OPTIONAL, -- Need R - rank2-4 SEQUENCE(SIZE(2)) OF PortIndex4 OPTIONAL, -- Need R - rank3-4 SEQUENCE(SIZE(3)) OF PortIndex4 OPTIONAL, -- Need R - rank4-4 SEQUENCE(SIZE(4)) OF PortIndex4 OPTIONAL -- Need R - }, - portIndex2 SEQUENCE{ - rank1-2 PortIndex2 OPTIONAL, -- Need R - rank2-2 SEQUENCE(SIZE(2)) OF PortIndex2 OPTIONAL -- Need R - }, - portIndex1 NULL -} - -PortIndex8::= INTEGER (0..7) -PortIndex4::= INTEGER (0..3) -PortIndex2::= INTEGER (0..1) +CSI-ReportConfig ::= SEQUENCE { + reportConfigId CSI-ReportConfigId, + carrier ServCellIndex OPTIONAL, -- Need S + resourcesForChannelMeasurement CSI-ResourceConfigId, + csi-IM-ResourcesForInterference CSI-ResourceConfigId OPTIONAL, -- Need R + nzp-CSI-RS-ResourcesForInterference CSI-ResourceConfigId OPTIONAL, -- Need R + reportConfigType CHOICE { + periodic SEQUENCE { + reportSlotConfig CSI-ReportPeriodicityAndOffset, + pucch-CSI-ResourceList SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource + }, + semiPersistentOnPUCCH SEQUENCE { + reportSlotConfig CSI-ReportPeriodicityAndOffset, + pucch-CSI-ResourceList SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource + }, + semiPersistentOnPUSCH SEQUENCE { + reportSlotConfig ENUMERATED {sl5, sl10, sl20, sl40, sl80, sl160, sl320}, + reportSlotOffsetList SEQUENCE (SIZE (1.. maxNrofUL-Allocations)) OF INTEGER(0..32), + p0alpha P0-PUSCH-AlphaSetId + }, + aperiodic SEQUENCE { + reportSlotOffsetList SEQUENCE (SIZE (1..maxNrofUL-Allocations)) OF INTEGER(0..32) + } + }, + reportQuantity CHOICE { + none NULL, + cri-RI-PMI-CQI NULL, + cri-RI-i1 NULL, + cri-RI-i1-CQI SEQUENCE { + pdsch-BundleSizeForCSI ENUMERATED {n2, n4} OPTIONAL -- Need S + }, + cri-RI-CQI NULL, + cri-RSRP NULL, + ssb-Index-RSRP NULL, + cri-RI-LI-PMI-CQI NULL + }, + reportFreqConfiguration SEQUENCE { + cqi-FormatIndicator ENUMERATED { widebandCQI, subbandCQI } OPTIONAL, -- Need R + pmi-FormatIndicator ENUMERATED { widebandPMI, subbandPMI } OPTIONAL, -- Need R + 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)), + ..., + subbands19-v1530 BIT STRING(SIZE(19)) + } OPTIONAL -- Need S + + } OPTIONAL, -- Need R + timeRestrictionForChannelMeasurements ENUMERATED {configured, notConfigured}, + timeRestrictionForInterferenceMeasurements ENUMERATED {configured, notConfigured}, + codebookConfig CodebookConfig OPTIONAL, -- Need R + nrofCQIsPerReport ENUMERATED {n1, n2} OPTIONAL, -- Need R + groupBasedBeamReporting CHOICE { + enabled NULL, + disabled SEQUENCE { + nrofReportedRS ENUMERATED {n1, n2, n3, n4} OPTIONAL -- Need S + } + }, + cqi-Table ENUMERATED {table1, table2, table3, spare1} OPTIONAL, -- Need R + subbandSize ENUMERATED {value1, value2}, + non-PMI-PortIndication SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerConfig)) OF PortIndexFor8Ranks OPTIONAL, -- Need R + ..., + [[ + semiPersistentOnPUSCH-v1530 SEQUENCE { + reportSlotConfig-v1530 ENUMERATED {sl4, sl8, sl16} + } OPTIONAL -- Need R + ]] +} + +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 ::= SEQUENCE { + uplinkBandwidthPartId BWP-Id, + pucch-Resource PUCCH-ResourceId +} + +PortIndexFor8Ranks ::= CHOICE { + portIndex8 SEQUENCE{ + rank1-8 PortIndex8 OPTIONAL, -- Need R + rank2-8 SEQUENCE(SIZE(2)) OF PortIndex8 OPTIONAL, -- Need R + rank3-8 SEQUENCE(SIZE(3)) OF PortIndex8 OPTIONAL, -- Need R + rank4-8 SEQUENCE(SIZE(4)) OF PortIndex8 OPTIONAL, -- Need R + rank5-8 SEQUENCE(SIZE(5)) OF PortIndex8 OPTIONAL, -- Need R + rank6-8 SEQUENCE(SIZE(6)) OF PortIndex8 OPTIONAL, -- Need R + rank7-8 SEQUENCE(SIZE(7)) OF PortIndex8 OPTIONAL, -- Need R + rank8-8 SEQUENCE(SIZE(8)) OF PortIndex8 OPTIONAL -- Need R + }, + portIndex4 SEQUENCE{ + rank1-4 PortIndex4 OPTIONAL, -- Need R + rank2-4 SEQUENCE(SIZE(2)) OF PortIndex4 OPTIONAL, -- Need R + rank3-4 SEQUENCE(SIZE(3)) OF PortIndex4 OPTIONAL, -- Need R + rank4-4 SEQUENCE(SIZE(4)) OF PortIndex4 OPTIONAL -- Need R + }, + portIndex2 SEQUENCE{ + rank1-2 PortIndex2 OPTIONAL, -- Need R + rank2-2 SEQUENCE(SIZE(2)) OF PortIndex2 OPTIONAL -- Need R + }, + portIndex1 NULL +} + +PortIndex8::= INTEGER (0..7) +PortIndex4::= INTEGER (0..3) +PortIndex2::= INTEGER (0..1) -- TAG-CSI-REPORTCONFIG-STOP -- TAG-CSI-REPORTCONFIGID-START -CSI-ReportConfigId ::= INTEGER (0..maxNrofCSI-ReportConfigurations-1) +CSI-ReportConfigId ::= INTEGER (0..maxNrofCSI-ReportConfigurations-1) -- TAG-CSI-REPORTCONFIGID-STOP -- TAG-CSI-RESOURCECONFIG-START -CSI-ResourceConfig ::= SEQUENCE { - csi-ResourceConfigId CSI-ResourceConfigId, - 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, - csi-SSB-ResourceSetList SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSetsPerConfig)) OF CSI-SSB-ResourceSetId OPTIONAL - }, - csi-IM-ResourceSetList SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSetsPerConfig)) OF CSI-IM-ResourceSetId - }, - - bwp-Id BWP-Id, - resourceType ENUMERATED { aperiodic, semiPersistent, periodic }, - ... +CSI-ResourceConfig ::= SEQUENCE { + csi-ResourceConfigId CSI-ResourceConfigId, + 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, -- Need R + csi-SSB-ResourceSetList SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSetsPerConfig)) OF CSI-SSB-ResourceSetId OPTIONAL -- Need R + }, + csi-IM-ResourceSetList SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSetsPerConfig)) OF CSI-IM-ResourceSetId + }, + + bwp-Id BWP-Id, + resourceType ENUMERATED { aperiodic, semiPersistent, periodic }, + ... } -- TAG-CSI-RESOURCECONFIGTOADDMOD-STOP -- TAG-CSI-RESOURCECONFIGID-START -CSI-ResourceConfigId ::= INTEGER (0..maxNrofCSI-ResourceConfigurations-1) +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) +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-RESOURCECONFIGMOBILITY-START -CSI-RS-ResourceConfigMobility ::= SEQUENCE { - subcarrierSpacing SubcarrierSpacing, - csi-RS-CellList-Mobility SEQUENCE (SIZE (1..maxNrofCSI-RS-CellsRRM)) OF CSI-RS-CellMobility, - ... -} - -CSI-RS-CellMobility ::= SEQUENCE { - cellId PhysCellId, - csi-rs-MeasurementBW SEQUENCE { - nrofPRBs ENUMERATED { size24, size48, size96, size192, size264}, - startPRB INTEGER(0..2169) - }, - density ENUMERATED {d1,d3} OPTIONAL, - csi-rs-ResourceList-Mobility SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesRRM)) OF CSI-RS-Resource-Mobility -} - -CSI-RS-Resource-Mobility ::= SEQUENCE { - csi-RS-Index CSI-RS-Index, - slotConfig CHOICE { - ms4 INTEGER (0..31), - ms5 INTEGER (0..39), - ms10 INTEGER (0..79), - ms20 INTEGER (0..159), - ms40 INTEGER (0..319) - }, - associatedSSB SEQUENCE { - ssb-Index SSB-Index, - isQuasiColocated BOOLEAN - } OPTIONAL, -- Need R - frequencyDomainAllocation CHOICE { - row1 BIT STRING (SIZE (4)), - row2 BIT STRING (SIZE (12)) - }, - firstOFDMSymbolInTimeDomain INTEGER (0..13), - sequenceGenerationConfig INTEGER (0..1023), - ... -} - -CSI-RS-Index ::= INTEGER (0..maxNrofCSI-RS-ResourcesRRM-1) +CSI-RS-ResourceConfigMobility ::= SEQUENCE { + subcarrierSpacing SubcarrierSpacing, + csi-RS-CellList-Mobility SEQUENCE (SIZE (1..maxNrofCSI-RS-CellsRRM)) OF CSI-RS-CellMobility, + ... , + [[ + refServCellIndex-v1530 ServCellIndex OPTIONAL -- Need S + ]] + + +} + +CSI-RS-CellMobility ::= SEQUENCE { + cellId PhysCellId, + csi-rs-MeasurementBW SEQUENCE { + nrofPRBs ENUMERATED { size24, size48, size96, size192, size264}, + startPRB INTEGER(0..2169) + }, + density ENUMERATED {d1,d3} OPTIONAL, -- Need R + csi-rs-ResourceList-Mobility SEQUENCE (SIZE (1..maxNrofCSI-RS-ResourcesRRM)) OF CSI-RS-Resource-Mobility +} + +CSI-RS-Resource-Mobility ::= SEQUENCE { + csi-RS-Index CSI-RS-Index, + slotConfig CHOICE { + ms4 INTEGER (0..31), + ms5 INTEGER (0..39), + ms10 INTEGER (0..79), + ms20 INTEGER (0..159), + ms40 INTEGER (0..319) + }, + associatedSSB SEQUENCE { + ssb-Index SSB-Index, + isQuasiColocated BOOLEAN + } OPTIONAL, -- Need R + frequencyDomainAllocation CHOICE { + row1 BIT STRING (SIZE (4)), + row2 BIT STRING (SIZE (12)) + }, + firstOFDMSymbolInTimeDomain INTEGER (0..13), + sequenceGenerationConfig INTEGER (0..1023), + ... +} + +CSI-RS-Index ::= INTEGER (0..maxNrofCSI-RS-ResourcesRRM-1) -- TAG-CSI-RS-RESOURCECONFIGMOBILITY-STOP -- TAG-CSI-RS-RESOURCEMAPPING-START -CSI-RS-ResourceMapping ::= SEQUENCE { - frequencyDomainAllocation CHOICE { - row1 BIT STRING (SIZE (4)), - row2 BIT STRING (SIZE (12)), - row4 BIT STRING (SIZE (3)), - other BIT STRING (SIZE (6)) - }, - nrofPorts ENUMERATED {p1,p2,p4,p8,p12,p16,p24,p32}, - firstOFDMSymbolInTimeDomain INTEGER (0..13), - firstOFDMSymbolInTimeDomain2 INTEGER (2..12) OPTIONAL, -- Need R - cdm-Type ENUMERATED {noCDM, fd-CDM2, cdm4-FD2-TD2, cdm8-FD2-TD4}, - density CHOICE { - dot5 ENUMERATED {evenPRBs, oddPRBs}, - one NULL, - three NULL, - spare NULL - }, - freqBand CSI-FrequencyOccupation, - ... +CSI-RS-ResourceMapping ::= SEQUENCE { + frequencyDomainAllocation CHOICE { + row1 BIT STRING (SIZE (4)), + row2 BIT STRING (SIZE (12)), + row4 BIT STRING (SIZE (3)), + other BIT STRING (SIZE (6)) + }, + nrofPorts ENUMERATED {p1,p2,p4,p8,p12,p16,p24,p32}, + firstOFDMSymbolInTimeDomain INTEGER (0..13), + firstOFDMSymbolInTimeDomain2 INTEGER (2..12) OPTIONAL, -- Need R + cdm-Type ENUMERATED {noCDM, fd-CDM2, cdm4-FD2-TD2, cdm8-FD2-TD4}, + density CHOICE { + dot5 ENUMERATED {evenPRBs, oddPRBs}, + one NULL, + three NULL, + spare NULL + }, + freqBand CSI-FrequencyOccupation, + ... } -- TAG-CSI-RS-RESOURCEMAPPING-STOP -- TAG-CSI-SEMIPERSISTENTONPUSCHTRIGGERSTATELIST-START -CSI-SemiPersistentOnPUSCH-TriggerStateList ::= SEQUENCE(SIZE (1..maxNrOfSemiPersistentPUSCH-Triggers)) OF CSI-SemiPersistentOnPUSCH-TriggerState +CSI-SemiPersistentOnPUSCH-TriggerStateList ::= SEQUENCE(SIZE (1..maxNrOfSemiPersistentPUSCH-Triggers)) OF CSI-SemiPersistentOnPUSCH-TriggerState -CSI-SemiPersistentOnPUSCH-TriggerState ::= SEQUENCE { - associatedReportConfigInfo CSI-ReportConfigId, - ... +CSI-SemiPersistentOnPUSCH-TriggerState ::= SEQUENCE { + associatedReportConfigInfo CSI-ReportConfigId, + ... } -- TAG-CSI-SEMIPERSISTENTONPUSCHTRIGGERSTATELIST-STOP +-- TAG-CSI-SSB-RESOURCESET-START + +CSI-SSB-ResourceSet ::= SEQUENCE { + csi-SSB-ResourceSetId CSI-SSB-ResourceSetId, + csi-SSB-ResourceList SEQUENCE (SIZE(1..maxNrofCSI-SSB-ResourcePerSet)) OF SSB-Index, + ... +} + +-- TAG-CSI-SSB-RESOURCESET-STOP -- TAG-CSI-SSB-RESOURCESETID-START -CSI-SSB-ResourceSetId ::= INTEGER (0..maxNrofCSI-SSB-ResourceSets-1) +CSI-SSB-ResourceSetId ::= INTEGER (0..maxNrofCSI-SSB-ResourceSets-1) -- TAG-CSI-SSB-RESOURCESETID-STOP --- TAG-CSI-SSB-RESOURCESET-START +-- TAG-DEDICATED-NAS-MESSAGE-START -CSI-SSB-ResourceSet ::= SEQUENCE { - csi-SSB-ResourceSetId CSI-SSB-ResourceSetId, - csi-SSB-ResourceList SEQUENCE (SIZE(1..maxNrofCSI-SSB-ResourcePerSet)) OF SSB-Index, - ... -} +DedicatedNAS-Message ::= OCTET STRING --- TAG-CSI-SSB-RESOURCESET-STOP +-- TAG-DEDICATED-NAS-MESSAGE-STOP -- TAG-DMRS-DOWNLINKCONFIG-START -DMRS-DownlinkConfig ::= SEQUENCE { - dmrs-Type ENUMERATED {type2} OPTIONAL, -- Need S - dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos3} OPTIONAL, -- Need R - maxLength ENUMERATED {len2} OPTIONAL, -- Need S - scramblingID0 INTEGER (0..65535) OPTIONAL, -- Need S - scramblingID1 INTEGER (0..65535) OPTIONAL, -- Need S - phaseTrackingRS CHOICE { release NULL, setup PTRS-DownlinkConfig } OPTIONAL, -- Need M - ... +DMRS-DownlinkConfig ::= SEQUENCE { + dmrs-Type ENUMERATED {type2} OPTIONAL, -- Need S + dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos3} OPTIONAL, -- Need S + maxLength ENUMERATED {len2} OPTIONAL, -- Need S + scramblingID0 INTEGER (0..65535) OPTIONAL, -- Need S + scramblingID1 INTEGER (0..65535) OPTIONAL, -- Need S + phaseTrackingRS CHOICE { release NULL, setup PTRS-DownlinkConfig } OPTIONAL, -- Need M + ... } -- TAG-DMRS-DOWNLINKCONFIG-STOP -- TAG-DMRS-UPLINKCONFIG-START -DMRS-UplinkConfig ::= SEQUENCE { - dmrs-Type ENUMERATED {type2} OPTIONAL, -- Need S - dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos3} OPTIONAL, -- Need R - phaseTrackingRS CHOICE { release NULL, setup PTRS-UplinkConfig } OPTIONAL, -- Need M - maxLength ENUMERATED {len2} OPTIONAL, -- Need S - - transformPrecodingDisabled SEQUENCE { - scramblingID0 INTEGER (0..65535) OPTIONAL, -- Need S - scramblingID1 INTEGER (0..65535) OPTIONAL, -- Need S - ... - } OPTIONAL, -- Need R - transformPrecodingEnabled SEQUENCE { - nPUSCH-Identity INTEGER(0..1007) OPTIONAL, -- Need S - disableSequenceGroupHopping ENUMERATED {disabled} OPTIONAL, -- Need S - sequenceHoppingEnabled ENUMERATED {enabled} OPTIONAL, -- Need S - ... - } OPTIONAL, -- Need R - ... +DMRS-UplinkConfig ::= SEQUENCE { + dmrs-Type ENUMERATED {type2} OPTIONAL, -- Need S + dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos3} OPTIONAL, -- Need R + phaseTrackingRS CHOICE { release NULL, setup PTRS-UplinkConfig } OPTIONAL, -- Need M + maxLength ENUMERATED {len2} OPTIONAL, -- Need S + + transformPrecodingDisabled SEQUENCE { + scramblingID0 INTEGER (0..65535) OPTIONAL, -- Need S + scramblingID1 INTEGER (0..65535) OPTIONAL, -- Need S + ... + } OPTIONAL, -- Need R + transformPrecodingEnabled SEQUENCE { + nPUSCH-Identity INTEGER(0..1007) OPTIONAL, -- Need S + sequenceGroupHopping ENUMERATED {disabled} OPTIONAL, -- Need S + sequenceHopping ENUMERATED {enabled} OPTIONAL, -- Need S + ... + } OPTIONAL, -- Need R + ... } -- TAG-DMRS-UPLINKCONFIG-STOP -- TAG-DOWNLINK-CONFIG-COMMON-START -DownlinkConfigCommon ::= SEQUENCE { - frequencyInfoDL FrequencyInfoDL OPTIONAL, -- Cond InterFreqHOAndServCellAdd - initialDownlinkBWP BWP-DownlinkCommon OPTIONAL, -- Cond ServCellAdd - ... +DownlinkConfigCommon ::= SEQUENCE { + frequencyInfoDL FrequencyInfoDL OPTIONAL, -- Cond InterFreqHOAndServCellAdd + initialDownlinkBWP BWP-DownlinkCommon OPTIONAL, -- Cond ServCellAdd + ... } -- TAG-DOWNLINK-CONFIG-COMMON-STOP +-- TAG-DOWNLINK-CONFIG-COMMON-SIB-START + +DownlinkConfigCommonSIB ::= SEQUENCE { + frequencyInfoDL FrequencyInfoDL-SIB, + initialDownlinkBWP BWP-DownlinkCommon, + bcch-Config BCCH-Config, + pcch-Config PCCH-Config, + ... +} + + +BCCH-Config ::= SEQUENCE { modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16}, + ... +} + + +PCCH-Config ::= SEQUENCE { + defaultPagingCycle PagingCycle, + nAndPagingFrameOffset CHOICE { + oneT NULL, + halfT INTEGER (0..1), + quarterT INTEGER (0..3), + oneEighthT INTEGER (0..7), + oneSixteenthT INTEGER (0..15) + }, + ns ENUMERATED {four, two, one}, + firstPDCCH-MonitoringOccasionOfPO CHOICE { + sCS15KHZoneT SEQUENCE (SIZE (1..4)) OF INTEGER (0..139), + sCS30KHZoneT-SCS15KHZhalfT SEQUENCE (SIZE (1..4)) OF INTEGER (0..279), + sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT SEQUENCE (SIZE (1..4)) OF INTEGER (0..559), + sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..1119), + sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..2239), + sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..4479), + sCS120KHZoneEighthT-SCS60KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..8959), + sCS120KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..17919) + } OPTIONAL, -- Need R + ... +} + +-- TAG-DOWNLINK-CONFIG-COMMON-SIB-STOP -- TAG-DOWNLINKPREEMPTION-START -DownlinkPreemption ::= SEQUENCE { - int-RNTI RNTI-Value, - timeFrequencySet ENUMERATED {set0, set1}, - dci-PayloadSize INTEGER (0..maxINT-DCI-PayloadSize), - int-ConfigurationPerServingCell SEQUENCE (SIZE (1..maxNrofServingCells)) OF INT-ConfigurationPerServingCell, - ... +DownlinkPreemption ::= SEQUENCE { + int-RNTI RNTI-Value, + timeFrequencySet ENUMERATED {set0, set1}, + dci-PayloadSize INTEGER (0..maxINT-DCI-PayloadSize), + int-ConfigurationPerServingCell SEQUENCE (SIZE (1..maxNrofServingCells)) OF INT-ConfigurationPerServingCell, + ... } INT-ConfigurationPerServingCell ::= SEQUENCE { - servingCellId ServCellIndex, - positionInDCI INTEGER (0..maxINT-DCI-PayloadSize-1) + servingCellId ServCellIndex, + positionInDCI INTEGER (0..maxINT-DCI-PayloadSize-1) } -- TAG-DOWNLINKPREEMPTION-STOP -- TAG-DRB-IDENTITY-START -DRB-Identity ::= INTEGER (1..32) +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 { - radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, - radioframeAllocationOffset INTEGER (0..7), - subframeAllocation CHOICE { - oneFrame BIT STRING (SIZE(6)), - fourFrames BIT STRING (SIZE(24)) - }, - subframeAllocation-v1430 CHOICE { - oneFrame-v1430 BIT STRING (SIZE(2)), - fourFrames-v1430 BIT STRING (SIZE(8)) - } OPTIONAL, -- Need R - ... -} - --- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-STOP +-- TAG-DRX-CONFIG-START + +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, 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) + }, + + 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 INTEGER (0..31) +} + +-- TAG-DRX-CONFIG-STOP -- TAG-FILTERCOEFFICIENT-START -FilterCoefficient ::= ENUMERATED { fc0, fc1, fc2, fc3, fc4, fc5, fc6, fc7, fc8, fc9, fc11, fc13, fc15, fc17, fc19, spare1, ...} +FilterCoefficient ::= ENUMERATED { fc0, fc1, fc2, fc3, fc4, fc5, fc6, fc7, fc8, fc9, fc11, fc13, fc15, fc17, fc19, spare1, ...} -- TAG-FILTERCOEFFICIENT-STOP -- TAG-FREQBANDINDICATORNR-START -FreqBandIndicatorNR ::= INTEGER (1..1024) +FreqBandIndicatorNR ::= INTEGER (1..1024) -- TAG-FREQBANDINDICATORNR-STOP -- TAG-FREQUENCY-INFO-DL-START -FrequencyInfoDL ::= SEQUENCE { - absoluteFrequencySSB ARFCN-ValueNR OPTIONAL, -- Cond SpCellAdd - frequencyBandList MultiFrequencyBandListNR, - absoluteFrequencyPointA ARFCN-ValueNR, - scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier, - ... +FrequencyInfoDL ::= SEQUENCE { + absoluteFrequencySSB ARFCN-ValueNR OPTIONAL, -- Cond SpCellAdd + frequencyBandList MultiFrequencyBandListNR, + absoluteFrequencyPointA ARFCN-ValueNR, + scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier, + ... } -- TAG-FREQUENCY-INFO-UL-STOP +-- TAG-FREQUENCY-INFO-DL-SIB-START + +FrequencyInfoDL-SIB ::= SEQUENCE { + frequencyBandList MultiFrequencyBandListNR-SIB, + offsetToPointA INTEGER (0..2199), + scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier +} + +-- TAG-FREQUENCY-INFO-DL-SIB-STOP -- TAG-FREQUENCY-INFO-UL-START -FrequencyInfoUL ::= SEQUENCE { - frequencyBandList MultiFrequencyBandListNR OPTIONAL, -- Cond FDD-OrSUL - absoluteFrequencyPointA ARFCN-ValueNR OPTIONAL, -- Cond FDD-OrSUL - scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier, - additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Need S - p-Max P-Max OPTIONAL, -- Need S - frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD-OrSUL-Optional - ... +FrequencyInfoUL ::= SEQUENCE { + frequencyBandList MultiFrequencyBandListNR OPTIONAL, -- Cond FDD-OrSUL + absoluteFrequencyPointA ARFCN-ValueNR OPTIONAL, -- Cond FDD-OrSUL + scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier, + additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Need S + p-Max P-Max OPTIONAL, -- Need S + frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD-OrSUL-Optional + ... } -- TAG-FREQUENCY-INFO-UL-STOP +-- TAG-FREQUENCY-INFO-UL-SIB-START + +FrequencyInfoUL-SIB ::= SEQUENCE { + frequencyBandList MultiFrequencyBandListNR-SIB OPTIONAL, -- Cond FDD-OrSUL + absoluteFrequencyPointA ARFCN-ValueNR OPTIONAL, -- Cond FDD-OrSUL + scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier, + p-Max P-Max OPTIONAL, -- Need S + frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD-OrSUL-Optional + ... +} -Hysteresis ::= INTEGER (0..30) +-- TAG-FREQUENCY-INFO-UL-SIB-STOP --- TAG-LOGICAL-CHANNEL-CONFIG-START +Hysteresis ::= INTEGER (0..30) + +-- TAG-I-RNTI-VALUE-START + +I-RNTI-Value ::= BIT STRING (SIZE(40)) -LogicalChannelConfig ::= SEQUENCE { - ul-SpecificParameters SEQUENCE { - priority INTEGER (1..16), - prioritisedBitRate ENUMERATED {kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, kBps256, kBps512, - kBps1024, kBps2048, kBps4096, kBps8192, kBps16384, kBps32768, kBps65536, infinity}, - bucketSizeDuration ENUMERATED {ms5, ms10, ms20, ms50, ms100, ms150, ms300, ms500, ms1000, - spare7, spare6, spare5, spare4, spare3,spare2, spare1}, +-- TAG-I-RNTI-VALUE-STOP +-- TAG-LOCATION-MEASUREMENT-INFO-START - 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 +LocationMeasurementInfo ::= CHOICE { + eutra-RSTD EUTRA-RSTD-InfoList, + ... +} + +EUTRA-RSTD-InfoList ::= SEQUENCE (SIZE (1..maxInterRAT-RSTD-Freq)) OF EUTRA-RSTD-Info + +EUTRA-RSTD-Info ::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + measPRS-Offset INTEGER (0..39), + ... +} + +-- TAG-LOCATION-MEASUREMENT-INFO-STOP +-- TAG-LOGICAL-CHANNEL-CONFIG-START - logicalChannelGroup INTEGER (0..maxLCG-ID) OPTIONAL, -- Need R - schedulingRequestID SchedulingRequestId OPTIONAL, -- Need R - logicalChannelSR-Mask BOOLEAN, - logicalChannelSR-DelayTimerApplied BOOLEAN, - ... - } OPTIONAL, -- Cond UL +LogicalChannelConfig ::= SEQUENCE { + ul-SpecificParameters SEQUENCE { + priority INTEGER (1..16), + prioritisedBitRate ENUMERATED {kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, kBps256, kBps512, + kBps1024, kBps2048, kBps4096, kBps8192, kBps16384, kBps32768, kBps65536, infinity}, + bucketSizeDuration ENUMERATED {ms5, ms10, ms20, ms50, ms100, ms150, ms300, ms500, ms1000, + spare7, spare6, spare5, spare4, spare3,spare2, spare1}, + + allowedServingCells SEQUENCE (SIZE (1..maxNrofServingCells-1)) OF ServCellIndex OPTIONAL, -- PDCP-CADuplication + 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, + ..., + bitRateQueryProhibitTimer ENUMERATED { s0, s0dot4, s0dot8, s1dot6, s3, s6, s12,s30} OPTIONAL -- Need R + } OPTIONAL, -- Cond UL - ... + ... } -- TAG-LOGICAL-CHANNEL-CONFIG-STOP -- TAG-LOGICALCHANNELIDENTITY-START -LogicalChannelIdentity ::= INTEGER (1..maxLC-ID) +LogicalChannelIdentity ::= INTEGER (1..maxLC-ID) -- TAG-LOGICALCHANNELIDENTITY-STOP -- TAG-MAC-CELL-GROUP-CONFIG-START -MAC-CellGroupConfig ::= SEQUENCE { - 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 - skipUplinkTxDynamic BOOLEAN, - ... -} - -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, 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 }, - 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-Type2SpCell BOOLEAN, - phr-Type2OtherCell BOOLEAN, - phr-ModeOtherCG ENUMERATED {real, virtual}, - ... -} - - -TAG-Config ::= SEQUENCE { - tag-ToReleaseList SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-Id OPTIONAL, -- Need N - tag-ToAddModList SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG OPTIONAL -- Need N -} - -TAG ::= SEQUENCE { - tag-Id TAG-Id, - timeAlignmentTimer TimeAlignmentTimer, - ... -} - -TAG-Id ::= INTEGER (0..maxNrofTAGs-1) - -TimeAlignmentTimer ::= ENUMERATED {ms500, ms750, ms1280, ms1920, ms2560, ms5120, ms10240, infinity} - -BSR-Config ::= SEQUENCE { - 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, spare5, spare4, spare3, spare2, spare1}, - logicalChannelSR-DelayTimer ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1} OPTIONAL, -- Need R - ... +MAC-CellGroupConfig ::= SEQUENCE { + 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 + skipUplinkTxDynamic BOOLEAN, + ..., + [[ + csi-Mask-v1530 BOOLEAN OPTIONAL , -- Need M + dataInactivityTimer-v1530 CHOICE { release NULL, setup DataInactivityTimer } OPTIONAL -- Need PCellOnly + ]] } +DataInactivityTimer ::= ENUMERATED {s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, s80, s100, s120, s150, s180} + -- TAG-MAC-CELL-GROUP-CONFIG-STOP -- TAG-MEAS-CONFIG-START -MeasConfig ::= SEQUENCE { - measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need N - measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need N +MeasConfig ::= SEQUENCE { + measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need N + measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need N - reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need N - reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need N + reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need N + reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need N - measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need N - measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need N + measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need N + measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need N - s-MeasureConfig CHOICE { - ssb-RSRP RSRP-Range, - csi-RSRP RSRP-Range - } OPTIONAL, -- Need M + s-MeasureConfig CHOICE { + ssb-RSRP RSRP-Range, + csi-RSRP RSRP-Range + } OPTIONAL, -- Need M - quantityConfig QuantityConfig OPTIONAL, -- Need M + quantityConfig QuantityConfig OPTIONAL, -- Need M - measGapConfig MeasGapConfig OPTIONAL, -- Need M - measGapSharingConfig MeasGapSharingConfig OPTIONAL, -- Need M - ... + measGapConfig MeasGapConfig OPTIONAL, -- Need M + measGapSharingConfig MeasGapSharingConfig OPTIONAL, -- Need M + ... } -MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectId +MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectId -MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasId +MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasId -ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) 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, -- Need M - ... +MeasGapConfig ::= SEQUENCE { + gapFR2 CHOICE { release NULL, setup GapConfig } OPTIONAL, -- Need M + ..., + [[ + gapFR1 CHOICE { release NULL, setup GapConfig } OPTIONAL, -- Need M + gapUE CHOICE { release NULL, setup GapConfig } OPTIONAL -- Need M + ]] + } -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}, - ... +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-GAP-SHARING-CONFIG-START -MeasGapSharingConfig ::= SEQUENCE { - gapSharingFR2 CHOICE { release NULL, setup MeasGapSharingScheme } OPTIONAL, -- Need M - ... +MeasGapSharingConfig ::= SEQUENCE { + gapSharingFR2 CHOICE { release NULL, setup MeasGapSharingScheme } OPTIONAL, -- Need M + ..., + [[ + gapSharingFR1 CHOICE { release NULL, setup MeasGapSharingScheme } OPTIONAL, --Need M + gapSharingUE CHOICE { release NULL, setup MeasGapSharingScheme } OPTIONAL --Need M + ]] + } -MeasGapSharingScheme ::= ENUMERATED { scheme00, scheme01, scheme10, scheme11 } +MeasGapSharingScheme::= ENUMERATED {scheme00, scheme01, scheme10, scheme11} --TAG-MEAS-GAP-SHARING-CONFIG-STOP -- TAG-MEAS-ID-START -MeasId ::= INTEGER (1..maxNrofMeasId) +MeasId ::= INTEGER (1..maxNrofMeasId) -- TAG-MEAS-ID-STOP -- TAG-MEAS-ID-TO-ADD-MOD-LIST-START -MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasIdToAddMod +MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasIdToAddMod -MeasIdToAddMod ::= SEQUENCE { - measId MeasId, - measObjectId MeasObjectId, - reportConfigId ReportConfigId +MeasIdToAddMod ::= SEQUENCE { + measId MeasId, + measObjectId MeasObjectId, + reportConfigId ReportConfigId } -- TAG-MEAS-ID-TO-ADD-MOD-LIST-STOP --- TAG-MEAS-OBJECT-ID-START +-- TAG-MEAS-OBJECT-EUTRA-NR-START + +MeasObjectEUTRA::= SEQUENCE { + carrierFreq ARFCN-ValueEUTRA, + allowedMeasBandwidth EUTRA-AllowedMeasBandwidth, + cellsToRemoveListEUTRAN EUTRA-CellIndexList OPTIONAL, -- Need N + cellsToAddModListEUTRAN SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-Cell OPTIONAL, -- Need N + blackCellsToRemoveListEUTRAN EUTRA-CellIndexList OPTIONAL, -- Need N + blackCellsToAddModListEUTRAN SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-BlackCell OPTIONAL, -- Need N + eutra-PresenceAntennaPort1 EUTRA-PresenceAntennaPort1 , + eutra-Q-OffsetRange EUTRA-Q-OffsetRange OPTIONAL, -- Need R + widebandRSRQ-Meas BOOLEAN, + ... +} -MeasObjectId ::= INTEGER (1..maxNrofObjectId) +EUTRA-CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-CellIndex --- TAG-MEAS-OBJECT-ID-STOP --- TAG-MEAS-OBJECT-NR-START +EUTRA-CellIndex ::= INTEGER (1..maxCellMeasEUTRA) + + +EUTRA-Cell ::= SEQUENCE { + cellIndexEUTRA EUTRA-CellIndex, + physCellId EUTRA-PhysCellId, + cellIndividualOffset EUTRA-Q-OffsetRange +} -MeasObjectNR ::= SEQUENCE { - ssbFrequency ARFCN-ValueNR OPTIONAL, -- Cond SSBorAssociatedSSB - ssbSubcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond SSBorAssociatedSSB - smtc1 SSB-MTC OPTIONAL, -- Cond SSBorAssociatedSSB - smtc2 SSB-MTC2 OPTIONAL, -- Cond IntraFreqConnected - refFreqCSI-RS ARFCN-ValueNR OPTIONAL, - referenceSignalConfig ReferenceSignalConfig, +EUTRA-BlackCell ::= SEQUENCE { + cellIndexEUTRA EUTRA-CellIndex, + physCellIdRange EUTRA-PhysCellIdRange +} - absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL, -- Need R - absThreshCSI-RS-Consolidation ThresholdNR OPTIONAL, -- Need R +-- TAG-MEAS-OBJECT-EUTRA-NR-STOP +-- TAG-MEAS-OBJECT-ID-START - nrofSS-BlocksToAverage INTEGER (2..maxNrofSS-BlocksToAverage) OPTIONAL, -- Need R - nrofCSI-RS-ResourcesToAverage INTEGER (2..maxNrofCSI-RS-ResourcesToAverage) OPTIONAL, -- Need R +MeasObjectId ::= INTEGER (1..maxNrofObjectId) - quantityConfigIndex INTEGER (1..maxNrofQuantityConfig), +-- TAG-MEAS-OBJECT-ID-STOP +-- TAG-MEAS-OBJECT-NR-START - offsetMO Q-OffsetRangeList, +MeasObjectNR ::= SEQUENCE { + ssbFrequency ARFCN-ValueNR OPTIONAL, -- Cond SSBorAssociatedSSB + ssbSubcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond SSBorAssociatedSSB + smtc1 SSB-MTC OPTIONAL, -- Cond SSBorAssociatedSSB + smtc2 SSB-MTC2 OPTIONAL, -- Cond IntraFreqConnected - cellsToRemoveList PCI-List OPTIONAL, -- Need N - cellsToAddModList CellsToAddModList OPTIONAL, -- Need N + refFreqCSI-RS ARFCN-ValueNR OPTIONAL, + referenceSignalConfig ReferenceSignalConfig, + absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL, -- Need R + absThreshCSI-RS-Consolidation ThresholdNR OPTIONAL, -- Need R + nrofSS-BlocksToAverage INTEGER (2..maxNrofSS-BlocksToAverage) OPTIONAL, -- Need R + nrofCSI-RS-ResourcesToAverage INTEGER (2..maxNrofCSI-RS-ResourcesToAverage) OPTIONAL, -- Need R + quantityConfigIndex INTEGER (1..maxNrofQuantityConfig), - blackCellsToRemoveList PCI-RangeIndexList OPTIONAL, -- Need N - blackCellsToAddModList SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeElement OPTIONAL, -- Need N + offsetMO Q-OffsetRangeList, - whiteCellsToRemoveList PCI-RangeIndexList OPTIONAL, -- Need N - whiteCellsToAddModList SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeElement OPTIONAL, -- Need N - ... -} + cellsToRemoveList PCI-List OPTIONAL, -- Need N + cellsToAddModList CellsToAddModList OPTIONAL, -- Need N + + blackCellsToRemoveList PCI-RangeIndexList OPTIONAL, -- Need N + blackCellsToAddModList SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeElement OPTIONAL, -- Need N -ReferenceSignalConfig::= SEQUENCE { - ssb-ConfigMobility SSB-ConfigMobility OPTIONAL, -- Need M - csi-rs-ResourceConfigMobility CHOICE { release NULL, setup CSI-RS-ResourceConfigMobility } OPTIONAL -- Need M + whiteCellsToRemoveList PCI-RangeIndexList OPTIONAL, -- Need N + whiteCellsToAddModList SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeElement OPTIONAL, -- Need N + ... , + [[ + freqBandIndicatorNR-v1530 FreqBandIndicatorNR OPTIONAL, -- Need R + measCycleSCell-v1530 ENUMERATED {sf160, sf256, sf320, sf512,sf640, sf1024, sf1280} OPTIONAL -- Need R + ]] } -SSB-ConfigMobility ::= SEQUENCE { - ssb-ToMeasure CHOICE { release NULL, setup SSB-ToMeasure } OPTIONAL, -- Need M - useServingCellTimingForSync BOOLEAN, - ss-RSSI-Measurement SS-RSSI-Measurement OPTIONAL, -- Need M - ... +ReferenceSignalConfig::= SEQUENCE { + ssb-ConfigMobility SSB-ConfigMobility OPTIONAL, -- Need M + csi-rs-ResourceConfigMobility CHOICE { release NULL, setup CSI-RS-ResourceConfigMobility } OPTIONAL -- Need M } +SSB-ConfigMobility::= SEQUENCE { -Q-OffsetRangeList ::= SEQUENCE { - rsrpOffsetSSB Q-OffsetRange DEFAULT dB0, - rsrqOffsetSSB Q-OffsetRange DEFAULT dB0, - sinrOffsetSSB Q-OffsetRange DEFAULT dB0, - rsrpOffsetCSI-RS Q-OffsetRange DEFAULT dB0, - rsrqOffsetCSI-RS Q-OffsetRange DEFAULT dB0, - sinrOffsetCSI-RS Q-OffsetRange DEFAULT dB0 + ssb-ToMeasure CHOICE { release NULL, setup SSB-ToMeasure } OPTIONAL, -- Need M + deriveSSB-IndexFromCell BOOLEAN, + ss-RSSI-Measurement SS-RSSI-Measurement OPTIONAL, -- Need M + ... } -SSB-ToMeasure ::= CHOICE { - shortBitmap BIT STRING (SIZE (4)), - mediumBitmap BIT STRING (SIZE (8)), - longBitmap BIT STRING (SIZE (64)) + +Q-OffsetRangeList ::= SEQUENCE { + rsrpOffsetSSB Q-OffsetRange DEFAULT dB0, + rsrqOffsetSSB Q-OffsetRange DEFAULT dB0, + sinrOffsetSSB Q-OffsetRange DEFAULT dB0, + rsrpOffsetCSI-RS Q-OffsetRange DEFAULT dB0, + rsrqOffsetCSI-RS Q-OffsetRange DEFAULT dB0, + sinrOffsetCSI-RS Q-OffsetRange DEFAULT dB0 } -ThresholdNR ::= SEQUENCE{ - thresholdRSRP RSRP-Range OPTIONAL, - thresholdRSRQ RSRQ-Range OPTIONAL, - thresholdSINR SINR-Range OPTIONAL + +ThresholdNR ::= SEQUENCE{ + thresholdRSRP RSRP-Range OPTIONAL, -- Need R + thresholdRSRQ RSRQ-Range OPTIONAL, -- Need R + thresholdSINR SINR-Range OPTIONAL -- Need R } -CellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellsToAddMod +CellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellsToAddMod -CellsToAddMod ::= SEQUENCE { - physCellId PhysCellId, - cellIndividualOffset Q-OffsetRangeList +CellsToAddMod ::= SEQUENCE { + physCellId PhysCellId, + cellIndividualOffset Q-OffsetRangeList } @@ -1273,721 +2474,839 @@ CellsToAddMod ::= SEQUENCE { -- TAG-MEAS-OBJECT-NR-STOP -- TAG-MEAS-OBJECT-TO-ADD-MOD-LIST-START -MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectToAddMod +MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectToAddMod -MeasObjectToAddMod ::= SEQUENCE { - measObjectId MeasObjectId, - measObject CHOICE { - measObjectNR MeasObjectNR, - ... - } +MeasObjectToAddMod ::= SEQUENCE { + measObjectId MeasObjectId, + measObject CHOICE { + measObjectNR MeasObjectNR, + ... , + measObjectEUTRA MeasObjectEUTRA + } } -- TAG-MEAS-OBJECT-TO-ADD-MOD-LIST-STOP +-- TAG-MEASRESULT-CELL-LIST-SFTD-START + +MeasResultCellListSFTD ::= SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultCellSFTD + +MeasResultCellSFTD ::= SEQUENCE { + physCellId PhysCellId, + sfn-OffsetResult INTEGER (0..1023), + frameBoundaryOffsetResult INTEGER (-30720..30719), + rsrp-Result RSRP-Range OPTIONAL +} + +-- TAG-MEASRESULT-CELL-LIST-SFTD-STOP -- TAG-MEAS-RESULTS-START -MeasResults ::= SEQUENCE { - measId MeasId, - measResultServingMOList MeasResultServMOList, - measResultNeighCells CHOICE { - measResultListNR MeasResultListNR, - ... - } OPTIONAL, - ... +MeasResults ::= SEQUENCE { + measId MeasId, + measResultServingMOList MeasResultServMOList, + measResultNeighCells CHOICE { + measResultListNR MeasResultListNR, + ..., + measResultListEUTRA MeasResultListEUTRA + } OPTIONAL, + ... } -MeasResultServMOList ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServMO +MeasResultServMOList ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServMO -MeasResultServMO ::= SEQUENCE { - servCellId ServCellIndex, - measResultServingCell MeasResultNR, - measResultBestNeighCell MeasResultNR OPTIONAL, - ... +MeasResultServMO ::= SEQUENCE { + servCellId ServCellIndex, + measResultServingCell MeasResultNR, + measResultBestNeighCell MeasResultNR OPTIONAL, + ... } -MeasResultListNR ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultNR +MeasResultListNR ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultNR + +MeasResultNR ::= SEQUENCE { + physCellId PhysCellId OPTIONAL, + measResult SEQUENCE { + cellResults SEQUENCE{ + resultsSSB-Cell MeasQuantityResults OPTIONAL, + resultsCSI-RS-Cell MeasQuantityResults OPTIONAL + }, + rsIndexResults SEQUENCE{ + resultsSSB-Indexes ResultsPerSSB-IndexList OPTIONAL, + resultsCSI-RS-Indexes ResultsPerCSI-RS-IndexList OPTIONAL + } OPTIONAL + }, + ..., + [[ + cgi-Info CGI-Info OPTIONAL + ]] +} + +MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA + +MeasResultEUTRA ::= SEQUENCE { + physCellId PhysCellId, + measResult MeasQuantityResultsEUTRA, + + cgi-Info SEQUENCE { + cgi-info-EPC SEQUENCE { + cgi-info-EPC-legacy CellAccessRelatedInfo-EUTRA-EPC, + cgi-info-EPC-list SEQUENCE (SIZE (1..maxPLMN)) OF CellAccessRelatedInfo-EUTRA-EPC OPTIONAL + } OPTIONAL, + + cgi-info-5GC SEQUENCE (SIZE (1..maxPLMN)) OF CellAccessRelatedInfo-EUTRA-5GC OPTIONAL, + freqBandIndicator FreqBandIndicatorEUTRA, + multiBandInfoList MultiBandInfoListEUTRA OPTIONAL, + freqBandIndicatorPriority ENUMERATED {true} OPTIONAL + } OPTIONAL, + ... +} + +MultiBandInfoListEUTRA ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicatorEUTRA -MeasResultNR ::= SEQUENCE { - physCellId PhysCellId OPTIONAL, - --FFS: Details of cgi info - measResult SEQUENCE { - cellResults SEQUENCE{ - resultsSSB-Cell MeasQuantityResults OPTIONAL, - resultsCSI-RS-Cell MeasQuantityResults OPTIONAL - }, - rsIndexResults SEQUENCE{ - resultsSSB-Indexes ResultsPerSSB-IndexList OPTIONAL, - resultsCSI-RS-Indexes ResultsPerCSI-RS-IndexList OPTIONAL - } OPTIONAL - }, - ... +MeasQuantityResults ::= SEQUENCE { + rsrp RSRP-Range OPTIONAL, + rsrq RSRQ-Range OPTIONAL, + sinr SINR-Range OPTIONAL } -MeasQuantityResults ::= SEQUENCE { - rsrp RSRP-Range OPTIONAL, - rsrq RSRQ-Range OPTIONAL, - sinr SINR-Range OPTIONAL +MeasQuantityResultsEUTRA ::= SEQUENCE { + rsrp RSRP-RangeEUTRA OPTIONAL, + rsrq RSRQ-RangeEUTRA OPTIONAL, + sinr SINR-RangeEUTRA OPTIONAL } -ResultsPerSSB-IndexList::= SEQUENCE (SIZE (1..maxNrofSSBs)) OF ResultsPerSSB-Index -ResultsPerSSB-Index ::= SEQUENCE { - ssb-Index SSB-Index, - ssb-Results MeasQuantityResults OPTIONAL +ResultsPerSSB-IndexList::= SEQUENCE (SIZE (1..maxNrofIndexesToReport2)) OF ResultsPerSSB-Index + +ResultsPerSSB-Index ::= SEQUENCE { + ssb-Index SSB-Index, + ssb-Results MeasQuantityResults OPTIONAL } -ResultsPerCSI-RS-IndexList::= SEQUENCE (SIZE (1..maxNrofCSI-RS)) OF ResultsPerCSI-RS-Index +ResultsPerCSI-RS-IndexList::= SEQUENCE (SIZE (1..maxNrofIndexesToReport2)) OF ResultsPerCSI-RS-Index -ResultsPerCSI-RS-Index ::= SEQUENCE { - csi-RS-Index CSI-RS-Index, - csi-RS-Results MeasQuantityResults OPTIONAL +ResultsPerCSI-RS-Index ::= SEQUENCE { + csi-RS-Index CSI-RS-Index, + csi-RS-Results MeasQuantityResults OPTIONAL } -- TAG-MEAS-RESULTS-STOP -- TAG-MEAS-RESULT-SCG-FAILURE-START -MeasResultSCG-Failure ::= SEQUENCE { - measResultPerMOList MeasResultList2NR, - ... +MeasResultSCG-Failure ::= SEQUENCE { + measResultPerMOList MeasResultList2NR, + ... } +MeasResultList2NR ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2NR -MeasResultList2NR ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2NR - -MeasResult2NR ::= SEQUENCE { - ssbFrequency ARFCN-ValueNR OPTIONAL, - refFreqCSI-RS ARFCN-ValueNR OPTIONAL, - measResultServingCell MeasResultNR OPTIONAL, - measResultNeighCellListNR MeasResultListNR +MeasResult2NR ::= SEQUENCE { + ssbFrequency ARFCN-ValueNR OPTIONAL, + refFreqCSI-RS ARFCN-ValueNR OPTIONAL, + measResultServingCell MeasResultNR OPTIONAL, + measResultNeighCellListNR MeasResultListNR OPTIONAL, + ... } -- TAG-MEAS-RESULT-SCG-FAILURE-STOP --- TAG-MEASRESULT-CELL-LIST-SFTD-START +-- TAG-MOBILITY-STATE-PARAMETERS-START -MeasResultCellListSFTD ::= SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultCellSFTD - -MeasResultCellSFTD ::= SEQUENCE { - physCellId PhysCellId, - sfn-OffsetResult INTEGER (0..1023), - frameBoundaryOffsetResult INTEGER (-30720..30719), - rsrp-Result RSRP-Range OPTIONAL +MobilityStateParameters ::= SEQUENCE{ + t-Evaluation ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + t-HystNormal ENUMERATED { + s30, s60, s120, s180, s240, spare3, spare2, spare1}, + n-CellChangeMedium INTEGER (1..16), + n-CellChangeHigh INTEGER (1..16) } --- TAG-MEASRESULT-CELL-LIST-SFTD-STOP +-- TAG-MOBILITY-STATE-PARAMETERS-STOP -- TAG-MULTIFREQUENCYBANDLISTNR-START -MultiFrequencyBandListNR ::= SEQUENCE (SIZE (1..maxNrofMultiBands)) OF FreqBandIndicatorNR +MultiFrequencyBandListNR ::= SEQUENCE (SIZE (1..maxNrofMultiBands)) OF FreqBandIndicatorNR -- TAG-MULTIFREQUENCYBANDLISTNR-STOP +-- TAG-NEXTHOPCHAININGCOUNT-START + +NextHopChainingCount ::= INTEGER (0..7) + +-- TAG-NEXTHOPCHAININGCOUNT-STOP +-- TAG-NG-5G-S-TMSI-START + +NG-5G-S-TMSI::= BIT STRING (SIZE (48)) + +-- TAG-NG-5G-S-TMSI-STOP -- TAG-NZP-CSI-RS-RESOURCE-START -NZP-CSI-RS-Resource ::= SEQUENCE { - nzp-CSI-RS-ResourceId NZP-CSI-RS-ResourceId, - resourceMapping CSI-RS-ResourceMapping, - powerControlOffset INTEGER(-8..15), - powerControlOffsetSS ENUMERATED {db-3, db0, db3, db6} OPTIONAL, -- Need R - scramblingID ScramblingId, - periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, -- Cond PeriodicOrSemiPersistent - qcl-InfoPeriodicCSI-RS TCI-StateId OPTIONAL, -- Cond Periodic - ... +NZP-CSI-RS-Resource ::= SEQUENCE { + nzp-CSI-RS-ResourceId NZP-CSI-RS-ResourceId, + resourceMapping CSI-RS-ResourceMapping, + powerControlOffset INTEGER (-8..15), + powerControlOffsetSS ENUMERATED{db-3, db0, db3, db6} OPTIONAL, -- Need R + scramblingID ScramblingId, + periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, -- Cond PeriodicOrSemiPersistent + 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) +NZP-CSI-RS-ResourceId ::= INTEGER (0..maxNrofNZP-CSI-RS-Resources-1) -- TAG-NZP-CSI-RS-RESOURCEID-STOP -- TAG-NZP-CSI-RS-RESOURCESET-START -NZP-CSI-RS-ResourceSet ::= SEQUENCE { - nzp-CSI-ResourceSetId NZP-CSI-RS-ResourceSetId, - nzp-CSI-RS-Resources SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerSet)) OF NZP-CSI-RS-ResourceId, - repetition ENUMERATED { on, off } OPTIONAL, - aperiodicTriggeringOffset INTEGER(0..4) OPTIONAL, -- Need S - trs-Info ENUMERATED {true} OPTIONAL, -- Need R - ... +NZP-CSI-RS-ResourceSet ::= SEQUENCE { + nzp-CSI-ResourceSetId NZP-CSI-RS-ResourceSetId, + nzp-CSI-RS-Resources SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerSet)) OF NZP-CSI-RS-ResourceId, + repetition ENUMERATED { on, off } OPTIONAL, -- Need S + aperiodicTriggeringOffset INTEGER(0..4) OPTIONAL, -- Need S + trs-Info ENUMERATED {true} OPTIONAL, -- Need R + ... } -- TAG-NZP-CSI-RS-RESOURCESET-STOP -- TAG-NZP-CSI-RS-RESOURCESETID-START -NZP-CSI-RS-ResourceSetId ::= INTEGER (0..maxNrofNZP-CSI-RS-ResourceSets-1) +NZP-CSI-RS-ResourceSetId ::= INTEGER (0..maxNrofNZP-CSI-RS-ResourceSets-1) -- TAG-NZP-CSI-RS-RESOURCESETID-STOP -- TAG-P-MAX-START -P-Max ::= INTEGER (-30..33) +P-Max ::= INTEGER (-30..33) -- TAG-P-MAX-STOP -- TAG-PCI-LIST-START -PCI-List ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF PhysCellId +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 S +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 S } -- TAG-PCI-RANGE-STOP -- TAG-PCI-RANGEELEMENT-START -PCI-RangeElement ::= SEQUENCE { - pci-RangeIndex PCI-RangeIndex, - pci-Range PCI-Range +PCI-RangeElement ::= SEQUENCE { + pci-RangeIndex PCI-RangeIndex, + pci-Range PCI-Range } -- TAG-PCI-RANGEELEMENT-STOP -- TAG-PCI-RANGE-INDEX-START -PCI-RangeIndex ::= INTEGER (1..maxNrofPCI-Ranges) +PCI-RangeIndex ::= INTEGER (1..maxNrofPCI-Ranges) -- TAG-PCI-RANGE-INDEX-STOP -- TAG-PCI-RANGE-INDEX-LIST-START -PCI-RangeIndexList ::= SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeIndex +PCI-RangeIndexList ::= SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeIndex -- TAG-PCI-Range-INDEX-LIST-STOP -- TAG-PDCCH-CONFIG-START -PDCCH-Config ::= SEQUENCE { - controlResourceSetToAddModList SEQUENCE(SIZE (1..3)) OF ControlResourceSet OPTIONAL, -- Need N - controlResourceSetToReleaseList SEQUENCE(SIZE (1..3)) OF ControlResourceSetId OPTIONAL, -- Need N - searchSpacesToAddModList SEQUENCE(SIZE (1..10)) OF SearchSpace OPTIONAL, -- Need N - searchSpacesToReleaseList SEQUENCE(SIZE (1..10)) OF SearchSpaceId OPTIONAL, -- Need N - downlinkPreemption CHOICE { release NULL, setup DownlinkPreemption } OPTIONAL, -- Need M - tpc-PUSCH CHOICE { release NULL, setup PUSCH-TPC-CommandConfig } OPTIONAL, -- Need M - tpc-PUCCH CHOICE { release NULL, setup PUCCH-TPC-CommandConfig } OPTIONAL, -- Cond PUCCH-CellOnly - tpc-SRS CHOICE { release NULL, setup SRS-TPC-CommandConfig} OPTIONAL, -- Need M - ... +PDCCH-Config ::= SEQUENCE { + controlResourceSetToAddModList SEQUENCE(SIZE (1..3)) OF ControlResourceSet OPTIONAL, -- Need N + controlResourceSetToReleaseList SEQUENCE(SIZE (1..3)) OF ControlResourceSetId OPTIONAL, -- Need N + searchSpacesToAddModList SEQUENCE(SIZE (1..10)) OF SearchSpace OPTIONAL, -- Need N + searchSpacesToReleaseList SEQUENCE(SIZE (1..10)) OF SearchSpaceId OPTIONAL, -- Need N + downlinkPreemption CHOICE { release NULL, setup DownlinkPreemption } OPTIONAL, -- Need M + tpc-PUSCH CHOICE { release NULL, setup PUSCH-TPC-CommandConfig } OPTIONAL, -- Need M + tpc-PUCCH CHOICE { release NULL, setup PUCCH-TPC-CommandConfig } OPTIONAL, -- Cond PUCCH-CellOnly + tpc-SRS CHOICE { release NULL, setup SRS-TPC-CommandConfig} OPTIONAL, -- Need M + ... } -- TAG-PDCCH-CONFIG-STOP -- TAG-PDCCH-CONFIGCOMMON-START -PDCCH-ConfigCommon ::= SEQUENCE { - controlResourceSetZero INTEGER (0..15) OPTIONAL, -- Cond InitialBWP-Only - commonControlResourceSet ControlResourceSet OPTIONAL, -- Need R - searchSpaceZero INTEGER (0..15) OPTIONAL, -- Cond InitialBWP-Only - commonSearchSpace SEQUENCE (SIZE(1..4)) OF SearchSpace OPTIONAL, -- Need R - searchSpaceSIB1 SearchSpaceId OPTIONAL, -- Need R - searchSpaceOtherSystemInformation SearchSpaceId OPTIONAL, -- Need R - pagingSearchSpace SearchSpaceId OPTIONAL, -- Need R - ra-SearchSpace SearchSpaceId OPTIONAL, -- Need R - ... +PDCCH-ConfigCommon ::= SEQUENCE { + controlResourceSetZero ControlResourceSetZero OPTIONAL, -- Cond InitialBWP-Only + commonControlResourceSet ControlResourceSet OPTIONAL, -- Need R + searchSpaceZero SearchSpaceZero OPTIONAL, -- Cond InitialBWP-Only + commonSearchSpaceList SEQUENCE (SIZE(1..4)) OF SearchSpace OPTIONAL, -- Need R + searchSpaceSIB1 SearchSpaceId OPTIONAL, -- Need S + searchSpaceOtherSystemInformation SearchSpaceId OPTIONAL, -- Need S + pagingSearchSpace SearchSpaceId OPTIONAL, -- Need S + ra-SearchSpace SearchSpaceId OPTIONAL, -- Need S + ... } -- TAG-PDCCH-CONFIGCOMMON-STOP +-- TAG-PDCCH-CONFIGSIB1-START + +PDCCH-ConfigSIB1 ::= SEQUENCE { + controlResourceSetZero ControlResourceSetZero, + searchSpaceZero SearchSpaceZero +} + +-- TAG-PDCCH-CONFIGSIB1-STOP -- TAG-PDCCH-SERVINGCELLCONFIG-START -PDCCH-ServingCellConfig ::= SEQUENCE { - slotFormatIndicator CHOICE { release NULL, setup SlotFormatIndicator } OPTIONAL, -- Need M - ... +PDCCH-ServingCellConfig ::= SEQUENCE { + slotFormatIndicator CHOICE { release NULL, setup SlotFormatIndicator } OPTIONAL, -- Need M + ... } -- TAG-PDCCH-SERVINGCELLCONFIG-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-SizeUL ENUMERATED {len12bits, len18bits} OPTIONAL, -- Cond Setup2 - pdcp-SN-SizeDL ENUMERATED {len12bits, len18bits} OPTIONAL, -- Cond Setup2 - headerCompression CHOICE { - notUsed NULL, - rohc SEQUENCE { - maxCID INTEGER (1..16383) DEFAULT 15, - profiles SEQUENCE { - profile0x0001 BOOLEAN, - profile0x0002 BOOLEAN, - profile0x0003 BOOLEAN, - profile0x0004 BOOLEAN, - profile0x0006 BOOLEAN, - profile0x0101 BOOLEAN, - profile0x0102 BOOLEAN, - profile0x0103 BOOLEAN, - profile0x0104 BOOLEAN - }, - drb-ContinueROHC ENUMERATED { true } OPTIONAL -- Need R - }, - uplinkOnlyROHC SEQUENCE { - maxCID INTEGER (1..16383) DEFAULT 15, - profiles SEQUENCE { - profile0x0006 BOOLEAN - }, - drb-ContinueROHC ENUMERATED { true } OPTIONAL -- Need R - }, - ... - }, - integrityProtection ENUMERATED { enabled } OPTIONAL, -- Cond ConnectedTo5GC - statusReportRequired ENUMERATED { true } OPTIONAL, -- Cond Rlc-AM - outOfOrderDelivery ENUMERATED { true } OPTIONAL -- Need R - } OPTIONAL, -- Cond DRB - moreThanOneRLC SEQUENCE { - primaryPath SEQUENCE { - cellGroup CellGroupId OPTIONAL, -- Need R - logicalChannel LogicalChannelIdentity OPTIONAL -- Need R - }, - ul-DataSplitThreshold UL-DataSplitThreshold OPTIONAL, -- Cond SplitBearer - pdcp-Duplication BOOLEAN OPTIONAL -- Need R - } OPTIONAL, -- Cond MoreThanOneRLC - - t-Reordering ENUMERATED { - 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, 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 - - - ... +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-SizeUL ENUMERATED {len12bits, len18bits} OPTIONAL, -- Cond Setup2 + pdcp-SN-SizeDL ENUMERATED {len12bits, len18bits} OPTIONAL, -- Cond Setup2 + headerCompression CHOICE { + notUsed NULL, + rohc SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + drb-ContinueROHC ENUMERATED { true } OPTIONAL -- Need N + }, + uplinkOnlyROHC SEQUENCE { + maxCID INTEGER (1..16383) DEFAULT 15, + profiles SEQUENCE { + profile0x0006 BOOLEAN + }, + drb-ContinueROHC ENUMERATED { true } OPTIONAL -- Need N + }, + ... + }, + integrityProtection ENUMERATED { enabled } OPTIONAL, -- Cond ConnectedTo5GC + statusReportRequired ENUMERATED { true } OPTIONAL, -- Cond Rlc-AM + outOfOrderDelivery ENUMERATED { true } OPTIONAL -- Need R + } OPTIONAL, -- Cond DRB + moreThanOneRLC SEQUENCE { + primaryPath SEQUENCE { + cellGroup CellGroupId OPTIONAL, -- Need R + logicalChannel LogicalChannelIdentity OPTIONAL -- Need R + }, + ul-DataSplitThreshold UL-DataSplitThreshold OPTIONAL, -- Cond SplitBearer + pdcp-Duplication BOOLEAN OPTIONAL -- Need R + } OPTIONAL, -- Cond MoreThanOneRLC + + t-Reordering ENUMERATED { + 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, 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 + ..., + [[ + cipheringDisabled ENUMERATED {true} OPTIONAL -- Cond ConnectedTo5GC + ]] + } 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} + 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 { - dataScramblingIdentityPDSCH INTEGER (0..1023) OPTIONAL, - dmrs-DownlinkForPDSCH-MappingTypeA CHOICE { release NULL, setup DMRS-DownlinkConfig } OPTIONAL, -- Need M - dmrs-DownlinkForPDSCH-MappingTypeB CHOICE { release NULL, setup DMRS-DownlinkConfig } 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 - vrb-ToPRB-Interleaver ENUMERATED {n2, n4} OPTIONAL, -- Need S - resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch}, - pdsch-TimeDomainAllocationList CHOICE { release NULL, setup PDSCH-TimeDomainResourceAllocationList } OPTIONAL, -- Need M - pdsch-AggregationFactor ENUMERATED { n2, n4, n8 } OPTIONAL, -- Need S - rateMatchPatternToAddModList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern OPTIONAL, -- Need N - rateMatchPatternToReleaseList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N - rateMatchPatternGroup1 RateMatchPatternGroup OPTIONAL, -- Need R - rateMatchPatternGroup2 RateMatchPatternGroup OPTIONAL, -- Need R - - rbg-Size ENUMERATED {config1, config2}, - mcs-Table ENUMERATED {qam256, spare1} OPTIONAL, -- Need S - maxNrofCodeWordsScheduledByDCI ENUMERATED {n1, n2} OPTIONAL, -- Need R - - prb-BundlingType CHOICE { - staticBundling SEQUENCE { - bundleSize ENUMERATED { n4, wideband } OPTIONAL -- Need S - }, - dynamicBundling SEQUENCE { - bundleSizeSet1 ENUMERATED { n4, wideband, n2-wideband, n4-wideband } OPTIONAL, -- Need S - bundleSizeSet2 ENUMERATED { n4, wideband } OPTIONAL -- Need S - } - }, - 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 N - aperiodic-ZP-CSI-RS-ResourceSetsToAddModList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSet OPTIONAL, -- Need N - aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSetId OPTIONAL, - -- Need N - sp-ZP-CSI-RS-ResourceSetsToAddModList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSet OPTIONAL, -- Need N - sp-ZP-CSI-RS-ResourceSetsToReleaseList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSetId OPTIONAL, -- Need N - p-ZP-CSI-RS-ResourceSet CHOICE { release NULL, setup ZP-CSI-RS-ResourceSet } OPTIONAL, -- Need M - ... -} -RateMatchPatternGroup ::= SEQUENCE (SIZE (1..maxNrofRateMatchPatternsPerGroup)) OF CHOICE { cellLevel RateMatchPatternId, - bwpLevel RateMatchPatternId +PDSCH-Config ::= SEQUENCE { + dataScramblingIdentityPDSCH INTEGER (0..1023) OPTIONAL, -- Need S + dmrs-DownlinkForPDSCH-MappingTypeA CHOICE { release NULL, setup DMRS-DownlinkConfig } OPTIONAL, -- Need M + dmrs-DownlinkForPDSCH-MappingTypeB CHOICE { release NULL, setup DMRS-DownlinkConfig } 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 + vrb-ToPRB-Interleaver ENUMERATED {n2, n4} OPTIONAL, -- Need S + resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch}, + pdsch-TimeDomainAllocationList CHOICE { release NULL, setup PDSCH-TimeDomainResourceAllocationList } OPTIONAL, -- Need M + pdsch-AggregationFactor ENUMERATED { n2, n4, n8 } OPTIONAL, -- Need S + rateMatchPatternToAddModList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern OPTIONAL, -- Need N + rateMatchPatternToReleaseList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N + rateMatchPatternGroup1 RateMatchPatternGroup OPTIONAL, -- Need R + rateMatchPatternGroup2 RateMatchPatternGroup OPTIONAL, -- Need R + + rbg-Size ENUMERATED {config1, config2}, + mcs-Table ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S + maxNrofCodeWordsScheduledByDCI ENUMERATED {n1, n2} OPTIONAL, -- Need R + + prb-BundlingType CHOICE { + staticBundling SEQUENCE { + bundleSize ENUMERATED { n4, wideband } OPTIONAL -- Need S + }, + dynamicBundling SEQUENCE { + bundleSizeSet1 ENUMERATED { n4, wideband, n2-wideband, n4-wideband } OPTIONAL, -- Need S + bundleSizeSet2 ENUMERATED { n4, wideband } OPTIONAL -- Need S + } + }, + 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 N + aperiodic-ZP-CSI-RS-ResourceSetsToAddModList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSet OPTIONAL, -- Need N + aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSetId OPTIONAL, + -- NeedN + sp-ZP-CSI-RS-ResourceSetsToAddModList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSet OPTIONAL, -- Need N + sp-ZP-CSI-RS-ResourceSetsToReleaseList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSetId OPTIONAL, -- Need N + p-ZP-CSI-RS-ResourceSet CHOICE { release NULL, setup ZP-CSI-RS-ResourceSet } OPTIONAL, -- Need M + ... +} +RateMatchPatternGroup ::= SEQUENCE (SIZE (1..maxNrofRateMatchPatternsPerGroup)) OF CHOICE { + cellLevel RateMatchPatternId, + bwpLevel RateMatchPatternId } -- TAG-PDSCH-CONFIG-STOP -- TAG-PDSCH-CONFIGCOMMON-START -PDSCH-ConfigCommon ::= SEQUENCE { - pdsch-TimeDomainAllocationList PDSCH-TimeDomainResourceAllocationList OPTIONAL, -- Need R - ... +PDSCH-ConfigCommon ::= SEQUENCE { + pdsch-TimeDomainAllocationList PDSCH-TimeDomainResourceAllocationList OPTIONAL, -- Need R + ... } -- TAG-PDSCH-CONFIGCOMMON-STOP -- TAG-PDSCH-SERVINGCELLCONFIG-START -PDSCH-ServingCellConfig ::= SEQUENCE { - codeBlockGroupTransmission CHOICE { release NULL, setup PDSCH-CodeBlockGroupTransmission } OPTIONAL, -- Need M - xOverhead ENUMERATED { xOh6, xOh12, xOh18 } OPTIONAL, -- Need S - nrofHARQ-ProcessesForPDSCH ENUMERATED {n2, n4, n6, n10, n12, n16} OPTIONAL, -- Need S - pucch-Cell ServCellIndex OPTIONAL , -- Cond SCellAddOnly - ... +PDSCH-ServingCellConfig ::= SEQUENCE { + codeBlockGroupTransmission CHOICE { release NULL, setup PDSCH-CodeBlockGroupTransmission } OPTIONAL, -- Need M + xOverhead ENUMERATED { xOh6, xOh12, xOh18 } OPTIONAL, -- Need S + nrofHARQ-ProcessesForPDSCH ENUMERATED {n2, n4, n6, n10, n12, n16} OPTIONAL, -- Need S + pucch-Cell ServCellIndex OPTIONAL , -- Cond SCellAddOnly + ... } -PDSCH-CodeBlockGroupTransmission ::= SEQUENCE { - maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, - codeBlockGroupFlushIndicator BOOLEAN, - ... +PDSCH-CodeBlockGroupTransmission ::= SEQUENCE { + maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, + codeBlockGroupFlushIndicator BOOLEAN, + ... } -- TAG-PDSCH-SERVINGCELLCONFIG-STOP -- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-START -PDSCH-TimeDomainResourceAllocationList ::= SEQUENCE (SIZE(1..maxNrofDL-Allocations)) OF PDSCH-TimeDomainResourceAllocation +PDSCH-TimeDomainResourceAllocationList ::= SEQUENCE (SIZE(1..maxNrofDL-Allocations)) OF PDSCH-TimeDomainResourceAllocation PDSCH-TimeDomainResourceAllocation ::= SEQUENCE { - k0 INTEGER(0..32) OPTIONAL, -- Need S - mappingType ENUMERATED {typeA, typeB}, - startSymbolAndLength INTEGER (0..127) + k0 INTEGER(0..32) OPTIONAL, -- Need S + mappingType ENUMERATED {typeA, typeB}, + startSymbolAndLength INTEGER (0..127) } -- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-STOP +-- TAG-PHR-CONFIG-START + +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, + dummy BOOLEAN, + phr-Type2OtherCell BOOLEAN, + phr-ModeOtherCG ENUMERATED {real, virtual}, + ... +} + +-- TAG-PHR-CONFIG-STOP -- TAG-PHYS-CELL-ID-START -PhysCellId ::= INTEGER (0..1007) +PhysCellId ::= INTEGER (0..1007) -- TAG-PHYS-CELL-ID-STOP -- TAG-PHYSICALCELLGROUPCONFIG-START -PhysicalCellGroupConfig ::= SEQUENCE { - harq-ACK-SpatialBundlingPUCCH ENUMERATED {true} OPTIONAL, -- Need S - harq-ACK-SpatialBundlingPUSCH ENUMERATED {true} OPTIONAL, -- Need S - p-NR P-Max OPTIONAL, -- Need R - pdsch-HARQ-ACK-Codebook ENUMERATED {semiStatic, dynamic}, - tpc-SRS-RNTI RNTI-Value OPTIONAL, -- Need R - tpc-PUCCH-RNTI RNTI-Value OPTIONAL, -- Need R - tpc-PUSCH-RNTI RNTI-Value OPTIONAL, -- Need R - sp-CSI-RNTI RNTI-Value OPTIONAL, -- Cond SP-CSI-Report - cs-RNTI CHOICE { release NULL, setup RNTI-Value } OPTIONAL, -- Need R - ... +PhysicalCellGroupConfig ::= SEQUENCE { + harq-ACK-SpatialBundlingPUCCH ENUMERATED {true} OPTIONAL, -- Need S + harq-ACK-SpatialBundlingPUSCH ENUMERATED {true} OPTIONAL, -- Need S + p-NR-FR1 P-Max OPTIONAL, -- Need R + pdsch-HARQ-ACK-Codebook ENUMERATED {semiStatic, dynamic}, + tpc-SRS-RNTI RNTI-Value OPTIONAL, -- Need R + tpc-PUCCH-RNTI RNTI-Value OPTIONAL, -- Need R + tpc-PUSCH-RNTI RNTI-Value OPTIONAL, -- Need R + sp-CSI-RNTI RNTI-Value OPTIONAL, -- Cond SP-CSI-Report + cs-RNTI CHOICE { release NULL, setup RNTI-Value } OPTIONAL, -- Need M + ..., + [[ + mcs-C-RNTI RNTI-Value OPTIONAL, -- Need R + p-UE-FR1 P-Max OPTIONAL -- Cond MCG-Only + ]] } -- TAG-PHYSICALCELLGROUPCONFIG-STOP +-- TAG-PLMN-IDENTITY-INFORMATION-START + +PLMN-Identity ::= SEQUENCE { + mcc MCC OPTIONAL, -- Cond MCC + mnc MNC +} + +MCC ::= SEQUENCE (SIZE (3)) OF MCC-MNC-Digit + +MNC ::= SEQUENCE (SIZE (2..3)) OF MCC-MNC-Digit + +MCC-MNC-Digit ::= INTEGER (0..9) + + +-- TAG-PLMN-IDENTITY-INFORMATION-STOP +-- TAG-PLMN-IDENTITY-LIST-START + +PLMN-IdentityInfoList ::= SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-IdentityInfo + +PLMN-IdentityInfo ::= SEQUENCE { + plmn-IdentityList SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity, + trackingAreaCode TrackingAreaCode OPTIONAL, -- Need R + ranac RAN-AreaCode OPTIONAL, -- Need R + cellIdentity CellIdentity, + cellReservedForOperatorUse ENUMERATED {reserved, notReserved}, + ... +} +-- TAG-PLMN-IDENTITY-LIST-STOP -- TAG-PRB-ID-START -PRB-Id ::= INTEGER (0..maxNrofPhysicalResourceBlocks-1) +PRB-Id ::= INTEGER (0..maxNrofPhysicalResourceBlocks-1) -- TAG-PRB-ID-STOP -- TAG-PTRS-DOWNLINKCONFIG-START -PTRS-DownlinkConfig ::= SEQUENCE { - frequencyDensity SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S - timeDensity SEQUENCE (SIZE (3)) OF INTEGER (0..29) OPTIONAL, -- Need S - epre-Ratio INTEGER (0..3) OPTIONAL, -- Need S - resourceElementOffset ENUMERATED { offset01, offset10, offset11 } OPTIONAL, -- Need S - ... +PTRS-DownlinkConfig ::= SEQUENCE { + frequencyDensity SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S + timeDensity SEQUENCE (SIZE (3)) OF INTEGER (0..29) OPTIONAL, -- Need S + epre-Ratio INTEGER (0..3) OPTIONAL, -- Need S + resourceElementOffset ENUMERATED { offset01, offset10, offset11 } OPTIONAL, -- Need S + ... } -- TAG-PTRS-DOWNLINKCONFIG-STOP -- TAG-PTRS-UPLINKCONFIG-START -PTRS-UplinkConfig ::= SEQUENCE { - modeSpecificParameters CHOICE { - cp-OFDM SEQUENCE { - frequencyDensity SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S - timeDensity SEQUENCE (SIZE (3)) OF INTEGER (0..29) OPTIONAL, -- Need S - maxNrofPorts ENUMERATED {n1, n2}, - resourceElementOffset ENUMERATED {offset01, offset10, offset11 } OPTIONAL, -- Need S - ptrs-Power ENUMERATED {p00, p01, p10, p11} - }, - dft-S-OFDM SEQUENCE { - sampleDensity SEQUENCE (SIZE (5)) OF INTEGER (1..276), - timeDensityTransformPrecoding ENUMERATED {d2} OPTIONAL -- Need S - } - } OPTIONAL, -- Need M - ... +PTRS-UplinkConfig ::= SEQUENCE { + transformPrecoderDisabled SEQUENCE { + frequencyDensity + SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S + timeDensity SEQUENCE (SIZE (3)) OF INTEGER (0..29) OPTIONAL, -- Need S + maxNrofPorts ENUMERATED {n1, n2}, + resourceElementOffset ENUMERATED {offset01, offset10, offset11 } OPTIONAL, -- Need S + ptrs-Power ENUMERATED {p00, p01, p10, p11} + } OPTIONAL, -- Need R + transformPrecoderEnabled SEQUENCE { + sampleDensity SEQUENCE (SIZE (5)) OF INTEGER (1..276), + timeDensityTransformPrecoding ENUMERATED {d2} OPTIONAL -- Need S + } OPTIONAL, -- Need R + ... } -- TAG-PTRS-UPLINKCONFIG-STOP -- TAG-PUCCH-CONFIG-START -PUCCH-Config ::= SEQUENCE { - resourceSetToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSet OPTIONAL, -- Need N - resourceSetToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSetId OPTIONAL, -- Need N - - resourceToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-Resource OPTIONAL, -- Need N - resourceToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-ResourceId OPTIONAL, -- Need N +PUCCH-Config ::= SEQUENCE { + resourceSetToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSet OPTIONAL, -- Need N + resourceSetToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSetId OPTIONAL, -- Need N - format1 CHOICE { release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M - format2 CHOICE { release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M - format3 CHOICE { release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M - format4 CHOICE { release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M + resourceToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-Resource OPTIONAL, -- Need N + resourceToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-ResourceId OPTIONAL, -- Need N - schedulingRequestResourceToAddModList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceConfig OPTIONAL, -- Need N - schedulingRequestResourceToReleaseList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceId OPTIONAL, -- Need N + format1 CHOICE { release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M + format2 CHOICE { release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M + format3 CHOICE { release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M + format4 CHOICE { release NULL, setup PUCCH-FormatConfig } OPTIONAL, -- Need M - multi-CSI-PUCCH-ResourceList SEQUENCE (SIZE (1..2)) OF PUCCH-ResourceId OPTIONAL,-- Need M - dl-DataToUL-ACK SEQUENCE (SIZE (1..8)) OF INTEGER (0..15) OPTIONAL, -- Need M + schedulingRequestResourceToAddModList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceConfig OPTIONAL, -- Need N + schedulingRequestResourceToReleaseList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceId OPTIONAL, -- Need N - spatialRelationInfoToAddModList SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfo OPTIONAL, -- Need N - spatialRelationInfoToReleaseList SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfoId OPTIONAL, -- Need N + multi-CSI-PUCCH-ResourceList SEQUENCE (SIZE (1..2)) OF PUCCH-ResourceId OPTIONAL,-- Need M + dl-DataToUL-ACK SEQUENCE (SIZE (1..8)) OF INTEGER (0..15) OPTIONAL, -- Need M - pucch-PowerControl PUCCH-PowerControl OPTIONAL, -- Need M - ... -} + spatialRelationInfoToAddModList SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfo OPTIONAL, -- Need N + spatialRelationInfoToReleaseList SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfoId OPTIONAL, -- Need N -PUCCH-FormatConfig ::= SEQUENCE { - interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, -- Need R - additionalDMRS ENUMERATED {true} OPTIONAL, -- Need R - maxCodeRate PUCCH-MaxCodeRate OPTIONAL, -- Need R - nrofSlots ENUMERATED {n2,n4,n8} OPTIONAL, -- Need S - pi2BPSK ENUMERATED {enabled} OPTIONAL, -- Need R - simultaneousHARQ-ACK-CSI ENUMERATED {true} OPTIONAL -- Need R + pucch-PowerControl PUCCH-PowerControl OPTIONAL, -- Need M + ... } -PUCCH-MaxCodeRate ::= ENUMERATED {zeroDot08, zeroDot15, zeroDot25, zeroDot35, zeroDot45, zeroDot60, zeroDot80} - -PUCCH-SpatialRelationInfo ::= SEQUENCE { - pucch-SpatialRelationInfoId PUCCH-SpatialRelationInfoId, - servingCellId ServCellIndex OPTIONAL, -- Need S - referenceSignal CHOICE { - ssb-Index SSB-Index, - csi-RS-Index NZP-CSI-RS-ResourceId, - srs SEQUENCE { - resource SRS-ResourceId, - uplinkBWP BWP-Id - } - }, - pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id, - p0-PUCCH-Id P0-PUCCH-Id, - closedLoopIndex ENUMERATED { i0, i1 } +PUCCH-FormatConfig ::= SEQUENCE { + interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, -- Need R + additionalDMRS ENUMERATED {true} OPTIONAL, -- Need R + maxCodeRate PUCCH-MaxCodeRate OPTIONAL, -- Need R + nrofSlots ENUMERATED {n2,n4,n8} OPTIONAL, -- Need S + pi2BPSK ENUMERATED {enabled} OPTIONAL, -- Need R + simultaneousHARQ-ACK-CSI ENUMERATED {true} OPTIONAL -- Need R } -PUCCH-SpatialRelationInfoId ::= INTEGER (1..maxNrofSpatialRelationInfos) +PUCCH-MaxCodeRate ::= ENUMERATED {zeroDot08, zeroDot15, zeroDot25, zeroDot35, zeroDot45, zeroDot60, zeroDot80} -- A set with one or more PUCCH resources -PUCCH-ResourceSet ::= SEQUENCE { - pucch-ResourceSetId PUCCH-ResourceSetId, - resourceList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourcesPerSet)) OF PUCCH-ResourceId, - maxPayloadMinus1 INTEGER (4..256) OPTIONAL -- Need R +PUCCH-ResourceSet ::= SEQUENCE { + pucch-ResourceSetId PUCCH-ResourceSetId, + resourceList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourcesPerSet)) OF PUCCH-ResourceId, + maxPayloadMinus1 INTEGER (4..256) OPTIONAL -- Need R } -PUCCH-ResourceSetId ::= INTEGER (0..maxNrofPUCCH-ResourceSets-1) +PUCCH-ResourceSetId ::= INTEGER (0..maxNrofPUCCH-ResourceSets-1) -PUCCH-Resource ::= SEQUENCE { - pucch-ResourceId PUCCH-ResourceId, - startingPRB PRB-Id, - intraSlotFrequencyHopping ENUMERATED { enabled } OPTIONAL, -- Need R - secondHopPRB PRB-Id OPTIONAL, -- Need R - 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-Resource ::= SEQUENCE { + pucch-ResourceId PUCCH-ResourceId, + startingPRB PRB-Id, + intraSlotFrequencyHopping ENUMERATED { enabled } OPTIONAL, -- Need R + secondHopPRB PRB-Id OPTIONAL, -- Need R + format CHOICE { + format0 PUCCH-format0, + format1 PUCCH-format1, + format2 PUCCH-format2, + format3 PUCCH-format3, + format4 PUCCH-format4 + } } -PUCCH-ResourceId ::= INTEGER (0..maxNrofPUCCH-Resources-1) +PUCCH-ResourceId ::= INTEGER (0..maxNrofPUCCH-Resources-1) -PUCCH-format0 ::= SEQUENCE { - initialCyclicShift INTEGER(0..11), - nrofSymbols INTEGER (1..2), - startingSymbolIndex INTEGER(0..13) +PUCCH-format0 ::= SEQUENCE { + initialCyclicShift INTEGER(0..11), + nrofSymbols INTEGER (1..2), + startingSymbolIndex INTEGER(0..13) } -PUCCH-format1 ::= SEQUENCE { - initialCyclicShift INTEGER(0..11), - nrofSymbols INTEGER (4..14), - startingSymbolIndex INTEGER(0..10), - timeDomainOCC INTEGER(0..6) +PUCCH-format1 ::= SEQUENCE { + initialCyclicShift INTEGER(0..11), + nrofSymbols INTEGER (4..14), + startingSymbolIndex INTEGER(0..10), + timeDomainOCC INTEGER(0..6) } -PUCCH-format2 ::= SEQUENCE { - nrofPRBs INTEGER (1..16), - nrofSymbols INTEGER (1..2), - startingSymbolIndex INTEGER(0..13) +PUCCH-format2 ::= SEQUENCE { + nrofPRBs INTEGER (1..16), + nrofSymbols INTEGER (1..2), + startingSymbolIndex INTEGER(0..13) } -PUCCH-format3 ::= SEQUENCE { - nrofPRBs INTEGER (1..16), - nrofSymbols INTEGER (4..14), - startingSymbolIndex INTEGER(0..10) +PUCCH-format3 ::= SEQUENCE { + nrofPRBs INTEGER (1..16), + nrofSymbols INTEGER (4..14), + startingSymbolIndex INTEGER(0..10) } -PUCCH-format4 ::= SEQUENCE { - nrofSymbols INTEGER (4..14), - occ-Length ENUMERATED {n2,n4}, - occ-Index ENUMERATED {n0,n1,n2,n3}, - startingSymbolIndex INTEGER(0..10) +PUCCH-format4 ::= SEQUENCE { + nrofSymbols INTEGER (4..14), + occ-Length ENUMERATED {n2,n4}, + occ-Index ENUMERATED {n0,n1,n2,n3}, + startingSymbolIndex INTEGER(0..10) } -- TAG-PUCCH-CONFIG-STOP -- TAG-PUCCH-CONFIGCOMMON-START -PUCCH-ConfigCommon ::= SEQUENCE { - pucch-ResourceCommon INTEGER (0..15) OPTIONAL, -- Need R - pucch-GroupHopping ENUMERATED { neither, enable, disable }, - hoppingId INTEGER (0..1024) OPTIONAL, -- Need R - p0-nominal INTEGER (-202..24) OPTIONAL, -- Need R - ... +PUCCH-ConfigCommon ::= SEQUENCE { + pucch-ResourceCommon INTEGER (0..15) OPTIONAL, -- Need R + pucch-GroupHopping ENUMERATED { neither, enable, disable }, + hoppingId INTEGER (0..1023) OPTIONAL, -- Need R + p0-nominal INTEGER (-202..24) OPTIONAL, -- Need R + ... } -- TAG-PUCCH-CONFIGCOMMON-STOP -- TAG-PUCCH-PATHLOSSREFERENCERS-ID-START -PUCCH-PathlossReferenceRS-Id ::= INTEGER (0..maxNrofPUCCH-PathlossReferenceRSs-1) +PUCCH-PathlossReferenceRS-Id ::= INTEGER (0..maxNrofPUCCH-PathlossReferenceRSs-1) -- TAG-PUCCH-PATHLOSSREFERENCERS-ID-STOP -- TAG-PUCCH-POWERCONTROL-START -PUCCH-PowerControl ::= SEQUENCE { - deltaF-PUCCH-f0 INTEGER (-16..15) OPTIONAL, -- Need R - deltaF-PUCCH-f1 INTEGER (-16..15) OPTIONAL, -- Need R - deltaF-PUCCH-f2 INTEGER (-16..15) OPTIONAL, -- Need R - deltaF-PUCCH-f3 INTEGER (-16..15) OPTIONAL, -- Need R - deltaF-PUCCH-f4 INTEGER (-16..15) OPTIONAL, -- Need R - p0-Set SEQUENCE (SIZE (1..maxNrofPUCCH-P0-PerSet)) OF P0-PUCCH OPTIONAL, -- Need M - pathlossReferenceRSs SEQUENCE (SIZE (1..maxNrofPUCCH-PathlossReferenceRSs)) OF PUCCH-PathlossReferenceRS OPTIONAL, -- Need M - twoPUCCH-PC-AdjustmentStates ENUMERATED {twoStates} OPTIONAL, -- Need S - ... +PUCCH-PowerControl ::= SEQUENCE { + deltaF-PUCCH-f0 INTEGER (-16..15) OPTIONAL, -- Need R + deltaF-PUCCH-f1 INTEGER (-16..15) OPTIONAL, -- Need R + deltaF-PUCCH-f2 INTEGER (-16..15) OPTIONAL, -- Need R + deltaF-PUCCH-f3 INTEGER (-16..15) OPTIONAL, -- Need R + deltaF-PUCCH-f4 INTEGER (-16..15) OPTIONAL, -- Need R + p0-Set SEQUENCE (SIZE (1..maxNrofPUCCH-P0-PerSet)) OF P0-PUCCH OPTIONAL, -- Need M + pathlossReferenceRSs SEQUENCE (SIZE (1..maxNrofPUCCH-PathlossReferenceRSs)) OF PUCCH-PathlossReferenceRS OPTIONAL, -- Need M + twoPUCCH-PC-AdjustmentStates ENUMERATED {twoStates} OPTIONAL, -- Need S + ... } -P0-PUCCH ::= SEQUENCE { - p0-PUCCH-Id P0-PUCCH-Id, - p0-PUCCH-Value INTEGER (-16..15) +P0-PUCCH ::= SEQUENCE { + p0-PUCCH-Id P0-PUCCH-Id, + p0-PUCCH-Value INTEGER (-16..15) } -P0-PUCCH-Id ::= INTEGER (1..8) +P0-PUCCH-Id ::= INTEGER (1..8) -PUCCH-PathlossReferenceRS ::= SEQUENCE { - pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id, - referenceSignal CHOICE { - ssb-Index SSB-Index, - csi-RS-Index NZP-CSI-RS-ResourceId - } +PUCCH-PathlossReferenceRS ::= SEQUENCE { + pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id, + referenceSignal CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId + } } -- TAG-PUCCH-POWERCONTROL-STOP +-- TAG-PUCCH-SPATIALRELATIONINFO-START + +PUCCH-SpatialRelationInfo ::= SEQUENCE { + pucch-SpatialRelationInfoId PUCCH-SpatialRelationInfoId, + servingCellId ServCellIndex OPTIONAL, -- Need S + referenceSignal CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId, + srs SEQUENCE { + resource SRS-ResourceId, + uplinkBWP BWP-Id + } + }, + pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id, + p0-PUCCH-Id P0-PUCCH-Id, + closedLoopIndex ENUMERATED { i0, i1 } +} + +PUCCH-SpatialRelationInfoId ::= INTEGER (1..maxNrofSpatialRelationInfos) + + +-- TAG-PUCCH-SPATIALRELATIONINFO-STOP -- TAG-PUCCH-TPC-COMMANDCONFIG-START -PUCCH-TPC-CommandConfig ::= SEQUENCE { - tpc-IndexPCell INTEGER (1..15) OPTIONAL, -- Cond PDCCH-OfSpcell - tpc-IndexPUCCH-SCell INTEGER (1..15) OPTIONAL, -- Cond PDCCH-ofSpCellOrPUCCH-Scell +PUCCH-TPC-CommandConfig ::= SEQUENCE { + tpc-IndexPCell INTEGER (1..15) OPTIONAL, -- Cond PDCCH-OfSpcell + tpc-IndexPUCCH-SCell INTEGER (1..15) OPTIONAL, -- Cond PDCCH-ofSpCellOrPUCCH-Scell ... } -- TAG-PUCCH-TPC-COMMANDCONFIG-STOP -- TAG-PUSCH-CONFIG-START -PUSCH-Config ::= SEQUENCE { - dataScramblingIdentityPUSCH INTEGER (0..1023) OPTIONAL, -- Need M - txConfig ENUMERATED {codebook, nonCodebook} OPTIONAL, -- Need S - dmrs-UplinkForPUSCH-MappingTypeA CHOICE { release NULL, setup DMRS-UplinkConfig } OPTIONAL, -- Need M - dmrs-UplinkForPUSCH-MappingTypeB CHOICE { release NULL, setup DMRS-UplinkConfig } OPTIONAL, -- Need M - - pusch-PowerControl PUSCH-PowerControl OPTIONAL, -- Need M - frequencyHopping ENUMERATED {mode1, mode2} OPTIONAL, -- Need S - frequencyHoppingOffsetLists SEQUENCE (SIZE (1..4)) OF INTEGER (1.. maxNrofPhysicalResourceBlocks-1) OPTIONAL, -- Need M - resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch}, - pusch-TimeDomainAllocationList CHOICE { release NULL, setup PUSCH-TimeDomainResourceAllocationList } OPTIONAL, -- Need M - pusch-AggregationFactor ENUMERATED { n2, n4, n8 } OPTIONAL, -- Need S - mcs-Table ENUMERATED {qam256, spare1} OPTIONAL, -- Need S - mcs-TableTransformPrecoder ENUMERATED {qam256, spare1} OPTIONAL, -- Need S - transformPrecoder ENUMERATED {enabled, disabled} OPTIONAL, -- Need S - codebookSubset ENUMERATED {fullyAndPartialAndNonCoherent, partialAndNonCoherent, - nonCoherent} OPTIONAL, -- Cond codebookBased - maxRank INTEGER (1..4) OPTIONAL, -- Cond codebookBased - rbg-Size ENUMERATED { config2} OPTIONAL, -- Need S - uci-OnPUSCH CHOICE { release NULL, setup UCI-OnPUSCH} OPTIONAL, -- Need M - tp-pi2BPSK ENUMERATED {enabled} OPTIONAL, -- Need S - ... -} - -UCI-OnPUSCH ::= SEQUENCE { - betaOffsets CHOICE { - dynamic SEQUENCE (SIZE (4)) OF BetaOffsets, - semiStatic BetaOffsets - } OPTIONAL, -- Need M - scaling ENUMERATED { f0p5, f0p65, f0p8, f1 } +PUSCH-Config ::= SEQUENCE { + dataScramblingIdentityPUSCH INTEGER (0..1023) OPTIONAL, -- Need S + txConfig ENUMERATED {codebook, nonCodebook} OPTIONAL, -- Need S + dmrs-UplinkForPUSCH-MappingTypeA CHOICE { release NULL, setup DMRS-UplinkConfig } OPTIONAL, -- Need M + dmrs-UplinkForPUSCH-MappingTypeB CHOICE { release NULL, setup DMRS-UplinkConfig } OPTIONAL, -- Need M + + pusch-PowerControl PUSCH-PowerControl OPTIONAL, -- Need M + frequencyHopping ENUMERATED {intraSlot, interSlot} OPTIONAL, -- Need S + frequencyHoppingOffsetLists SEQUENCE (SIZE (1..4)) OF INTEGER (1.. maxNrofPhysicalResourceBlocks-1) OPTIONAL, -- Need M + resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch}, + pusch-TimeDomainAllocationList CHOICE { release NULL, setup PUSCH-TimeDomainResourceAllocationList } OPTIONAL, -- Need M + pusch-AggregationFactor ENUMERATED { n2, n4, n8 } OPTIONAL, -- Need S + mcs-Table ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S + mcs-TableTransformPrecoder ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S + transformPrecoder ENUMERATED {enabled, disabled} OPTIONAL, -- Need S + codebookSubset ENUMERATED {fullyAndPartialAndNonCoherent, partialAndNonCoherent, + nonCoherent} OPTIONAL, -- Cond codebookBased + maxRank INTEGER (1..4) OPTIONAL, -- Cond codebookBased + rbg-Size ENUMERATED { config2} OPTIONAL, -- Need S + uci-OnPUSCH CHOICE { release NULL, setup UCI-OnPUSCH} OPTIONAL, -- Need M + tp-pi2BPSK ENUMERATED {enabled} OPTIONAL, -- Need S + ... +} + +UCI-OnPUSCH ::= SEQUENCE { + betaOffsets CHOICE { + dynamic SEQUENCE (SIZE (4)) OF BetaOffsets, + semiStatic BetaOffsets + } OPTIONAL, -- Need M + scaling ENUMERATED { f0p5, f0p65, f0p8, f1 } } -- TAG-PUSCH-CONFIG-STOP -- TAG-PUSCH-CONFIGCOMMON-START -PUSCH-ConfigCommon ::= SEQUENCE { - groupHoppingEnabledTransformPrecoding ENUMERATED {enabled} OPTIONAL, -- Need R - pusch-TimeDomainAllocationList PUSCH-TimeDomainResourceAllocationList OPTIONAL, -- Need R - msg3-DeltaPreamble INTEGER (-1..6) OPTIONAL, -- Need R - p0-NominalWithGrant INTEGER (-202..24) OPTIONAL, -- Need R - ... +PUSCH-ConfigCommon ::= SEQUENCE { + groupHoppingEnabledTransformPrecoding ENUMERATED {enabled} OPTIONAL, -- Need R + pusch-TimeDomainAllocationList PUSCH-TimeDomainResourceAllocationList OPTIONAL, -- Need R + msg3-DeltaPreamble INTEGER (-1..6) OPTIONAL, -- Need R + p0-NominalWithGrant INTEGER (-202..24) OPTIONAL, -- Need R + ... } -- TAG-PUSCH-CONFIGCOMMON-STOP -- TAG-PUSCH-POWERCONTROL-START -PUSCH-PowerControl ::= SEQUENCE { - tpc-Accumulation ENUMERATED { disabled } OPTIONAL, -- Need S - msg3-Alpha Alpha OPTIONAL, -- Need S - p0-NominalWithoutGrant INTEGER (-202..24) OPTIONAL, -- Need M, - p0-AlphaSets SEQUENCE (SIZE (1..maxNrofP0-PUSCH-AlphaSets)) OF P0-PUSCH-AlphaSet OPTIONAL, -- Need M, - 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 - twoPUSCH-PC-AdjustmentStates ENUMERATED {twoStates} OPTIONAL, -- Need S - deltaMCS ENUMERATED {enabled} OPTIONAL, -- Need S - sri-PUSCH-MappingToAddModList SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControl OPTIONAL, -- Need N - sri-PUSCH-MappingToReleaseList SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControlId OPTIONAL -- Need N +PUSCH-PowerControl ::= SEQUENCE { + tpc-Accumulation ENUMERATED { disabled } OPTIONAL, -- Need S + msg3-Alpha Alpha OPTIONAL, -- Need S + p0-NominalWithoutGrant INTEGER (-202..24) OPTIONAL, -- Need M, + p0-AlphaSets SEQUENCE (SIZE (1..maxNrofP0-PUSCH-AlphaSets)) OF P0-PUSCH-AlphaSet OPTIONAL, -- Need M, + 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 + twoPUSCH-PC-AdjustmentStates ENUMERATED {twoStates} OPTIONAL, -- Need S + deltaMCS ENUMERATED {enabled} OPTIONAL, -- Need S + sri-PUSCH-MappingToAddModList SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControl OPTIONAL, -- Need N + sri-PUSCH-MappingToReleaseList SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControlId OPTIONAL -- Need N } -- 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 INTEGER (-16..15) OPTIONAL, - alpha Alpha OPTIONAL -- Need S +-- be used for a particular PUSCH transmission. (see 38.213, section 7.1.1) +P0-PUSCH-AlphaSet ::= SEQUENCE { + p0-PUSCH-AlphaSetId P0-PUSCH-AlphaSetId, + p0 INTEGER (-16..15) OPTIONAL, -- Need S + 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) +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 - } +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) +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 { - sri-PUSCH-PowerControlId SRI-PUSCH-PowerControlId, - sri-PUSCH-PathlossReferenceRS-Id PUSCH-PathlossReferenceRS-Id, - sri-P0-PUSCH-AlphaSetId P0-PUSCH-AlphaSetId, - sri-PUSCH-ClosedLoopIndex ENUMERATED { i0, i1 } +SRI-PUSCH-PowerControl ::= SEQUENCE { + sri-PUSCH-PowerControlId SRI-PUSCH-PowerControlId, + sri-PUSCH-PathlossReferenceRS-Id PUSCH-PathlossReferenceRS-Id, + sri-P0-PUSCH-AlphaSetId P0-PUSCH-AlphaSetId, + sri-PUSCH-ClosedLoopIndex ENUMERATED { i0, i1 } } -SRI-PUSCH-PowerControlId ::= INTEGER (0..maxNrofSRI-PUSCH-Mappings-1) +SRI-PUSCH-PowerControlId ::= INTEGER (0..maxNrofSRI-PUSCH-Mappings-1) -- A set of beta-offset values -BetaOffsets ::= SEQUENCE { - betaOffsetACK-Index1 INTEGER(0..31) OPTIONAL, -- Need S - betaOffsetACK-Index2 INTEGER(0..31) OPTIONAL, -- Need S - betaOffsetACK-Index3 INTEGER(0..31) OPTIONAL, -- Need S - betaOffsetCSI-Part1-Index1 INTEGER(0..31) OPTIONAL, -- Need S - betaOffsetCSI-Part1-Index2 INTEGER(0..31) OPTIONAL, -- Need S - betaOffsetCSI-Part2-Index1 INTEGER(0..31) OPTIONAL, -- Need S - betaOffsetCSI-Part2-Index2 INTEGER(0..31) OPTIONAL -- Need S +BetaOffsets ::= SEQUENCE { + betaOffsetACK-Index1 INTEGER(0..31) OPTIONAL, -- Need S + betaOffsetACK-Index2 INTEGER(0..31) OPTIONAL, -- Need S + betaOffsetACK-Index3 INTEGER(0..31) OPTIONAL, -- Need S + betaOffsetCSI-Part1-Index1 INTEGER(0..31) OPTIONAL, -- Need S + betaOffsetCSI-Part1-Index2 INTEGER(0..31) OPTIONAL, -- Need S + betaOffsetCSI-Part2-Index1 INTEGER(0..31) OPTIONAL, -- Need S + betaOffsetCSI-Part2-Index2 INTEGER(0..31) OPTIONAL -- Need S } -- TAG-PUSCH-POWERCONTROL-STOP -- TAG-PUSCH-SERVINGCELLCONFIG-START -PUSCH-ServingCellConfig ::= SEQUENCE { - codeBlockGroupTransmission CHOICE { release NULL, setup PUSCH-CodeBlockGroupTransmission } OPTIONAL, -- Need M - rateMatching ENUMERATED {limitedBufferRM} OPTIONAL, -- Need S - xOverhead ENUMERATED {xoh6, xoh12, xoh18} OPTIONAL, -- Need S - ... +PUSCH-ServingCellConfig ::= SEQUENCE { + codeBlockGroupTransmission CHOICE { release NULL, setup PUSCH-CodeBlockGroupTransmission } OPTIONAL, -- Need M + rateMatching ENUMERATED {limitedBufferRM} OPTIONAL, -- Need S + xOverhead ENUMERATED {xoh6, xoh12, xoh18} OPTIONAL, -- Need S + ... } -PUSCH-CodeBlockGroupTransmission ::= SEQUENCE { - maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, - ... +PUSCH-CodeBlockGroupTransmission ::= SEQUENCE { + maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8}, + ... } -- TAG-PUSCH-SERVINGCELLCONFIG-STOP @@ -1996,565 +3315,673 @@ PUSCH-CodeBlockGroupTransmission ::= SEQUENCE { PUSCH-TimeDomainResourceAllocationList ::= SEQUENCE (SIZE(1..maxNrofUL-Allocations)) OF PUSCH-TimeDomainResourceAllocation PUSCH-TimeDomainResourceAllocation ::= SEQUENCE { - k2 INTEGER(0..32) OPTIONAL, -- Need S - mappingType ENUMERATED {typeA, typeB}, - startSymbolAndLength INTEGER (0..127) + k2 INTEGER(0..32) OPTIONAL, -- Need S + mappingType ENUMERATED {typeA, typeB}, + startSymbolAndLength INTEGER (0..127) } -- TAG-PUSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-STOP -- TAG-PUSCH-TPC-COMMANDCONFIG-START -PUSCH-TPC-CommandConfig ::= SEQUENCE { - tpc-Index INTEGER (1..15) OPTIONAL, -- Cond SUL - tpc-IndexSUL INTEGER (1..15) OPTIONAL, -- Cond SUL-Only - targetCell ServCellIndex OPTIONAL, -- Need S - ... +PUSCH-TPC-CommandConfig ::= SEQUENCE { + tpc-Index INTEGER (1..15) OPTIONAL, -- Cond SUL + tpc-IndexSUL INTEGER (1..15) OPTIONAL, -- Cond SUL-Only + targetCell ServCellIndex OPTIONAL, -- Need S + ... } -- TAG-PUSCH-TPC-COMMANDCONFIG-STOP +-- TAG-Q-OFFSET-START + +Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + +-- TAG-Q-OFFSET-STOP +-- TAG-Q-QUALMIN-START -Q-OffsetRange ::= ENUMERATED { - dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, - dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, - dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, - dB6, dB8, dB10, dB12, dB14, dB16, dB18, - dB20, dB22, dB24} +Q-QualMin ::= INTEGER (-34..-3) -- FFS range +-- TAG-Q-QUALMIN-STOP +-- TAG-Q-RXLEVMIN-START + +Q-RxLevMin ::= INTEGER (-70..-22) -- FFS range + +-- TAG-Q-RXLEVMIN-STOP -- TAG-QUANTITY-CONFIG-START -QuantityConfig ::= SEQUENCE { - quantityConfigNR-List SEQUENCE (SIZE (1..maxNrofQuantityConfig)) OF QuantityConfigNR OPTIONAL, -- Need M - ... +QuantityConfig ::= SEQUENCE { + quantityConfigNR-List SEQUENCE (SIZE (1..maxNrofQuantityConfig)) OF QuantityConfigNR OPTIONAL, -- Need M + ..., + [[ + quantityConfigEUTRA FilterConfig OPTIONAL -- Need M + ]] } -QuantityConfigNR::= SEQUENCE { - quantityConfigCell QuantityConfigRS, - quantityConfigRS-Index QuantityConfigRS OPTIONAL -- Need M +QuantityConfigNR::= SEQUENCE { + quantityConfigCell QuantityConfigRS, + quantityConfigRS-Index QuantityConfigRS OPTIONAL -- Need M } -QuantityConfigRS ::= SEQUENCE { - ssb-FilterConfig FilterConfig, - cs-RS-FilterConfig FilterConfig +QuantityConfigRS ::= SEQUENCE { + ssb-FilterConfig FilterConfig, + cs-RS-FilterConfig FilterConfig } -FilterConfig ::= SEQUENCE { - filterCoefficientRSRP FilterCoefficient DEFAULT fc4, - filterCoefficientRSRQ FilterCoefficient DEFAULT fc4, - filterCoefficientRS-SINR FilterCoefficient DEFAULT fc4 +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 { - rach-ConfigGeneric RACH-ConfigGeneric, - totalNumberOfRA-Preambles INTEGER (1..63) OPTIONAL, -- Need S - 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 { - ra-Msg3SizeGroupA ENUMERATED { b56, b144, b208, b256, b282, b480, b640, - b800, b1000, spare7, spare6, spare5, spare4, spare3, spare2, spare1}, - messagePowerOffsetGroupB ENUMERATED { minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18}, - numberOfRA-PreamblesGroupA INTEGER (1..64) - } OPTIONAL, -- Need R - ra-ContentionResolutionTimer ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64}, - rsrp-ThresholdSSB RSRP-Range OPTIONAL, -- Need R - rsrp-ThresholdSSB-SUL RSRP-Range OPTIONAL, -- Cond SUL - prach-RootSequenceIndex CHOICE { - l839 INTEGER (0..837), - l139 INTEGER (0..137) - }, - msg1-SubcarrierSpacing SubcarrierSpacing OPTIONAL, --Need S - restrictedSetConfig ENUMERATED {unrestrictedSet, restrictedSetTypeA, restrictedSetTypeB}, - msg3-transformPrecoding ENUMERATED {enabled} OPTIONAL, -- Need R - ... +RACH-ConfigCommon ::= SEQUENCE { + rach-ConfigGeneric RACH-ConfigGeneric, + totalNumberOfRA-Preambles INTEGER (1..63) OPTIONAL, -- Need S + 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 { + ra-Msg3SizeGroupA ENUMERATED {b56, b144, b208, b256, b282, b480, b640, + b800, b1000, b72, spare6, spare5,spare4, spare3, spare2, spare1}, + messagePowerOffsetGroupB ENUMERATED { minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18}, + numberOfRA-PreamblesGroupA INTEGER (1..64) + } OPTIONAL, -- Need R + ra-ContentionResolutionTimer ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64}, + rsrp-ThresholdSSB RSRP-Range OPTIONAL, -- Need R + rsrp-ThresholdSSB-SUL RSRP-Range OPTIONAL, -- Cond SUL + prach-RootSequenceIndex CHOICE { + l839 INTEGER (0..837), + l139 INTEGER (0..137) + }, + msg1-SubcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond L139Need S + restrictedSetConfig ENUMERATED {unrestrictedSet, restrictedSetTypeA, restrictedSetTypeB}, + msg3-transformPrecoder ENUMERATED {enabled} OPTIONAL, -- Need R + ... } -- TAG-RACH-CONFIG-COMMON-STOP --- TAG-RACH-CONFIG-GENERIC-START - -RACH-ConfigGeneric ::= SEQUENCE { - prach-ConfigurationIndex INTEGER (0..255), - msg1-FDM ENUMERATED {one, two, four, eight}, - msg1-FrequencyStart INTEGER (0..maxNrofPhysicalResourceBlocks-1), - zeroCorrelationZoneConfig INTEGER(0..15), - preambleReceivedTargetPower INTEGER (-202..-60), - preambleTransMax ENUMERATED {n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200}, - powerRampingStep ENUMERATED {dB0, dB2, dB4, dB6}, - ra-ResponseWindow ENUMERATED {sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80}, - ... -} - --- TAG-RACH-CONFIG-GENERIC-STOP -- TAG-RACH-CONFIG-DEDICATED-START --- FFS_Standlone: resources for msg1-based on-demand SI request -RACH-ConfigDedicated ::= SEQUENCE { - cfra CFRA OPTIONAL, -- Need N - ra-Prioritization RA-Prioritization OPTIONAL, -- Need N - ... +RACH-ConfigDedicated ::= SEQUENCE { + cfra CFRA OPTIONAL, -- Need S + ra-Prioritization RA-Prioritization OPTIONAL, --Need N + ... } -CFRA ::= SEQUENCE { - occasions SEQUENCE { - rach-ConfigGeneric RACH-ConfigGeneric, - ssb-perRACH-Occasion ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen} OPTIONAL -- Cond SSB-CFRA - } OPTIONAL, -- Need S - resources CHOICE { - ssb SEQUENCE { - ssb-ResourceList SEQUENCE (SIZE(1..maxRA-SSB-Resources)) OF CFRA-SSB-Resource, - ra-ssb-OccasionMaskIndex INTEGER (0..15) - }, - csirs SEQUENCE { - csirs-ResourceList SEQUENCE (SIZE(1..maxRA-CSIRS-Resources)) OF CFRA-CSIRS-Resource, - rsrp-ThresholdCSI-RS RSRP-Range - } - }, - ... +CFRA ::= SEQUENCE { + occasions SEQUENCE { + rach-ConfigGeneric RACH-ConfigGeneric, + ssb-perRACH-Occasion ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen} OPTIONAL -- Cond SSB-CFRA + } OPTIONAL, -- Need S + resources CHOICE { + ssb SEQUENCE { + ssb-ResourceList SEQUENCE (SIZE(1..maxRA-SSB-Resources)) OF CFRA-SSB-Resource, + ra-ssb-OccasionMaskIndex INTEGER (0..15) + }, + csirs SEQUENCE { + csirs-ResourceList SEQUENCE (SIZE(1..maxRA-CSIRS-Resources)) OF CFRA-CSIRS-Resource, + rsrp-ThresholdCSI-RS RSRP-Range + } + }, + ..., + [[ + totalNumberOfRA-Preambles-v1530 INTEGER (1..63) OPTIONAL -- Cond Occasions + ]] +} + +CFRA-SSB-Resource ::= SEQUENCE { + ssb SSB-Index, + ra-PreambleIndex INTEGER (0..63), + ... } -CFRA-SSB-Resource ::= SEQUENCE { - ssb SSB-Index, - ra-PreambleIndex INTEGER (0..63), - ... +CFRA-CSIRS-Resource ::= SEQUENCE { + csi-RS CSI-RS-Index, + ra-OccasionList SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS)) OF INTEGER (0..maxRA-Occasions-1), + ra-PreambleIndex INTEGER (0..63), + ... } -CFRA-CSIRS-Resource ::= SEQUENCE { - csi-RS CSI-RS-Index, - ra-OccasionList SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS)) OF INTEGER (0..maxRA-Occasions-1), - ra-PreambleIndex INTEGER (0..63), - ... +-- TAG-RACH-CONFIG-DEDICATED-STOP +-- TAG-RACH-CONFIG-GENERIC-START + +RACH-ConfigGeneric ::= SEQUENCE { + prach-ConfigurationIndex INTEGER (0..255), + msg1-FDM ENUMERATED {one, two, four, eight}, + msg1-FrequencyStart INTEGER (0..maxNrofPhysicalResourceBlocks-1), + zeroCorrelationZoneConfig INTEGER(0..15), + preambleReceivedTargetPower INTEGER (-202..-60), + preambleTransMax ENUMERATED {n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200}, + powerRampingStep ENUMERATED {dB0, dB2, dB4, dB6}, + ra-ResponseWindow ENUMERATED {sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80}, + ... } --- TAG-RACH-CONFIG-DEDICATED-STOP +-- TAG-RACH-CONFIG-GENERIC-STOP -- TAG-RA-PRIORITIZATION-START -RA-Prioritization ::= SEQUENCE { - powerRampingStepHighPriority ENUMERATED {dB0, dB2, dB4, dB6}, - scalingFactorBI ENUMERATED {zero, dot25, dot5, dot75} OPTIONAL, -- Need R - ... +RA-Prioritization ::= SEQUENCE { + powerRampingStepHighPriority ENUMERATED {dB0, dB2, dB4, dB6}, + scalingFactorBI ENUMERATED {zero, dot25, dot5, dot75} OPTIONAL, -- Need R + ... } -- TAG-RA-PRIORITIZATION-STOP -- TAG-RADIO-BEARER-CONFIG-START -RadioBearerConfig ::= SEQUENCE { - 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, -- Need M - ... +RadioBearerConfig ::= SEQUENCE { + srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn + srb3-ToRelease ENUMERATED{true} OPTIONAL, -- Need N + drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toNR + drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need N + securityConfig SecurityConfig OPTIONAL, -- Need M + ... } -SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod -SRB-ToAddMod ::= SEQUENCE { - srb-Identity SRB-Identity, - reestablishPDCP ENUMERATED{true} OPTIONAL, -- Need N - discardOnPDCP ENUMERATED{true} OPTIONAL, -- Need N - pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP - ... +SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod +SRB-ToAddMod ::= SEQUENCE { + srb-Identity SRB-Identity, + reestablishPDCP ENUMERATED{true} OPTIONAL, -- Need N + discardOnPDCP ENUMERATED{true} OPTIONAL, -- Need N + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + ... } - -DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod -DRB-ToAddMod ::= SEQUENCE { - cnAssociation CHOICE { - eps-BearerIdentity INTEGER (0..15), -- EPS-DRB-Setup - sdap-Config SDAP-Config -- 5GC - } OPTIONAL, -- Cond DRBSetup - drb-Identity DRB-Identity, - reestablishPDCP ENUMERATED{true} OPTIONAL, -- Need N - recoverPDCP ENUMERATED{true} OPTIONAL, -- Need N - pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP - ... +DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod +DRB-ToAddMod ::= SEQUENCE { + cnAssociation CHOICE { + eps-BearerIdentity INTEGER (0..15), -- EPS-DRB-Setup + sdap-Config SDAP-Config -- 5GC + } OPTIONAL, -- Cond DRBSetup + drb-Identity DRB-Identity, + reestablishPDCP ENUMERATED{true} OPTIONAL, -- Need N + recoverPDCP ENUMERATED{true} OPTIONAL, -- Need N + pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP + ... } -DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity +DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity -SecurityConfig ::= SEQUENCE { - securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond RBTermChange - keyToUse ENUMERATED{keNB, s-KgNB} OPTIONAL, -- Cond RBTermChange - ... +SecurityConfig ::= SEQUENCE { + securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond RBTermChange + keyToUse ENUMERATED{master, secondary} OPTIONAL, -- Cond RBTermChange + ... } + + -- TAG-RADIO-BEARER-CONFIG-STOP -- TAG-RADIOLINKMONITORINGCONFIG-START -RadioLinkMonitoringConfig ::= SEQUENCE { - failureDetectionResourcesToAddModList SEQUENCE (SIZE(1..maxNrofFailureDetectionResources)) OF RadioLinkMonitoringRS OPTIONAL, -- Need N - failureDetectionResourcesToReleaseList SEQUENCE (SIZE(1..maxNrofFailureDetectionResources)) OF RadioLinkMonitoringRS-Id OPTIONAL,-- Need N - beamFailureInstanceMaxCount ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10} OPTIONAL, -- Need S - beamFailureDetectionTimer ENUMERATED {pbfd1, pbfd2, pbfd3, pbfd4, pbfd5, pbfd6, pbfd8, pbfd10} OPTIONAL, -- Need R - ... +RadioLinkMonitoringConfig ::= SEQUENCE { + failureDetectionResourcesToAddModList SEQUENCE (SIZE(1..maxNrofFailureDetectionResources)) OF RadioLinkMonitoringRS OPTIONAL, -- Need N + failureDetectionResourcesToReleaseList SEQUENCE (SIZE(1..maxNrofFailureDetectionResources)) OF RadioLinkMonitoringRS-Id OPTIONAL,-- Need N + beamFailureInstanceMaxCount ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10} OPTIONAL, -- Need R + beamFailureDetectionTimer ENUMERATED {pbfd1, pbfd2, pbfd3, pbfd4, pbfd5, pbfd6, pbfd8, pbfd10} OPTIONAL, -- Need R + ... } -RadioLinkMonitoringRS ::= SEQUENCE { - radioLinkMonitoringRS-Id RadioLinkMonitoringRS-Id, - purpose ENUMERATED {beamFailure, rlf, both}, - detectionResource CHOICE { - ssb-Index SSB-Index, - csi-RS-Index NZP-CSI-RS-ResourceId - }, - ... +RadioLinkMonitoringRS ::= SEQUENCE { + radioLinkMonitoringRS-Id RadioLinkMonitoringRS-Id, + purpose ENUMERATED {beamFailure, rlf, both}, + detectionResource CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId + }, + ... } -- TAG-RADIOLINKMONITORINGCONFIG-STOP -- TAG-RADIOLINKMONITORINGRSID-START -RadioLinkMonitoringRS-Id ::= INTEGER (0..maxNrofFailureDetectionResources-1) +RadioLinkMonitoringRS-Id ::= INTEGER (0..maxNrofFailureDetectionResources-1) -- TAG-RADIOLINKMONITORINGRSID-STOP +-- TAG-RAN-AREACODE-START + +RAN-AreaCode ::= INTEGER (0..255) + +-- TAG-RAN-AREACODE-STOP -- TAG-RATEMATCHPATTERN-START -RateMatchPattern ::= SEQUENCE { - rateMatchPatternId RateMatchPatternId, - - patternType CHOICE { - bitmaps SEQUENCE { - resourceBlocks BIT STRING (SIZE (275)), - symbolsInResourceBlock CHOICE { - oneSlot BIT STRING (SIZE (14)), - twoSlots BIT STRING (SIZE (28)) - }, - 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 - ... - }, - controlResourceSet ControlResourceSetId - }, - subcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond CellLevel - mode ENUMERATED { dynamic, semiStatic }, - ... +RateMatchPattern ::= SEQUENCE { + rateMatchPatternId RateMatchPatternId, + + patternType CHOICE { + bitmaps SEQUENCE { + resourceBlocks BIT STRING (SIZE (275)), + symbolsInResourceBlock CHOICE { + oneSlot BIT STRING (SIZE (14)), + twoSlots BIT STRING (SIZE (28)) + }, + 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 + ... + }, + controlResourceSet ControlResourceSetId + }, + subcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond CellLevel + dummy ENUMERATED { dynamic, semiStatic }, + ... } -- TAG-RATEMATCHPATTERN-STOP -- TAG-RATEMATCHPATTERNID-START -RateMatchPatternId ::= INTEGER (0..maxNrofRateMatchPatterns-1) +RateMatchPatternId ::= INTEGER (0..maxNrofRateMatchPatterns-1) -- TAG-RATEMATCHPATTERNID-STOP -- TAG-RATEMATCHPATTERNLTE-CRS-START -RateMatchPatternLTE-CRS ::= SEQUENCE { - carrierFreqDL INTEGER (0..16383), - carrierBandwidthDL ENUMERATED {n6, n15, n25, n50, n75, n100, spare2, spare1}, - mbsfn-SubframeConfigList EUTRA-MBSFN-SubframeConfigList OPTIONAL, -- Need M - nrofCRS-Ports ENUMERATED {n1, n2, n4}, - v-Shift ENUMERATED {n0, n1, n2, n3, n4, n5} +RateMatchPatternLTE-CRS ::= SEQUENCE { + carrierFreqDL INTEGER (0..16383), + carrierBandwidthDL ENUMERATED {n6, n15, n25, n50, n75, n100, spare2, spare1}, + mbsfn-SubframeConfigList EUTRA-MBSFN-SubframeConfigList OPTIONAL, -- Need M + nrofCRS-Ports ENUMERATED {n1, n2, n4}, + v-Shift ENUMERATED {n0, n1, n2, n3, n4, n5} } -- TAG-RATEMATCHPATTERNLTE-CRS-STOP -- TAG-REPORT-CONFIG-ID-START -ReportConfigId ::= INTEGER (1..maxReportConfigId) +ReportConfigId ::= INTEGER (1..maxReportConfigId) -- TAG-REPORT-CONFIG-ID-STOP +-- TAG-REPORT-CONFIG-INTER-RAT-START + +ReportConfigInterRAT ::= SEQUENCE { + reportType CHOICE { + periodical PeriodicalReportConfigInterRAT, + eventTriggered EventTriggerConfigInterRAT, + reportCGI ReportCGI-EUTRA, + ... + } +} + +ReportCGI-EUTRA ::= SEQUENCE { + cellForWhichToReportCGI EUTRA-PhysCellId, + ... +} + +EventTriggerConfigInterRAT ::= SEQUENCE { + eventId CHOICE { + eventB1 SEQUENCE { + b1-ThresholdEUTRA MeasTriggerQuantityEUTRA, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + ... + }, + eventB2 SEQUENCE { + b2-Threshold1 MeasTriggerQuantity, + b2-Threshold2EUTRA MeasTriggerQuantityEUTRA, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + ... + }, + ... + }, + rsType NR-RS-Type, + + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + reportQuantity MeasReportQuantity, + maxReportCells INTEGER (1..maxCellReport), + ... + +} + +PeriodicalReportConfigInterRAT ::= SEQUENCE { + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + reportQuantity MeasReportQuantity, + maxReportCells INTEGER (1..maxCellReport), + ... +} + +MeasTriggerQuantityEUTRA::= CHOICE { + rsrp RSRP-RangeEUTRA, + rsrq RSRQ-RangeEUTRA, + sinr SINR-RangeEUTRA +} + +RSRP-RangeEUTRA ::= INTEGER (0..97) +RSRQ-RangeEUTRA ::= INTEGER (0..34) +SINR-RangeEUTRA ::= INTEGER (0..127) + +-- TAG-REPORT-CONFIG-INTER-RAT-STOP -- TAG-REPORT-CONFIG-START -ReportConfigNR ::= SEQUENCE { - reportType CHOICE { - periodical PeriodicalReportConfig, - eventTriggered EventTriggerConfig, --- reportCGI is to be completed before the end of Rel-15. - ... - } -} - --- 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 { - eventA1 SEQUENCE { - a1-Threshold MeasTriggerQuantity, - reportOnLeave BOOLEAN, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger - }, - eventA2 SEQUENCE { - a2-Threshold MeasTriggerQuantity, - reportOnLeave BOOLEAN, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger - }, - eventA3 SEQUENCE { - a3-Offset MeasTriggerQuantityOffset, - reportOnLeave BOOLEAN, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - useWhiteCellList BOOLEAN - }, - eventA4 SEQUENCE { - a4-Threshold MeasTriggerQuantity, - reportOnLeave BOOLEAN, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - useWhiteCellList BOOLEAN - }, - eventA5 SEQUENCE { - a5-Threshold1 MeasTriggerQuantity, - a5-Threshold2 MeasTriggerQuantity, - reportOnLeave BOOLEAN, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - useWhiteCellList BOOLEAN - }, - eventA6 SEQUENCE { - a6-Offset MeasTriggerQuantityOffset, - reportOnLeave BOOLEAN, - hysteresis Hysteresis, - timeToTrigger TimeToTrigger, - useWhiteCellList BOOLEAN - }, - ... - }, - - rsType NR-RS-Type, - - reportInterval ReportInterval, - reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, - - reportQuantityCell MeasReportQuantity, - maxReportCells INTEGER (1..maxCellReport), - - reportQuantityRsIndexes MeasReportQuantity OPTIONAL, -- Need R - maxNrofRSIndexesToReport INTEGER (1..maxNrofIndexesToReport) OPTIONAL, -- Need R - includeBeamMeasurements BOOLEAN, - reportAddNeighMeas ENUMERATED {setup} OPTIONAL, -- Need R - ... - -} - -PeriodicalReportConfig ::= SEQUENCE { - rsType NR-RS-Type, - - reportInterval ReportInterval, - reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, - - reportQuantityCell MeasReportQuantity, - maxReportCells INTEGER (1..maxCellReport), - - reportQuantityRsIndexes MeasReportQuantity OPTIONAL, -- Need R - maxNrofRsIndexesToReport INTEGER (1..maxNrofIndexesToReport) OPTIONAL, -- Need R - includeBeamMeasurements BOOLEAN, - useWhiteCellList BOOLEAN, - ... - -} - -NR-RS-Type ::= ENUMERATED {ssb, csi-rs} - -MeasTriggerQuantity ::= CHOICE { - rsrp RSRP-Range, - rsrq RSRQ-Range, - sinr SINR-Range -} - -MeasTriggerQuantityOffset ::= CHOICE { - rsrp INTEGER (-30..30), - rsrq INTEGER (-30..30), - sinr INTEGER (-30..30) -} - - -MeasReportQuantity ::= SEQUENCE { - rsrp BOOLEAN, - rsrq BOOLEAN, - sinr BOOLEAN +ReportConfigNR ::= SEQUENCE { + reportType CHOICE { + periodical PeriodicalReportConfig, + eventTriggered EventTriggerConfig, + ..., + reportCGI ReportCGI + } +} + +ReportCGI ::= SEQUENCE { + cellForWhichToReportCGI PhysCellId, + ... +} + +EventTriggerConfig::= SEQUENCE { + eventId CHOICE { + eventA1 SEQUENCE { + a1-Threshold MeasTriggerQuantity, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + eventA2 SEQUENCE { + a2-Threshold MeasTriggerQuantity, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger + }, + eventA3 SEQUENCE { + a3-Offset MeasTriggerQuantityOffset, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + useWhiteCellList BOOLEAN + }, + eventA4 SEQUENCE { + a4-Threshold MeasTriggerQuantity, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + useWhiteCellList BOOLEAN + }, + eventA5 SEQUENCE { + a5-Threshold1 MeasTriggerQuantity, + a5-Threshold2 MeasTriggerQuantity, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + useWhiteCellList BOOLEAN + }, + eventA6 SEQUENCE { + a6-Offset MeasTriggerQuantityOffset, + reportOnLeave BOOLEAN, + hysteresis Hysteresis, + timeToTrigger TimeToTrigger, + useWhiteCellList BOOLEAN + }, + ... + }, + + rsType NR-RS-Type, + + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + + reportQuantityCell MeasReportQuantity, + maxReportCells INTEGER (1..maxCellReport), + + reportQuantityRsIndexes MeasReportQuantity OPTIONAL, -- Need R + maxNrofRSIndexesToReport INTEGER (1..maxNrofIndexesToReport) OPTIONAL, -- Need R + includeBeamMeasurements BOOLEAN, + reportAddNeighMeas ENUMERATED {setup} OPTIONAL, -- Need R + ... +} + +PeriodicalReportConfig ::= SEQUENCE { + rsType NR-RS-Type, + + reportInterval ReportInterval, + reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity}, + + reportQuantityCell MeasReportQuantity, + maxReportCells INTEGER (1..maxCellReport), + + reportQuantityRsIndexes MeasReportQuantity OPTIONAL, -- Need R + maxNrofRsIndexesToReport INTEGER (1..maxNrofIndexesToReport) OPTIONAL, -- Need R + includeBeamMeasurements BOOLEAN, + useWhiteCellList BOOLEAN, + ... +} + +NR-RS-Type ::= ENUMERATED {ssb, csi-rs} + +MeasTriggerQuantity ::= CHOICE { + rsrp RSRP-Range, + rsrq RSRQ-Range, + sinr SINR-Range +} + +MeasTriggerQuantityOffset ::= CHOICE { + rsrp INTEGER (-30..30), + rsrq INTEGER (-30..30), + sinr INTEGER (-30..30) +} + + +MeasReportQuantity ::= SEQUENCE { + rsrp BOOLEAN, + rsrq BOOLEAN, + sinr BOOLEAN } -- TAG-REPORT-CONFIG-START -- TAG-REPORT-CONFIG-TO-ADD-MOD-LIST-START -ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod +ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod -ReportConfigToAddMod ::= SEQUENCE { - reportConfigId ReportConfigId, - reportConfig CHOICE { - reportConfigNR ReportConfigNR, - ... - } +ReportConfigToAddMod ::= SEQUENCE { + reportConfigId ReportConfigId, + reportConfig CHOICE { + reportConfigNR ReportConfigNR, + ..., + reportConfigInterRAT ReportConfigInterRAT + } } -- TAG- REPORT-CONFIG-TO-ADD-MOD-LIST-STOP -ReportInterval ::= ENUMERATED { ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, ms20480, ms40960, - min1, min6, min12, min30 } +ReportInterval ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, ms20480, ms40960, + min1,min6, min12, min30 } + +-- TAG-RESELECTION-THRESHOLD-START + +ReselectionThreshold ::= INTEGER (0..31) + +-- TAG-RESELECTION-THRESHOLD-STOP +-- TAG-RESELECTION-THRESHOLDQ-START + +ReselectionThresholdQ ::= INTEGER (0..31) + +-- TAG-RESELECTION-THRESHOLDQ-STOP +-- TAG-RESUME-CAUSE-START +ResumeCause ::= ENUMERATED {emergency, highPriorityAccess, mt-Access, mo-Signalling, + mo-Data, mo-VoiceCall, mo-VideoCall, mo-SMS, rna-Update, mps-PriorityAccess, mcs-PriorityAccess, spare1, spare2, spare3, spare4, spare5 } + +-- TAG-RESUME-CAUSE-STOP -- TAG-RLC-BEARERCONFIG-START -RLC-BearerConfig ::= SEQUENCE { - logicalChannelIdentity LogicalChannelIdentity, - servedRadioBearer CHOICE { - srb-Identity SRB-Identity, - drb-Identity DRB-Identity - } OPTIONAL, -- Cond LCH-SetupOnly +RLC-BearerConfig ::= SEQUENCE { + logicalChannelIdentity LogicalChannelIdentity, + servedRadioBearer CHOICE { + srb-Identity SRB-Identity, + drb-Identity DRB-Identity + } OPTIONAL, -- Cond LCH-SetupOnly - reestablishRLC ENUMERATED {true} OPTIONAL, -- Need R - rlc-Config RLC-Config OPTIONAL, -- Cond LCH-Setup + 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 + ... } -- TAG-RLC-BEARERCONFIG-STOP -- TAG-RLC-CONFIG-START -RLC-Config ::= CHOICE { - am SEQUENCE { - ul-AM-RLC UL-AM-RLC, - dl-AM-RLC DL-AM-RLC - }, - um-Bi-Directional SEQUENCE { - ul-UM-RLC UL-UM-RLC, - dl-UM-RLC DL-UM-RLC - }, - um-Uni-Directional-UL SEQUENCE { - ul-UM-RLC UL-UM-RLC - }, - um-Uni-Directional-DL SEQUENCE { - dl-UM-RLC DL-UM-RLC - }, - ... -} - -UL-AM-RLC ::= SEQUENCE { - sn-FieldLength SN-FieldLengthAM OPTIONAL, -- Cond Reestab - t-PollRetransmit T-PollRetransmit, - pollPDU PollPDU, - pollByte PollByte, - maxRetxThreshold ENUMERATED { t1, t2, t3, t4, t6, t8, t16, t32 } -} - -DL-AM-RLC ::= SEQUENCE { - sn-FieldLength SN-FieldLengthAM OPTIONAL, -- Cond Reestab - t-Reassembly T-Reassembly, - t-StatusProhibit T-StatusProhibit -} - -UL-UM-RLC ::= SEQUENCE { - sn-FieldLength SN-FieldLengthUM OPTIONAL -- Cond Reestab -} - -DL-UM-RLC ::= SEQUENCE { - sn-FieldLength SN-FieldLengthUM OPTIONAL, -- Cond Reestab - t-Reassembly T-Reassembly -} - -T-PollRetransmit ::= ENUMERATED { - ms5, ms10, ms15, ms20, ms25, ms30, ms35, - ms40, ms45, ms50, ms55, ms60, ms65, ms70, - ms75, ms80, ms85, ms90, ms95, ms100, ms105, - ms110, ms115, ms120, ms125, ms130, ms135, - ms140, ms145, ms150, ms155, ms160, ms165, - ms170, ms175, ms180, ms185, ms190, ms195, - ms200, ms205, ms210, ms215, ms220, ms225, - ms230, ms235, ms240, ms245, ms250, ms300, - ms350, ms400, ms450, ms500, ms800, ms1000, - ms2000, ms4000, spare5, spare4, spare3, - spare2, spare1} - - -PollPDU ::= ENUMERATED { - p4, p8, p16, p32, p64, p128, p256, p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384, p20480, - p24576, p28672, p32768, p40960, p49152, p57344, p65536, infinity, spare8, spare7, spare6, spare5, spare4, - spare3, spare2, spare1} - -PollByte ::= ENUMERATED { - kB1, kB2, kB5, kB8, kB10, kB15, kB25, kB50, kB75, - kB100, kB125, kB250, kB375, kB500, kB750, kB1000, - kB1250, kB1500, kB2000, kB3000, kB4000, kB4500, - kB5000, kB5500, kB6000, kB6500, kB7000, kB7500, - mB8, mB9, mB10, mB11, mB12, mB13, mB14, mB15, - mB16, mB17, mB18, mB20, mB25, mB30, mB40, infinity, - spare20, spare19, spare18, spare17, spare16, - spare15, spare14, spare13, spare12, spare11, - spare10, spare9, spare8, spare7, spare6, spare5, - spare4, spare3, spare2, spare1} - -T-Reassembly ::= ENUMERATED { - ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, - ms40, ms45, ms50, ms55, ms60, ms65, ms70, - ms75, ms80, ms85, ms90, ms95, ms100, ms110, - ms120, ms130, ms140, ms150, ms160, ms170, - ms180, ms190, ms200, spare1} - -T-StatusProhibit ::= ENUMERATED { - ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, - ms40, ms45, ms50, ms55, ms60, ms65, ms70, - ms75, ms80, ms85, ms90, ms95, ms100, ms105, - ms110, ms115, ms120, ms125, ms130, ms135, - ms140, ms145, ms150, ms155, ms160, ms165, - ms170, ms175, ms180, ms185, ms190, ms195, - ms200, ms205, ms210, ms215, ms220, ms225, - ms230, ms235, ms240, ms245, ms250, ms300, - ms350, ms400, ms450, ms500, ms800, ms1000, - ms1200, ms1600, ms2000, ms2400, spare2, spare1} - -SN-FieldLengthUM ::= ENUMERATED {size6, size12} -SN-FieldLengthAM ::= ENUMERATED {size12, size18} +RLC-Config ::= CHOICE { + am SEQUENCE { + ul-AM-RLC UL-AM-RLC, + dl-AM-RLC DL-AM-RLC + }, + um-Bi-Directional SEQUENCE { + ul-UM-RLC UL-UM-RLC, + dl-UM-RLC DL-UM-RLC + }, + um-Uni-Directional-UL SEQUENCE { + ul-UM-RLC UL-UM-RLC + }, + um-Uni-Directional-DL SEQUENCE { + dl-UM-RLC DL-UM-RLC + }, + ... +} + +UL-AM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLengthAM OPTIONAL, -- Cond Reestab + t-PollRetransmit T-PollRetransmit, + pollPDU PollPDU, + pollByte PollByte, + maxRetxThreshold ENUMERATED { t1, t2, t3, t4, t6, t8, t16, t32 } +} + +DL-AM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLengthAM OPTIONAL, -- Cond Reestab + t-Reassembly T-Reassembly, + t-StatusProhibit T-StatusProhibit +} + +UL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLengthUM OPTIONAL -- Cond Reestab +} + +DL-UM-RLC ::= SEQUENCE { + sn-FieldLength SN-FieldLengthUM OPTIONAL, -- Cond Reestab + t-Reassembly T-Reassembly +} + +T-PollRetransmit ::= ENUMERATED { + ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800, ms1000, + ms2000, ms4000, spare5, spare4, spare3, + spare2, spare1} + + +PollPDU ::= ENUMERATED { + p4, p8, p16, p32, p64, p128, p256, p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384, p20480, + p24576, p28672, p32768, p40960, p49152, p57344, p65536, infinity, spare8, spare7, spare6, spare5, spare4, + spare3, spare2, spare1} + +PollByte ::= ENUMERATED { + kB1, kB2, kB5, kB8, kB10, kB15, kB25, kB50, kB75, + kB100, kB125, kB250, kB375, kB500, kB750, kB1000, + kB1250, kB1500, kB2000, kB3000, kB4000, kB4500, + kB5000, kB5500, kB6000, kB6500, kB7000, kB7500, + mB8, mB9, mB10, mB11, mB12, mB13, mB14, mB15, + mB16, mB17, mB18, mB20, mB25, mB30, mB40, infinity, + spare20, spare19, spare18, spare17, spare16, + spare15, spare14, spare13, spare12, spare11, + spare10, spare9, spare8, spare7, spare6, spare5, + spare4, spare3, spare2, spare1} + +T-Reassembly ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms110, + ms120, ms130, ms140, ms150, ms160, ms170, + ms180, ms190, ms200, spare1} + +T-StatusProhibit ::= ENUMERATED { + ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, + ms40, ms45, ms50, ms55, ms60, ms65, ms70, + ms75, ms80, ms85, ms90, ms95, ms100, ms105, + ms110, ms115, ms120, ms125, ms130, ms135, + ms140, ms145, ms150, ms155, ms160, ms165, + ms170, ms175, ms180, ms185, ms190, ms195, + ms200, ms205, ms210, ms215, ms220, ms225, + ms230, ms235, ms240, ms245, ms250, ms300, + ms350, ms400, ms450, ms500, ms800, ms1000, + ms1200, ms1600, ms2000, ms2400, spare2, spare1} + +SN-FieldLengthUM ::= ENUMERATED {size6, size12} +SN-FieldLengthAM ::= ENUMERATED {size12, size18} -- TAG-RLC-CONFIG-STOP -- TAG-RLF-TIMERS-AND-CONSTANTS-START -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}, - ... +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}, + ..., + [[ + t311-v1530 ENUMERATED {ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000} + ]] } -- TAG-RLF-TIMERS-AND-CONSTANTS-STOP -- TAG-RNTI-VALUE-START -RNTI-Value ::= INTEGER (0..65535) +RNTI-Value ::= INTEGER (0..65535) -- TAG-RNTI-VALUE-STOP -- TAG-RSRP-RANGE-START -RSRP-Range ::= INTEGER(0..127) +RSRP-Range ::= INTEGER(0..127) -- TAG-RSRP-RANGE-STOP -- TAG-RSRQ-RANGE-START -RSRQ-Range ::= INTEGER(0..127) +RSRQ-Range ::= INTEGER(0..127) -- TAG-RSRQ-RANGE-STOP -- TAG-SCELL-INDEX-START -SCellIndex ::= INTEGER (1..31) +SCellIndex ::= INTEGER (1..31) -- 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 +SchedulingRequestConfig ::= SEQUENCE { + schedulingRequestToAddModList SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF SchedulingRequestToAddMod OPTIONAL, -- Need N + schedulingRequestToReleaseList SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF SchedulingRequestId OPTIONAL-- Need N } -SchedulingRequestToAddMod ::= SEQUENCE { - schedulingRequestId SchedulingRequestId, +SchedulingRequestToAddMod ::= SEQUENCE { + schedulingRequestId SchedulingRequestId, - 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} + 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} } @@ -2562,897 +3989,1123 @@ SchedulingRequestToAddMod ::= SEQUENCE { -- TAG-SCHEDULING-REQUEST-CONFIG-STOP -- TAG-SCHEDULINGREQUESTID-START -SchedulingRequestId ::= INTEGER (0..7) +SchedulingRequestId ::= INTEGER (0..7) -- TAG-SCHEDULINGREQUESTID-STOP -- TAG-SCHEDULING-REQUEST-RESOURCE-CONFIG-START -SchedulingRequestResourceConfig ::= SEQUENCE { - schedulingRequestResourceId SchedulingRequestResourceId, - schedulingRequestID SchedulingRequestId, - 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 - resource PUCCH-ResourceId OPTIONAL -- Need M +SchedulingRequestResourceConfig ::= SEQUENCE { + schedulingRequestResourceId SchedulingRequestResourceId, + schedulingRequestID SchedulingRequestId, + 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 + resource PUCCH-ResourceId OPTIONAL -- Need M } -- TAG-SCHEDULING-REQUEST-RESOURCE-CONFIG-STOP -- TAG-SCHEDULINGREQUESTRESOURCEID-START -SchedulingRequestResourceId ::= INTEGER (1..maxNrofSR-Resources) +SchedulingRequestResourceId ::= INTEGER (1..maxNrofSR-Resources) -- TAG-SCHEDULINGREQUESTRESOURCEID-STOP -- TAG-SCRAMBLING-ID-START -ScramblingId ::= INTEGER (0..1023) +ScramblingId ::= INTEGER(0..1023) -- TAG-SCRAMBLING-ID-STOP -- TAG-SCS-SPECIFIC-CARRIER-START -SCS-SpecificCarrier ::= SEQUENCE { - offsetToCarrier INTEGER (0..2199), - subcarrierSpacing SubcarrierSpacing, - carrierBandwidth INTEGER (1..maxNrofPhysicalResourceBlocks), - ... +SCS-SpecificCarrier ::= SEQUENCE { + offsetToCarrier INTEGER (0..2199), + subcarrierSpacing SubcarrierSpacing, + carrierBandwidth INTEGER (1..maxNrofPhysicalResourceBlocks), + ..., + [[ + txDirectCurrentLocation-v1530 INTEGER (0..4095) OPTIONAL -- Need S + ]] } -- TAG-SCS-SPECIFIC-CARRIER-STOP -- TAG-SDAP-CONFIG-START -SDAP-Config ::= SEQUENCE { - pdu-Session PDU-SessionID, - sdap-HeaderDL ENUMERATED {present, absent}, - sdap-HeaderUL ENUMERATED {present, absent}, - defaultDRB BOOLEAN, - mappedQoS-FlowsToAdd SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI OPTIONAL, -- Need N - mappedQoS-FlowsToRelease SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI OPTIONAL, -- Need N - ... +SDAP-Config ::= SEQUENCE { + pdu-Session PDU-SessionID, + sdap-HeaderDL ENUMERATED {present, absent}, + sdap-HeaderUL ENUMERATED {present, absent}, + defaultDRB BOOLEAN, + mappedQoS-FlowsToAdd SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI OPTIONAL, -- Need N + mappedQoS-FlowsToRelease SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI OPTIONAL, -- Need N + ... } -QFI ::= INTEGER (0..maxQFI) +QFI ::= INTEGER (0..maxQFI) -PDU-SessionID ::= INTEGER (0..255) +PDU-SessionID ::= INTEGER (0..255) -- TAG-SDAP-CONFIG-STOP -- TAG-SEARCHSPACE-START -SearchSpace ::= SEQUENCE { - searchSpaceId SearchSpaceId, - controlResourceSetId ControlResourceSetId OPTIONAL, -- Cond SetupOnly - 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), - sl40 INTEGER (0..39), - sl80 INTEGER (0..79), - sl160 INTEGER (0..159), - sl320 INTEGER (0..319), - sl640 INTEGER (0..639), - sl1280 INTEGER (0..1279), - sl2560 INTEGER (0..2559) - } OPTIONAL, -- Cond Setup - duration INTEGER (2..2559) OPTIONAL, -- Need R - monitoringSymbolsWithinSlot BIT STRING (SIZE (14)) OPTIONAL, -- Cond Setup - 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 - searchSpaceType CHOICE { - common SEQUENCE { - dci-Format0-0-AndFormat1-0 SEQUENCE { - ... - } OPTIONAL, -- Need R - dci-Format2-0 SEQUENCE { - 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 - dci-Format2-1 SEQUENCE { - ... - } OPTIONAL, -- Need R - dci-Format2-2 SEQUENCE { - ... - } OPTIONAL, -- Need R - dci-Format2-3 SEQUENCE { - monitoringPeriodicity ENUMERATED {n1, n2, n4, n5, n8, n10, n16, n20 } OPTIONAL, -- Cond Setup - nrofPDCCH-Candidates ENUMERATED {n1, n2}, - ... - } OPTIONAL -- Need R - }, - ue-Specific SEQUENCE { - dci-Formats ENUMERATED {formats0-0-And-1-0, formats0-1-And-1-1}, - ... - } - } OPTIONAL -- Cond Setup +SearchSpace ::= SEQUENCE { + searchSpaceId SearchSpaceId, + controlResourceSetId ControlResourceSetId OPTIONAL, -- Cond SetupOnly + 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), + sl40 INTEGER (0..39), + sl80 INTEGER (0..79), + sl160 INTEGER (0..159), + sl320 INTEGER (0..319), + sl640 INTEGER (0..639), + sl1280 INTEGER (0..1279), + sl2560 INTEGER (0..2559) + } OPTIONAL, -- Cond Setup + duration INTEGER (2..2559) OPTIONAL, -- Need R + monitoringSymbolsWithinSlot BIT STRING (SIZE (14)) OPTIONAL, -- Cond Setup + 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 + searchSpaceType CHOICE { + common SEQUENCE { + dci-Format0-0-AndFormat1-0 SEQUENCE { + ... + } OPTIONAL, -- Need R + dci-Format2-0 SEQUENCE { + 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 + dci-Format2-1 SEQUENCE { + ... + } OPTIONAL, -- Need R + dci-Format2-2 SEQUENCE { + ... + } OPTIONAL, -- Need R + dci-Format2-3 SEQUENCE { + dummy1 ENUMERATED {sl1, sl2, sl4, sl5, sl8, sl10, sl16, sl20} OPTIONAL, -- Cond Setup + dummy2 ENUMERATED {n1, n2}, + ... + } OPTIONAL -- Need R + }, + ue-Specific SEQUENCE { + 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) +SearchSpaceId ::= INTEGER (0..maxNrofSearchSpaces-1) -- TAG-SEARCHSPACEID-STOP +-- TAG-SEARCHSPACEZERO-START + +SearchSpaceZero ::= INTEGER (0..15) + +-- TAG-SEARCHSPACEZERO-STOP -- TAG-SECURITY-ALGORITHM-CONFIG-START -SecurityAlgorithmConfig ::= SEQUENCE { - cipheringAlgorithm CipheringAlgorithm, - integrityProtAlgorithm IntegrityProtAlgorithm OPTIONAL, -- Need R - ... +SecurityAlgorithmConfig ::= SEQUENCE { + cipheringAlgorithm CipheringAlgorithm, + integrityProtAlgorithm IntegrityProtAlgorithm OPTIONAL, -- Need R + ... } -IntegrityProtAlgorithm ::= ENUMERATED { - nia0, nia1, nia2, nia3, spare4, spare3, - spare2, spare1, ...} +IntegrityProtAlgorithm ::= ENUMERATED { + nia0, nia1, nia2, nia3, spare4, spare3, + spare2, spare1, ...} -CipheringAlgorithm ::= ENUMERATED { - nea0, nea1, nea2, nea3, spare4, spare3, - spare2, spare1, ...} +CipheringAlgorithm ::= ENUMERATED { + nea0, nea1, nea2, nea3, spare4, spare3, + spare2, spare1, ...} -- TAG-SECURITY-ALGORITHM-CONFIG-STOP -- TAG-SERV-CELL-INDEX-START -ServCellIndex ::= INTEGER (0..maxNrofServingCells-1) +ServCellIndex ::= INTEGER (0..maxNrofServingCells-1) -- TAG-SERV-CELL-INDEX-STOP -- TAG-SERVING-CELL-CONFIG-START -ServingCellConfig ::= SEQUENCE { - tdd-UL-DL-ConfigurationDedicated TDD-UL-DL-ConfigDedicated OPTIONAL, -- Cond TDD - - initialDownlinkBWP BWP-DownlinkDedicated OPTIONAL, -- Cond ServCellAdd - downlinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N - downlinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Downlink OPTIONAL, -- Need N - firstActiveDownlinkBWP-Id BWP-Id OPTIONAL, -- Cond SyncAndCellAdd - 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 - defaultDownlinkBWP-Id BWP-Id OPTIONAL, -- Need S - - uplinkConfig UplinkConfig OPTIONAL, -- Cond ServCellAdd-UL - supplementaryUplink UplinkConfig OPTIONAL, -- Cond ServCellAdd-SUL - - pdcch-ServingCellConfig CHOICE { release NULL, setup PDCCH-ServingCellConfig } OPTIONAL, -- Need M - pdsch-ServingCellConfig CHOICE { release NULL, setup PDSCH-ServingCellConfig } OPTIONAL, -- Need M - csi-MeasConfig CHOICE { release NULL, setup CSI-MeasConfig } OPTIONAL, -- Need M - sCellDeactivationTimer ENUMERATED { ms20, ms40, ms80, ms160, ms200, ms240, - ms320, ms400, ms480, ms520, ms640, ms720, - ms840, ms1280, spare2,spare1} OPTIONAL, -- Cond ServingCellWithoutPUCCH - crossCarrierSchedulingConfig CrossCarrierSchedulingConfig OPTIONAL, -- Need M - tag-Id TAG-Id, - ue-BeamLockFunction ENUMERATED {enabled} OPTIONAL, -- Need R - pathlossReferenceLinking ENUMERATED {pCell, sCell} OPTIONAL, -- Cond SCellOnly - servingCellMO MeasObjectId OPTIONAL, -- Cond MeasObject - ... -} - -UplinkConfig ::= SEQUENCE { - initialUplinkBWP BWP-UplinkDedicated OPTIONAL, -- Cond ServCellAdd - uplinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N - uplinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Uplink OPTIONAL, -- Need N - firstActiveUplinkBWP-Id BWP-Id OPTIONAL, -- Cond SyncAndCellAdd - - pusch-ServingCellConfig CHOICE { release NULL, setup PUSCH-ServingCellConfig } OPTIONAL, -- Need M - carrierSwitching CHOICE { release NULL, setup SRS-CarrierSwitching } OPTIONAL, -- Need M - ... +ServingCellConfig ::= SEQUENCE { + tdd-UL-DL-ConfigurationDedicated TDD-UL-DL-ConfigDedicated OPTIONAL, -- Cond TDD + + initialDownlinkBWP BWP-DownlinkDedicated OPTIONAL, -- Need M + downlinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N + downlinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Downlink OPTIONAL, -- Need N + firstActiveDownlinkBWP-Id BWP-Id OPTIONAL, -- Cond SyncAndCellAdd + 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 + defaultDownlinkBWP-Id BWP-Id OPTIONAL, -- Need S + + uplinkConfig UplinkConfig OPTIONAL, -- Need M + supplementaryUplink UplinkConfig OPTIONAL, -- Need M + + pdcch-ServingCellConfig CHOICE { release NULL, setup PDCCH-ServingCellConfig } OPTIONAL, -- Need M + pdsch-ServingCellConfig CHOICE { release NULL, setup PDSCH-ServingCellConfig } OPTIONAL, -- Need M + csi-MeasConfig CHOICE { release NULL, setup CSI-MeasConfig } OPTIONAL, -- Need M + sCellDeactivationTimer ENUMERATED {ms20, ms40, ms80, ms160, ms200, ms240, + ms320, ms400, ms480, ms520, ms640, ms720, + ms840, ms1280, spare2,spare1} OPTIONAL, -- Cond ServingCellWithoutPUCCH + crossCarrierSchedulingConfig CrossCarrierSchedulingConfig OPTIONAL, -- Need M + tag-Id TAG-Id, + ue-BeamLockFunction ENUMERATED {enabled} OPTIONAL, -- Need R + pathlossReferenceLinking ENUMERATED {pCell, sCell} OPTIONAL, -- Cond SCellOnly + servingCellMO MeasObjectId OPTIONAL, -- Cond MeasObject + ... +} + +UplinkConfig ::= SEQUENCE { + initialUplinkBWP BWP-UplinkDedicated OPTIONAL, -- Need M + uplinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N + uplinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Uplink OPTIONAL, -- Need N + firstActiveUplinkBWP-Id BWP-Id OPTIONAL, -- Cond SyncAndCellAdd + + pusch-ServingCellConfig CHOICE { release NULL, setup PUSCH-ServingCellConfig } OPTIONAL, -- Need M + carrierSwitching CHOICE { release NULL, setup SRS-CarrierSwitching } OPTIONAL, -- Need M + ... } -- TAG-SERVING-CELL-CONFIG-STOP -- TAG-SERVING-CELL-CONFIG-COMMON-START -ServingCellConfigCommon ::= SEQUENCE { - physCellId PhysCellId OPTIONAL, -- Cond HOAndServCellAdd, - downlinkConfigCommon DownlinkConfigCommon OPTIONAL, -- Cond InterFreqHOAndServCellAdd - - uplinkConfigCommon UplinkConfigCommon OPTIONAL, -- Cond ServCellAdd-UL - supplementaryUplinkConfig UplinkConfigCommon OPTIONAL, -- Cond ServCellAdd-SUL - n-TimingAdvanceOffset ENUMERATED { n0, n25600, n39936 } OPTIONAL,-- Need S - ssb-PositionsInBurst CHOICE { - shortBitmap BIT STRING (SIZE (4)), - mediumBitmap BIT STRING (SIZE (8)), - longBitmap BIT STRING (SIZE (64)) - } OPTIONAL, -- Cond AbsFreqSSB - ssb-periodicityServingCell ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, spare2, spare1 } OPTIONAL, -- Need S - dmrs-TypeA-Position ENUMERATED {pos2, pos3}, - lte-CRS-ToMatchAround CHOICE { release NULL, setup RateMatchPatternLTE-CRS } OPTIONAL, -- Need M - rateMatchPatternToAddModList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern OPTIONAL, -- Need N - rateMatchPatternToReleaseList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N - subcarrierSpacing SubcarrierSpacing OPTIONAL, -- Need S - tdd-UL-DL-ConfigurationCommon TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD - ss-PBCH-BlockPower INTEGER (-60..50), - ... +ServingCellConfigCommon ::= SEQUENCE { + physCellId PhysCellId OPTIONAL, -- Cond HOAndServCellAdd, + downlinkConfigCommon DownlinkConfigCommon OPTIONAL, -- Cond HOAndServCellAdd + + uplinkConfigCommon UplinkConfigCommon OPTIONAL, -- Need M + supplementaryUplinkConfig UplinkConfigCommon OPTIONAL, -- Need S + n-TimingAdvanceOffset ENUMERATED { n0, n25600, n39936 } OPTIONAL, -- Need S + ssb-PositionsInBurst CHOICE { + shortBitmap BIT STRING (SIZE (4)), + mediumBitmap BIT STRING (SIZE (8)), + longBitmap BIT STRING (SIZE (64)) + } OPTIONAL, -- Cond AbsFreqSSB + ssb-periodicityServingCell ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, spare2, spare1 } OPTIONAL, -- Need S + dmrs-TypeA-Position ENUMERATED {pos2, pos3}, + lte-CRS-ToMatchAround CHOICE { release NULL, setup RateMatchPatternLTE-CRS } OPTIONAL, -- Need M + rateMatchPatternToAddModList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern OPTIONAL, -- Need N + rateMatchPatternToReleaseList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N + subcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond HOAndServCellAdd + tdd-UL-DL-ConfigurationCommon TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD + ss-PBCH-BlockPower INTEGER (-60..50), + ... } -- TAG-SERVING-CELL-CONFIG-COMMON-STOP +-- TAG-SERVINGCELLCONFIGCOMMONSIB-START + +ServingCellConfigCommonSIB ::= SEQUENCE { + downlinkConfigCommon DownlinkConfigCommonSIB, + uplinkConfigCommon UplinkConfigCommonSIB OPTIONAL, -- Need R + supplementaryUplink UplinkConfigCommonSIB OPTIONAL, -- Need R + n-TimingAdvanceOffset ENUMERATED { n0, n25560, n39936 } OPTIONAL, -- Need S + ssb-PositionsInBurst SEQUENCE { + inOneGroup BIT STRING (SIZE (8)), + groupPresence BIT STRING (SIZE (8)) OPTIONAL -- Cond Above6GHzOnly + }, + ssb-PeriodicityServingCell ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160}, + + tdd-UL-DL-ConfigurationCommon TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD + ss-PBCH-BlockPower INTEGER (-60..50), + ... +} + +-- TAG-SERVINGCELLCONFIGCOMMONSIB-STOP +-- TAG-ShortI-RNTI-VALUE-START + +ShortI-RNTI-Value ::= BIT STRING (SIZE(24)) + +-- TAG-ShortI-RNTI-VALUE-STOP +-- TAG-SHORTMAC-I-START + +ShortMAC-I ::= BIT STRING (SIZE (16)) + +-- TAG-SHORTMAC-I-STOP -- TAG-SINR-RANGE-START -SINR-Range ::= INTEGER (0..127) +SINR-Range ::= INTEGER(0..127) -- TAG-SINR-RANGE-STOP +-- TAG-OTHER-SI-INFO-START + +SI-SchedulingInfo ::= SEQUENCE { + schedulingInfoList SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo, + si-WindowLength ENUMERATED {s5, s10, s20, s40, s80, s160, s320, s640, s1280}, + si-RequestConfig SI-RequestConfig OPTIONAL, -- Cond MSG-1 + si-RequestConfigSUL SI-RequestConfig OPTIONAL, -- Cond SUL-MSG-1 + systemInformationAreaID BIT STRING (SIZE (24)) OPTIONAL, -- Need R + ... +} + +SchedulingInfo ::= SEQUENCE { + si-BroadcastStatus ENUMERATED {broadcasting, notBroadcasting}, + si-Periodicity ENUMERATED {rf8, rf16, rf32, rf64, rf128, rf256, rf512}, + sib-MappingInfo SIB-Mapping +} + +SIB-Mapping ::= SEQUENCE (SIZE (1..maxSIB)) OF SIB-TypeInfo + +SIB-TypeInfo ::= SEQUENCE { + type ENUMERATED {sibType2, sibType3, sibType4, sibType5, sibType6, sibType7, sibType8, sibType9, + spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1,... }, + valueTag INTEGER (0..31) OPTIONAL, -- Cond SIB-TYPE + areaScope ENUMERATED {true} OPTIONAL -- Cond AREA-ID +} + +-- Configuration for Msg1 based SI Request +SI-RequestConfig::= SEQUENCE { + rach-OccasionsSI SEQUENCE { + rach-ConfigSI RACH-ConfigGeneric, + ssb-perRACH-Occasion ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen} + } OPTIONAL, -- Need R + si-RequestPeriod ENUMERATED {one, two, four, six, eight, ten, twelve, sixteen} OPTIONAL, -- Need R + si-RequestResources SEQUENCE (SIZE (1..maxSI-Message)) OF SI-RequestResources +} + +SI-RequestResources ::= SEQUENCE { + ra-PreambleStartIndex INTEGER (0..63), + ra-AssociationPeriodIndex INTEGER (0..15) OPTIONAL, -- Need R + ra-ssb-OccasionMaskIndex INTEGER (0..15) OPTIONAL -- Need R +} + +-- TAG-OTHER-SI-INFO-STOP -- TAG-SLOTFORMATCOMBINATIONSPERCELL-START -SlotFormatCombinationsPerCell ::= SEQUENCE { - servingCellId ServCellIndex, - subcarrierSpacing SubcarrierSpacing, - subcarrierSpacing2 SubcarrierSpacing OPTIONAL, -- Need R - slotFormatCombinations SEQUENCE (SIZE (1..maxNrofSlotFormatCombinationsPerSet)) OF SlotFormatCombination OPTIONAL, - positionInDCI INTEGER(0..maxSFI-DCI-PayloadSize-1) OPTIONAL, - ... +SlotFormatCombinationsPerCell ::= SEQUENCE { + servingCellId ServCellIndex, + subcarrierSpacing SubcarrierSpacing, + subcarrierSpacing2 SubcarrierSpacing OPTIONAL, -- Need R + slotFormatCombinations SEQUENCE (SIZE (1..maxNrofSlotFormatCombinationsPerSet)) OF SlotFormatCombination OPTIONAL, -- Need M + positionInDCI INTEGER(0..maxSFI-DCI-PayloadSize-1) OPTIONAL, -- Need M + ... } -SlotFormatCombination ::= SEQUENCE { - slotFormatCombinationId SlotFormatCombinationId, - slotFormats SEQUENCE (SIZE (1..maxNrofSlotFormatsPerCombination)) OF INTEGER (0..255) +SlotFormatCombination ::= SEQUENCE { + slotFormatCombinationId SlotFormatCombinationId, + slotFormats SEQUENCE (SIZE (1..maxNrofSlotFormatsPerCombination)) OF INTEGER (0..255) } -SlotFormatCombinationId ::= INTEGER (0..maxNrofSlotFormatCombinationsPerSet-1) +SlotFormatCombinationId ::= INTEGER (0..maxNrofSlotFormatCombinationsPerSet-1) -- TAG-SLOTFORMATCOMBINATIONSPERCELL-STOP -- TAG-SLOTFORMATINDICATOR-START -SlotFormatIndicator ::= SEQUENCE { - sfi-RNTI RNTI-Value, - dci-PayloadSize INTEGER (1..maxSFI-DCI-PayloadSize), - slotFormatCombToAddModList SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF SlotFormatCombinationsPerCell OPTIONAL, -- Need N - slotFormatCombToReleaseList SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex OPTIONAL, -- Need N - ... +SlotFormatIndicator ::= SEQUENCE { + sfi-RNTI RNTI-Value, + dci-PayloadSize INTEGER (1..maxSFI-DCI-PayloadSize), + slotFormatCombToAddModList SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF SlotFormatCombinationsPerCell OPTIONAL, -- Need N + slotFormatCombToReleaseList SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex OPTIONAL, -- Need N + ... } -- TAG-SLOTFORMATINDICATOR-STOP +-- TAG-S-NSSAI-START + +S-NSSAI ::= CHOICE{ + sst BIT STRING (SIZE (8)), + sst-SD BIT STRING (SIZE (32)) +} + +-- TAG-S-NSSAI-STOP +-- TAG-SPEEDSTATESCALEFACTORS-START + +SpeedStateScaleFactors ::= SEQUENCE { + sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0}, + sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0} +} +-- TAG-SPEEDSTATESCALEFACTORS-STOP -- TAG-SS-RSSI-MEASUREMENT-START -SS-RSSI-Measurement ::= SEQUENCE { - measurementSlots BIT STRING (SIZE(1..80)), - endSymbol INTEGER(0..3) +SS-RSSI-Measurement ::= SEQUENCE { + measurementSlots BIT STRING (SIZE (1..80)), + endSymbol INTEGER(0..3) } -- TAG-SS-RSSI-MEASUREMENT-STOP -- TAG-SPS-CONFIG-START -SPS-Config ::= SEQUENCE { - periodicity ENUMERATED {ms10, ms20, ms32, ms40, ms64, ms80, ms128, ms160, ms320, ms640, - spare6, spare5, spare4, spare3, spare2, spare1}, - nrofHARQ-Processes INTEGER (1..8), - n1PUCCH-AN PUCCH-ResourceId OPTIONAL -- Need M +SPS-Config ::= SEQUENCE { + periodicity ENUMERATED {ms10, ms20, ms32, ms40, ms64, ms80, ms128, ms160, ms320, ms640, + spare6, spare5, spare4, spare3, spare2, spare1}, + nrofHARQ-Processes INTEGER (1..8), + n1PUCCH-AN PUCCH-ResourceId OPTIONAL, -- Need M + mcs-Table ENUMERATED {qam64LowSE} OPTIONAL, -- Need S + ... } -- TAG-SPS-CONFIG-STOP -- TAG-SRB-IDENTITY-START -SRB-Identity ::= INTEGER (1..3) +SRB-Identity ::= INTEGER (1..3) -- TAG-SRB-IDENTITY-STOP +-- TAG-SRS-CARRIERSWITCHING-START + +SRS-CarrierSwitching ::= SEQUENCE { + srs-SwitchFromServCellIndex INTEGER (0..31) OPTIONAL, -- Need M + srs-SwitchFromCarrier ENUMERATED {sUL, nUL}, + srs-TPC-PDCCH-Group CHOICE { + typeA SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config, + typeB SRS-TPC-PDCCH-Config + } OPTIONAL, -- Need M + monitoringCells SEQUENCE (SIZE (1..maxNrofServingCells)) OF ServCellIndex OPTIONAL, -- Need M + ... +} + +-- One trigger configuration for SRS-Carrier Switching. (see 38.212, 38.213, section 7.3.1, 11.3) +SRS-TPC-PDCCH-Config ::= SEQUENCE { + srs-CC-SetIndexlist SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex OPTIONAL -- Need M +} + +SRS-CC-SetIndex ::= SEQUENCE { + cc-SetIndex INTEGER (0..3) OPTIONAL, -- Need M + cc-IndexInOneCC-Set INTEGER (0..7) OPTIONAL -- Need M +} + +-- TAG-SRS-CARRIERSWITCHING-STOP -- TAG-SRS-CONFIG-START -SRS-Config ::= SEQUENCE { - srs-ResourceSetToReleaseList SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSetId OPTIONAL, -- Need N - srs-ResourceSetToAddModList SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSet OPTIONAL, -- Need N - - 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 - - tpc-Accumulation ENUMERATED {disabled} OPTIONAL, -- Need S - ... -} - -SRS-ResourceSet ::= SEQUENCE { - srs-ResourceSetId SRS-ResourceSetId, - srs-ResourceIdList SEQUENCE (SIZE(1..maxNrofSRS-ResourcesPerSet)) OF SRS-ResourceId OPTIONAL, -- Cond Setup - - resourceType CHOICE { - aperiodic SEQUENCE { - aperiodicSRS-ResourceTrigger INTEGER (1..maxNrofSRS-TriggerStates-1), - csi-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook - slotOffset INTEGER (1..32) OPTIONAL, -- Need S - ... - }, - semi-persistent SEQUENCE { - associatedCSI-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook - ... - }, - periodic SEQUENCE { - associatedCSI-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook - ... - } - }, - usage ENUMERATED {beamManagement, codebook, nonCodebook, antennaSwitching}, - alpha Alpha OPTIONAL, -- Need S - p0 INTEGER (-202..24) OPTIONAL, -- Cond Setup - pathlossReferenceRS CHOICE { - ssb-Index SSB-Index, - csi-RS-Index NZP-CSI-RS-ResourceId - } OPTIONAL, -- Need M - srs-PowerControlAdjustmentStates ENUMERATED { sameAsFci2, separateClosedLoop} OPTIONAL, -- Need S - ... -} - -SRS-ResourceSetId ::= INTEGER (0..maxNrofSRS-ResourceSets-1) - -SRS-Resource ::= SEQUENCE { - srs-ResourceId SRS-ResourceId, - nrofSRS-Ports ENUMERATED {port1, ports2, ports4}, - ptrs-PortIndex ENUMERATED {n0, n1 } OPTIONAL, -- Need R - transmissionComb CHOICE { - n2 SEQUENCE { - combOffset-n2 INTEGER (0..1), - cyclicShift-n2 INTEGER (0..7) - }, - n4 SEQUENCE { - combOffset-n4 INTEGER (0..3), - cyclicShift-n4 INTEGER (0..11) - } - }, - resourceMapping SEQUENCE { - startPosition INTEGER (0..5), - nrofSymbols ENUMERATED {n1, n2, n4}, - repetitionFactor ENUMERATED {n1, n2, n4} - }, - freqDomainPosition INTEGER (0..67), - freqDomainShift INTEGER (0..268), - freqHopping SEQUENCE { - c-SRS INTEGER (0..63), - b-SRS INTEGER (0..3), - b-hop INTEGER (0..3) - }, - groupOrSequenceHopping ENUMERATED { neither, groupHopping, sequenceHopping }, - resourceType CHOICE { - aperiodic SEQUENCE { - ... - }, - semi-persistent SEQUENCE { - periodicityAndOffset-sp SRS-PeriodicityAndOffset, - ... - }, - periodic SEQUENCE { - periodicityAndOffset-p SRS-PeriodicityAndOffset, - ... - } - }, - sequenceId BIT STRING (SIZE (10)), - spatialRelationInfo SRS-SpatialRelationInfo OPTIONAL, -- Need R - ... -} - -SRS-SpatialRelationInfo ::= SEQUENCE { - servingCellId ServCellIndex OPTIONAL, -- Need S - referenceSignal CHOICE { - ssb-Index SSB-Index, - csi-RS-Index NZP-CSI-RS-ResourceId, - srs SEQUENCE { - resourceId SRS-ResourceId, - uplinkBWP BWP-Id - } - } -} - - -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) +SRS-Config ::= SEQUENCE { + srs-ResourceSetToReleaseList SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSetId OPTIONAL, -- Need N + srs-ResourceSetToAddModList SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSet OPTIONAL, -- Need N + + 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 + + tpc-Accumulation ENUMERATED {disabled} OPTIONAL, -- Need S + ... } --- TAG-SRS-CONFIG-STOP --- TAG-SRS-CARRIERSWITCHING-START -SRS-CarrierSwitching ::= SEQUENCE { - srs-SwitchFromServCellIndex INTEGER (0..31) OPTIONAL, -- Cond Setup - srs-SwitchFromCarrier ENUMERATED {sUL, nUL}, - srs-TPC-PDCCH-Group CHOICE { - typeA SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config, - typeB SRS-TPC-PDCCH-Config - } OPTIONAL, -- Cond Setup - monitoringCells SEQUENCE (SIZE (1..maxNrofServingCells)) OF ServCellIndex OPTIONAL, -- Cond Setup - ... +SRS-ResourceSet ::= SEQUENCE { + srs-ResourceSetId SRS-ResourceSetId, + srs-ResourceIdList SEQUENCE (SIZE(1..maxNrofSRS-ResourcesPerSet)) OF SRS-ResourceId OPTIONAL, -- Cond Setup + + resourceType CHOICE { + aperiodic SEQUENCE { + aperiodicSRS-ResourceTrigger INTEGER (1..maxNrofSRS-TriggerStates-1), + csi-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook + slotOffset INTEGER (1..32) OPTIONAL, -- Need S + ..., + [[ + aperiodicSRS-ResourceTriggerList-v1530 SEQUENCE (SIZE(1..maxNrofSRS-TriggerStates-2)) + OF INTEGER (1..maxNrofSRS-TriggerStates-1) OPTIONAL -- Need M + ]] + }, + semi-persistent SEQUENCE { + associatedCSI-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook + ... + }, + periodic SEQUENCE { + associatedCSI-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook + ... + } + }, + usage ENUMERATED {beamManagement, codebook, nonCodebook, antennaSwitching}, + alpha Alpha OPTIONAL, -- Need S + p0 INTEGER (-202..24) OPTIONAL, -- Cond Setup + pathlossReferenceRS CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId + } OPTIONAL, -- Need M + srs-PowerControlAdjustmentStates ENUMERATED { sameAsFci2, separateClosedLoop} OPTIONAL, -- Need S + ... } --- One trigger configuration for SRS-Carrier Switching. (see 38.212, 38.213, section 7.3.1, 11.3) -SRS-TPC-PDCCH-Config ::= SEQUENCE { - srs-CC-SetIndexlist SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex OPTIONAL -- Cond Setup +SRS-ResourceSetId ::= INTEGER (0..maxNrofSRS-ResourceSets-1) + +SRS-Resource ::= SEQUENCE { + srs-ResourceId SRS-ResourceId, + nrofSRS-Ports ENUMERATED {port1, ports2, ports4}, + ptrs-PortIndex ENUMERATED {n0, n1 } OPTIONAL, -- Need R + transmissionComb CHOICE { + n2 SEQUENCE { + combOffset-n2 INTEGER (0..1), + cyclicShift-n2 INTEGER (0..7) + }, + n4 SEQUENCE { + combOffset-n4 INTEGER (0..3), + cyclicShift-n4 INTEGER (0..11) + } + }, + resourceMapping SEQUENCE { + startPosition INTEGER (0..5), + nrofSymbols ENUMERATED {n1, n2, n4}, + repetitionFactor ENUMERATED {n1, n2, n4} + }, + freqDomainPosition INTEGER (0..67), + freqDomainShift INTEGER (0..268), + freqHopping SEQUENCE { + c-SRS INTEGER (0..63), + b-SRS INTEGER (0..3), + b-hop INTEGER (0..3) + }, + groupOrSequenceHopping ENUMERATED { neither, groupHopping, sequenceHopping }, + resourceType CHOICE { + aperiodic SEQUENCE { + ... + }, + semi-persistent SEQUENCE { + periodicityAndOffset-sp SRS-PeriodicityAndOffset, + ... + }, + periodic SEQUENCE { + periodicityAndOffset-p SRS-PeriodicityAndOffset, + ... + } + }, + sequenceId INTEGER (0..1023), + spatialRelationInfo SRS-SpatialRelationInfo OPTIONAL, -- Need R + ... } -SRS-CC-SetIndex ::= SEQUENCE { - cc-SetIndex INTEGER (0..3) OPTIONAL, -- Cond Setup - cc-IndexInOneCC-Set INTEGER (0..7) OPTIONAL -- Cond Setup +SRS-SpatialRelationInfo ::= SEQUENCE { + servingCellId ServCellIndex OPTIONAL, -- Need S + referenceSignal CHOICE { + ssb-Index SSB-Index, + csi-RS-Index NZP-CSI-RS-ResourceId, + srs SEQUENCE { + resourceId SRS-ResourceId, + uplinkBWP BWP-Id + } + } +} + + +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-CARRIERSWITCHING-STOP +-- TAG-SRS-CONFIG-STOP -- TAG-SRS-TPC-COMMANDCONFIG-START -SRS-TPC-CommandConfig ::= SEQUENCE { - startingBitOfFormat2-3 INTEGER (1..31) OPTIONAL, -- Cond Setup - fieldTypeFormat2-3 INTEGER (0..1) OPTIONAL, -- Cond Setup - ... +SRS-TPC-CommandConfig ::= SEQUENCE { + startingBitOfFormat2-3 INTEGER (1..31) OPTIONAL, -- Cond Setup + fieldTypeFormat2-3 INTEGER (0..1) OPTIONAL, -- Cond Setup + ..., + [[ + startingBitOfFormat2-3SUL-v1530 INTEGER (1..31) OPTIONAL -- Cond Setup + ]] } -- TAG-SRS-TPC-COMMANDCONFIG-STOP -- TAG-SSB-INDEX-START -SSB-Index ::= INTEGER (0..63) +SSB-Index ::= INTEGER (0..maxNrofSSBs-1) -- TAG-SSB-INDEX-STOP -- TAG-SSB-MTC-START -SSB-MTC ::= SEQUENCE { - periodicityAndOffset CHOICE { - sf5 INTEGER (0..4), - sf10 INTEGER (0..9), - sf20 INTEGER (0..19), - sf40 INTEGER (0..39), - sf80 INTEGER (0..79), - sf160 INTEGER (0..159) - }, - duration ENUMERATED { sf1, sf2, sf3, sf4, sf5 } +SSB-MTC ::= SEQUENCE { + periodicityAndOffset CHOICE { + sf5 INTEGER (0..4), + sf10 INTEGER (0..9), + sf20 INTEGER (0..19), + sf40 INTEGER (0..39), + sf80 INTEGER (0..79), + sf160 INTEGER (0..159) + }, + duration ENUMERATED { sf1, sf2, sf3, sf4, sf5 } } -SSB-MTC2 ::= SEQUENCE { - pci-List SEQUENCE (SIZE (1..maxNrofPCIsPerSMTC)) OF PhysCellId OPTIONAL, -- Need M - periodicity ENUMERATED {sf5, sf10, sf20, sf40, sf80, spare3, spare2, spare1} +SSB-MTC2 ::= SEQUENCE { + pci-List SEQUENCE (SIZE (1..maxNrofPCIsPerSMTC)) OF PhysCellId OPTIONAL, -- Need M + periodicity ENUMERATED {sf5, sf10, sf20, sf40, sf80, spare3, spare2, spare1} } -- TAG-SSB-MTC-STOP +-- TAG-SSB-TOMEASURE-START + +SSB-ToMeasure ::= CHOICE { + shortBitmap BIT STRING (SIZE (4)), + mediumBitmap BIT STRING (SIZE (8)), + longBitmap BIT STRING (SIZE (64)) +} + +-- TAG-SSB-TOMEASURE-STOP -- TAG-SUBCARRIER-SPACING-START -SubcarrierSpacing ::= ENUMERATED {kHz15, kHz30, kHz60, kHz120, kHz240, spare3, spare2, spare1} +SubcarrierSpacing ::= ENUMERATED {kHz15, kHz30, kHz60, kHz120, kHz240, spare3, spare2, spare1} -- TAG-SUBCARRIER-SPACING-STOP +-- TAG-TAG-CONFIG-START + +TAG-Config ::= SEQUENCE { + tag-ToReleaseList SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-Id OPTIONAL, -- Need N + tag-ToAddModList SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG OPTIONAL -- Need N +} + +TAG ::= SEQUENCE { + tag-Id TAG-Id, + timeAlignmentTimer TimeAlignmentTimer, + ... +} + +TAG-Id ::= INTEGER (0..maxNrofTAGs-1) + +TimeAlignmentTimer ::= ENUMERATED {ms500, ms750, ms1280, ms1920, ms2560, ms5120, ms10240, infinity} + +-- TAG-TAG-CONFIG-STOP -- TAG-TCI-STATE-START -TCI-State ::= SEQUENCE { - tci-StateId TCI-StateId, - qcl-Type1 QCL-Info, - qcl-Type2 QCL-Info OPTIONAL, -- Need R - ... +TCI-State ::= SEQUENCE { + tci-StateId TCI-StateId, + qcl-Type1 QCL-Info, + qcl-Type2 QCL-Info OPTIONAL, -- Need R + ... } -QCL-Info ::= SEQUENCE { - cell ServCellIndex OPTIONAL, -- Need R - bwp-Id BWP-Id OPTIONAL, -- Cond CSI-RS-Indicated - referenceSignal CHOICE { - csi-rs NZP-CSI-RS-ResourceId, - ssb SSB-Index - }, - qcl-Type ENUMERATED {typeA, typeB, typeC, typeD}, - ... +QCL-Info ::= SEQUENCE { + cell ServCellIndex OPTIONAL, -- Need R + bwp-Id BWP-Id OPTIONAL, -- Cond CSI-RS-Indicated + referenceSignal CHOICE { + csi-rs NZP-CSI-RS-ResourceId, + ssb SSB-Index + }, + qcl-Type ENUMERATED {typeA, typeB, typeC, typeD}, + ... } -- TAG-TCI-STATE-STOP -- TAG-TCI-STATEID-START -TCI-StateId ::= INTEGER (0..maxNrofTCI-States-1) +TCI-StateId ::= INTEGER (0..maxNrofTCI-States-1) -- TAG-TCI-STATEID-STOP -- TAG-TDD-UL-DL-CONFIG-START -TDD-UL-DL-ConfigCommon ::= SEQUENCE { - referenceSubcarrierSpacing SubcarrierSpacing, - pattern1 TDD-UL-DL-Pattern, - pattern2 TDD-UL-DL-Pattern OPTIONAL, -- Need R - ... +TDD-UL-DL-ConfigCommon ::= SEQUENCE { + referenceSubcarrierSpacing SubcarrierSpacing, + pattern1 TDD-UL-DL-Pattern, + pattern2 TDD-UL-DL-Pattern OPTIONAL, -- Need R + ... } -TDD-UL-DL-Pattern ::= SEQUENCE { - dl-UL-TransmissionPeriodicity ENUMERATED {ms0p5, ms0p625, ms1, ms1p25, ms2, ms2p5, ms5, ms10}, - nrofDownlinkSlots INTEGER (0..maxNrofSlots), - nrofDownlinkSymbols INTEGER (0..maxNrofSymbols-1), - nrofUplinkSlots INTEGER (0..maxNrofSlots), - nrofUplinkSymbols INTEGER (0..maxNrofSymbols-1), - ... +TDD-UL-DL-Pattern ::= SEQUENCE { + dl-UL-TransmissionPeriodicity ENUMERATED {ms0p5, ms0p625, ms1, ms1p25, ms2, ms2p5, ms5, ms10}, + nrofDownlinkSlots INTEGER (0..maxNrofSlots), + nrofDownlinkSymbols INTEGER (0..maxNrofSymbols-1), + nrofUplinkSlots INTEGER (0..maxNrofSlots), + nrofUplinkSymbols INTEGER (0..maxNrofSymbols-1), + ..., + [[ + dl-UL-TransmissionPeriodicity-v1530 ENUMERATED {ms3, ms4} OPTIONAL -- Need R + ]] } -TDD-UL-DL-ConfigDedicated ::= SEQUENCE { - 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-ConfigDedicated ::= SEQUENCE { + 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 { - slotIndex TDD-UL-DL-SlotIndex, - symbols CHOICE { - allDownlink NULL, - allUplink NULL, - explicit SEQUENCE { - nrofDownlinkSymbols INTEGER (1..maxNrofSymbols-1) OPTIONAL, -- Need S - nrofUplinkSymbols INTEGER (1..maxNrofSymbols-1) OPTIONAL -- Need S - } - } +TDD-UL-DL-SlotConfig ::= SEQUENCE { + slotIndex TDD-UL-DL-SlotIndex, + symbols CHOICE { + allDownlink NULL, + allUplink NULL, + explicit SEQUENCE { + nrofDownlinkSymbols INTEGER (1..maxNrofSymbols-1) OPTIONAL, -- Need S + nrofUplinkSymbols INTEGER (1..maxNrofSymbols-1) OPTIONAL -- Need S + } + } } -TDD-UL-DL-SlotIndex ::= INTEGER (0..maxNrofSlots-1) +TDD-UL-DL-SlotIndex ::= INTEGER (0..maxNrofSlots-1) -- TAG-TDD-UL-DL-CONFIG-STOP +-- TAG-TRACKINGAREACODE-START + +TrackingAreaCode ::= BIT STRING (SIZE (24)) + +-- TAG-TRACKINGAREACODE-STOP +-- TAG-TRESELECTION-START + +T-Reselection ::= INTEGER (0..7) + +-- TAG-TRESELECTION-STOP +-- TAG-TIMETOTRIGGER-START + +TimeToTrigger ::= ENUMERATED { + ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, + ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, + ms5120} + +-- TAG-TIMETOTRIGGER-STOP +-- TAG-UAC-BARRING-INFO-SET-INDEX-START -TimeToTrigger ::= ENUMERATED { - ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256, - ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560, - ms5120} +UAC-BarringInfoSetIndex ::= INTEGER (1..maxBarringInfoSet) +-- TAG-UAC-BARRING-INFO-SET-INDEX-STOP +-- TAG-UAC-BARRING-INFO-SET-LIST-START + +UAC-BarringInfoSetList ::= SEQUENCE (SIZE(1..maxBarringInfoSet)) OF UAC-BarringInfoSet + +UAC-BarringInfoSet ::= SEQUENCE { + uac-BarringFactor ENUMERATED {p00, p05, p10, p15, p20, p25, p30, p40, + p50, p60, p70, p75, p80, p85, p90, p95}, + uac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}, + uac-BarringForAccessIdentity BIT STRING (SIZE(7)) +} + +-- TAG-UAC-BARRING-INFO-SET-LIST-STOP +-- TAG-UAC-BARRING-PER-CAT-LIST-START + +UAC-BarringPerCatList ::= SEQUENCE (SIZE (1..maxAccessCat-1)) OF UAC-BarringPerCat + +UAC-BarringPerCat ::= SEQUENCE { + accessCategory INTEGER (1..maxAccessCat-1), + uac-barringInfoSetIndex UAC-BarringInfoSetIndex +} + +-- TAG-UAC-BARRING-PER-CAT-LIST-STOP +-- TAG-UAC-BARRING-PER-PLMN-LIST-START + +UAC-BarringPerPLMN-List ::= SEQUENCE (SIZE (1.. maxPLMN)) OF UAC-BarringPerPLMN + +UAC-BarringPerPLMN ::= SEQUENCE { + plmn-IdentityIndex INTEGER (1..maxPLMN), + uac-ACBarringListType CHOICE{ + uac-ImplicitACBarringList SEQUENCE (SIZE(maxAccessCat-1)) OF UAC-BarringInfoSetIndex, + uac-ExplicitACBarringList UAC-BarringPerCatList + } OPTIONAL +} + +-- TAG-UAC-BARRING-PER-PLMN-LIST-STOP +-- TAG-UE-TIMERS-AND-CONSTANTS-START + +UE-TimersAndConstants ::= SEQUENCE { + t300 ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000}, + t301 ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000}, + t310 ENUMERATED {ms0, ms50, ms100, ms200, ms500, ms1000, ms2000}, + n310 ENUMERATED {n1, n2, n3, n4, n6, n8, n10, n20}, + t311 ENUMERATED {ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000}, + n311 ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10}, + t319 ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000}, + ... +} + +-- TAG-UE-TIMERS-AND-CONSTANTS-STOP +-- TAG-UPLINK-CONFIG-COMMON-START + +UplinkConfigCommon ::= SEQUENCE { + frequencyInfoUL FrequencyInfoUL OPTIONAL, -- Cond InterFreqHOAndServCellAddAndSIB1 + initialUplinkBWP BWP-UplinkCommon OPTIONAL, -- Cond ServCellAddAndSIB1 + dummy TimeAlignmentTimer +} + +-- TAG-UPLINK-CONFIG-COMMON-STOP -- TAG-UPLINK-CONFIG-COMMON-START -UplinkConfigCommon ::= SEQUENCE { - frequencyInfoUL FrequencyInfoUL OPTIONAL, -- Cond InterFreqHOAndServCellAddAndSIB1 - initialUplinkBWP BWP-UplinkCommon OPTIONAL, -- Cond ServCellAddAndSIB1 - timeAlignmentTimerCommon TimeAlignmentTimer +UplinkConfigCommonSIB ::= SEQUENCE { + frequencyInfoUL FrequencyInfoUL-SIB, + initialUplinkBWP BWP-UplinkCommon, + timeAlignmentTimerCommon TimeAlignmentTimer } -- TAG-UPLINK-CONFIG-COMMON-STOP +-- TAG-UPLINKTXDIRECTCURRENTLIST-START + +UplinkTxDirectCurrentList ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF UplinkTxDirectCurrentCell + +UplinkTxDirectCurrentCell ::= SEQUENCE { + servCellIndex ServCellIndex, + uplinkDirectCurrentBWP SEQUENCE (SIZE (1..maxNrofBWPs)) OF UplinkTxDirectCurrentBWP, + ... +} + +UplinkTxDirectCurrentBWP ::= SEQUENCE { + bwp-Id BWP-Id, + shift7dot5kHz BOOLEAN, + txDirectCurrentLocation INTEGER (0..3301) +} + +-- TAG-UPLINKTXDIRECTCURRENTLIST-STOP -- TAG-ZP-CSI-RS-RESOURCE-START -ZP-CSI-RS-Resource ::= SEQUENCE { - zp-CSI-RS-ResourceId ZP-CSI-RS-ResourceId, - resourceMapping CSI-RS-ResourceMapping, - periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, --Cond PeriodicOrSemiPersistent - ... +ZP-CSI-RS-Resource ::= SEQUENCE { + zp-CSI-RS-ResourceId ZP-CSI-RS-ResourceId, + resourceMapping CSI-RS-ResourceMapping, + periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, --Cond PeriodicOrSemiPersistent + ... } -ZP-CSI-RS-ResourceId ::= INTEGER (0..maxNrofZP-CSI-RS-Resources-1) +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, - zp-CSI-RS-ResourceIdList SEQUENCE (SIZE(1..maxNrofZP-CSI-RS-ResourcesPerSet)) OF ZP-CSI-RS-ResourceId, - ... +ZP-CSI-RS-ResourceSet ::= SEQUENCE { + zp-CSI-RS-ResourceSetId ZP-CSI-RS-ResourceSetId, + zp-CSI-RS-ResourceIdList SEQUENCE (SIZE(1..maxNrofZP-CSI-RS-ResourcesPerSet)) OF ZP-CSI-RS-ResourceId, + ... } -- TAG-ZP-CSI-RS-RESOURCESET-STOP -- TAG-ZP-CSI-RS-RESOURCESETID-START -ZP-CSI-RS-ResourceSetId ::= INTEGER (0..maxNrofZP-CSI-RS-ResourceSets-1) +ZP-CSI-RS-ResourceSetId ::= INTEGER (0..maxNrofZP-CSI-RS-ResourceSets-1) -- TAG-ZP-CSI-RS-RESOURCESETID-STOP -- TAG-ACCESSSTRATUMRELEASE-START AccessStratumRelease ::= ENUMERATED { - rel15, spare7, spare6, spare5, spare4, spare3, spare2, spare1, ... } + rel15, spare7, spare6, spare5, spare4, spare3, spare2, spare1, ... } -- TAG-ACCESSSTRATUMRELEASE-STOP -- TAG-BANDCOMBINATIONLIST-START -BandCombinationList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination +BandCombinationList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination -BandCombination ::= SEQUENCE { - bandList SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters, - featureSetCombination FeatureSetCombinationId, +BandCombination ::= SEQUENCE { + bandList SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters, + featureSetCombination FeatureSetCombinationId, - ca-ParametersEUTRA CA-ParametersEUTRA OPTIONAL, - ca-ParametersNR CA-ParametersNR OPTIONAL, - mrdc-Parameters MRDC-Parameters OPTIONAL, - supportedBandwidthCombinationSet BIT STRING (SIZE (1..32)) OPTIONAL + ca-ParametersEUTRA CA-ParametersEUTRA OPTIONAL, + ca-ParametersNR CA-ParametersNR OPTIONAL, + mrdc-Parameters MRDC-Parameters OPTIONAL, + supportedBandwidthCombinationSet BIT STRING (SIZE (1..32)) OPTIONAL, + powerClass-v1530 ENUMERATED {pc2} OPTIONAL } - - -BandParameters ::= CHOICE { - eutra SEQUENCE { - bandEUTRA FreqBandIndicatorEUTRA, - ca-BandwidthClassDL-EUTRA CA-BandwidthClassEUTRA OPTIONAL, - ca-BandwidthClassUL-EUTRA CA-BandwidthClassEUTRA OPTIONAL - }, - nr SEQUENCE { - bandNR FreqBandIndicatorNR, - ca-BandwidthClassDL-NR CA-BandwidthClassNR OPTIONAL, - ca-BandwidthClassUL-NR CA-BandwidthClassNR OPTIONAL - } +BandParameters ::= CHOICE { + eutra SEQUENCE { + bandEUTRA FreqBandIndicatorEUTRA, + ca-BandwidthClassDL-EUTRA CA-BandwidthClassEUTRA OPTIONAL, + ca-BandwidthClassUL-EUTRA CA-BandwidthClassEUTRA OPTIONAL + }, + nr SEQUENCE { + bandNR FreqBandIndicatorNR, + ca-BandwidthClassDL-NR CA-BandwidthClassNR OPTIONAL, + ca-BandwidthClassUL-NR CA-BandwidthClassNR OPTIONAL + } } - -- TAG-BANDCOMBINATIONLIST-STOP --- TAG-CA-BANDWIDTHCLASSNR-START - -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, ...} +CA-BandwidthClassEUTRA ::= ENUMERATED {a, b, c, d, e, f, ...} -- TAG-CA-BANDWIDTHCLASSEUTRA-STOP --- TAG-CA-PARAMETERSNR-START +-- TAG-CA-BANDWIDTHCLASSNR-START -CA-ParametersNR ::= SEQUENCE { - multipleTimingAdvances ENUMERATED {supported} OPTIONAL, - parallelTxSRS-PUCCH-PUSCH ENUMERATED {supported} OPTIONAL, - parallelTxPRACH-SRS-PUCCH-PUSCH ENUMERATED {supported} OPTIONAL, - simultaneousRxTxInterBandCA ENUMERATED {supported} OPTIONAL, - simultaneousRxTxSUL ENUMERATED {supported} OPTIONAL, - diffNumerologyAcrossPUCCH-Group ENUMERATED {supported} OPTIONAL, - diffNumerologyWithinPUCCH-Group ENUMERATED {supported} OPTIONAL, - supportedNumberTAG ENUMERATED {n2, n3, n4} OPTIONAL, - ... -} +CA-BandwidthClassNR ::= ENUMERATED {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, ...} --- TAG-CA-PARAMETERSNR-STOP +-- TAG-CA-BANDWIDTHCLASSNR-STOP -- TAG-CA-PARAMETERSEUTRA-START -CA-ParametersEUTRA ::= SEQUENCE { - multipleTimingAdvance ENUMERATED {supported} OPTIONAL, - simultaneousRx-Tx ENUMERATED {supported} OPTIONAL, - supportedNAICS-2CRS-AP BIT STRING (SIZE (1..8)) OPTIONAL, - additionalRx-Tx-PerformanceReq ENUMERATED {supported} OPTIONAL, - ue-CA-PowerClass-N ENUMERATED {class2} OPTIONAL, - ... +CA-ParametersEUTRA ::= SEQUENCE { + multipleTimingAdvance ENUMERATED {supported} OPTIONAL, + simultaneousRx-Tx ENUMERATED {supported} OPTIONAL, + supportedNAICS-2CRS-AP BIT STRING (SIZE (1..8)) OPTIONAL, + additionalRx-Tx-PerformanceReq ENUMERATED {supported} OPTIONAL, + ue-CA-PowerClass-N ENUMERATED {class2} OPTIONAL, + supportedBandwidthCombinationSetEUTRA-v1530 BIT STRING (SIZE (1..32)) OPTIONAL, + ... } -- TAG-CA-PARAMETERSEUTRA-STOP +-- TAG-CA-PARAMETERSNR-START + +CA-ParametersNR ::= SEQUENCE { + multipleTimingAdvances ENUMERATED {supported} OPTIONAL, + parallelTxSRS-PUCCH-PUSCH ENUMERATED {supported} OPTIONAL, + parallelTxPRACH-SRS-PUCCH-PUSCH ENUMERATED {supported} OPTIONAL, + simultaneousRxTxInterBandCA ENUMERATED {supported} OPTIONAL, + simultaneousRxTxSUL ENUMERATED {supported} OPTIONAL, + diffNumerologyAcrossPUCCH-Group ENUMERATED {supported} OPTIONAL, + diffNumerologyWithinPUCCH-Group ENUMERATED {supported} OPTIONAL, + supportedNumberTAG ENUMERATED {n2, n3, n4} OPTIONAL, + ... +} + +-- TAG-CA-PARAMETERSNR-STOP -- TAG-FEATURESETCOMBINATION-START -FeatureSetCombination ::= SEQUENCE (SIZE (1..maxSimultaneousBands)) OF FeatureSetsPerBand +FeatureSetCombination ::= SEQUENCE (SIZE (1..maxSimultaneousBands)) OF FeatureSetsPerBand -FeatureSetsPerBand ::= SEQUENCE (SIZE (1..maxFeatureSetsPerBand)) OF FeatureSet +FeatureSetsPerBand ::= SEQUENCE (SIZE (1..maxFeatureSetsPerBand)) OF FeatureSet -FeatureSet ::= CHOICE { - eutra SEQUENCE { - downlinkSetEUTRA FeatureSetEUTRA-DownlinkId, - uplinkSetEUTRA FeatureSetEUTRA-UplinkId - }, - nr SEQUENCE { - downlinkSetNR FeatureSetDownlinkId, - uplinkSetNR FeatureSetUplinkId - } +FeatureSet ::= CHOICE { + eutra SEQUENCE { + downlinkSetEUTRA FeatureSetEUTRA-DownlinkId, + uplinkSetEUTRA FeatureSetEUTRA-UplinkId + }, + nr SEQUENCE { + downlinkSetNR FeatureSetDownlinkId, + uplinkSetNR FeatureSetUplinkId + } } -- TAG-FEATURESET-COMBINATION-ID-START -FeatureSetCombinationId ::= INTEGER (0.. maxFeatureSetCombinations) +FeatureSetCombinationId ::= INTEGER (0.. maxFeatureSetCombinations) -- TAG-FEATURESET-COMBINATION-ID-STOP -- TAG-FEATURESETDOWNLINK-START -FeatureSetDownlink ::= SEQUENCE { - featureSetListPerDownlinkCC SEQUENCE (SIZE (1..maxNrofServingCells)) OF FeatureSetDownlinkPerCC-Id, - - intraBandFreqSeparationDL FreqSeparationClass OPTIONAL, - scalingFactor ENUMERATED {f0p4, f0p75, f0p8} OPTIONAL, - crossCarrierSchedulingDL-OtherSCS ENUMERATED {supported} OPTIONAL, - scellWithoutSSB ENUMERATED {supported} OPTIONAL, - csi-RS-MeasSCellWithoutSSB ENUMERATED {supported} OPTIONAL, - srs-AssocCSI-RS ENUMERATED {supported} OPTIONAL, - type1-3-CSS ENUMERATED {supported} OPTIONAL, - pdcchMonitoringAnyOccasions ENUMERATED {withoutDCI-Gap, withDCI-Gap} OPTIONAL, - pdcchMonitoringAnyOccasionsWithSpanGap ENUMERATED {supported} OPTIONAL, - ue-SpecificUL-DL-Assignment ENUMERATED {supported} OPTIONAL, - searchSpaceSharingCA-DL ENUMERATED {supported} OPTIONAL, - timeDurationForQCL SEQUENCE { - scs-60kHz ENUMERATED {s7, s14, s28} OPTIONAL, - sch-120kHz ENUMERATED {s14, s28} OPTIONAL - } OPTIONAL, - pdsch-DifferentTB-PerSlot SEQUENCE { - scs-15kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, - scs-30kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, - scs-60kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, - scs-120kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL - } OPTIONAL, - csi-RS-IM-ReceptionForFeedback CSI-RS-IM-ReceptionForFeedback OPTIONAL, - typeI-SinglePanelCodebookList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeI-SinglePanelCodebook OPTIONAL, - typeI-MultiPanelCodebookList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeI-MultiPanelCodebook OPTIONAL, - typeII-CodebookList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeII-Codebook OPTIONAL, - typeII-CodebookPortSelectionList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeII-CodebookPortSelection OPTIONAL - -} - -CSI-RS-IM-ReceptionForFeedback ::= SEQUENCE { - maxNumberNZP-CSI-RS-PerCC INTEGER (1..32), - maxNumberPortsAcrossNZP-CSI-RS-PerCC ENUMERATED {p2, p4, p8, p12, p16, p24, p32, p40, p48, p56, p64, p72, p80, - p88, p96, p104, p112, p120, p128, p136, p144, p152, p160, p168, - p176, p184, p192, p200, p208, p216, p224, p232, p240, p248, p256}, - maxNumberCS-IM-PerCC ENUMERATED {n1, n2, n4, n8, n16, n32}, - maxNumberSimultaneousCSI-RS-ActBWP-AllCC ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26, - n28, n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52, - n54, n56, n58, n60, n62, n64}, - totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC ENUMERATED {p8, p12, p16, p24, p32, p40, p48, p56, p64, p72, p80, - p88, p96, p104, p112, p120, p128, p136, p144, p152, p160, p168, - p176, p184, p192, p200, p208, p216, p224, p232, p240, p248, p256} -} - -TypeI-SinglePanelCodebook ::= SEQUENCE { - maxNumberTxPortsPerResource ENUMERATED {p2, p4, p8, p12, p16, p24, p32}, - maxNumberResources INTEGER (1..64), - totalNumberTxPorts INTEGER (2..256), - supportedCodebookMode ENUMERATED {mode1, mode1AndMode2}, - maxNumberCSI-RS-PerResourceSet INTEGER (1..8) -} - -TypeI-MultiPanelCodebook ::= SEQUENCE { - maxNumberTxPortsPerResource ENUMERATED {p8, p16, p32}, - maxNumberResources INTEGER (1..64), - totalNumberTxPorts INTEGER (2..256), - supportedCodebookMode ENUMERATED {mode1, mode2, both}, - supportedNumberPanels ENUMERATED {n2, n4}, - maxNumberCSI-RS-PerResourceSet INTEGER (1..8) -} - -TypeII-Codebook ::= SEQUENCE { - maxNumberTxPortsPerResource ENUMERATED {p4, p8, p12, p16, p24, p32}, - maxNumberResources INTEGER (1..64), - totalNumberTxPorts INTEGER (2..256), - parameterLx INTEGER (2..4), - amplitudeScalingType ENUMERATED {wideband, widebandAndSubband}, - amplitudeSubsetRestriction ENUMERATED {supported} OPTIONAL, - maxNumberCSI-RS-PerResourceSet INTEGER (1..8) -} - -TypeII-CodebookPortSelection ::= SEQUENCE { - maxNumberTxPortsPerResource ENUMERATED {p4, p8, p12, p16, p24, p32}, - maxNumberResources INTEGER (1..64), - totalNumberTxPorts INTEGER (2..256), - parameterLx INTEGER (2..4), - amplitudeScalingType ENUMERATED {wideband, widebandAndSubband}, - maxNumberCSI-RS-PerResourceSet INTEGER (1..8) +FeatureSetDownlink ::= SEQUENCE { + featureSetListPerDownlinkCC SEQUENCE (SIZE (1..maxNrofServingCells)) OF FeatureSetDownlinkPerCC-Id, + + intraBandFreqSeparationDL FreqSeparationClass OPTIONAL, + scalingFactor ENUMERATED {f0p4, f0p75, f0p8} OPTIONAL, + crossCarrierScheduling-OtherSCS ENUMERATED {supported} OPTIONAL, + scellWithoutSSB ENUMERATED {supported} OPTIONAL, + csi-RS-MeasSCellWithoutSSB ENUMERATED {supported} OPTIONAL, + srs-AssocCSI-RS ENUMERATED {supported} OPTIONAL, + type1-3-CSS ENUMERATED {supported} OPTIONAL, + pdcch-MonitoringAnyOccasions ENUMERATED {withoutDCI-Gap, withDCI-Gap} OPTIONAL, + pdcch-MonitoringAnyOccasionsWithSpanGap ENUMERATED {supported} OPTIONAL, + ue-SpecificUL-DL-Assignment ENUMERATED {supported} OPTIONAL, + searchSpaceSharingCA-DL ENUMERATED {supported} OPTIONAL, + timeDurationForQCL SEQUENCE { + scs-60kHz ENUMERATED {s7, s14, s28} OPTIONAL, + sch-120kHz ENUMERATED {s14, s28} OPTIONAL + } OPTIONAL, + pdsch-DifferentTB-PerSlot SEQUENCE { + scs-15kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, + scs-30kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, + scs-60kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, + scs-120kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL + } OPTIONAL, + csi-RS-IM-ReceptionForFeedback CSI-RS-IM-ReceptionForFeedback OPTIONAL, + typeI-SinglePanelCodebookList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeI-SinglePanelCodebook OPTIONAL, + typeI-MultiPanelCodebookList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeI-MultiPanelCodebook OPTIONAL, + typeII-CodebookList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeII-Codebook OPTIONAL, + typeII-CodebookPortSelectionList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeII-CodebookPortSelection OPTIONAL + +} + +CSI-RS-IM-ReceptionForFeedback ::= SEQUENCE { + maxNumberNZP-CSI-RS-PerCC INTEGER (1..32), + maxNumberPortsAcrossNZP-CSI-RS-PerCC ENUMERATED {p2, p4, p8, p12, p16, p24, p32, p40, p48, p56, p64, p72, p80, + p88, p96, p104, p112, p120, p128, p136, p144, p152, p160, p168, + p176, p184, p192, p200, p208, p216, p224, p232, p240, p248, p256}, + maxNumberCS-IM-PerCC ENUMERATED {n1, n2, n4, n8, n16, n32}, + maxNumberSimultaneousCSI-RS-ActBWP-AllCC ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26, + n28, n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52, + n54, n56, n58, n60, n62, n64}, + totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC ENUMERATED {p8, p12, p16, p24, p32, p40, p48, p56, p64, p72, p80, + p88, p96, p104, p112, p120, p128, p136, p144, p152, p160, p168, + p176, p184, p192, p200, p208, p216, p224, p232, p240, p248, p256} +} + +TypeI-SinglePanelCodebook ::= SEQUENCE { + maxNumberTxPortsPerResource ENUMERATED {p2, p4, p8, p12, p16, p24, p32}, + maxNumberResources INTEGER (1..64), + totalNumberTxPorts INTEGER (2..256), + supportedCodebookMode ENUMERATED {mode1, mode1AndMode2}, + maxNumberCSI-RS-PerResourceSet INTEGER (1..8) +} + +TypeI-MultiPanelCodebook ::= SEQUENCE { + maxNumberTxPortsPerResource ENUMERATED {p8, p16, p32}, + maxNumberResources INTEGER (1..64), + totalNumberTxPorts INTEGER (2..256), + supportedCodebookMode ENUMERATED {mode1, mode2, both}, + supportedNumberPanels ENUMERATED {n2, n4}, + maxNumberCSI-RS-PerResourceSet INTEGER (1..8) +} + +TypeII-Codebook ::= SEQUENCE { + maxNumberTxPortsPerResource ENUMERATED {p4, p8, p12, p16, p24, p32}, + maxNumberResources INTEGER (1..64), + totalNumberTxPorts INTEGER (2..256), + parameterLx INTEGER (2..4), + amplitudeScalingType ENUMERATED {wideband, widebandAndSubband}, + amplitudeSubsetRestriction ENUMERATED {supported} OPTIONAL, + maxNumberCSI-RS-PerResourceSet INTEGER (1..8) +} + +TypeII-CodebookPortSelection ::= SEQUENCE { + maxNumberTxPortsPerResource ENUMERATED {p4, p8, p12, p16, p24, p32}, + maxNumberResources INTEGER (1..64), + totalNumberTxPorts INTEGER (2..256), + parameterLx INTEGER (2..4), + amplitudeScalingType ENUMERATED {wideband, widebandAndSubband}, + maxNumberCSI-RS-PerResourceSet INTEGER (1..8) } -- TAG-FEATURESETDOWNLINK-STOP -- TAG-FEATURESET-DOWNLINK-ID-START -FeatureSetDownlinkId ::= INTEGER (0..maxDownlinkFeatureSets) +FeatureSetDownlinkId ::= INTEGER (0..maxDownlinkFeatureSets) -- TAG-FEATURESET-DOWNLINK-ID-STOP --- TAG-FEATURESET-EUTRA-DOWNLINK-ID-START - -FeatureSetEUTRA-DownlinkId ::= INTEGER (0..maxEUTRA-DL-FeatureSets) - --- TAG-FEATURESET-EUTRA-DOWNLINK-ID-STOP -- TAG-FEATURESETDOWNLINKPERCC-START -FeatureSetDownlinkPerCC ::= SEQUENCE { - supportedSubcarrierSpacingDL SubcarrierSpacing, - supportedBandwidthDL SupportedBandwidth, - channelBW-90mhz ENUMERATED {supported} OPTIONAL, - maxNumberMIMO-LayersPDSCH MIMO-LayersDL OPTIONAL, - supportedModulationOrderDL ModulationOrder OPTIONAL +FeatureSetDownlinkPerCC ::= SEQUENCE { + supportedSubcarrierSpacingDL SubcarrierSpacing, + supportedBandwidthDL SupportedBandwidth, + channelBW-90mhz ENUMERATED {supported} OPTIONAL, + maxNumberMIMO-LayersPDSCH MIMO-LayersDL OPTIONAL, + supportedModulationOrderDL ModulationOrder OPTIONAL } -- TAG-FEATURESETDOWNLINKPERCC-STOP -- TAG-FEATURESET-DOWNLINK-PER-CC-ID-START -FeatureSetDownlinkPerCC-Id ::= INTEGER (1..maxPerCC-FeatureSets) +FeatureSetDownlinkPerCC-Id ::= INTEGER (1..maxPerCC-FeatureSets) -- TAG-FEATURESET-DOWNLINK-PER-CC-ID-STOP +-- TAG-FEATURESET-EUTRA-DOWNLINK-ID-START + +FeatureSetEUTRA-DownlinkId ::= INTEGER (0..maxEUTRA-DL-FeatureSets) + +-- TAG-FEATURESET-EUTRA-DOWNLINK-ID-STOP +-- TAG-FEATURESET-EUTRA-UPLINK-ID-START + +FeatureSetEUTRA-UplinkId ::= INTEGER (0..maxEUTRA-UL-FeatureSets) + +-- TAG-FEATURESET-EUTRA-UPLINK-ID-STOP +-- TAG-FEATURESETS-START + +FeatureSets ::= SEQUENCE { + featureSetsDownlink SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink OPTIONAL, + featureSetsDownlinkPerCC SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetDownlinkPerCC OPTIONAL, + featureSetsUplink SEQUENCE (SIZE (1..maxUplinkFeatureSets)) OF FeatureSetUplink OPTIONAL, + featureSetsUplinkPerCC SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetUplinkPerCC OPTIONAL, + ... +} + -- TAG-FEATURESETUPLINK-START -FeatureSetUplink ::= SEQUENCE { - featureSetListPerUplinkCC SEQUENCE (SIZE (1.. maxNrofServingCells)) OF FeatureSetUplinkPerCC-Id, - scalingFactor ENUMERATED {f0p4, f0p75, f0p8} OPTIONAL, - crossCarrierSchedulingUL-OtherSCS ENUMERATED {supported} OPTIONAL, - intraBandFreqSeparationUL FreqSeparationClass OPTIONAL, - searchSpaceSharingCA-UL ENUMERATED {supported} OPTIONAL, - srs-TxSwitch SRS-TxSwitch OPTIONAL, - supportedSRS-Resources SRS-Resources OPTIONAL, - twoPUCCH-Group ENUMERATED {supported} OPTIONAL, - dynamicSwitchSUL ENUMERATED {supported} OPTIONAL, - pusch-DifferentTB-PerSlot SEQUENCE { - scs-15kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, - scs-30kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, - scs-60kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, - scs-120kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL - } OPTIONAL, - csi-ReportFramework CSI-ReportFramework OPTIONAL -} - - -CSI-ReportFramework ::= SEQUENCE { - maxNumberPeriodicCSI-ReportPerBWP INTEGER (1..4), - maxNumberAperiodicCSI-ReportPerBWP INTEGER (1..4), - maxNumberSemiPersistentCSI-ReportPerBWP INTEGER (0..4), - simultaneousCSI-ReportsAllCC INTEGER (5..32) +FeatureSetUplink ::= SEQUENCE { + featureSetListPerUplinkCC SEQUENCE (SIZE (1.. maxNrofServingCells)) OF FeatureSetUplinkPerCC-Id, + scalingFactor ENUMERATED {f0p4, f0p75, f0p8} OPTIONAL, + crossCarrierScheduling-OtherSCS ENUMERATED {supported} OPTIONAL, + intraBandFreqSeparationUL FreqSeparationClass OPTIONAL, + searchSpaceSharingCA-UL ENUMERATED {supported} OPTIONAL, + srs-TxSwitch SRS-TxSwitch OPTIONAL, + supportedSRS-Resources SRS-Resources OPTIONAL, + twoPUCCH-Group ENUMERATED {supported} OPTIONAL, + dynamicSwitchSUL ENUMERATED {supported} OPTIONAL, + simultaneousTxSUL-NonSUL-v1530 ENUMERATED {supported} OPTIONAL, + pusch-DifferentTB-PerSlot SEQUENCE { + scs-15kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, + scs-30kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, + scs-60kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL, + scs-120kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL + } OPTIONAL, + csi-ReportFramework CSI-ReportFramework OPTIONAL +} + +CSI-ReportFramework ::= SEQUENCE { + maxNumberPeriodicCSI-ReportPerBWP INTEGER (1..4), + maxNumberAperiodicCSI-ReportPerBWP INTEGER (1..4), + maxNumberSemiPersistentCSI-ReportPerBWP INTEGER (0..4), + simultaneousCSI-ReportsAllCC INTEGER (5..32) } -- TAG- FEATURESETUPLINK-STOP -- TAG-FEATURESET-UPLINK-ID-START -FeatureSetUplinkId ::= INTEGER (0..maxUplinkFeatureSets) +FeatureSetUplinkId ::= INTEGER (0..maxUplinkFeatureSets) -- TAG-FEATURESET-UPLINK-ID-STOP --- TAG-FEATURESET-EUTRA-UPLINK-ID-START - -FeatureSetEUTRA-UplinkId ::= INTEGER (0..maxEUTRA-UL-FeatureSets) - --- TAG-FEATURESET-EUTRA-UPLINK-ID-STOP -- TAG-FEATURESETUPLINKPERCC-START -FeatureSetUplinkPerCC ::= SEQUENCE { - supportedSubcarrierSpacingUL SubcarrierSpacing, - supportedBandwidthUL SupportedBandwidth, - channelBW-90mhz ENUMERATED {supported} OPTIONAL, - mimo-CB-PUSCH SEQUENCE { - maxNumberMIMO-LayersCB-PUSCH MIMO-LayersUL OPTIONAL, - maxNumberSRS-ResourcePerSet INTEGER (1..2) - } OPTIONAL, - maxNumberMIMO-LayersNonCB-PUSCH MIMO-LayersUL OPTIONAL, - supportedModulationOrderUL ModulationOrder OPTIONAL, - simultaneousTxSUL-NonSUL ENUMERATED {supported} OPTIONAL +FeatureSetUplinkPerCC ::= SEQUENCE { + supportedSubcarrierSpacingUL SubcarrierSpacing, + supportedBandwidthUL SupportedBandwidth, + channelBW-90mhz ENUMERATED {supported} OPTIONAL, + mimo-CB-PUSCH SEQUENCE { + maxNumberMIMO-LayersCB-PUSCH MIMO-LayersUL OPTIONAL, + maxNumberSRS-ResourcePerSet INTEGER (1..2) + } OPTIONAL, + maxNumberMIMO-LayersNonCB-PUSCH MIMO-LayersUL OPTIONAL, + supportedModulationOrderUL ModulationOrder OPTIONAL + } -- TAG-FEATURESETUPLINKPERCC-STOP -- TAG-FEATURESET-UPLINK-PER-CC-ID-START -FeatureSetUplinkPerCC-Id ::= INTEGER (1..maxPerCC-FeatureSets) +FeatureSetUplinkPerCC-Id ::= INTEGER (1..maxPerCC-FeatureSets) -- TAG-FEATURESET-UPLINK-PER-CC-ID-STOP --- TAG-FEATURESETS-START - -FeatureSets ::= SEQUENCE { - featureSetsDownlink SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink OPTIONAL, - featureSetsDownlinkPerCC SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetDownlinkPerCC OPTIONAL, - featureSetsUplink SEQUENCE (SIZE (1..maxUplinkFeatureSets)) OF FeatureSetUplink OPTIONAL, - featureSetsUplinkPerCC SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetUplinkPerCC OPTIONAL, - ... -} - -- TAG-FREQ-BAND-INDICATOR-EUTRA-START -FreqBandIndicatorEUTRA ::= INTEGER (1..maxBandsEUTRA) +FreqBandIndicatorEUTRA ::= INTEGER (1..maxBandsEUTRA) -- TAG-FREQ-BAND-INDICATOR-EUTRA-STOP -- TAG-FREQBANDLIST-START -FreqBandList ::= SEQUENCE (SIZE (1..maxBandsMRDC)) OF FreqBandInformation +FreqBandList ::= SEQUENCE (SIZE (1..maxBandsMRDC)) OF FreqBandInformation -FreqBandInformation ::= CHOICE { - bandInformationEUTRA FreqBandInformationEUTRA, - bandInformationNR FreqBandInformationNR +FreqBandInformation ::= CHOICE { + bandInformationEUTRA FreqBandInformationEUTRA, + bandInformationNR FreqBandInformationNR } -FreqBandInformationEUTRA ::= SEQUENCE { - bandEUTRA FreqBandIndicatorEUTRA, - ca-BandwidthClassDL-EUTRA CA-BandwidthClassEUTRA OPTIONAL, -- Need N - ca-BandwidthClassUL-EUTRA CA-BandwidthClassEUTRA OPTIONAL -- Need N +FreqBandInformationEUTRA ::= SEQUENCE { + bandEUTRA FreqBandIndicatorEUTRA, + ca-BandwidthClassDL-EUTRA CA-BandwidthClassEUTRA OPTIONAL, -- Need N + ca-BandwidthClassUL-EUTRA CA-BandwidthClassEUTRA OPTIONAL -- Need N } -FreqBandInformationNR ::= SEQUENCE { - bandNR FreqBandIndicatorNR, - maxBandwidthRequestedDL AggregatedBandwith OPTIONAL, -- Need N - maxBandwidthRequestedUL AggregatedBandwith OPTIONAL, -- Need N - maxCarriersRequestedDL INTEGER (1.. maxNrofServingCells) OPTIONAL, -- Need N - maxCarriersRequestedUL INTEGER (1.. maxNrofServingCells) OPTIONAL -- Need N +FreqBandInformationNR ::= SEQUENCE { + bandNR FreqBandIndicatorNR, + maxBandwidthRequestedDL AggregatedBandwidth OPTIONAL, -- Need N + maxBandwidthRequestedUL AggregatedBandwidth OPTIONAL, -- Need N + maxCarriersRequestedDL INTEGER (1..maxNrofServingCells) OPTIONAL, -- Need N + maxCarriersRequestedUL INTEGER (1..maxNrofServingCells) OPTIONAL -- Need N } -AggregatedBandwith ::= ENUMERATED {mhz50, mhz100, mhz150, mhz200, mhz250, mhz300, mhz350, - mhz400, mhz450, mhz500, mhz550, mhz600, mhz650, mhz700, mhz750, mhz800} +AggregatedBandwidth ::= ENUMERATED {mhz50, mhz100, mhz150, mhz200, mhz250, mhz300, mhz350, + mhz400, mhz450, mhz500, mhz550, mhz600, mhz650, mhz700, mhz750, mhz800} -- TAG-FREQBANDLIST-STOP -- TAG-FREQSEPARATIONCLASS-START @@ -3460,13 +5113,247 @@ AggregatedBandwith ::= ENUMERATED {mhz50, mhz100, mhz150, mhz200, mhz250, mhz3 FreqSeparationClass ::= ENUMERATED {c1, c2, c3, ...} -- TAG-FREQSEPARATIONCLASS-STOP +-- TAG-INTERRAT-PARAMETERS-START + +InterRAT-Parameters ::= SEQUENCE { + eutra EUTRA-Parameters OPTIONAL, + ... +} + +EUTRA-Parameters ::= SEQUENCE { + supportedBandListEUTRA SEQUENCE (SIZE (1..maxBandsEUTRA)) OF FreqBandIndicatorEUTRA, + eutra-ParametersCommon EUTRA-ParametersCommon OPTIONAL, + eutra-ParametersXDD-Diff EUTRA-ParametersXDD-Diff OPTIONAL, + ... +} + +EUTRA-ParametersCommon ::= SEQUENCE { + mfbi-EUTRA ENUMERATED {supported} OPTIONAL, + modifiedMRP-BehaviorEUTRA BIT STRING (SIZE (32)) OPTIONAL, + multiNS-Pmax-EUTRA ENUMERATED {supported} OPTIONAL, + rs-SINR-MeasEUTRA ENUMERATED {supported} OPTIONAL, + ... +} + +EUTRA-ParametersXDD-Diff ::= SEQUENCE { + rsrqMeasWidebandEUTRA ENUMERATED {supported} OPTIONAL, + ... +} + +-- TAG-INTERRAT-PARAMETERS-STOP +-- TAG-MAC-PARAMETERS-START + +MAC-Parameters ::= SEQUENCE { + mac-ParametersCommon MAC-ParametersCommon OPTIONAL, + mac-ParametersXDD-Diff MAC-ParametersXDD-Diff OPTIONAL +} + +MAC-ParametersCommon ::= SEQUENCE { + lcp-Restriction ENUMERATED {supported} OPTIONAL, + pucch-SpatialRelInfoMAC-CE ENUMERATED {supported} OPTIONAL, + lch-ToSCellRestriction ENUMERATED {supported} OPTIONAL, + ..., + [[ + recommendedBitRate ENUMERATED {supported} OPTIONAL, + recommendedBitRateQuery 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, + multipleSR-Configurations ENUMERATED {supported} OPTIONAL, + multipleConfiguredGrants ENUMERATED {supported} OPTIONAL, + ... +} + +-- TAG-MAC-PARAMETERS-STOP +-- TAG-MEASANDMOBPARAMETERS-START + +MeasAndMobParameters ::= SEQUENCE { + measAndMobParametersCommon MeasAndMobParametersCommon OPTIONAL, + measAndMobParametersXDD-Diff MeasAndMobParametersXDD-Diff OPTIONAL, + measAndMobParametersFRX-Diff MeasAndMobParametersFRX-Diff OPTIONAL +} + +MeasAndMobParametersCommon ::= SEQUENCE { + supportedGapPattern BIT STRING (SIZE (22)) OPTIONAL, + ssb-RLM ENUMERATED {supported} OPTIONAL, + ssb-AndCSI-RS-RLM ENUMERATED {supported} OPTIONAL, + ..., + [[ + eventB-MeasAndReport ENUMERATED {supported} OPTIONAL, + handoverFDD-TDD ENUMERATED {supported} OPTIONAL, + eutra-CGI-Reporting ENUMERATED {supported} OPTIONAL, + nr-CGI-Reporting ENUMERATED {supported} OPTIONAL + ]] +} + +MeasAndMobParametersXDD-Diff ::= SEQUENCE { + intraAndInterF-MeasAndReport ENUMERATED {supported} OPTIONAL, + eventA-MeasAndReport ENUMERATED {supported} OPTIONAL, + ..., + [[ + handoverInterF ENUMERATED {supported} OPTIONAL, + handoverLTE ENUMERATED {supported} OPTIONAL, + handover-eLTE ENUMERATED {supported} OPTIONAL + ]] +} + +MeasAndMobParametersFRX-Diff ::= SEQUENCE { + ss-SINR-Meas ENUMERATED {supported} OPTIONAL, + csi-RSRP-AndRSRQ-MeasWithSSB ENUMERATED {supported} OPTIONAL, + csi-RSRP-AndRSRQ-MeasWithoutSSB ENUMERATED {supported} OPTIONAL, + csi-SINR-Meas ENUMERATED {supported} OPTIONAL, + csi-RS-RLM ENUMERATED {supported} OPTIONAL, + ..., + [[ + handoverInterF ENUMERATED {supported} OPTIONAL, + handoverLTE ENUMERATED {supported} OPTIONAL, + handover-eLTE ENUMERATED {supported} OPTIONAL + ]] +} + +-- TAG-MEASANDMOBPARAMETERS-STOP +-- TAG-MEASANDMOBPARAMETERSMRDC-START + +MeasAndMobParametersMRDC ::= SEQUENCE { + measAndMobParametersMRDC-Common MeasAndMobParametersMRDC-Common OPTIONAL, + measAndMobParametersMRDC-XDD-Diff MeasAndMobParametersMRDC-XDD-Diff OPTIONAL, + measAndMobParametersMRDC-FRX-Diff MeasAndMobParametersMRDC-FRX-Diff OPTIONAL +} + +MeasAndMobParametersMRDC-Common ::= SEQUENCE { + independentGapConfig ENUMERATED {supported} OPTIONAL +} + +MeasAndMobParametersMRDC-XDD-Diff ::= SEQUENCE { + sftd-MeasPSCell ENUMERATED {supported} OPTIONAL, + sftd-MeasNR-Cell ENUMERATED {supported} OPTIONAL +} + +MeasAndMobParametersMRDC-FRX-Diff ::= SEQUENCE { + simultaneousRxDataSSB-DiffNumerology ENUMERATED {supported} OPTIONAL +} + +-- TAG-MEASANDMOBPARAMETERSMRDC-STOP -- TAG-MIMO-LAYERS-START -MIMO-LayersDL ::= ENUMERATED {twoLayers, fourLayers, eightLayers} +MIMO-LayersDL ::= ENUMERATED {twoLayers, fourLayers, eightLayers} -MIMO-LayersUL ::= ENUMERATED {oneLayer, twoLayers, fourLayers} +MIMO-LayersUL ::= ENUMERATED {oneLayer, twoLayers, fourLayers} -- TAG-MIMO-LAYERS-STOP +-- TAG-MIMO-PARAMETERSPERBAND-START + +MIMO-ParametersPerBand ::= SEQUENCE { + tci-StatePDSCH SEQUENCE { + maxNumberConfiguredTCIstatesPerCC ENUMERATED {n4, n8, n16, n32, n64, n128} OPTIONAL, + maxNumberActiveTCI-PerBWP ENUMERATED {n1, n2, n4, n8} OPTIONAL + } OPTIONAL, + additionalActiveTCI-StatePDCCH ENUMERATED {supported} OPTIONAL, + pusch-TransCoherence ENUMERATED {nonCoherent, partialNonCoherent, fullCoherent} OPTIONAL, + beamCorrespondence ENUMERATED {supported} OPTIONAL, + periodicBeamReport ENUMERATED {supported} OPTIONAL, + aperiodicBeamReport ENUMERATED {supported} OPTIONAL, + sp-BeamReportPUCCH ENUMERATED {supported} OPTIONAL, + sp-BeamReportPUSCH ENUMERATED {supported} OPTIONAL, + beamManagementSSB-CSI-RS BeamManagementSSB-CSI-RS OPTIONAL, + maxNumberRxBeam INTEGER (2..8) OPTIONAL, + 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, + maxNumberNonGroupBeamReporting ENUMERATED {n1, n2, n4} OPTIONAL, + groupBeamReporting ENUMERATED {supported} OPTIONAL, + uplinkBeamManagement SEQUENCE { + maxNumberSRS-ResourcePerSet-BM ENUMERATED {n2, n4, n8, n16}, + maxNumberSRS-ResourceSet INTEGER (1..8) + } OPTIONAL, + maxNumberCSI-RS-BFR INTEGER (1..64) OPTIONAL, + maxNumberSSB-BFR INTEGER (1..64) OPTIONAL, + maxNumberCSI-RS-SSB-BFR INTEGER (1..256) OPTIONAL, + twoPortsPTRS-DL ENUMERATED {supported} OPTIONAL, + twoPortsPTRS-UL ENUMERATED {supported} OPTIONAL, + supportedSRS-Resources SRS-Resources OPTIONAL, + maxNumberSimultaneousSRS-PerCC INTEGER (1..4) OPTIONAL, + beamReportTiming SEQUENCE { + scs-15kHz ENUMERATED {sym2, sym4, sym8} OPTIONAL, + scs-30kHz ENUMERATED {sym4, sym8, sym14} OPTIONAL, + scs-60kHz ENUMERATED {sym8, sym14, sym28} OPTIONAL, + scs-120kHz ENUMERATED {sym14, sym28, sym56} OPTIONAL + } OPTIONAL, + ptrs-DensityRecommendationSetDL SEQUENCE { + scs-15kHz PTRS-DensityRecommendationDL OPTIONAL, + scs-30kHz PTRS-DensityRecommendationDL OPTIONAL, + scs-60kHz PTRS-DensityRecommendationDL OPTIONAL, + scs-120kHz PTRS-DensityRecommendationDL OPTIONAL + } OPTIONAL, + ptrs-DensityRecommendationSetUL SEQUENCE { + scs-15kHz PTRS-DensityRecommendationUL OPTIONAL, + scs-30kHz PTRS-DensityRecommendationUL OPTIONAL, + scs-60kHz PTRS-DensityRecommendationUL OPTIONAL, + scs-120kHz PTRS-DensityRecommendationUL OPTIONAL + } OPTIONAL, + csi-RS-ForTracking CSI-RS-ForTracking OPTIONAL, + aperiodicTRS ENUMERATED {supported} OPTIONAL, + ... +} + +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} +} + +CSI-RS-ForTracking ::= SEQUENCE { + burstLength INTEGER (1..2), + maxSimultaneousResourceSetsPerCC INTEGER (1..8), + maxConfiguredResourceSetsPerCC INTEGER (1..64), + maxConfiguredResourceSetsAllCC INTEGER (1..128) +} + +PTRS-DensityRecommendationDL ::= SEQUENCE { + frequencyDensity1 INTEGER (1..276), + frequencyDensity2 INTEGER (1..276), + timeDensity1 INTEGER (0..29), + timeDensity2 INTEGER (0..29), + timeDensity3 INTEGER (0..29) +} + +PTRS-DensityRecommendationUL ::= SEQUENCE { + frequencyDensity1 INTEGER (1..276), + frequencyDensity2 INTEGER (1..276), + timeDensity1 INTEGER (0..29), + timeDensity2 INTEGER (0..29), + timeDensity3 INTEGER (0..29), + sampleDensity1 INTEGER (1..276), + sampleDensity2 INTEGER (1..276), + sampleDensity3 INTEGER (1..276), + sampleDensity4 INTEGER (1..276), + sampleDensity5 INTEGER (1..276) +} + +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 {n1, n2, n4, n8, n16}, + maxNumberSP-SRS-PerBWP-PerSlot INTEGER (1..6), + maxNumberSRS-Ports-PerResource ENUMERATED {n1, n2, n4} +} + +SRS-TxSwitch ::= SEQUENCE { + supportedSRS-TxPortSwitch ENUMERATED {t1r2, t1r4, t2r4, t1r4-t2r4, tr-equal}, + txSwitchImpactToRx ENUMERATED {true} OPTIONAL +} + -- TAG-MODULATION-ORDER-START ModulationOrder ::= ENUMERATED {bpsk-halfpi, bpsk, qpsk, qam16, qam64, qam256} @@ -3475,27 +5362,264 @@ ModulationOrder ::= ENUMERATED {bpsk-halfpi, bpsk, qpsk, qam16, qam64, qam256} -- TAG-MRDC-PARAMETERS-START MRDC-Parameters ::= SEQUENCE { - singleUL-Transmission ENUMERATED {supported} OPTIONAL, - dynamicPowerSharing ENUMERATED {supported} OPTIONAL, - tdm-Pattern ENUMERATED {supported} OPTIONAL, - ul-SharingEUTRA-NR ENUMERATED {tdm, fdm, both} OPTIONAL, - ul-SwitchingTimeEUTRA-NR ENUMERATED {type1, type2} OPTIONAL, - simultaneousRxTxInterBandENDC ENUMERATED {supported} OPTIONAL, - asyncIntraBandENDC ENUMERATED {supported} OPTIONAL, - ... + singleUL-Transmission ENUMERATED {supported} OPTIONAL, + dynamicPowerSharing ENUMERATED {supported} OPTIONAL, + tdm-Pattern ENUMERATED {supported} OPTIONAL, + ul-SharingEUTRA-NR ENUMERATED {tdm, fdm, both} OPTIONAL, + ul-SwitchingTimeEUTRA-NR ENUMERATED {type1, type2} OPTIONAL, + simultaneousRxTxInterBandENDC ENUMERATED {supported} OPTIONAL, + asyncIntraBandENDC ENUMERATED {supported} OPTIONAL, + ... } -- TAG-MRDC-PARAMETERS-STOP +-- TAG-PDCP-PARAMETERS-START + +PDCP-Parameters ::= SEQUENCE { + supportedROHC-Profiles SEQUENCE { + profile0x0000 BOOLEAN, + profile0x0001 BOOLEAN, + profile0x0002 BOOLEAN, + profile0x0003 BOOLEAN, + profile0x0004 BOOLEAN, + profile0x0006 BOOLEAN, + profile0x0101 BOOLEAN, + profile0x0102 BOOLEAN, + profile0x0103 BOOLEAN, + profile0x0104 BOOLEAN + }, + maxNumberROHC-ContextSessions ENUMERATED {cs2, cs4, cs8, cs12, cs16, cs24, cs32, cs48, cs64, + cs128, cs256, cs512, cs1024, cs16384, spare2, spare1}, + uplinkOnlyROHC-Profiles ENUMERATED {supported} OPTIONAL, + continueROHC-Context ENUMERATED {supported} OPTIONAL, + outOfOrderDelivery ENUMERATED {supported} OPTIONAL, + shortSN ENUMERATED {supported} OPTIONAL, + pdcp-DuplicationSRB3 ENUMERATED {supported} OPTIONAL, + pdcp-DuplicationMCG-OrSCG ENUMERATED {supported} OPTIONAL, + ... +} + +-- TAG-PDCP-PARAMETERS-STOP +-- TAG-PDCP-PARAMETERSMRDC-START + +PDCP-ParametersMRDC ::= SEQUENCE { + pdcp-DuplicationSplitSRB ENUMERATED {supported} OPTIONAL, + pdcp-DuplicationSplitDRB ENUMERATED {supported} OPTIONAL +} + +-- TAG-PDCP-PARAMETERSMRDC-STOP +-- TAG-PHY-PARAMETERS-START + +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 +} + +Phy-ParametersCommon ::= SEQUENCE { + csi-RS-CFRA-ForHO ENUMERATED {supported} OPTIONAL, + dynamicPRB-BundlingDL ENUMERATED {supported} OPTIONAL, + sp-CSI-ReportPUCCH ENUMERATED {supported} OPTIONAL, + sp-CSI-ReportPUSCH ENUMERATED {supported} OPTIONAL, + nzp-CSI-RS-IntefMgmt ENUMERATED {supported} OPTIONAL, + type2-SP-CSI-Feedback-LongPUCCH ENUMERATED {supported} OPTIONAL, + precoderGranularityCORESET ENUMERATED {supported} OPTIONAL, + dynamicHARQ-ACK-Codebook ENUMERATED {supported} OPTIONAL, + semiStaticHARQ-ACK-Codebook ENUMERATED {supported} OPTIONAL, + spatialBundlingHARQ-ACK ENUMERATED {supported} OPTIONAL, + dynamicBetaOffsetInd-HARQ-ACK-CSI ENUMERATED {supported} OPTIONAL, + pucch-Repetition-F1-3-4 ENUMERATED {supported} OPTIONAL, + ra-Type0-PUSCH ENUMERATED {supported} OPTIONAL, + dynamicSwitchRA-Type0-1-PDSCH ENUMERATED {supported} OPTIONAL, + dynamicSwitchRA-Type0-1-PUSCH ENUMERATED {supported} OPTIONAL, + pdsch-MappingTypeA ENUMERATED {supported} OPTIONAL, + pdsch-MappingTypeB ENUMERATED {supported} OPTIONAL, + interleavingVRB-ToPRB-PDSCH ENUMERATED {supported} OPTIONAL, + interSlotFreqHopping-PUSCH ENUMERATED {supported} OPTIONAL, + type1-PUSCH-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, + type2-PUSCH-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, + pusch-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, + pdsch-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, + downlinkSPS ENUMERATED {supported} OPTIONAL, + configuredUL-GrantType1 ENUMERATED {supported} OPTIONAL, + configuredUL-GrantType2 ENUMERATED {supported} OPTIONAL, + pre-EmptIndication-DL ENUMERATED {supported} OPTIONAL, + cbg-TransIndication-DL ENUMERATED {supported} OPTIONAL, + cbg-TransIndication-UL ENUMERATED {supported} OPTIONAL, + cbg-FlushIndication-DL ENUMERATED {supported} OPTIONAL, + dynamicHARQ-ACK-CodeB-CBG-Retx-DL ENUMERATED {supported} OPTIONAL, + rateMatchingResrcSetSemi-Static ENUMERATED {supported} OPTIONAL, + rateMatchingResrcSetDynamic ENUMERATED {supported} OPTIONAL, + bwp-SwitchingDelay ENUMERATED {type1, type2} OPTIONAL, + ... , + [[ + eutra-RS-SINR-measurement ENUMERATED {supported} OPTIONAL + ]] +} + +Phy-ParametersXDD-Diff ::= SEQUENCE { + dynamicSFI ENUMERATED {supported} OPTIONAL, + twoPUCCH-F0-2-ConsecSymbols ENUMERATED {supported} OPTIONAL, + twoDifferentTPC-Loop-PUSCH ENUMERATED {supported} OPTIONAL, + twoDifferentTPC-Loop-PUCCH ENUMERATED {supported} OPTIONAL, + ... +} + +Phy-ParametersFRX-Diff ::= SEQUENCE { + dynamicSFI ENUMERATED {supported} OPTIONAL, + oneFL-DMRS-TwoAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL, + twoFL-DMRS BIT STRING (SIZE (2)) OPTIONAL, + twoFL-DMRS-TwoAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL, + oneFL-DMRS-ThreeAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL, + supportedDMRS-TypeDL ENUMERATED {type1, type1And2} OPTIONAL, + supportedDMRS-TypeUL ENUMERATED {type1, type1And2} OPTIONAL, + semiOpenLoopCSI ENUMERATED {supported} OPTIONAL, + csi-ReportWithoutPMI ENUMERATED {supported} OPTIONAL, + csi-ReportWithoutCQI ENUMERATED {supported} OPTIONAL, + onePortsPTRS BIT STRING (SIZE (2)) OPTIONAL, + twoPUCCH-F0-2-ConsecSymbols ENUMERATED {supported} OPTIONAL, + pucch-F2-WithFH ENUMERATED {supported} OPTIONAL, + pucch-F3-WithFH ENUMERATED {supported} OPTIONAL, + pucch-F4-WithFH ENUMERATED {supported} OPTIONAL, + freqHoppingPUCCH-F0-2 ENUMERATED {notSupported} OPTIONAL, + freqHoppingPUCCH-F1-3-4 ENUMERATED {notSupported} OPTIONAL, + mux-SR-HARQ-ACK-CSI-PUCCH ENUMERATED {supported} OPTIONAL, + uci-CodeBlockSegmentation ENUMERATED {supported} OPTIONAL, + onePUCCH-LongAndShortFormat ENUMERATED {supported} OPTIONAL, + twoPUCCH-AnyOthersInSlot ENUMERATED {supported} OPTIONAL, + intraSlotFreqHopping-PUSCH ENUMERATED {supported} OPTIONAL, + pusch-LBRM ENUMERATED {supported} OPTIONAL, + pdcch-BlindDetectionCA INTEGER (4..16) OPTIONAL, + tpc-PUSCH-RNTI ENUMERATED {supported} OPTIONAL, + tpc-PUCCH-RNTI ENUMERATED {supported} OPTIONAL, + tpc-SRS-RNTI ENUMERATED {supported} OPTIONAL, + absoluteTPC-Command ENUMERATED {supported} OPTIONAL, + twoDifferentTPC-Loop-PUSCH ENUMERATED {supported} OPTIONAL, + twoDifferentTPC-Loop-PUCCH ENUMERATED {supported} OPTIONAL, + pusch-HalfPi-BPSK ENUMERATED {supported} OPTIONAL, + pucch-F3-4-HalfPi-BPSK ENUMERATED {supported} OPTIONAL, + almostContiguousCP-OFDM-UL ENUMERATED {supported} OPTIONAL, + sp-CSI-RS ENUMERATED {supported} OPTIONAL, + sp-CSI-IM ENUMERATED {supported} OPTIONAL, + tdd-MultiDL-UL-SwitchPerSlot ENUMERATED {supported} OPTIONAL, + multipleCORESET ENUMERATED {supported} OPTIONAL, + ... +} + +Phy-ParametersFR1 ::= SEQUENCE { + pdcchMonitoringSingleOccasion ENUMERATED {supported} OPTIONAL, + scs-60kHz ENUMERATED {supported} OPTIONAL, + pdsch-256QAM-FR1 ENUMERATED {supported} OPTIONAL, + pdsch-RE-MappingFR1 ENUMERATED {n10, n20} OPTIONAL, + ... +} + +Phy-ParametersFR2 ::= SEQUENCE { + calibrationGapPA ENUMERATED {supported} OPTIONAL, + pdsch-RE-MappingFR2 ENUMERATED {n6, n20} OPTIONAL, + ... +} + +-- TAG-PHY-PARAMETERS-STOP +-- TAG-PHY-PARAMETERSMRDC-START + +Phy-ParametersMRDC ::= SEQUENCE { + naics-Capability-List SEQUENCE (SIZE (1..maxNrofNAICS-Entries)) OF NAICS-Capability-Entry OPTIONAL, + ... +} + +NAICS-Capability-Entry ::= SEQUENCE { + numberOfNAICS-CapableCC INTEGER(1..5), + numberOfAggregatedPRB ENUMERATED {n50, n75, n100, n125, n150, n175, n200, n225, + n250, n275, n300, n350, n400, n450, n500, spare}, + ... +} + +-- TAG-PHY-PARAMETERSMRDC-STOP -- TAG-RAT-TYPE-START -RAT-Type ::= ENUMERATED {nr, eutra-nr, spare2, spare1, ...} +RAT-Type ::= ENUMERATED {nr, eutra-nr, eutra, spare1, ...} -- TAG-RAT-TYPE-STOP +-- TAG-RF-PARAMETERS-START + +RF-Parameters ::= SEQUENCE { + supportedBandListNR SEQUENCE (SIZE (1..maxBands)) OF BandNR, + supportedBandCombinationList BandCombinationList OPTIONAL, + appliedFreqBandListFilter FreqBandList OPTIONAL, + ... +} + +BandNR ::= SEQUENCE { + bandNR FreqBandIndicatorNR, + modifiedMPR-Behaviour BIT STRING (SIZE (8)) OPTIONAL, + mimo-ParametersPerBand MIMO-ParametersPerBand OPTIONAL, + extendedCP ENUMERATED {supported} OPTIONAL, + multipleTCI ENUMERATED {supported} OPTIONAL, + bwp-WithoutRestriction ENUMERATED {supported} OPTIONAL, + bwp-SameNumerology ENUMERATED {upto2, upto4} OPTIONAL, + bwp-DiffNumerology ENUMERATED {upto4} OPTIONAL, + crossCarrierScheduling-SameSCS ENUMERATED {supported} OPTIONAL, + pdsch-256QAM-FR2 ENUMERATED {supported} OPTIONAL, + pusch-256QAM ENUMERATED {supported} OPTIONAL, + ue-PowerClass ENUMERATED {pc1, pc2, pc3, pc4} OPTIONAL, + rateMatchingLTE-CRS ENUMERATED {supported} OPTIONAL, + channelBWs-DL-v1530 CHOICE { + fr1 SEQUENCE { + scs-15kHz BIT STRING (SIZE (10)) OPTIONAL, + scs-30kHz BIT STRING (SIZE (10)) OPTIONAL, + scs-60kHz BIT STRING (SIZE (10)) OPTIONAL + }, + fr2 SEQUENCE { + scs-60kHz BIT STRING (SIZE (3)) OPTIONAL, + scs-120kHz BIT STRING (SIZE (3)) OPTIONAL + } + } OPTIONAL, + channelBWs-UL-v1530 CHOICE { + fr1 SEQUENCE { + scs-15kHz BIT STRING (SIZE (10)) OPTIONAL, + scs-30kHz BIT STRING (SIZE (10)) OPTIONAL, + scs-60kHz BIT STRING (SIZE (10)) OPTIONAL + }, + fr2 SEQUENCE { + scs-60kHz BIT STRING (SIZE (3)) OPTIONAL, + scs-120kHz BIT STRING (SIZE (3)) OPTIONAL + } + } OPTIONAL, + ..., + [[ + maxUplinkDutyCycle ENUMERATED {n60, n70, n80, n90, n100} OPTIONAL + ]] + +} + +-- TAG-RF-PARAMETERS-STOP +-- TAG-RF-PARAMETERSMRDC-START + +RF-ParametersMRDC ::= SEQUENCE { + supportedBandCombinationList BandCombinationList OPTIONAL, + appliedFreqBandListFilter FreqBandList OPTIONAL, + ... +} + +-- TAG-RF-PARAMETERSMRDC-STOP +-- TAG-RLC-PARAMETERS-START + +RLC-Parameters ::= SEQUENCE { + am-WithShortSN ENUMERATED {supported} OPTIONAL, + um-WithShortSN ENUMERATED {supported} OPTIONAL, + um-WithLongSN ENUMERATED {supported} OPTIONAL, + ... +} + +-- TAG-RLC-PARAMETERS-STOP -- TAG-SUPPORTEDBANDWIDTH-START -SupportedBandwidth ::= CHOICE { - fr1 ENUMERATED {mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100}, - fr2 ENUMERATED {mhz50, mhz100, mhz200, mhz400} +SupportedBandwidth ::= CHOICE { + fr1 ENUMERATED {mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100}, + fr2 ENUMERATED {mhz50, mhz100, mhz200, mhz400} } -- TAG-SUPPORTEDBANDWIDTH-STOP @@ -3504,616 +5628,408 @@ SupportedBandwidth ::= CHOICE { 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 + rat-Type RAT-Type, + ue-CapabilityRAT-Container OCTET STRING } -- TAG-UE-CAPABILITY-RAT-CONTAINER-LIST-STOP --- TAG-UE-MRDC-CAPABILITY-START - -UE-MRDC-Capability ::= SEQUENCE { - measParametersMRDC MeasParametersMRDC OPTIONAL, - rf-ParametersMRDC RF-ParametersMRDC, - 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, - featureSetCombinations SEQUENCE (SIZE (1..maxFeatureSetCombinations)) OF FeatureSetCombination OPTIONAL, - lateNonCriticalExtension OCTET STRING OPTIONAL, - nonCriticalExtension SEQUENCE {} OPTIONAL -} -UE-MRDC-CapabilityAddXDD-Mode ::= SEQUENCE { - measParametersMRDC-XDD-Diff MeasParametersMRDC-XDD-Diff OPTIONAL, - generalParametersMRDC-XDD-Diff GeneralParametersMRDC-XDD-Diff OPTIONAL -} +-- TAG-UE-CAPABILITYRAT-REQUESTLIST-START -UE-MRDC-CapabilityAddFRX-Mode ::= SEQUENCE { - measParametersMRDC-FRX-Diff MeasParametersMRDC-FRX-Diff -} +UE-CapabilityRAT-RequestList ::= SEQUENCE (SIZE (1..maxRAT-CapabilityContainers)) OF UE-CapabilityRAT-Request -GeneralParametersMRDC-XDD-Diff ::= SEQUENCE { - splitSRB-WithOneUL-Path ENUMERATED {supported} OPTIONAL, - splitDRB-withUL-Both-MCG-SCG ENUMERATED {supported} OPTIONAL, - srb3 ENUMERATED {supported} OPTIONAL, - ... +UE-CapabilityRAT-Request ::= SEQUENCE { + rat-Type RAT-Type, + capabilityRequestFilter OCTET STRING OPTIONAL, -- Need N + ... } --- TAG-UE-MRDC-CAPABILITY-STOP --- TAG-RF-PARAMETERSMRDC-START +-- TAG-UE-CAPABILITYRAT-REQUESTLIST-STOP +-- TAG-UE-CAPABILITYREQUESTFILTERNR-START -RF-ParametersMRDC ::= SEQUENCE { - supportedBandCombinationList BandCombinationList OPTIONAL, - appliedFreqBandListFilter FreqBandList OPTIONAL +UE-CapabilityRequestFilterNR ::= SEQUENCE { + frequencyBandList FreqBandList OPTIONAL, -- Need N + nonCriticalExtension SEQUENCE {} OPTIONAL } --- TAG-RF-PARAMETERSMRDC-STOP --- TAG-MEASPARAMETERSMRDC-START +-- TAG-UE-CAPABILITYREQUESTFILTERNR-STOP +-- TAG-UE-MRDC-CAPABILITY-START -MeasParametersMRDC ::= SEQUENCE { - measParametersMRDC-Common MeasParametersMRDC-Common OPTIONAL, - measParametersMRDC-XDD-Diff MeasParametersMRDC-XDD-Diff OPTIONAL, - measParametersMRDC-FRX-Diff MeasParametersMRDC-FRX-Diff OPTIONAL +UE-MRDC-Capability ::= SEQUENCE { + measAndMobParametersMRDC MeasAndMobParametersMRDC OPTIONAL, + phy-ParametersMRDC-v1530 Phy-ParametersMRDC OPTIONAL, + rf-ParametersMRDC RF-ParametersMRDC, + 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, + featureSetCombinations SEQUENCE (SIZE (1..maxFeatureSetCombinations)) OF FeatureSetCombination OPTIONAL, + pdcp-ParametersMRDC-v1530 PDCP-ParametersMRDC OPTIONAL, + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } -MeasParametersMRDC-Common ::= SEQUENCE { - independentGapConfig ENUMERATED {supported} OPTIONAL +UE-MRDC-CapabilityAddXDD-Mode ::= SEQUENCE { + measAndMobParametersMRDC-XDD-Diff MeasAndMobParametersMRDC-XDD-Diff OPTIONAL, + generalParametersMRDC-XDD-Diff GeneralParametersMRDC-XDD-Diff OPTIONAL } -MeasParametersMRDC-XDD-Diff ::= SEQUENCE { - sftd-MeasPSCell ENUMERATED {supported} OPTIONAL, - sftd-MeasNR-Cell ENUMERATED {supported} OPTIONAL +UE-MRDC-CapabilityAddFRX-Mode ::= SEQUENCE { + measAndMobParametersMRDC-FRX-Diff MeasAndMobParametersMRDC-FRX-Diff } -MeasParametersMRDC-FRX-Diff ::= SEQUENCE { - 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, + v2x-EUTRA-v1530 ENUMERATED {supported} OPTIONAL, + ... } --- TAG-MEASPARAMETERSMRDC-STOP +-- TAG-UE-MRDC-CAPABILITY-STOP -- TAG-UE-NR-CAPABILITY-START -UE-NR-Capability ::= SEQUENCE { - accessStratumRelease AccessStratumRelease, - 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, - featureSets FeatureSets OPTIONAL, - featureSetCombinations SEQUENCE (SIZE (1..maxFeatureSetCombinations)) OF FeatureSetCombination OPTIONAL, +UE-NR-Capability ::= SEQUENCE { + accessStratumRelease AccessStratumRelease, + pdcp-Parameters PDCP-Parameters, + rlc-Parameters RLC-Parameters OPTIONAL, + mac-Parameters MAC-Parameters OPTIONAL, + phy-Parameters Phy-Parameters, + rf-Parameters RF-Parameters, + measAndMobParameters MeasAndMobParameters 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, + featureSets FeatureSets OPTIONAL, + featureSetCombinations SEQUENCE (SIZE (1..maxFeatureSetCombinations)) OF FeatureSetCombination OPTIONAL, + + lateNonCriticalExtension OCTET STRING OPTIONAL, + nonCriticalExtension UE-NR-Capability-1530 OPTIONAL +} + +UE-NR-Capability-1530 ::= SEQUENCE { + fdd-Add-UE-NR-Capabilities-1530 UE-NR-CapabilityAddXDD-Mode-1530 OPTIONAL, + tdd-Add-UE-NR-Capabilities-1530 UE-NR-CapabilityAddXDD-Mode-1530 OPTIONAL, + voiceOverMCG-Bearer ENUMERATED {supported} OPTIONAL, + interRAT-Parameters InterRAT-Parameters OPTIONAL, + inactiveState ENUMERATED {supported} OPTIONAL, + delayBudgetReporting ENUMERATED {supported} OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL +} - lateNonCriticalExtension OCTET STRING OPTIONAL, - nonCriticalExtension SEQUENCE {} OPTIONAL +UE-NR-CapabilityAddXDD-Mode ::= SEQUENCE { + phy-ParametersXDD-Diff Phy-ParametersXDD-Diff OPTIONAL, + mac-ParametersXDD-Diff MAC-ParametersXDD-Diff OPTIONAL, + measAndMobParametersXDD-Diff MeasAndMobParametersXDD-Diff OPTIONAL } -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-CapabilityAddXDD-Mode-1530 ::= SEQUENCE { + eutra-ParametersXDD-Diff EUTRA-ParametersXDD-Diff } UE-NR-CapabilityAddFRX-Mode ::= SEQUENCE { - phy-ParametersFRX-Diff Phy-ParametersFRX-Diff OPTIONAL, - measParametersFRX-Diff MeasParametersFRX-Diff OPTIONAL + phy-ParametersFRX-Diff Phy-ParametersFRX-Diff OPTIONAL, + measAndMobParametersFRX-Diff MeasAndMobParametersFRX-Diff OPTIONAL } -- TAG-UE-NR-CAPABILITY-STOP --- TAG-PHY-PARAMETERS-START +-- TAG-EUTRA-ALLOWED-MEAS-BANDWIDTH-START -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 -} - -Phy-ParametersCommon ::= SEQUENCE { - csi-RS-CFRA-ForHO ENUMERATED {supported} OPTIONAL, - dynamicPRB-BundlingDL ENUMERATED {supported} OPTIONAL, - sp-CSI-ReportPUCCH ENUMERATED {supported} OPTIONAL, - sp-CSI-ReportPUSCH ENUMERATED {supported} OPTIONAL, - nzp-CSI-RS-IntefMgmt ENUMERATED {supported} OPTIONAL, - type2-SP-CSI-Feedback-LongPUCCH ENUMERATED {supported} OPTIONAL, - precoderGranularityCORESET ENUMERATED {supported} OPTIONAL, - dynamicHARQ-ACK-Codebook ENUMERATED {supported} OPTIONAL, - semiStaticHARQ-ACK-Codebook ENUMERATED {supported} OPTIONAL, - spatialBundlingHARQ-ACK ENUMERATED {supported} OPTIONAL, - dynamicBetaOffsetInd-HARQ-ACK-CSI ENUMERATED {supported} OPTIONAL, - pucch-Repetition-F1-3-4 ENUMERATED {supported} OPTIONAL, - ra-Type0-PUSCH ENUMERATED {supported} OPTIONAL, - dynamicSwitchRA-Type0-1-PDSCH ENUMERATED {supported} OPTIONAL, - dynamicSwitchRA-Type0-1-PUSCH ENUMERATED {supported} OPTIONAL, - pdsch-MappingTypeA ENUMERATED {supported} OPTIONAL, - pdsch-MappingTypeB ENUMERATED {supported} OPTIONAL, - interleavingVRB-ToPRB-PDSCH ENUMERATED {supported} OPTIONAL, - interSlotFreqHopping-PUSCH ENUMERATED {supported} OPTIONAL, - type1-PUSCH-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, - type2-PUSCH-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, - pusch-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, - pdsch-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL, - downlinkSPS ENUMERATED {supported} OPTIONAL, - configuredUL-GrantType1 ENUMERATED {supported} OPTIONAL, - configuredUL-GrantType2 ENUMERATED {supported} OPTIONAL, - pre-EmptIndication-DL ENUMERATED {supported} OPTIONAL, - cbg-TransIndication-DL ENUMERATED {supported} OPTIONAL, - cbg-TransIndication-UL ENUMERATED {supported} OPTIONAL, - cbg-FlushIndication-DL ENUMERATED {supported} OPTIONAL, - dynamicHARQ-ACK-CodeB-CBG-Retx-DL ENUMERATED {supported} OPTIONAL, - rateMatchingResrcSetSemi-Static ENUMERATED {supported} OPTIONAL, - rateMatchingResrcSetDynamic ENUMERATED {supported} OPTIONAL, - bwp-SwitchingDelay ENUMERATED {type1, type2} OPTIONAL, - ... -} - -Phy-ParametersXDD-Diff ::= SEQUENCE { - dynamicSFI ENUMERATED {supported} OPTIONAL, - twoPUCCH-F0-2-ConsecSymbols ENUMERATED {supported} OPTIONAL, - twoDifferentTPC-Loop-PUSCH ENUMERATED {supported} OPTIONAL, - twoDifferentTPC-Loop-PUCCH ENUMERATED {supported} OPTIONAL, - ... -} - -Phy-ParametersFRX-Diff ::= SEQUENCE { - dynamicSFI ENUMERATED {supported} OPTIONAL, - oneFL-DMRS-TwoAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL, - twoFL-DMRS BIT STRING (SIZE (2)) OPTIONAL, - twoFL-DMRS-TwoAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL, - oneFL-DMRS-ThreeAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL, - supportedDMRS-TypeDL ENUMERATED {type1, type2} OPTIONAL, - supportedDMRS-TypeUL ENUMERATED {type1, type2} OPTIONAL, - semiOpenLoopCSI ENUMERATED {supported} OPTIONAL, - csi-ReportWithoutPMI ENUMERATED {supported} OPTIONAL, - csi-ReportWithoutCQI ENUMERATED {supported} OPTIONAL, - onePortsPTRS BIT STRING (SIZE (2)) OPTIONAL, - twoPUCCH-F0-2-ConsecSymbols ENUMERATED {supported} OPTIONAL, - pucch-F2-WithFH ENUMERATED {supported} OPTIONAL, - pucch-F3-WithFH ENUMERATED {supported} OPTIONAL, - pucch-F4-WithFH ENUMERATED {supported} OPTIONAL, - freqHoppingPUCCH-F0-2 ENUMERATED {notSupported} OPTIONAL, - freqHoppingPUCCH-F1-3-4 ENUMERATED {notSupported} OPTIONAL, - mux-SR-HARQ-ACK-CSI-PUCCH ENUMERATED {supported} OPTIONAL, - uci-CodeBlockSegmentation ENUMERATED {supported} OPTIONAL, - onePUCCH-LongAndShortFormat ENUMERATED {supported} OPTIONAL, - twoPUCCH-AnyOthersInSlot ENUMERATED {supported} OPTIONAL, - intraSlotFreqHopping-PUSCH ENUMERATED {supported} OPTIONAL, - pusch-LBRM ENUMERATED {supported} OPTIONAL, - pdcch-BlindDetectionCA ENUMERATED {supported} OPTIONAL, - tpc-PUSCH-RNTI ENUMERATED {supported} OPTIONAL, - tpc-PUCCH-RNTI ENUMERATED {supported} OPTIONAL, - tpc-SRS-RNTI ENUMERATED {supported} OPTIONAL, - absoluteTPC-Command ENUMERATED {supported} OPTIONAL, - twoDifferentTPC-Loop-PUSCH ENUMERATED {supported} OPTIONAL, - twoDifferentTPC-Loop-PUCCH ENUMERATED {supported} OPTIONAL, - pusch-HalfPi-BPSK ENUMERATED {supported} OPTIONAL, - pucch-F3-4-HalfPi-BPSK ENUMERATED {supported} OPTIONAL, - almostContiguousCP-OFDM-UL ENUMERATED {supported} OPTIONAL , - sp-CSI-RS ENUMERATED {supported} OPTIONAL, - sp-CSI-IM ENUMERATED {supported} OPTIONAL, - tdd-MultiDL-UL-SwitchPerSlot ENUMERATED {supported} OPTIONAL, - multipleCORESET ENUMERATED {supported} OPTIONAL, - ... -} - -Phy-ParametersFR1 ::= SEQUENCE { - pdcchMonitoringSingleOccasion ENUMERATED {supported} OPTIONAL, - scs-60kHz ENUMERATED {supported} OPTIONAL, - pdsch-256QAM-FR1 ENUMERATED {supported} OPTIONAL, - pdsch-RE-MappingFR1 ENUMERATED {n10, n20} OPTIONAL, - ... -} - -Phy-ParametersFR2 ::= SEQUENCE { - calibrationGapPA ENUMERATED {supported} OPTIONAL, - pdsch-RE-MappingFR2 ENUMERATED {n6, n20} OPTIONAL, - ... -} +EUTRA-AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100} --- TAG-PHY-PARAMETERS-STOP --- TAG-RF-PARAMETERS-START +-- TAG-EUTRA-ALLOWED-MEAS-BANDWIDTH-STOP +-- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-START -RF-Parameters ::= SEQUENCE { - supportedBandListNR SEQUENCE (SIZE (1..maxBands)) OF BandNR, - supportedBandCombinationList BandCombinationList OPTIONAL, - appliedFreqBandListFilter FreqBandList OPTIONAL -} - -BandNR ::= SEQUENCE { - bandNR FreqBandIndicatorNR, - modifiedMPR-Behaviour BIT STRING (SIZE (8)) OPTIONAL, - mimo-ParametersPerBand MIMO-ParametersPerBand OPTIONAL, - extendedCP ENUMERATED {supported} OPTIONAL, - multipleTCI ENUMERATED {supported} OPTIONAL, - bwp-WithoutRestriction ENUMERATED {supported} OPTIONAL, - bwp-SameNumerology ENUMERATED {upto2, upto4} OPTIONAL, - bwp-DiffNumerology ENUMERATED {upto4} OPTIONAL, - crossCarrierSchedulingDL-SameSCS ENUMERATED {supported} OPTIONAL, - crossCarrierSchedulingUL-SameSCS ENUMERATED {supported} OPTIONAL, - pdsch-256QAM-FR2 ENUMERATED {supported} OPTIONAL, - pusch-256QAM ENUMERATED {supported} OPTIONAL, - ue-PowerClass ENUMERATED {pc2, pc3} OPTIONAL, - rateMatchingLTE-CRS ENUMERATED {supported} OPTIONAL, - ... +EUTRA-MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF EUTRA-MBSFN-SubframeConfig + +EUTRA-MBSFN-SubframeConfig ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32}, + radioframeAllocationOffset INTEGER (0..7), + subframeAllocation1 CHOICE { + oneFrame BIT STRING (SIZE(6)), + fourFrames BIT STRING (SIZE(24)) + }, + subframeAllocation2 CHOICE { + oneFrame BIT STRING (SIZE(2)), + fourFrames BIT STRING (SIZE(8)) + } OPTIONAL, -- Need R + ... } --- TAG-RF-PARAMETERS-STOP --- TAG-MIMO-PARAMETERSPERBAND-START +-- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-STOP +-- TAG-EUTRA-MULTI-BAND-INFO-LIST-START + +EUTRA-MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF EUTRA-MultiBandInfo -MIMO-ParametersPerBand ::= SEQUENCE { - tci-StatePDSCH SEQUENCE { - maxNumberConfiguredTCIstatesPerCC ENUMERATED {n4, n8, n16, n32, n64} OPTIONAL, - maxNumberActiveTCI-PerBWP ENUMERATED {n1, n2, n4, n8} OPTIONAL - } OPTIONAL, - additionalActiveTCI-StatePDCCH ENUMERATED {supported} OPTIONAL, - pusch-TransCoherence ENUMERATED {nonCoherent, partialNonCoherent, fullCoherent} OPTIONAL, - beamCorrespondence ENUMERATED {supported} OPTIONAL, - periodicBeamReport ENUMERATED {supported} OPTIONAL, - aperiodicBeamReport ENUMERATED {supported} OPTIONAL, - sp-BeamReportPUCCH ENUMERATED {supported} OPTIONAL, - sp-BeamReportPUSCH ENUMERATED {supported} OPTIONAL, - beamManagementSSB-CSI-RS BeamManagementSSB-CSI-RS OPTIONAL, - maxNumberRxBeam INTEGER (2..8) OPTIONAL, - 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, - maxNumberNonGroupBeamReporting ENUMERATED {n1, n2, n4} OPTIONAL, - groupBeamReporting ENUMERATED {supported} OPTIONAL, - uplinkBeamManagement SEQUENCE { - maxNumberSRS-ResourcePerSet ENUMERATED {n2, n4, n8, n16, n32}, - maxNumberSRS-ResourceSet INTEGER (1..8) - } OPTIONAL, - maxNumberCSI-RS-BFR INTEGER (1..64) OPTIONAL, - maxNumberSSB-BFR INTEGER (1..64) OPTIONAL, - maxNumberCSI-RS-SSB-BFR INTEGER (1..256) OPTIONAL, - twoPortsPTRS-DL ENUMERATED {supported} OPTIONAL, - twoPortsPTRS-UL ENUMERATED {supported} OPTIONAL, - supportedSRS-Resources SRS-Resources OPTIONAL, - srs-TxSwitch SRS-TxSwitch OPTIONAL, - maxNumberSimultaneousSRS-PerCC INTEGER (1..4) OPTIONAL, - beamReportTiming SEQUENCE { - scs-15kHz ENUMERATED {sym2, sym4, sym8} OPTIONAL, - scs-30kHz ENUMERATED {sym4, sym8, sym14} OPTIONAL, - scs-60kHz ENUMERATED {sym8, sym14, sym28} OPTIONAL, - scs-120kHz ENUMERATED {sym14, sym28, sym56} OPTIONAL - } OPTIONAL, - ptrs-DensityRecommendationSetDL SEQUENCE { - scs-15kHz PTRS-DensityRecommendationDL OPTIONAL, - scs-30kHz PTRS-DensityRecommendationDL OPTIONAL, - scs-60kHz PTRS-DensityRecommendationDL OPTIONAL, - scs-120kHz PTRS-DensityRecommendationDL OPTIONAL - } OPTIONAL, - ptrs-DensityRecommendationSetUL SEQUENCE { - scs-15kHz PTRS-DensityRecommendationUL OPTIONAL, - scs-30kHz PTRS-DensityRecommendationUL OPTIONAL, - scs-60kHz PTRS-DensityRecommendationUL OPTIONAL, - scs-120kHz PTRS-DensityRecommendationUL OPTIONAL - } OPTIONAL, - csi-RS-ForTracking CSI-RS-ForTracking OPTIONAL, - aperiodicTRS ENUMERATED {supported} OPTIONAL, - ... -} - -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} -} - -CSI-RS-ForTracking ::= SEQUENCE { - burstLength INTEGER (1..2), - maxSimultaneousResourceSetsPerCC INTEGER (1..8), - maxConfiguredResourceSetsPerCC INTEGER (1..64), - maxConfiguredResourceSetsAllCC INTEGER (1..128) -} - -PTRS-DensityRecommendationDL ::= SEQUENCE { - frequencyDensity1 INTEGER (1..276), - frequencyDensity2 INTEGER (1..276), - timeDensity1 INTEGER (0..29), - timeDensity2 INTEGER (0..29), - timeDensity3 INTEGER (0..29) -} - -PTRS-DensityRecommendationUL ::= SEQUENCE { - frequencyDensity1 INTEGER (1..276), - frequencyDensity2 INTEGER (1..276), - timeDensity1 INTEGER (0..29), - timeDensity2 INTEGER (0..29), - timeDensity3 INTEGER (0..29), - sampleDensity1 INTEGER (1..276), - sampleDensity2 INTEGER (1..276), - sampleDensity3 INTEGER (1..276), - sampleDensity4 INTEGER (1..276), - sampleDensity5 INTEGER (1..276) -} - -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 {n1, n2, n4, n8, n16}, - maxNumberSP-SRS-PerBWP-PerSlot INTEGER (1..6), - maxNumberSRS-Ports-PerResource ENUMERATED {n1, n2, n4} -} - -SRS-TxSwitch ::= SEQUENCE { - supportedSRS-TxPortSwitch ENUMERATED {t1r2, t1r4, t2r4, t1r4-t2r4, tr-equal}, - txSwitchImpactToRx ENUMERATED {true} OPTIONAL +EUTRA-MultiBandInfo ::= SEQUENCE { + eutra-FreqBandIndicator FreqBandIndicatorEUTRA, + eutra-NS-PmaxList EUTRA-NS-PmaxList OPTIONAL -- Need R } --- TAG-PDCP-PARAMETERS-START +-- TAG-EUTRA-MULTI-BAND-INFO-LIST-STOP +-- TAG-EUTRA-NS-PMAX-LIST-START + +EUTRA-NS-PmaxList ::= SEQUENCE (SIZE (1..maxEUTRA-NS-Pmax)) OF EUTRA-NS-PmaxValue -PDCP-Parameters ::= SEQUENCE { - supportedROHC-Profiles SEQUENCE { - profile0x0000 BOOLEAN, - profile0x0001 BOOLEAN, - profile0x0002 BOOLEAN, - profile0x0003 BOOLEAN, - profile0x0004 BOOLEAN, - profile0x0006 BOOLEAN, - profile0x0101 BOOLEAN, - profile0x0102 BOOLEAN, - profile0x0103 BOOLEAN, - profile0x0104 BOOLEAN - }, - maxNumberROHC-ContextSessions ENUMERATED {cs2, cs4, cs8, cs12, cs16, cs24, cs32, cs48, cs64, - cs128, cs256, cs512, cs1024, cs16384, spare2, spare1}, - uplinkOnlyROHC-Profiles ENUMERATED {supported} OPTIONAL, - continueROHC-Context ENUMERATED {supported} OPTIONAL, - outOfOrderDelivery ENUMERATED {supported} OPTIONAL, - shortSN ENUMERATED {supported} OPTIONAL, - ... +EUTRA-NS-PmaxValue ::= SEQUENCE { + additionalPmax INTEGER (-30..33) OPTIONAL, -- Need R + additionalSpectrumEmission INTEGER (1..288) OPTIONAL -- Need R } --- TAG-PDCP-PARAMETERS-STOP --- TAG-RLC-PARAMETERS-START +-- TAG-EUTRA-NS-PMAX-LIST-STOP +-- TAG-EUTRA-PHYS-CELL-ID-START -RLC-Parameters ::= SEQUENCE { - am-WithShortSN ENUMERATED {supported} OPTIONAL, - um-WithShortSN ENUMERATED {supported} OPTIONAL, - um-WIthLongSN ENUMERATED {supported} OPTIONAL, - ... -} +EUTRA-PhysCellId ::= INTEGER (0..503) --- TAG-RLC-PARAMETERS-STOP --- TAG-MAC-PARAMETERS-START +-- TAG-EUTRA-PHYS-CELL-ID-STOP +-- TAG-EUTRA-PHYS-CELL-ID-RANGE-START -MAC-Parameters ::= SEQUENCE { - mac-ParametersCommon MAC-ParametersCommon OPTIONAL, - mac-ParametersXDD-Diff MAC-ParametersXDD-Diff OPTIONAL +EUTRA-PhysCellIdRange ::= SEQUENCE { + start EUTRA-PhysCellId, + range ENUMERATED {n4, n8, n12, n16, n24, n32, n48, n64, n84, n96, + n128, n168, n252, n504, spare2, spare1} OPTIONAL -- Need N } -MAC-ParametersCommon ::= SEQUENCE { - lcp-Restriction ENUMERATED {supported} OPTIONAL, - pucch-SpatialRelInfoMAC-CE ENUMERATED {supported} OPTIONAL, - ... -} +-- TAG-EUTRA-PHYS-CELL-ID-RANGE-STOP +-- TAG-EUTRA-PRESENCE-ANTENNA-PORT1-START -MAC-ParametersXDD-Diff ::= SEQUENCE { - skipUplinkTxDynamic ENUMERATED {supported} OPTIONAL, - logicalChannelSR-DelayTimer ENUMERATED {supported} OPTIONAL, - longDRX-Cycle ENUMERATED {supported} OPTIONAL, - shortDRX-Cycle ENUMERATED {supported} OPTIONAL, - multipleSR-Configurations ENUMERATED {supported} OPTIONAL, - multipleConfiguredGrants ENUMERATED {supported} OPTIONAL, - ... -} +EUTRA-PresenceAntennaPort1 ::= BOOLEAN --- TAG-MAC-PARAMETERS-STOP --- TAG-MEASPARAMETERS-START +-- TAG-EUTRA-PRESENCE-ANTENNA-PORT1-STOP -MeasParameters ::= SEQUENCE { - measParametersCommon MeasParametersCommon OPTIONAL, - measParametersXDD-Diff MeasParametersXDD-Diff OPTIONAL, - measParametersFRX-Diff MeasParametersFRX-Diff OPTIONAL -} +EUTRA-Q-OffsetRange ::= ENUMERATED { + dB-24, dB-22, dB-20, dB-18, dB-16, dB-14, + dB-12, dB-10, dB-8, dB-6, dB-5, dB-4, dB-3, + dB-2, dB-1, dB0, dB1, dB2, dB3, dB4, dB5, + dB6, dB8, dB10, dB12, dB14, dB16, dB18, + dB20, dB22, dB24} + +-- TAG-MULTIFREQUENCYBANDLISTNR-SIB-START -MeasParametersCommon ::= SEQUENCE { - supportedGapPattern BIT STRING (SIZE (22)) OPTIONAL, - ... +MultiFrequencyBandListNR-SIB ::= SEQUENCE (SIZE (1.. maxNrofMultiBands)) OF NR-MultiBandInfo + +NR-MultiBandInfo ::= SEQUENCE { + freqBandIndicatorNR FreqBandIndicatorNR OPTIONAL, -- Cond OptULNotSIB2 + nr-NS-PmaxList NR-NS-PmaxList OPTIONAL -- Need S } -MeasParametersXDD-Diff ::= SEQUENCE { - intraAndInterF-MeasAndReport ENUMERATED {supported} OPTIONAL, - eventA-MeasAndReport ENUMERATED {supported} OPTIONAL, - ... +-- TAG-MULTIFREQUENCYBANDLISTNR-SIB-STOP +-- TAG-NR-NS-PMAXLIST-START + +NR-NS-PmaxList ::= SEQUENCE (SIZE (1..maxNR-NS-Pmax)) OF NR-NS-PmaxValue + +NR-NS-PmaxValue ::= SEQUENCE { + additionalPmax P-Max OPTIONAL, -- Need N + additionalSpectrumEmission AdditionalSpectrumEmission } -MeasParametersFRX-Diff ::= SEQUENCE { - ss-SINR-Meas ENUMERATED {supported} OPTIONAL, - csi-RSRP-AndRSRQ-MeasWithSSB ENUMERATED {supported} OPTIONAL, - csi-RSRP-AndRSRQ-MeasWithoutSSB ENUMERATED {supported} OPTIONAL, - csi-SINR-Meas ENUMERATED {supported} OPTIONAL, - csi-RS-RLM ENUMERATED {supported} OPTIONAL, - ... +-- TAG-NR-NS-PMAXLIST-STOP +-- TAG-OTHERCONFIG-START + +OtherConfig ::= SEQUENCE { + delayBudgetReportingConfig CHOICE{ + release NULL, + setup SEQUENCE{ + delayBudgetReportingProhibitTimer ENUMERATED {s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30} + } + } OPTIONAL -- Need N } --- TAG-UE-NR-CAPABILITY-STOP +-- TAG-OTHERCONFIG-STOP -- TAG-RRC-TRANSACTIONIDENTIFIER-START -RRC-TransactionIdentifier ::= INTEGER (0..3) +RRC-TransactionIdentifier ::= INTEGER (0..3) -- TAG-RRC-TRANSACTIONIDENTIFIER-STOP -- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-START -maxBandComb INTEGER ::= 65536 -- Maximum number of DL band 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 -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 - -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 minus 1 -maxNrofPhysicalResourceBlocksPlus1 INTEGER ::= 276 -- Maximum number of PRBs plus 1 -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 -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 -maxNrofRateMatchPatternsPerGroup INTEGER ::= 8 -- Max number of rate matching patterns that may be configured in one group - -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-ResourceSets INTEGER ::= 64 -- Maximum number of NZP CSI-RS resources per cell -maxNrofNZP-CSI-RS-ResourceSets-1 INTEGER ::= 63 -- Maximum number of NZP CSI-RS resources per cell minus 1 -maxNrofNZP-CSI-RS-ResourceSetsPerConfig INTEGER ::= 16 -- Maximum number of resource sets per resource configuration -maxNrofNZP-CSI-RS-ResourcesPerConfig INTEGER ::= 128 -- Maximum number of resources 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 ::= 15 -maxNrofZP-CSI-RS-ResourcesPerSet INTEGER ::= 16 -maxNrofZP-CSI-RS-ResourceSets 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-ResourceSets INTEGER ::= 64 -- Maximum number of NZP CSI-IM resources per cell -maxNrofCSI-IM-ResourceSets-1 INTEGER ::= 63 -- Maximum number of NZP CSI-IM resources per cell minus 1 -maxNrofCSI-IM-ResourceSetsPerConfig INTEGER ::= 16 -- Maximum number of CSI IM resource sets per resource configuration - -maxNrofCSI-SSB-ResourcePerSet INTEGER ::= 64 -- Maximum number of SSB resources in a resource set -maxNrofCSI-SSB-ResourceSets INTEGER ::= 64 -- Maximum number of CSI SSB resource sets per cell -maxNrofCSI-SSB-ResourceSets-1 INTEGER ::= 63 -- Maximum number of CSI SSB resource sets per cell minus 1 -maxNrofCSI-SSB-ResourceSetsPerConfig INTEGER ::= 1 -- Maximum number of CSI SSB resource sets per resource configuration - -maxNrofFailureDetectionResources INTEGER ::= 10 -- Maximum number of failure detection resources -maxNrofFailureDetectionResources-1 INTEGER ::= 9 -- Maximum number of failure detection resources minus 1 - -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 ::= 512 -- Maximum number of Slot Format Combinations in a SF-Set. -maxNrofSlotFormatCombinationsPerSet-1 INTEGER ::= 511 -- 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 -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 -maxNrOfSemiPersistentPUSCH-Triggers INTEGER ::= 64 -- Maximum number of triggers for semi persistent reporting on PUSCH -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 -maxNrofCodebooks INTEGER ::= 16 -- Maximum number of codebooks suppoted by the UE - -maxNrofSRI-PUSCH-Mappings INTEGER ::= 16 -maxNrofSRI-PUSCH-Mappings-1 INTEGER ::= 15 - -maxDownlinkFeatureSets INTEGER ::= 1024 -- (for NR DL) Total number of FeatureSets (size of the pool) -maxUplinkFeatureSets INTEGER ::= 1024 -- (for NR UL) Total number of FeatureSets (size of the pool) -maxEUTRA-DL-FeatureSets INTEGER ::= 256 -- (for EUTRA) Total number of FeatureSets (size of the pool) -maxEUTRA-UL-FeatureSets INTEGER ::= 256 -- (for EUTRA) Total number of FeatureSets (size of the pool) -maxFeatureSetsPerBand INTEGER ::= 128 -- (for NR) The number of feature sets associated with one band. -maxPerCC-FeatureSets INTEGER ::= 1024 -- (for NR) Total number of CC-specific FeatureSets (size of the pool) -maxFeatureSetCombinations INTEGER ::= 1024 -- (for MR-DC/NR)Total number of Feature set combinations (size of the pool) - - --- Editor's Note: Targeted for completion in Sept 2018. Not used in EN-DC drop. -CellIdentity ::= ENUMERATED {ffsTypeAndValue} -ShortMAC-I ::= ENUMERATED {ffsTypeAndValue} +maxBandComb INTEGER ::= 65536 -- Maximum number of DL band combinations +maxCellBlack INTEGER ::= 16 -- Maximum number of NR blacklisted cell ranges in SIB3, SIB4 +maxCellInter INTEGER ::= 16 -- Maximum number of inter-Freq cells listed in SIB4 +maxCellIntra INTEGER ::= 16 -- Maximum number of intra-Freq cells listed in SIB3 +maxCellMeasEUTRA INTEGER ::= 32 -- Maximum number of cells in EUTRAN +maxEARFCN INTEGER ::= 262143 -- Maximum value of EUTRA carrier frequency +maxEUTRA-CellBlack INTEGER ::= 16 -- Maximum number of EUTRA-blacklisted physical cell identity ranges in SIB5 +maxEUTRA-NS-Pmax INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands that a cell belongs to +maxNARFCN INTEGER ::= 3279165 -- Maximum value of NR carrier frequency +maxNR-NS-Pmax INTEGER ::= 8 -- Maximum number of NS and P-Max values per band +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 +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 + +maxNrofBWPs INTEGER ::= 4 -- Maximum number of BWPs per serving cell +maxNrofCombIDC INTEGER ::= 128 -- Maximum number of reported MR-DC combinations for IDC +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 minus 1 +maxNrofPhysicalResourceBlocksPlus1 INTEGER ::= 276 -- Maximum number of PRBs plus 1 +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 +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 +maxNrofRateMatchPatternsPerGroup INTEGER ::= 8 -- Max number of rate matching patterns that may be configured in one group + +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-ResourceSets INTEGER ::= 64 -- Maximum number of NZP CSI-RS resources per cell +maxNrofNZP-CSI-RS-ResourceSets-1 INTEGER ::= 63 -- Maximum number of NZP CSI-RS resources per cell minus 1 +maxNrofNZP-CSI-RS-ResourceSetsPerConfig INTEGER ::= 16 -- Maximum number of resource sets per resource configuration +maxNrofNZP-CSI-RS-ResourcesPerConfig INTEGER ::= 128 -- Maximum number of resources 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 ::= 15 +maxNrofZP-CSI-RS-ResourcesPerSet INTEGER ::= 16 +maxNrofZP-CSI-RS-ResourceSets 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-ResourceSets INTEGER ::= 64 -- Maximum number of NZP CSI-IM resources per cell +maxNrofCSI-IM-ResourceSets-1 INTEGER ::= 63 -- Maximum number of NZP CSI-IM resources per cell minus 1 +maxNrofCSI-IM-ResourceSetsPerConfig INTEGER ::= 16 -- Maximum number of CSI IM resource sets per resource configuration + +maxNrofCSI-SSB-ResourcePerSet INTEGER ::= 64 -- Maximum number of SSB resources in a resource set +maxNrofCSI-SSB-ResourceSets INTEGER ::= 64 -- Maximum number of CSI SSB resource sets per cell +maxNrofCSI-SSB-ResourceSets-1 INTEGER ::= 63 -- Maximum number of CSI SSB resource sets per cell minus 1 +maxNrofCSI-SSB-ResourceSetsPerConfig INTEGER ::= 1 -- Maximum number of CSI SSB resource sets per resource configuration + +maxNrofFailureDetectionResources INTEGER ::= 10 -- Maximum number of failure detection resources +maxNrofFailureDetectionResources-1 INTEGER ::= 9 -- Maximum number of failure detection resources minus 1 + +maxNrofObjectId INTEGER ::= 64 -- Maximum number of measurement objects +maxNrofPageRec INTEGER ::= 32 -- Maximum number of page records +maxNrofPCI-Ranges INTEGER ::= 8 -- Maximum number of PCI ranges +maxPLMN INTEGER ::= 12 -- Maximum number of PLMNs broadcast and reported by UE at establisghment +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. +maxNrofSRS-Resources-1 INTEGER ::= 63 -- Maximum number of SRS resources in an SRS resource set minus 1. +maxNrofSRS-ResourcesPerSet INTEGER ::= 16 -- Maximum number of SRS resources in an SRS resource set +maxNrofSRS-TriggerStates-1 INTEGER ::= 3 -- Maximum number of SRS trigger states minus 1, i.e., the largest code point. +maxNrofSRS-TriggerStates-2 INTEGER ::= 2 -- Maximum number of SRS trigger states minus 2. +maxRAT-CapabilityContainers INTEGER ::= 8 -- Maximum number of interworking RAT containers (incl NR and MRDC) +maxSimultaneousBands INTEGER ::= 32 -- Maximum number of simultaneously aggregated bands + + +maxNrofSlotFormatCombinationsPerSet INTEGER ::= 512 -- Maximum number of Slot Format Combinations in a SF-Set. +maxNrofSlotFormatCombinationsPerSet-1 INTEGER ::= 511 -- 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-Resour©ceSet +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. +maxNrofNAICS-Entries INTEGER ::= 8 -- Maximum number of supported NAICS capability set +maxBands INTEGER ::= 1024 -- Maximum number of supported bands in UE capability. +maxBandsMRDC INTEGER ::= 1280 +maxBandsEUTRA INTEGER ::= 256 +maxCellReport INTEGER ::= 8 +maxDRB INTEGER ::= 29 -- Maximum number of DRBs (that can be added in DRB-ToAddModLIst). +maxFreq INTEGER ::= 8 -- Max number of frequencies. +maxFreqIDC-MRDC INTEGER ::= 32 -- Maximum number of candidate NR frequencies for MR-DC IDC indication +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 +maxNrOfSemiPersistentPUSCH-Triggers INTEGER ::= 64 -- Maximum number of triggers for semi persistent reporting on PUSCH +maxNrofSR-Resources INTEGER ::= 8 -- Maximum number of SR resources per BWP in a cell. +maxNrofSlotFormatsPerCombination INTEGER ::= 256 +maxNrofSpatialRelationInfos INTEGER ::= 8 +maxNrofIndexesToReport INTEGER ::= 32 +maxNrofIndexesToReport2 INTEGER ::= 64 +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. +maxNrofS-NSSAI INTEGER ::= 8 -- Maximum number of S-NSSAI. +maxNrofTCI-StatesPDCCH INTEGER ::= 64 +maxNrofTCI-States INTEGER ::= 128 -- Maximum number of TCI states. +maxNrofTCI-States-1 INTEGER ::= 127 -- 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 +maxNrofCodebooks INTEGER ::= 16 -- Maximum number of codebooks suppoted by the UE + +maxNrofSRI-PUSCH-Mappings INTEGER ::= 16 +maxNrofSRI-PUSCH-Mappings-1 INTEGER ::= 15 +maxSIB INTEGER::= 32 -- Maximum number of SIBs +maxSIB-1 INTEGER::= 31 +maxSI-Message INTEGER::= 32 -- Maximum number of SI messages + +maxAccessCat-1 INTEGER ::= 63 -- Maximum number of Acccess Categories minus 1 +maxBarringInfoSet INTEGER ::= 8 -- Maximum number of Acccess Categories +maxCellEUTRA INTEGER ::= 8 -- Maximum number of EUTRA cells in SIB list +maxEUTRA-Carrier INTEGER ::= 8 -- Maximum number of EUTRA carriers in SIB list +maxPLMNIdentities INTEGER ::= 8 -- Maximum number of PLMN identites in RAN area configurations + +maxDownlinkFeatureSets INTEGER ::= 1024 -- (for NR DL) Total number of FeatureSets (size of the pool) +maxUplinkFeatureSets INTEGER ::= 1024 -- (for NR UL) Total number of FeatureSets (size of the pool) +maxEUTRA-DL-FeatureSets INTEGER ::= 256 -- (for EUTRA) Total number of FeatureSets (size of the pool) +maxEUTRA-UL-FeatureSets INTEGER ::= 256 -- (for EUTRA) Total number of FeatureSets (size of the pool) +maxFeatureSetsPerBand INTEGER ::= 128 -- (for NR) The number of feature sets associated with one band. +maxPerCC-FeatureSets INTEGER ::= 1024 -- (for NR) Total number of CC-specific FeatureSets (size of the pool) +maxFeatureSetCombinations INTEGER ::= 1024 -- (for MR-DC/NR)Total number of Feature set combinations (size of the pool) + +maxInterRAT-RSTD-Freq INTEGER ::= 3 + -- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-STOP diff --git a/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn b/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn index 25151783f5..e20526cdb1 100644 --- a/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn +++ b/epan/dissectors/asn1/nr-rrc/NR-UE-Variables.asn @@ -1,59 +1,87 @@ --- 3GPP TS 38.331 V15.2.0 (2018-06) +-- 3GPP TS 38.331 V15.3.0 (2018-09) NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= BEGIN IMPORTS - MeasId, - MeasIdToAddModList, - MeasObjectToAddModList, - PhysCellId, - ReportConfigToAddModList, - RSRP-Range, - QuantityConfig, - maxNrofCellMeas, - maxNrofMeasId + CellIdentity, + MeasId, + MeasIdToAddModList, + MeasObjectToAddModList, + PhysCellId, + RNTI-Value, + ReportConfigToAddModList, + RSRP-Range, + QuantityConfig, + maxNrofCellMeas, + maxNrofMeasId FROM NR-RRC-Definitions; +-- TAG-VAR-PENDING-RNA-UPDATE-START + +VarPendingRNA-Update ::= SEQUENCE { + pendingRNA-Update BOOLEAN OPTIONAL +} + +-- TAG-VAR-PENDING-RNA-UPDATE-STOP -- 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 +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 +VarMeasReportList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF VarMeasReport -VarMeasReport ::= SEQUENCE { - -- List of measurement that have been triggered - measId MeasId, - cellsTriggeredList CellsTriggeredList OPTIONAL, - numberOfReportsSent INTEGER +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} - } +CellsTriggeredList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CHOICE { + physCellId PhysCellId, +-- Not needed for EN-DC. + physCellIdEUTRA ENUMERATED {ffsTypeAndValue} + } -- TAG-VAR-MEAS-REPORT-STOP +-- TAG-VAR-RESUMEMACINPUT-START + +VarResumeMAC-Input ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellIdentity CellIdentity, + source-c-RNTI RNTI-Value + +} + +-- TAG-VAR-RESUMEMACINPUT-STOP +-- TAG-VAR-SHORTMACINPUT-START + +VarShortMAC-Input ::= SEQUENCE { + sourcePhysCellId PhysCellId, + targetCellIdentity CellIdentity, + source-c-RNTI RNTI-Value +} + +-- TAG-VAR- SHORTMACINPUT-STOP END diff --git a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf index d96d3acb3a..2b143a726b 100644 --- a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf +++ b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf @@ -10,9 +10,11 @@ UNALIGNED #.USE_VALS_EXT CA-BandwidthClassNR ConfiguredGrantConfig/periodicity +CSI-ReportConfig/reportFreqConfiguration/csi-ReportingBand CSI-RS-IM-ReceptionForFeedback/maxNumberPortsAcrossNZP-CSI-RS-PerCC CSI-RS-IM-ReceptionForFeedback/maxNumberSimultaneousCSI-RS-ActBWP-AllCC CSI-RS-IM-ReceptionForFeedback/totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC +DelayBudgetReport/type1 DRX-Config/drx-onDurationTimer/milliSeconds DRX-Config/drx-InactivityTimer DRX-Config/drx-RetransmissionTimerDL @@ -21,9 +23,12 @@ DRX-Config/drx-LongCycleStartOffset DRX-Config/shortDRX/drx-ShortCycle DRX-Info/drx-LongCycleStartOffset DRX-Info/shortDRX/drx-ShortCycle +EUTRA-Q-OffsetRange PDCP-Config/t-Reordering PollByte PollPDU +RangeToBestCell +RRM-Config/ue-InactiveTime Q-OffsetRange ServingCellConfig/bwp-InactivityTimer SPS-Config/periodicity @@ -57,12 +62,14 @@ UE-NR-Capability_PDU UL-DCCH-Message_PDU #.PDU -BCCH-BCH-Message @bcch.bch +BCCH-BCH-Message @bcch.bch +BCCH-DL-SCH-Message @bcch.dl.sch CellGroupConfig CG-Config CG-ConfigInfo ConfigRestrictInfoSCG -DL-DCCH-Message @dl.dcch +DL-CCCH-Message @dl.ccch +DL-DCCH-Message @dl.dcch FreqBandList HandoverCommand HandoverPreparationInformation @@ -72,14 +79,20 @@ MeasResults MeasurementTimingConfiguration MIB P-Max +PCCH-Message @pcch RadioBearerConfig -RRCReconfiguration @rrc_reconf +RRCReconfiguration @rrc_reconf RRCReconfigurationComplete SIB1 UE-CapabilityRAT-ContainerList -UE-MRDC-Capability @ue_mrdc_cap -UE-NR-Capability @ue_nr_cap -UL-DCCH-Message @ul.dcch +UE-CapabilityRequestFilterNR +UE-MRDC-Capability @ue_mrdc_cap +UE-NR-Capability @ue_nr_cap +UL-CCCH-Message @ul.ccch +UL-CCCH1-Message @ul.ccch1 +UL-DCCH-Message @ul.dcch +UERadioAccessCapabilityInformation @ue_radio_access_cap_info +UERadioPagingInformation @ue_radio_paging_info #.END #.OMIT_ASSIGNMENT @@ -87,10 +100,14 @@ CellsTriggeredList VarMeasConfig VarMeasReportList VarMeasReport +VarPendingRNA-Update +VarResumeMAC-Input +VarShortMAC-Input #.NO_EMIT ONLY_VALS #.MAKE_ENUM +MobilityFromNRCommand-IEs/targetRAT-Type TYPE_PREFIX RAT-Type TYPE_PREFIX #.FN_HDR BCCH-BCH-Message @@ -102,7 +119,7 @@ RAT-Type TYPE_PREFIX ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); tree = proto_item_add_subtree(ti, ett_nr_rrc); -#.FN_HDR UL-DCCH-Message +#.FN_HDR BCCH-DL-SCH-Message proto_item *ti; col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC"); @@ -111,7 +128,16 @@ RAT-Type TYPE_PREFIX 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; +#.FN_HDR DL-CCCH-Message + proto_item *ti; + + col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_clear(actx->pinfo->cinfo, COL_INFO); + + actx->pinfo->link_dir = P2P_DIR_DL; + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + tree = proto_item_add_subtree(ti, ett_nr_rrc); #.FN_HDR DL-DCCH-Message proto_item *ti; @@ -124,45 +150,661 @@ RAT-Type TYPE_PREFIX actx->pinfo->link_dir = P2P_DIR_DL; +#.FN_HDR PCCH-Message + 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); + +#.FN_HDR UL-CCCH-Message + 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; + +#.FN_HDR UL-CCCH1-Message + 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; + +#.FN_HDR UL-DCCH-Message + 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; + #.FN_HDR MIB col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MIB"); +#.FN_HDR SystemInformation + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "System Information ["); + +#.FN_FTR SystemInformation + col_append_str(actx->pinfo->cinfo, COL_INFO, " ]"); + +#.FN_HDR SIB2 + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB2"); + +#.FN_HDR SIB3 + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB3"); + +#.FN_HDR SIB4 + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB4"); + +#.FN_HDR SIB5 + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB5"); + +#.FN_HDR SIB6 + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB6"); + +#.FN_HDR SIB7 + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB7"); + +#.FN_HDR SIB8 + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB8"); + +#.FN_HDR SIB9 + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB9"); + +#.FN_HDR SIB1 + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SIB1"); + +#.FN_HDR RRCReject + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reject"); + +#.FN_HDR RRCSetup + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Setup"); + #.FN_HDR RRCReconfiguration col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration"); +#.FN_HDR RRCResume + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Resume"); + +#.FN_HDR RRCRelease + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Release"); + +#.FN_HDR RRCReestablishment + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reestablishment"); + +#.FN_HDR SecurityModeCommand + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Security Mode Command"); + +#.FN_HDR DLInformationTransfer + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DL Information Transfer"); + +#.FN_HDR UECapabilityEnquiry + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Capability Enquiry"); + +#.FN_HDR CounterCheck + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Counter Check"); + +#.FN_HDR MobilityFromNRCommand + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Mobility From NR Command"); + +#.FN_HDR Paging + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Paging"); + +#.FN_HDR RRCSetupRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Setup Request"); + +#.FN_HDR RRCResumeRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Resume Request"); + +#.FN_HDR RRCReestablishmentRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reestablishment Request"); + +#.FN_HDR RRCSystemInfoRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC System Info Request"); + +#.FN_HDR RRCResumeRequest1 + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Resume Request 1"); + #.FN_HDR MeasurementReport col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Measurement Report"); #.FN_HDR RRCReconfigurationComplete col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration Complete"); +#.FN_HDR RRCSetupComplete + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Setup Complete"); + +#.FN_HDR RRCReestablishmentComplete + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reestablishment Complete"); + +#.FN_HDR RRCResumeComplete + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Resume Complete"); + +#.FN_HDR SecurityModeComplete + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Security Mode Complete"); + +#.FN_HDR SecurityModeFailure + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Security Mode Failure"); + +#.FN_HDR ULInformationTransfer + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UL Information Transfer"); + +#.FN_HDR LocationMeasurementIndication + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Location Measurement Indication"); + +#.FN_HDR UECapabilityInformation + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Capability Information"); + +#.FN_HDR + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Counter Check Response"); + +#.FN_HDR + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Assistance Information"); + +#.FN_BODY DedicatedNAS-Message VAL_PTR = &nas_5gs_tvb + tvbuff_t *nas_5gs_tvb = NULL; + proto_tree *subtree; +%(DEFAULT_BODY)s + if (nas_5gs_tvb && nas_5gs_handle) { + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_DedicatedNAS_Message); + nr_rrc_call_dissector(nas_5gs_handle, nas_5gs_tvb, actx->pinfo, subtree); + } + +#.FN_BODY MobilityFromNRCommand-IEs/targetRAT-Type VAL_PTR = &target_rat_type + guint32 target_rat_type; + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); +%(DEFAULT_BODY)s + nr_priv->target_rat_type = (guint8)target_rat_type; + +#.FN_BODY MobilityFromNRCommand-IEs/targetRAT-MessageContainer VAL_PTR = &target_rat_msg_cont_tvb + tvbuff_t *target_rat_msg_cont_tvb = NULL; +%(DEFAULT_BODY)s + if (target_rat_msg_cont_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + subtree = proto_item_add_subtree(actx->created_item, ett_rr_rrc_targetRAT_MessageContainer); + switch (nr_priv->target_rat_type) { + case T_targetRAT_Type_eutra: + /* eutra */ + if (lte_rrc_conn_reconf_handle) + nr_rrc_call_dissector(lte_rrc_conn_reconf_handle, target_rat_msg_cont_tvb, actx->pinfo, subtree); + break; + default: + break; + } + } + +#.FN_BODY MasterKeyUpdate/nas-Container VAL_PTR = &nas_5gs_tvb + tvbuff_t *nas_5gs_tvb = NULL; + proto_tree *subtree; +%(DEFAULT_BODY)s + if (nas_5gs_tvb && nas_5gs_handle) { + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_nas_Container); + nr_rrc_call_dissector(nas_5gs_handle, nas_5gs_tvb, actx->pinfo, subtree); + } + +#.TYPE_ATTR +RejectWaitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds + +#.TYPE_ATTR +SIB1/cellSelectionInfo/q-RxLevMinOffset DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt) + +#.TYPE_ATTR +SIB1/cellSelectionInfo/q-QualMinOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +IntraFreqNeighCellInfo/q-RxLevMinOffsetCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt) + +#.TYPE_ATTR +IntraFreqNeighCellInfo/q-RxLevMinOffsetCellSUL DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt) + +#.TYPE_ATTR +IntraFreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +InterFreqNeighCellInfo/q-RxLevMinOffsetCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt) + +#.TYPE_ATTR +InterFreqNeighCellInfo/q-RxLevMinOffsetCellSUL DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt) + +#.TYPE_ATTR +InterFreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +CarrierFreqEUTRA/q-RxLevMin DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt) + +#.TYPE_ATTR +CarrierFreqEUTRA/q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +CarrierFreqEUTRA/p-MaxEUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm + +#.TYPE_ATTR +EUTRA-FreqNeighCellInfo/q-RxLevMinOffsetCell DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_q_RxLevMin_fmt) + +#.TYPE_ATTR +EUTRA-FreqNeighCellInfo/q-QualMinOffsetCell DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +SIB6/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_messageIdentifier_vals_ext + +#.FN_BODY SIB6/messageIdentifier VAL_PTR=&msg_id_tvb HF_INDEX=-1 + tvbuff_t *msg_id_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB6/messageIdentifier + if (msg_id_tvb) { + actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN); + } + +#.FN_BODY SIB6/serialNumber VAL_PTR=&serial_nb_tvb + tvbuff_t *serial_nb_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB6/serialNumber + if (serial_nb_tvb) { + proto_tree *subtree; + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_serialNumber); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + } + +#.FN_BODY SIB6/warningType VAL_PTR=&warning_type_tvb + tvbuff_t *warning_type_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB6/warningType + if (warning_type_tvb) { + proto_tree *subtree; + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningType); + proto_tree_add_item(subtree, hf_nr_rrc_warningType_value, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_warningType_emergency_user_alert, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_warningType_popup, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN); + } + +#.TYPE_ATTR +SIB7/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_messageIdentifier_vals_ext + +#.FN_BODY SIB7/messageIdentifier VAL_PTR=&msg_id_tvb HF_INDEX=-1 + tvbuff_t *msg_id_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB7/messageIdentifier + if (msg_id_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + nr_priv->message_identifier = tvb_get_ntohs(msg_id_tvb, 0) << 16; + actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN); + } + +#.FN_BODY SIB7/serialNumber VAL_PTR=&serial_nb_tvb + tvbuff_t *serial_nb_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB7/serialNumber + if (serial_nb_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + nr_priv->message_identifier |= tvb_get_ntohs(serial_nb_tvb, 0); + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_serialNumber); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + } + +#.FN_BODY SIB7/warningMessageSegmentType VAL_PTR=&segment_type + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + guint32 segment_type; +%(DEFAULT_BODY)s + nr_priv->warning_message_segment_type = (guint8)segment_type; + +#.FN_BODY SIB7/warningMessageSegmentNumber VAL_PTR=&segment_number + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + guint32 segment_number; +%(DEFAULT_BODY)s + nr_priv->warning_message_segment_number = (guint8)segment_number; + +#.FN_BODY SIB7/dataCodingScheme VAL_PTR=&data_coding_scheme_tvb + tvbuff_t *data_coding_scheme_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB7/dataCodingScheme + if (data_coding_scheme_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + guint32 dataCodingScheme; + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_dataCodingScheme); + dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0); + wmem_map_insert(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier), + GUINT_TO_POINTER(dataCodingScheme)); + } + +#.FN_BODY SIB7/warningMessageSegment VAL_PTR=&warning_msg_seg_tvb + tvbuff_t *warning_msg_seg_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB7/warningMessageSegment + if (warning_msg_seg_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + tvbuff_t *frag_tvb; + gpointer p_dcs; + fragment_head *frag_data = fragment_add_seq_check(&nr_rrc_sib7_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo, + nr_priv->message_identifier, NULL, + nr_priv->warning_message_segment_number, + tvb_reported_length(warning_msg_seg_tvb), + nr_priv->warning_message_segment_type ? FALSE : TRUE); + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningMessageSegment); + frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB7 warning message", + frag_data, &nr_rrc_sib7_frag_items, NULL, subtree); + p_dcs = wmem_map_lookup(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier)); + if (frag_tvb && p_dcs) { + dissect_nr_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs)); + } + } + +#.TYPE_ATTR +SIB8/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_messageIdentifier_vals_ext + +#.FN_BODY SIB8/messageIdentifier VAL_PTR=&msg_id_tvb HF_INDEX=-1 + tvbuff_t *msg_id_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB8/messageIdentifier + if (msg_id_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + nr_priv->message_identifier = tvb_get_ntohs(msg_id_tvb, 0) << 16; + actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN); + } + +#.FN_BODY SIB8/serialNumber VAL_PTR=&serial_nb_tvb + tvbuff_t *serial_nb_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB8/serialNumber + if (serial_nb_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + nr_priv->message_identifier |= tvb_get_ntohs(serial_nb_tvb, 0); + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_serialNumber); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + } + +#.FN_BODY SIB8/warningMessageSegmentType VAL_PTR=&segment_type + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + guint32 segment_type; +%(DEFAULT_BODY)s + nr_priv->warning_message_segment_type = (guint8)segment_type; + +#.FN_BODY SIB8/warningMessageSegmentNumber VAL_PTR=&segment_number + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + guint32 segment_number; +%(DEFAULT_BODY)s + nr_priv->warning_message_segment_number = (guint8)segment_number; + +#.FN_BODY SIB8/dataCodingScheme VAL_PTR=&data_coding_scheme_tvb + tvbuff_t *data_coding_scheme_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB8/dataCodingScheme + if (data_coding_scheme_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + guint32 dataCodingScheme; + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_dataCodingScheme); + dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0); + wmem_map_insert(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier), + GUINT_TO_POINTER(dataCodingScheme)); + } + +#.FN_BODY SIB8/warningMessageSegment VAL_PTR=&warning_msg_seg_tvb + tvbuff_t *warning_msg_seg_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB8/warningMessageSegment + if (warning_msg_seg_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + tvbuff_t *frag_tvb; + gpointer p_dcs; + fragment_head *frag_data = fragment_add_seq_check(&nr_rrc_sib8_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo, + nr_priv->message_identifier, NULL, + nr_priv->warning_message_segment_number, + tvb_reported_length(warning_msg_seg_tvb), + nr_priv->warning_message_segment_type ? FALSE : TRUE); + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningMessageSegment); + frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB8 warning message", + frag_data, &nr_rrc_sib8_frag_items, NULL, subtree); + p_dcs = wmem_map_lookup(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier)); + if (frag_tvb && p_dcs) { + dissect_nr_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs)); + } + } + +#.FN_BODY SIB9/timeInfo/timeInfoUTC VAL_PTR=&timeInfo + guint64 timeInfo; + proto_tree *subtree; + nstime_t ts; + guint32 old_offset = offset; +%(DEFAULT_BODY)s + +#.FN_FTR SIB9/timeInfo/timeInfoUTC + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_timeInfo); + ts.secs = (time_t)(timeInfo/100)-2208988800U; /* epoch is 00:00:00 (midnight) UTC on 1900-01-01 */ + ts.nsecs = (int)(timeInfo%100)*10000000; + proto_tree_add_time(subtree, hf_nr_rrc_utc_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts); + proto_tree_add_time(subtree, hf_nr_rrc_local_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts); + +#.TYPE_ATTR +SIB9/timeInfo/dayLightSavingTime TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(nr_rrc_daylightSavingTime_vals) + +#.FN_BODY SIB9/timeInfo/dayLightSavingTime VAL_PTR=&daylight_saving_time_tvb HF_INDEX=-1 + tvbuff_t *daylight_saving_time_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR SIB9/timeInfo/dayLightSavingTime + if (daylight_saving_time_tvb) { + guint bitvalue = tvb_get_bits8(daylight_saving_time_tvb, 0, 2); + actx->created_item = proto_tree_add_uint(tree, hf_index, daylight_saving_time_tvb, 0, 1, bitvalue); + } + +#.TYPE_ATTR +SIB9/timeInfo/leapSeconds DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds + +#.TYPE_ATTR +SIB9/timeInfo/localTimeOffset DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_localTimeOffset_fmt) + +#.TYPE_ATTR +ConfiguredGrantConfig/configuredGrantTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_periodicities + +#.TYPE_ATTR +ConnEstFailureControl/connEstFailOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +DRX-Config/drx-SlotOffset DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_drx_SlotOffset_fmt) + +#.TYPE_ATTR +FrequencyInfoDL-SIB/offsetToPointA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_prbs + +#.TYPE_ATTR +Hysteresis DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_Hysteresis_fmt) + +#.TYPE_ATTR +NZP-CSI-RS-Resource/powerControlOffset DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +P-Max DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm + +#.TYPE_ATTR +PUCCH-ResourceSet/maxPayloadMinus1 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_bits + +#.TYPE_ATTR +PUCCH-ConfigCommon/p0-nominal DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm + +#.TYPE_ATTR +PUCCH-PowerControl/deltaF-PUCCH-f0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +PUCCH-PowerControl/deltaF-PUCCH-f1 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +PUCCH-PowerControl/deltaF-PUCCH-f2 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +PUCCH-PowerControl/deltaF-PUCCH-f3 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +PUCCH-PowerControl/deltaF-PUCCH-f4 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +P0-PUCCH/p0-PUCCH-Value DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +PUSCH-ConfigCommon/msg3-DeltaPreamble DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_msg3_DeltaPreamble_fmt) + +#.TYPE_ATTR +PUSCH-ConfigCommon/p0-NominalWithGrant DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm + +#.TYPE_ATTR +PUSCH-PowerControl/p0-NominalWithoutGrant DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm + +#.TYPE_ATTR +P0-PUSCH-AlphaSet/p0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +Q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +Q-RxLevMin DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_Q_RxLevMin_fmt) + +#.TYPE_ATTR +RACH-ConfigGeneric/preambleReceivedTargetPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm + +#.TYPE_ATTR +RSRP-RangeEUTRA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRP_RangeEUTRA_fmt) + +#.TYPE_ATTR +RSRQ-RangeEUTRA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRQ_RangeEUTRA_fmt) + +#.TYPE_ATTR +SINR-RangeEUTRA DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_SINR_RangeEUTRA_fmt) + +#.TYPE_ATTR +MeasTriggerQuantityOffset/rsrp DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm + +#.TYPE_ATTR +MeasTriggerQuantityOffset/rsrq DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +MeasTriggerQuantityOffset/sinr DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +ReselectionThreshold DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_ReselectionThreshold_fmt) + +#.TYPE_ATTR +ReselectionThresholdQ DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels + +#.TYPE_ATTR +RSRP-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRP_Range_fmt) + +#.TYPE_ATTR +RSRQ-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_RSRQ_Range_fmt) + +#.TYPE_ATTR +SearchSpace/duration DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_slots + +#.TYPE_ATTR +ServingCellConfigCommon/ss-PBCH-BlockPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm + +#.TYPE_ATTR +ServingCellConfigCommonSIB/ss-PBCH-BlockPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm + +#.TYPE_ATTR +SINR-Range DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(nr_rrc_SINR_Range_fmt) + +#.TYPE_ATTR +SRS-ResourceSet/p0 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm + +#.TYPE_ATTR +T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds + #.FN_BODY UE-CapabilityRAT-Container + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); /* Initialise to invalid value */ - private_data_set_rat_type(actx, 0xFF); + nr_priv->rat_type = 0xFF; %(DEFAULT_BODY)s #.FN_BODY RAT-Type VAL_PTR = &rat_type guint32 rat_type; + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); %(DEFAULT_BODY)s - private_data_set_rat_type(actx, (guint8)rat_type); + nr_priv->rat_type = (guint8)rat_type; #.FN_BODY UE-CapabilityRAT-Container/ue-CapabilityRAT-Container VAL_PTR = &ue_cap_tvb - tvbuff_t *ue_cap_tvb=NULL; + tvbuff_t *ue_cap_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR UE-CapabilityRAT-Container/ue-CapabilityRAT-Container if (ue_cap_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_UE_CapabilityRAT_Container); - switch(private_data_get_rat_type(actx)){ + switch(nr_priv->rat_type){ 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; + case RAT_Type_eutra: + dissect_lte_rrc_UE_EUTRA_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); + break; default: break; } } + +#.FN_BODY UE-CapabilityRAT-Request + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + /* Initialise to invalid value */ + nr_priv->rat_type = 0xFF; +%(DEFAULT_BODY)s + +#.FN_BODY UE-CapabilityRAT-Request/capabilityRequestFilter VAL_PTR = &cap_req_filter_tvb + tvbuff_t *cap_req_filter_tvb = NULL; +%(DEFAULT_BODY)s + +#.FN_FTR UE-CapabilityRAT-Request/capabilityRequestFilter + if (cap_req_filter_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_capabilityRequestFilter); + switch(nr_priv->rat_type){ + case RAT_Type_nr: + dissect_UE_CapabilityRequestFilterNR_PDU(cap_req_filter_tvb, actx->pinfo, subtree, NULL); + break; + default: + break; + } + } + +#.TYPE_ATTR +EUTRA-NS-PmaxValue/additionalPmax DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm 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 a1a482de32..5db7bcee68 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.2.0 Release 15) packet dissection + * (3GPP TS 38.331 V15.3.0 Release 15) packet dissection * Copyright 2018, Pascal Quantin * * Wireshark - Network traffic analyzer @@ -17,10 +17,16 @@ #include <epan/packet.h> #include <epan/asn1.h> +#include <epan/expert.h> +#include <epan/reassemble.h> +#include <epan/exceptions.h> +#include <epan/show_exception.h> #include <wsutil/str_util.h> #include "packet-per.h" +#include "packet-gsm_map.h" +#include "packet-cell_broadcast.h" #include "packet-lte-rrc.h" #include "packet-nr-rrc.h" @@ -31,24 +37,87 @@ void proto_register_nr_rrc(void); void proto_reg_handoff_nr_rrc(void); +static dissector_handle_t nas_5gs_handle = NULL; +static dissector_handle_t lte_rrc_conn_reconf_handle = NULL; + +static wmem_map_t *nr_rrc_etws_cmas_dcs_hash = NULL; + +static reassembly_table nr_rrc_sib7_reassembly_table; +static reassembly_table nr_rrc_sib8_reassembly_table; + /* Include constants */ #include "packet-nr-rrc-val.h" /* Initialize the protocol and registered fields */ static int proto_nr_rrc = -1; #include "packet-nr-rrc-hf.c" +static int hf_nr_rrc_serialNumber_gs = -1; +static int hf_nr_rrc_serialNumber_msg_code = -1; +static int hf_nr_rrc_serialNumber_upd_nb = -1; +static int hf_nr_rrc_warningType_value = -1; +static int hf_nr_rrc_warningType_emergency_user_alert = -1; +static int hf_nr_rrc_warningType_popup = -1; +static int hf_nr_rrc_warningMessageSegment_nb_pages = -1; +static int hf_nr_rrc_warningMessageSegment_decoded_page = -1; +static int hf_nr_rrc_sib7_fragments = -1; +static int hf_nr_rrc_sib7_fragment = -1; +static int hf_nr_rrc_sib7_fragment_overlap = -1; +static int hf_nr_rrc_sib7_fragment_overlap_conflict = -1; +static int hf_nr_rrc_sib7_fragment_multiple_tails = -1; +static int hf_nr_rrc_sib7_fragment_too_long_fragment = -1; +static int hf_nr_rrc_sib7_fragment_error = -1; +static int hf_nr_rrc_sib7_fragment_count = -1; +static int hf_nr_rrc_sib7_reassembled_in = -1; +static int hf_nr_rrc_sib7_reassembled_length = -1; +static int hf_nr_rrc_sib7_reassembled_data = -1; +static int hf_nr_rrc_sib8_fragments = -1; +static int hf_nr_rrc_sib8_fragment = -1; +static int hf_nr_rrc_sib8_fragment_overlap = -1; +static int hf_nr_rrc_sib8_fragment_overlap_conflict = -1; +static int hf_nr_rrc_sib8_fragment_multiple_tails = -1; +static int hf_nr_rrc_sib8_fragment_too_long_fragment = -1; +static int hf_nr_rrc_sib8_fragment_error = -1; +static int hf_nr_rrc_sib8_fragment_count = -1; +static int hf_nr_rrc_sib8_reassembled_in = -1; +static int hf_nr_rrc_sib8_reassembled_length = -1; +static int hf_nr_rrc_sib8_reassembled_data = -1; +static int hf_nr_rrc_utc_time = -1; +static int hf_nr_rrc_local_time = -1; /* Initialize the subtree pointers */ static gint ett_nr_rrc = -1; #include "packet-nr-rrc-ett.c" -static gint ett_nr_rrc_UECapabilityInformation = -1; +static gint ett_nr_rrc_DedicatedNAS_Message = -1; +static gint ett_rr_rrc_targetRAT_MessageContainer = -1; +static gint ett_nr_rrc_nas_Container = -1; +static gint ett_nr_rrc_serialNumber = -1; +static gint ett_nr_rrc_warningType = -1; +static gint ett_nr_rrc_dataCodingScheme = -1; +static gint ett_nr_rrc_sib7_fragment = -1; +static gint ett_nr_rrc_sib7_fragments = -1; +static gint ett_nr_rrc_sib8_fragment = -1; +static gint ett_nr_rrc_sib8_fragments = -1; +static gint ett_nr_rrc_warningMessageSegment = -1; +static gint ett_nr_rrc_timeInfo = -1; +static gint ett_nr_rrc_capabilityRequestFilter = -1; + +static expert_field ei_nr_rrc_number_pages_le15 = EI_INIT; + +static const unit_name_string units_periodicities = { " periodicity", " periodicities" }; +static const unit_name_string units_prbs = { " PRB", " PRBs" }; +static const unit_name_string units_slots = { " slot", " slots" }; typedef struct { guint8 rat_type; + guint8 target_rat_type; + guint16 message_identifier; + guint8 warning_message_segment_type; + guint8 warning_message_segment_number; } nr_rrc_private_data_t; /* Helper function to get or create a struct that will be actx->private_data */ -static nr_rrc_private_data_t* nr_rrc_get_private_data(asn1_ctx_t *actx) +static nr_rrc_private_data_t* +nr_rrc_get_private_data(asn1_ctx_t *actx) { if (actx->private_data == NULL) { actx->private_data = wmem_new0(wmem_packet_scope(), nr_rrc_private_data_t); @@ -56,47 +125,421 @@ static nr_rrc_private_data_t* nr_rrc_get_private_data(asn1_ctx_t *actx) return (nr_rrc_private_data_t*)actx->private_data; } -static guint8 private_data_get_rat_type(asn1_ctx_t *actx) +static void +nr_rrc_call_dissector(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +{ + TRY { + call_dissector(handle, tvb, pinfo, tree); + } + CATCH_BOUNDS_ERRORS { + show_exception(tvb, pinfo, tree, EXCEPT_CODE, GET_MESSAGE); + } + ENDTRY; +} + +/* Forward declarations */ +static int dissect_UE_CapabilityRequestFilterNR_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); + +static void +nr_rrc_q_RxLevMin_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%u dB (%u)", 2*v, v); +} + +static const value_string nr_rrc_serialNumber_gs_vals[] = { + { 0, "Display mode immediate, cell wide"}, + { 1, "Display mode normal, PLMN wide"}, + { 2, "Display mode normal, tracking area wide"}, + { 3, "Display mode normal, cell wide"}, + { 0, NULL}, +}; + +static const value_string nr_rrc_warningType_vals[] = { + { 0, "Earthquake"}, + { 1, "Tsunami"}, + { 2, "Earthquake and Tsunami"}, + { 3, "Test"}, + { 4, "Other"}, + { 0, NULL}, +}; + +static const fragment_items nr_rrc_sib7_frag_items = { + &ett_nr_rrc_sib7_fragment, + &ett_nr_rrc_sib7_fragments, + &hf_nr_rrc_sib7_fragments, + &hf_nr_rrc_sib7_fragment, + &hf_nr_rrc_sib7_fragment_overlap, + &hf_nr_rrc_sib7_fragment_overlap_conflict, + &hf_nr_rrc_sib7_fragment_multiple_tails, + &hf_nr_rrc_sib7_fragment_too_long_fragment, + &hf_nr_rrc_sib7_fragment_error, + &hf_nr_rrc_sib7_fragment_count, + &hf_nr_rrc_sib7_reassembled_in, + &hf_nr_rrc_sib7_reassembled_length, + &hf_nr_rrc_sib7_reassembled_data, + "SIB7 warning message segments" +}; + +static const fragment_items nr_rrc_sib8_frag_items = { + &ett_nr_rrc_sib8_fragment, + &ett_nr_rrc_sib8_fragments, + &hf_nr_rrc_sib8_fragments, + &hf_nr_rrc_sib8_fragment, + &hf_nr_rrc_sib8_fragment_overlap, + &hf_nr_rrc_sib8_fragment_overlap_conflict, + &hf_nr_rrc_sib8_fragment_multiple_tails, + &hf_nr_rrc_sib8_fragment_too_long_fragment, + &hf_nr_rrc_sib8_fragment_error, + &hf_nr_rrc_sib8_fragment_count, + &hf_nr_rrc_sib8_reassembled_in, + &hf_nr_rrc_sib8_reassembled_length, + &hf_nr_rrc_sib8_reassembled_data, + "SIB8 warning message segments" +}; + +static void +dissect_nr_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dataCodingScheme) +{ + guint32 offset; + guint8 nb_of_pages, length, *str; + proto_item *ti; + tvbuff_t *cb_data_page_tvb, *cb_data_tvb; + int i; + + nb_of_pages = tvb_get_guint8(warning_msg_seg_tvb, 0); + ti = proto_tree_add_uint(tree, hf_nr_rrc_warningMessageSegment_nb_pages, warning_msg_seg_tvb, 0, 1, nb_of_pages); + if (nb_of_pages > 15) { + expert_add_info_format(pinfo, ti, &ei_nr_rrc_number_pages_le15, + "Number of pages should be <=15 (found %u)", nb_of_pages); + nb_of_pages = 15; + } + for (i = 0, offset = 1; i < nb_of_pages; i++) { + length = tvb_get_guint8(warning_msg_seg_tvb, offset+82); + cb_data_page_tvb = tvb_new_subset_length(warning_msg_seg_tvb, offset, length); + cb_data_tvb = dissect_cbs_data(dataCodingScheme, cb_data_page_tvb, tree, pinfo, 0); + if (cb_data_tvb) { + str = tvb_get_string_enc(wmem_packet_scope(), cb_data_tvb, 0, tvb_reported_length(cb_data_tvb), ENC_UTF_8|ENC_NA); + proto_tree_add_string_format(tree, hf_nr_rrc_warningMessageSegment_decoded_page, warning_msg_seg_tvb, offset, 83, + str, "Decoded Page %u: %s", i+1, str); + } + offset += 83; + } +} + +static const value_string nr_rrc_daylightSavingTime_vals[] = { + { 0, "No adjustment for Daylight Saving Time"}, + { 1, "+1 hour adjustment for Daylight Saving Time"}, + { 2, "+2 hours adjustment for Daylight Saving Time"}, + { 3, "Reserved"}, + { 0, NULL}, +}; + +static void +nr_rrc_localTimeOffset_fmt(gchar *s, guint32 v) +{ + gint32 time_offset = (gint32) v; + + g_snprintf(s, ITEM_LABEL_LENGTH, "UTC time %c %dhr %dmin (%d)", + (time_offset < 0) ? '-':'+', abs(time_offset) >> 2, + (abs(time_offset) & 0x03) * 15, time_offset); +} + +static void +nr_rrc_drx_SlotOffset_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%g ms (%u)", 1./32 * v, v); +} + +static void +nr_rrc_Hysteresis_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%gdB (%u)", 0.5 * v, v); +} + +static void +nr_rrc_msg3_DeltaPreamble_fmt(gchar *s, guint32 v) { - nr_rrc_private_data_t *private_data = (nr_rrc_private_data_t*)nr_rrc_get_private_data(actx); - return private_data->rat_type; + gint32 d = (gint32)v; + + g_snprintf(s, ITEM_LABEL_LENGTH, "%ddB (%d)", 2 * d, d); +} + +static void +nr_rrc_Q_RxLevMin_fmt(gchar *s, guint32 v) +{ + gint32 d = (gint32)v; + + g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%d)", 2 * d, d); +} + +static void +nr_rrc_RSRP_RangeEUTRA_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -140dBm (0)"); + } else if (v < 97) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSRP < %ddBm (%u)", v-141, v-140, v); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "-44dBm <= RSRP (97)"); + } } -static void private_data_set_rat_type(asn1_ctx_t *actx, guint8 rat_type) +static void +nr_rrc_RSRQ_RangeEUTRA_fmt(gchar *s, guint32 v) { - nr_rrc_private_data_t *private_data = (nr_rrc_private_data_t*)nr_rrc_get_private_data(actx); - private_data->rat_type = rat_type; + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5dB (0)"); + } else if (v < 34) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= RSRQ < %.1fdB (%u)", ((float)v/2)-20, (((float)v+1)/2)-20, v); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "-3dB <= RSRQ (34)"); + } +} + +static void +nr_rrc_SINR_RangeEUTRA_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SINR < -23dB (0)"); + } else if (v == 127) { + g_snprintf(s, ITEM_LABEL_LENGTH, "40dB <= SINR (127)"); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= SINR < %.1fdB (%u)", (((float)v-1)/2)-23, ((float)v/2)-23, v); + } +} + +static void +nr_rrc_ReselectionThreshold_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%udB (%u)", 2 * v, v); +} + +static void +nr_rrc_RSRP_Range_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRP < -156dBm (0)"); + } else if (v < 126) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= SS-RSRP < %ddBm (%u)", v-157, v-156, v); + } else if (v == 126) { + g_snprintf(s, ITEM_LABEL_LENGTH, "-31dBm <= SS-RSRP (126)"); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "infinity (127)"); + } +} + +static void +nr_rrc_RSRQ_Range_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRQ < -43dB (0)"); + } else if (v < 127) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= SS-RSRQ < %.1fdB (%u)", (((float)v-1)/2)-43, ((float)v/2)-43, v); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "-20dB <= SS-RSRQ (127)"); + } +} + +static void +nr_rrc_SINR_Range_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SS-SINR < -23dB (0)"); + } else if (v < 127) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= SS-SINR < %.1fdB (%u)", (((float)v-1)/2)-23, ((float)v/2)-23, v); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "40dB <= SS-SINR (127)"); + } } #include "packet-nr-rrc-fn.c" -void proto_register_nr_rrc(void) { +void +proto_register_nr_rrc(void) { /* List of fields */ static hf_register_info hf[] = { #include "packet-nr-rrc-hfarr.c" + { &hf_nr_rrc_serialNumber_gs, + { "Geographical Scope", "nr-rrc.serialNumber.gs", + FT_UINT16, BASE_DEC, VALS(nr_rrc_serialNumber_gs_vals), 0xc000, + NULL, HFILL }}, + { &hf_nr_rrc_serialNumber_msg_code, + { "Message Code", "nr-rrc.serialNumber.msg_code", + FT_UINT16, BASE_DEC, NULL, 0x3ff0, + NULL, HFILL }}, + { &hf_nr_rrc_serialNumber_upd_nb, + { "Update Number", "nr-rrc.serialNumber.upd_nb", + FT_UINT16, BASE_DEC, NULL, 0x000f, + NULL, HFILL }}, + { &hf_nr_rrc_warningType_value, + { "Warning Type Value", "nr-rrc.warningType.value", + FT_UINT16, BASE_DEC, VALS(nr_rrc_warningType_vals), 0xfe00, + NULL, HFILL }}, + { &hf_nr_rrc_warningType_emergency_user_alert, + { "Emergency User Alert", "nr-rrc.warningType.emergency_user_alert", + FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0100, + NULL, HFILL }}, + { &hf_nr_rrc_warningType_popup, + { "Popup", "nr-rrc.warningType.popup", + FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0080, + NULL, HFILL }}, + { &hf_nr_rrc_warningMessageSegment_nb_pages, + { "Number of Pages", "nr-rrc.warningMessageSegment.nb_pages", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_warningMessageSegment_decoded_page, + { "Decoded Page", "nr-rrc.warningMessageSegment.decoded_page", + FT_STRING, STR_UNICODE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_fragments, + { "Fragments", "nr-rrc.warningMessageSegment.fragments", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_fragment, + { "Fragment", "nr-rrc.warningMessageSegment.fragment", + FT_FRAMENUM, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_fragment_overlap, + { "Fragment Overlap", "nr-rrc.warningMessageSegment.fragment_overlap", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_fragment_overlap_conflict, + { "Fragment Overlap Conflict", "nr-rrc.warningMessageSegment.fragment_overlap_conflict", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_fragment_multiple_tails, + { "Fragment Multiple Tails", "nr-rrc.warningMessageSegment.fragment_multiple_tails", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_fragment_too_long_fragment, + { "Too Long Fragment", "nr-rrc.warningMessageSegment.fragment_too_long_fragment", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_fragment_error, + { "Fragment Error", "nr-rrc.warningMessageSegment.fragment_error", + FT_FRAMENUM, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_fragment_count, + { "Fragment Count", "nr-rrc.warningMessageSegment.fragment_count", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_reassembled_in, + { "Reassembled In", "nr-rrc.warningMessageSegment.reassembled_in", + FT_FRAMENUM, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_reassembled_length, + { "Reassembled Length", "nr-rrc.warningMessageSegment.reassembled_length", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_reassembled_data, + { "Reassembled Data", "nr-rrc.warningMessageSegment.reassembled_data", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_fragments, + { "Fragments", "nr-rrc.warningMessageSegment.fragments", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_fragment, + { "Fragment", "nr-rrc.warningMessageSegment.fragment", + FT_FRAMENUM, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_fragment_overlap, + { "Fragment Overlap", "nr-rrc.warningMessageSegment.fragment_overlap", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_fragment_overlap_conflict, + { "Fragment Overlap Conflict", "nr-rrc.warningMessageSegment.fragment_overlap_conflict", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_fragment_multiple_tails, + { "Fragment Multiple Tails", "nr-rrc.warningMessageSegment.fragment_multiple_tails", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_fragment_too_long_fragment, + { "Too Long Fragment", "nr-rrc.warningMessageSegment.fragment_too_long_fragment", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_fragment_error, + { "Fragment Error", "nr-rrc.warningMessageSegment.fragment_error", + FT_FRAMENUM, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_fragment_count, + { "Fragment Count", "nr-rrc.warningMessageSegment.fragment_count", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_reassembled_in, + { "Reassembled In", "nr-rrc.warningMessageSegment.reassembled_in", + FT_FRAMENUM, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_reassembled_length, + { "Reassembled Length", "nr-rrc.warningMessageSegment.reassembled_length", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_reassembled_data, + { "Reassembled Data", "nr-rrc.warningMessageSegment.reassembled_data", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_utc_time, + { "UTC time", "nr-rrc.utc_time", + FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0x0, + NULL, HFILL }}, + { &hf_nr_rrc_local_time, + { "Local time", "nr-rrc.local_time", + FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0, + NULL, HFILL }}, }; static gint *ett[] = { &ett_nr_rrc, #include "packet-nr-rrc-ettarr.c" - &ett_nr_rrc_UECapabilityInformation + &ett_nr_rrc_DedicatedNAS_Message, + &ett_rr_rrc_targetRAT_MessageContainer, + &ett_nr_rrc_nas_Container, + &ett_nr_rrc_serialNumber, + &ett_nr_rrc_warningType, + &ett_nr_rrc_dataCodingScheme, + &ett_nr_rrc_sib7_fragment, + &ett_nr_rrc_sib7_fragments, + &ett_nr_rrc_sib8_fragment, + &ett_nr_rrc_sib8_fragments, + &ett_nr_rrc_warningMessageSegment, + &ett_nr_rrc_timeInfo, + &ett_nr_rrc_capabilityRequestFilter + }; + + static ei_register_info ei[] = { + { &ei_nr_rrc_number_pages_le15, { "nr-rrc.number_pages_le15", PI_MALFORMED, PI_ERROR, "Number of pages should be <=15", EXPFILL }}, }; + expert_module_t* expert_nr_rrc; + /* Register protocol */ proto_nr_rrc = proto_register_protocol(PNAME, PSNAME, PFNAME); /* Register fields and subtrees */ proto_register_field_array(proto_nr_rrc, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); + expert_nr_rrc = expert_register_protocol(proto_nr_rrc); + expert_register_field_array(expert_nr_rrc, ei, array_length(ei)); /* Register the dissectors defined in nr-rrc.cnf */ #include "packet-nr-rrc-dis-reg.c" + + nr_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), + g_direct_hash, g_direct_equal); + + reassembly_table_register(&nr_rrc_sib7_reassembly_table, + &addresses_reassembly_table_functions); + reassembly_table_register(&nr_rrc_sib8_reassembly_table, + &addresses_reassembly_table_functions); } void proto_reg_handoff_nr_rrc(void) { + nas_5gs_handle = find_dissector("nas-5gs"); + lte_rrc_conn_reconf_handle = find_dissector("lte-rrc.rrc_conn_reconf"); } diff --git a/epan/dissectors/packet-nr-rrc.c b/epan/dissectors/packet-nr-rrc.c index 34b0bb5e1f..fdb91e422f 100644 --- a/epan/dissectors/packet-nr-rrc.c +++ b/epan/dissectors/packet-nr-rrc.c @@ -9,7 +9,7 @@ /* packet-nr-rrc-template.c * NR; * Radio Resource Control (RRC) protocol specification - * (3GPP TS 38.331 V15.2.0 Release 15) packet dissection + * (3GPP TS 38.331 V15.3.0 Release 15) packet dissection * Copyright 2018, Pascal Quantin * * Wireshark - Network traffic analyzer @@ -25,10 +25,16 @@ #include <epan/packet.h> #include <epan/asn1.h> +#include <epan/expert.h> +#include <epan/reassemble.h> +#include <epan/exceptions.h> +#include <epan/show_exception.h> #include <wsutil/str_util.h> #include "packet-per.h" +#include "packet-gsm_map.h" +#include "packet-cell_broadcast.h" #include "packet-lte-rrc.h" #include "packet-nr-rrc.h" @@ -39,6 +45,14 @@ void proto_register_nr_rrc(void); void proto_reg_handoff_nr_rrc(void); +static dissector_handle_t nas_5gs_handle = NULL; +static dissector_handle_t lte_rrc_conn_reconf_handle = NULL; + +static wmem_map_t *nr_rrc_etws_cmas_dcs_hash = NULL; + +static reassembly_table nr_rrc_sib7_reassembly_table; +static reassembly_table nr_rrc_sib8_reassembly_table; + /* Include constants */ /*--- Included file: packet-nr-rrc-val.h ---*/ @@ -48,6 +62,16 @@ void proto_reg_handoff_nr_rrc(void); #define maxMeasIdentitiesMN 62 #define maxCellPrep 32 #define maxBandComb 65536 +#define maxCellBlack 16 +#define maxCellInter 16 +#define maxCellIntra 16 +#define maxCellMeasEUTRA 32 +#define maxEARFCN 262143 +#define maxEUTRA_CellBlack 16 +#define maxEUTRA_NS_Pmax 8 +#define maxMultiBands 8 +#define maxNARFCN 3279165 +#define maxNR_NS_Pmax 8 #define maxNrofServingCells 32 #define maxNrofServingCells_1 31 #define maxNrofAggregatedCellsPerCellGroup 16 @@ -62,16 +86,15 @@ void proto_reg_handoff_nr_rrc(void); #define maxNrofTAGs 4 #define maxNrofTAGs_1 3 #define maxNrofBWPs 4 +#define maxNrofCombIDC 128 #define maxNrofSymbols_1 13 #define maxNrofSlots 320 #define maxNrofSlots_1 319 #define maxNrofPhysicalResourceBlocks 275 #define maxNrofPhysicalResourceBlocks_1 274 #define maxNrofPhysicalResourceBlocksPlus1 276 -#define maxNrofControlResourceSets 12 #define maxNrofControlResourceSets_1 11 #define maxCoReSetDuration 3 -#define maxNrofSearchSpaces 40 #define maxNrofSearchSpaces_1 39 #define maxSFI_DCI_PayloadSize 128 #define maxSFI_DCI_PayloadSize_1 127 @@ -112,7 +135,9 @@ void proto_reg_handoff_nr_rrc(void); #define maxNrofFailureDetectionResources 10 #define maxNrofFailureDetectionResources_1 9 #define maxNrofObjectId 64 +#define maxNrofPageRec 32 #define maxNrofPCI_Ranges 8 +#define maxPLMN 12 #define maxNrofCSI_RS_ResourcesRRM 96 #define maxNrofCSI_RS_ResourcesRRM_1 95 #define maxNrofMeasId 64 @@ -122,10 +147,11 @@ void proto_reg_handoff_nr_rrc(void); #define maxNrofSRS_ResourceSets_1 15 #define maxNrofSRS_Resources 64 #define maxNrofSRS_Resources_1 63 +#define maxNrofSRS_ResourcesPerSet 16 #define maxNrofSRS_TriggerStates_1 3 +#define maxNrofSRS_TriggerStates_2 2 #define maxRAT_CapabilityContainers 8 #define maxSimultaneousBands 32 -#define maxNrofSlotFormatCombinationsPerCell 16 #define maxNrofSlotFormatCombinationsPerSet 512 #define maxNrofSlotFormatCombinationsPerSet_1 511 #define maxNrofPUCCH_Resources 128 @@ -133,7 +159,6 @@ void proto_reg_handoff_nr_rrc(void); #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 @@ -141,12 +166,14 @@ void proto_reg_handoff_nr_rrc(void); #define maxNrofP0_PUSCH_AlphaSets_1 29 #define maxNrofPUSCH_PathlossReferenceRSs 4 #define maxNrofPUSCH_PathlossReferenceRSs_1 3 +#define maxNrofNAICS_Entries 8 #define maxBands 1024 #define maxBandsMRDC 1280 #define maxBandsEUTRA 256 #define maxCellReport 8 #define maxDRB 29 #define maxFreq 8 +#define maxFreqIDC_MRDC 32 #define maxNrofCSI_RS 64 #define maxNrofCandidateBeams 16 #define maxNrofPCIsPerSMTC 64 @@ -155,13 +182,14 @@ void proto_reg_handoff_nr_rrc(void); #define maxNrofSR_Resources 8 #define maxNrofSlotFormatsPerCombination 256 #define maxNrofSpatialRelationInfos 8 -#define maxNrofSRS_ResourcesPerSet 16 #define maxNrofIndexesToReport 32 +#define maxNrofIndexesToReport2 64 #define maxNrofSSBs 64 #define maxNrofSSBs_1 63 +#define maxNrofS_NSSAI 8 #define maxNrofTCI_StatesPDCCH 64 -#define maxNrofTCI_States 64 -#define maxNrofTCI_States_1 63 +#define maxNrofTCI_States 128 +#define maxNrofTCI_States_1 127 #define maxNrofUL_Allocations 16 #define maxQFI 63 #define maxRA_CSIRS_Resources 96 @@ -178,6 +206,14 @@ void proto_reg_handoff_nr_rrc(void); #define maxNrofCodebooks 16 #define maxNrofSRI_PUSCH_Mappings 16 #define maxNrofSRI_PUSCH_Mappings_1 15 +#define maxSIB 32 +#define maxSIB_1 31 +#define maxSI_Message 32 +#define maxAccessCat_1 63 +#define maxBarringInfoSet 8 +#define maxCellEUTRA 8 +#define maxEUTRA_Carrier 8 +#define maxPLMNIdentities 8 #define maxDownlinkFeatureSets 1024 #define maxUplinkFeatureSets 1024 #define maxEUTRA_DL_FeatureSets 256 @@ -185,16 +221,24 @@ void proto_reg_handoff_nr_rrc(void); #define maxFeatureSetsPerBand 128 #define maxPerCC_FeatureSets 1024 #define maxFeatureSetCombinations 1024 +#define maxInterRAT_RSTD_Freq 3 typedef enum _RAT_Type_enum { RAT_Type_nr = 0, RAT_Type_eutra_nr = 1, - RAT_Type_spare2 = 2, + RAT_Type_eutra = 2, RAT_Type_spare1 = 3 } RAT_Type_enum; +typedef enum _T_targetRAT_Type_enum { + T_targetRAT_Type_eutra = 0, + T_targetRAT_Type_spare3 = 1, + T_targetRAT_Type_spare2 = 2, + T_targetRAT_Type_spare1 = 3 +} T_targetRAT_Type_enum; + /*--- End of included file: packet-nr-rrc-val.h ---*/ -#line 36 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 50 "./asn1/nr-rrc/packet-nr-rrc-template.c" /* Initialize the protocol and registered fields */ static int proto_nr_rrc = -1; @@ -207,8 +251,15 @@ static int hf_nr_rrc_nr_rrc_CG_Config_PDU = -1; /* CG_Config */ 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_nr_rrc_MeasurementTimingConfiguration_PDU = -1; /* MeasurementTimingConfiguration */ +static int hf_nr_rrc_UERadioPagingInformation_PDU = -1; /* UERadioPagingInformation */ +static int hf_nr_rrc_UERadioAccessCapabilityInformation_PDU = -1; /* UERadioAccessCapabilityInformation */ static int hf_nr_rrc_BCCH_BCH_Message_PDU = -1; /* BCCH_BCH_Message */ +static int hf_nr_rrc_BCCH_DL_SCH_Message_PDU = -1; /* BCCH_DL_SCH_Message */ +static int hf_nr_rrc_DL_CCCH_Message_PDU = -1; /* DL_CCCH_Message */ static int hf_nr_rrc_DL_DCCH_Message_PDU = -1; /* DL_DCCH_Message */ +static int hf_nr_rrc_PCCH_Message_PDU = -1; /* PCCH_Message */ +static int hf_nr_rrc_UL_CCCH_Message_PDU = -1; /* UL_CCCH_Message */ +static int hf_nr_rrc_UL_CCCH1_Message_PDU = -1; /* UL_CCCH1_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 */ @@ -222,10 +273,12 @@ static int hf_nr_rrc_nr_rrc_P_Max_PDU = -1; /* P_Max */ 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_CapabilityRAT_ContainerList_PDU = -1; /* UE_CapabilityRAT_ContainerList */ +static int hf_nr_rrc_UE_CapabilityRequestFilterNR_PDU = -1; /* UE_CapabilityRequestFilterNR */ 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_MeasResultList2NR_PDU = -1; /* MeasResultList2NR */ static int hf_nr_rrc_MeasResultSCG_Failure_PDU = -1; /* MeasResultSCG_Failure */ +static int hf_nr_rrc_SystemInformation_PDU = -1; /* SystemInformation */ static int hf_nr_rrc_criticalExtensions = -1; /* T_criticalExtensions */ static int hf_nr_rrc_c1 = -1; /* T_c1 */ static int hf_nr_rrc_handoverCommand = -1; /* HandoverCommand_IEs */ @@ -240,15 +293,17 @@ static int hf_nr_rrc_c1_01 = -1; /* T_c1_01 */ static int hf_nr_rrc_handoverPreparationInformation = -1; /* HandoverPreparationInformation_IEs */ static int hf_nr_rrc_criticalExtensionsFuture_01 = -1; /* T_criticalExtensionsFuture_01 */ static int hf_nr_rrc_ue_CapabilityRAT_List = -1; /* UE_CapabilityRAT_ContainerList */ -static int hf_nr_rrc_sourceConfig = -1; /* T_sourceConfig */ +static int hf_nr_rrc_sourceConfig = -1; /* AS_Config */ static int hf_nr_rrc_rrm_Config = -1; /* RRM_Config */ static int hf_nr_rrc_as_Context = -1; /* AS_Context */ static int hf_nr_rrc_nonCriticalExtension_01 = -1; /* T_nonCriticalExtension_01 */ -static int hf_nr_rrc_reestablishmentInfo = -1; /* T_reestablishmentInfo */ +static int hf_nr_rrc_rrcReconfiguration = -1; /* T_rrcReconfiguration */ +static int hf_nr_rrc_reestablishmentInfo = -1; /* ReestablishmentInfo */ +static int hf_nr_rrc_configRestrictInfo = -1; /* ConfigRestrictInfoSCG */ +static int hf_nr_rrc_ran_NotificationAreaInfo = -1; /* RAN_NotificationAreaInfo */ static int hf_nr_rrc_sourcePhysCellId = -1; /* PhysCellId */ static int hf_nr_rrc_targetCellShortMAC_I = -1; /* ShortMAC_I */ static int hf_nr_rrc_additionalReestabInfoList = -1; /* ReestabNCellInfoList */ -static int hf_nr_rrc_configRestrictInfo = -1; /* ConfigRestrictInfoSCG */ static int hf_nr_rrc_ReestabNCellInfoList_item = -1; /* ReestabNCellInfo */ static int hf_nr_rrc_cellIdentity = -1; /* CellIdentity */ static int hf_nr_rrc_key_gNodeB_Star = -1; /* BIT_STRING_SIZE_256 */ @@ -265,17 +320,21 @@ static int hf_nr_rrc_configRestrictModReq = -1; /* ConfigRestrictModReqSCG */ static int hf_nr_rrc_drx_InfoSCG = -1; /* DRX_Info */ static int hf_nr_rrc_candidateCellInfoListSN = -1; /* T_candidateCellInfoListSN */ static int hf_nr_rrc_measConfigSN = -1; /* MeasConfigSN */ -static int hf_nr_rrc_selectedBandCombinationNR = -1; /* BandCombinationIndex */ +static int hf_nr_rrc_selectedBandCombinationNR = -1; /* BandCombinationInfoSN */ static int hf_nr_rrc_fr_InfoListSCG = -1; /* FR_InfoList */ +static int hf_nr_rrc_candidateServingFreqListNR = -1; /* CandidateServingFreqListNR */ static int hf_nr_rrc_nonCriticalExtension_02 = -1; /* T_nonCriticalExtension_02 */ static int hf_nr_rrc_measuredFrequenciesSN = -1; /* SEQUENCE_SIZE_1_maxMeasFreqsSN_OF_NR_FreqInfo */ static int hf_nr_rrc_measuredFrequenciesSN_item = -1; /* NR_FreqInfo */ static int hf_nr_rrc_measuredFrequency = -1; /* ARFCN_ValueNR */ -static int hf_nr_rrc_requestedBC_MRDC = -1; /* BandCombinationIndex */ +static int hf_nr_rrc_requestedBC_MRDC = -1; /* BandCombinationInfoSN */ static int hf_nr_rrc_requestedP_MaxFR1 = -1; /* P_Max */ +static int hf_nr_rrc_bandCombinationIndex = -1; /* BandCombinationIndex */ +static int hf_nr_rrc_requestedFeatureSets = -1; /* FeatureSetEntryIndex */ static int hf_nr_rrc_FR_InfoList_item = -1; /* FR_Info */ static int hf_nr_rrc_servCellIndex = -1; /* ServCellIndex */ static int hf_nr_rrc_fr_Type = -1; /* T_fr_Type */ +static int hf_nr_rrc_CandidateServingFreqListNR_item = -1; /* ARFCN_ValueNR */ static int hf_nr_rrc_criticalExtensions_03 = -1; /* T_criticalExtensions_03 */ static int hf_nr_rrc_c1_03 = -1; /* T_c1_03 */ static int hf_nr_rrc_cg_ConfigInfo = -1; /* CG_ConfigInfo_IEs */ @@ -292,17 +351,21 @@ static int hf_nr_rrc_measConfigMN = -1; /* MeasConfigMN */ static int hf_nr_rrc_sourceConfigSCG = -1; /* T_sourceConfigSCG */ static int hf_nr_rrc_scg_RB_Config_01 = -1; /* T_scg_RB_Config_01 */ static int hf_nr_rrc_mcg_RB_Config = -1; /* T_mcg_RB_Config */ +static int hf_nr_rrc_mrdc_AssistanceInfo = -1; /* MRDC_AssistanceInfo */ static int hf_nr_rrc_nonCriticalExtension_03 = -1; /* T_nonCriticalExtension_03 */ -static int hf_nr_rrc_allowedBC_ListMRDC = -1; /* BandCombinationIndexList */ +static int hf_nr_rrc_allowedBC_ListMRDC = -1; /* BandCombinationInfoList */ 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_maxNR_FR1 = -1; /* P_Max */ static int hf_nr_rrc_p_maxEUTRA = -1; /* P_Max */ +static int hf_nr_rrc_p_maxUE_FR1 = -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_maxMeasIdentitiesSCG_NR = -1; /* INTEGER_1_maxMeasIdentitiesMN */ -static int hf_nr_rrc_BandCombinationIndexList_item = -1; /* BandCombinationIndex */ +static int hf_nr_rrc_BandCombinationInfoList_item = -1; /* BandCombinationInfo */ +static int hf_nr_rrc_allowedFeatureSetsList = -1; /* SEQUENCE_SIZE_1_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex */ +static int hf_nr_rrc_allowedFeatureSetsList_item = -1; /* FeatureSetEntryIndex */ 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 */ @@ -333,6 +396,21 @@ static int hf_nr_rrc_measGapConfig = -1; /* T_measGapConfig */ static int hf_nr_rrc_release = -1; /* NULL */ static int hf_nr_rrc_setup = -1; /* GapConfig */ static int hf_nr_rrc_gapPurpose = -1; /* T_gapPurpose */ +static int hf_nr_rrc_affectedCarrierFreqCombInfoListMRDC = -1; /* SEQUENCE_SIZE_1_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC */ +static int hf_nr_rrc_affectedCarrierFreqCombInfoListMRDC_item = -1; /* AffectedCarrierFreqCombInfoMRDC */ +static int hf_nr_rrc_victimSystemType = -1; /* VictimSystemType */ +static int hf_nr_rrc_interferenceDirectionMRDC = -1; /* T_interferenceDirectionMRDC */ +static int hf_nr_rrc_affectedCarrierFreqCombMRDC = -1; /* T_affectedCarrierFreqCombMRDC */ +static int hf_nr_rrc_affectedCarrierFreqCombEUTRA = -1; /* AffectedCarrierFreqCombEUTRA */ +static int hf_nr_rrc_affectedCarrierFreqCombNR = -1; /* AffectedCarrierFreqCombNR */ +static int hf_nr_rrc_gps = -1; /* T_gps */ +static int hf_nr_rrc_glonass = -1; /* T_glonass */ +static int hf_nr_rrc_bds = -1; /* T_bds */ +static int hf_nr_rrc_galileo = -1; /* T_galileo */ +static int hf_nr_rrc_wlan = -1; /* T_wlan */ +static int hf_nr_rrc_bluetooth = -1; /* T_bluetooth */ +static int hf_nr_rrc_AffectedCarrierFreqCombEUTRA_item = -1; /* ARFCN_ValueEUTRA */ +static int hf_nr_rrc_AffectedCarrierFreqCombNR_item = -1; /* ARFCN_ValueNR */ static int hf_nr_rrc_criticalExtensions_04 = -1; /* T_criticalExtensions_04 */ static int hf_nr_rrc_c1_04 = -1; /* T_c1_04 */ static int hf_nr_rrc_measTimingConf = -1; /* MeasurementTimingConfiguration_IEs */ @@ -342,107 +420,420 @@ static int hf_nr_rrc_nonCriticalExtension_04 = -1; /* T_nonCriticalExtension_04 static int hf_nr_rrc_MeasTimingList_item = -1; /* MeasTiming */ static int hf_nr_rrc_frequencyAndTiming = -1; /* T_frequencyAndTiming */ static int hf_nr_rrc_carrierFreq = -1; /* ARFCN_ValueNR */ +static int hf_nr_rrc_ssbSubcarrierSpacing = -1; /* SubcarrierSpacing */ static int hf_nr_rrc_ssb_MeasurementTimingConfiguration = -1; /* SSB_MTC */ -static int hf_nr_rrc_message = -1; /* BCCH_BCH_MessageType */ -static int hf_nr_rrc_mib = -1; /* MIB */ -static int hf_nr_rrc_messageClassExtension = -1; /* T_messageClassExtension */ -static int hf_nr_rrc_message_01 = -1; /* DL_DCCH_MessageType */ +static int hf_nr_rrc_ss_RSSI_Measurement = -1; /* SS_RSSI_Measurement */ +static int hf_nr_rrc_criticalExtensions_05 = -1; /* T_criticalExtensions_05 */ static int hf_nr_rrc_c1_05 = -1; /* T_c1_05 */ -static int hf_nr_rrc_rrcReconfiguration = -1; /* RRCReconfiguration */ -static int hf_nr_rrc_spare15 = -1; /* NULL */ -static int hf_nr_rrc_spare14 = -1; /* NULL */ -static int hf_nr_rrc_spare13 = -1; /* NULL */ -static int hf_nr_rrc_spare12 = -1; /* NULL */ -static int hf_nr_rrc_spare11 = -1; /* NULL */ -static int hf_nr_rrc_spare10 = -1; /* NULL */ -static int hf_nr_rrc_spare9 = -1; /* NULL */ -static int hf_nr_rrc_spare8 = -1; /* NULL */ +static int hf_nr_rrc_ueRadioPagingInformation = -1; /* UERadioPagingInformation_IEs */ static int hf_nr_rrc_spare7 = -1; /* NULL */ static int hf_nr_rrc_spare6 = -1; /* NULL */ static int hf_nr_rrc_spare5 = -1; /* NULL */ static int hf_nr_rrc_spare4 = -1; /* NULL */ -static int hf_nr_rrc_messageClassExtension_01 = -1; /* T_messageClassExtension_01 */ -static int hf_nr_rrc_message_02 = -1; /* UL_DCCH_MessageType */ +static int hf_nr_rrc_criticalExtensionsFuture_05 = -1; /* T_criticalExtensionsFuture_05 */ +static int hf_nr_rrc_supportedBandListNRForPaging = -1; /* SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicatorNR */ +static int hf_nr_rrc_supportedBandListNRForPaging_item = -1; /* FreqBandIndicatorNR */ +static int hf_nr_rrc_nonCriticalExtension_05 = -1; /* T_nonCriticalExtension_05 */ +static int hf_nr_rrc_criticalExtensions_06 = -1; /* T_criticalExtensions_06 */ static int hf_nr_rrc_c1_06 = -1; /* T_c1_06 */ +static int hf_nr_rrc_ueRadioAccessCapabilityInformation = -1; /* UERadioAccessCapabilityInformation_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_06 = -1; /* T_criticalExtensionsFuture_06 */ +static int hf_nr_rrc_ue_RadioAccessCapabilityInfo = -1; /* T_ue_RadioAccessCapabilityInfo */ +static int hf_nr_rrc_nonCriticalExtension_06 = -1; /* T_nonCriticalExtension_06 */ +static int hf_nr_rrc_message = -1; /* BCCH_BCH_MessageType */ +static int hf_nr_rrc_mib = -1; /* MIB */ +static int hf_nr_rrc_messageClassExtension = -1; /* T_messageClassExtension */ +static int hf_nr_rrc_message_01 = -1; /* BCCH_DL_SCH_MessageType */ +static int hf_nr_rrc_c1_07 = -1; /* T_c1_07 */ +static int hf_nr_rrc_systemInformation = -1; /* SystemInformation */ +static int hf_nr_rrc_systemInformationBlockType1 = -1; /* SIB1 */ +static int hf_nr_rrc_messageClassExtension_01 = -1; /* T_messageClassExtension_01 */ +static int hf_nr_rrc_message_02 = -1; /* DL_CCCH_MessageType */ +static int hf_nr_rrc_c1_08 = -1; /* T_c1_08 */ +static int hf_nr_rrc_rrcReject = -1; /* RRCReject */ +static int hf_nr_rrc_rrcSetup = -1; /* RRCSetup */ +static int hf_nr_rrc_messageClassExtension_02 = -1; /* T_messageClassExtension_02 */ +static int hf_nr_rrc_message_03 = -1; /* DL_DCCH_MessageType */ +static int hf_nr_rrc_c1_09 = -1; /* T_c1_09 */ +static int hf_nr_rrc_rrcReconfiguration_01 = -1; /* RRCReconfiguration */ +static int hf_nr_rrc_rrcResume = -1; /* RRCResume */ +static int hf_nr_rrc_rrcRelease = -1; /* RRCRelease */ +static int hf_nr_rrc_rrcReestablishment = -1; /* RRCReestablishment */ +static int hf_nr_rrc_securityModeCommand = -1; /* SecurityModeCommand */ +static int hf_nr_rrc_dlInformationTransfer = -1; /* DLInformationTransfer */ +static int hf_nr_rrc_ueCapabilityEnquiry = -1; /* UECapabilityEnquiry */ +static int hf_nr_rrc_counterCheck = -1; /* CounterCheck */ +static int hf_nr_rrc_mobilityFromNRCommand = -1; /* MobilityFromNRCommand */ +static int hf_nr_rrc_messageClassExtension_03 = -1; /* T_messageClassExtension_03 */ +static int hf_nr_rrc_message_04 = -1; /* PCCH_MessageType */ +static int hf_nr_rrc_c1_10 = -1; /* T_c1_10 */ +static int hf_nr_rrc_paging = -1; /* Paging */ +static int hf_nr_rrc_messageClassExtension_04 = -1; /* T_messageClassExtension_04 */ +static int hf_nr_rrc_message_05 = -1; /* UL_CCCH_MessageType */ +static int hf_nr_rrc_c1_11 = -1; /* T_c1_11 */ +static int hf_nr_rrc_rrcSetupRequest = -1; /* RRCSetupRequest */ +static int hf_nr_rrc_rrcResumeRequest = -1; /* RRCResumeRequest */ +static int hf_nr_rrc_rrcReestablishmentRequest = -1; /* RRCReestablishmentRequest */ +static int hf_nr_rrc_rrcSystemInfoRequest = -1; /* RRCSystemInfoRequest */ +static int hf_nr_rrc_messageClassExtension_05 = -1; /* T_messageClassExtension_05 */ +static int hf_nr_rrc_message_06 = -1; /* UL_CCCH1_MessageType */ +static int hf_nr_rrc_c1_12 = -1; /* T_c1_12 */ +static int hf_nr_rrc_rrcResumeRequest1 = -1; /* RRCResumeRequest1 */ +static int hf_nr_rrc_messageClassExtension_06 = -1; /* T_messageClassExtension_06 */ +static int hf_nr_rrc_message_07 = -1; /* UL_DCCH_MessageType */ +static int hf_nr_rrc_c1_13 = -1; /* T_c1_13 */ 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_rrcSetupComplete = -1; /* RRCSetupComplete */ +static int hf_nr_rrc_rrcReestablishmentComplete = -1; /* RRCReestablishmentComplete */ +static int hf_nr_rrc_rrcResumeComplete = -1; /* RRCResumeComplete */ +static int hf_nr_rrc_securityModeComplete = -1; /* SecurityModeComplete */ +static int hf_nr_rrc_securityModeFailure = -1; /* SecurityModeFailure */ +static int hf_nr_rrc_ulInformationTransfer = -1; /* ULInformationTransfer */ +static int hf_nr_rrc_locationMeasurementIndication = -1; /* LocationMeasurementIndication */ +static int hf_nr_rrc_ueCapabilityInformation = -1; /* UECapabilityInformation */ +static int hf_nr_rrc_counterCheckResponse = -1; /* CounterCheckResponse */ +static int hf_nr_rrc_ueAssistanceInformation = -1; /* UEAssistanceInformation */ +static int hf_nr_rrc_messageClassExtension_07 = -1; /* T_messageClassExtension_07 */ +static int hf_nr_rrc_rrc_TransactionIdentifier = -1; /* RRC_TransactionIdentifier */ +static int hf_nr_rrc_criticalExtensions_07 = -1; /* T_criticalExtensions_07 */ +static int hf_nr_rrc_counterCheck_01 = -1; /* CounterCheck_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_07 = -1; /* T_criticalExtensionsFuture_07 */ +static int hf_nr_rrc_drb_CountMSB_InfoList = -1; /* DRB_CountMSB_InfoList */ +static int hf_nr_rrc_lateNonCriticalExtension = -1; /* OCTET_STRING */ +static int hf_nr_rrc_nonCriticalExtension_07 = -1; /* T_nonCriticalExtension_07 */ +static int hf_nr_rrc_DRB_CountMSB_InfoList_item = -1; /* DRB_CountMSB_Info */ +static int hf_nr_rrc_drb_Identity = -1; /* DRB_Identity */ +static int hf_nr_rrc_countMSB_Uplink = -1; /* INTEGER_0_33554431 */ +static int hf_nr_rrc_countMSB_Downlink = -1; /* INTEGER_0_33554431 */ +static int hf_nr_rrc_criticalExtensions_08 = -1; /* T_criticalExtensions_08 */ +static int hf_nr_rrc_counterCheckResponse_01 = -1; /* CounterCheckResponse_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_08 = -1; /* T_criticalExtensionsFuture_08 */ +static int hf_nr_rrc_drb_CountInfoList = -1; /* DRB_CountInfoList */ +static int hf_nr_rrc_nonCriticalExtension_08 = -1; /* T_nonCriticalExtension_08 */ +static int hf_nr_rrc_DRB_CountInfoList_item = -1; /* DRB_CountInfo */ +static int hf_nr_rrc_count_Uplink = -1; /* INTEGER_0_4294967295 */ +static int hf_nr_rrc_count_Downlink = -1; /* INTEGER_0_4294967295 */ +static int hf_nr_rrc_criticalExtensions_09 = -1; /* T_criticalExtensions_09 */ +static int hf_nr_rrc_dlInformationTransfer_01 = -1; /* DLInformationTransfer_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_09 = -1; /* T_criticalExtensionsFuture_09 */ +static int hf_nr_rrc_dedicatedNAS_Message = -1; /* DedicatedNAS_Message */ +static int hf_nr_rrc_nonCriticalExtension_09 = -1; /* T_nonCriticalExtension_09 */ +static int hf_nr_rrc_criticalExtensions_10 = -1; /* T_criticalExtensions_10 */ +static int hf_nr_rrc_locationMeasurementIndication_01 = -1; /* LocationMeasurementIndication_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_10 = -1; /* T_criticalExtensionsFuture_10 */ +static int hf_nr_rrc_measurementIndication = -1; /* T_measurementIndication */ +static int hf_nr_rrc_setup_01 = -1; /* LocationMeasurementInfo */ +static int hf_nr_rrc_nonCriticalExtension_10 = -1; /* T_nonCriticalExtension_10 */ 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_pdcch_ConfigSIB1 = -1; /* INTEGER_0_255 */ +static int hf_nr_rrc_pdcch_ConfigSIB1 = -1; /* PDCCH_ConfigSIB1 */ 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_1 */ -static int hf_nr_rrc_criticalExtensions_05 = -1; /* T_criticalExtensions_05 */ +static int hf_nr_rrc_criticalExtensions_11 = -1; /* T_criticalExtensions_11 */ static int hf_nr_rrc_measurementReport_01 = -1; /* MeasurementReport_IEs */ -static int hf_nr_rrc_criticalExtensionsFuture_05 = -1; /* T_criticalExtensionsFuture_05 */ +static int hf_nr_rrc_criticalExtensionsFuture_11 = -1; /* T_criticalExtensionsFuture_11 */ static int hf_nr_rrc_measResults = -1; /* MeasResults */ -static int hf_nr_rrc_lateNonCriticalExtension = -1; /* OCTET_STRING */ -static int hf_nr_rrc_nonCriticalExtension_05 = -1; /* T_nonCriticalExtension_05 */ -static int hf_nr_rrc_rrc_TransactionIdentifier = -1; /* RRC_TransactionIdentifier */ -static int hf_nr_rrc_criticalExtensions_06 = -1; /* T_criticalExtensions_06 */ -static int hf_nr_rrc_rrcReconfiguration_01 = -1; /* RRCReconfiguration_IEs */ -static int hf_nr_rrc_criticalExtensionsFuture_06 = -1; /* T_criticalExtensionsFuture_06 */ +static int hf_nr_rrc_nonCriticalExtension_11 = -1; /* T_nonCriticalExtension_11 */ +static int hf_nr_rrc_criticalExtensions_12 = -1; /* T_criticalExtensions_12 */ +static int hf_nr_rrc_mobilityFromNRCommand_01 = -1; /* MobilityFromNRCommand_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_12 = -1; /* T_criticalExtensionsFuture_12 */ +static int hf_nr_rrc_targetRAT_Type = -1; /* T_targetRAT_Type */ +static int hf_nr_rrc_targetRAT_MessageContainer = -1; /* T_targetRAT_MessageContainer */ +static int hf_nr_rrc_nas_SecurityParamFromNR = -1; /* OCTET_STRING */ +static int hf_nr_rrc_nonCriticalExtension_12 = -1; /* T_nonCriticalExtension_12 */ +static int hf_nr_rrc_pagingRecordList = -1; /* PagingRecordList */ +static int hf_nr_rrc_nonCriticalExtension_13 = -1; /* T_nonCriticalExtension_13 */ +static int hf_nr_rrc_PagingRecordList_item = -1; /* PagingRecord */ +static int hf_nr_rrc_ue_Identity = -1; /* PagingUE_Identity */ +static int hf_nr_rrc_accessType = -1; /* T_accessType */ +static int hf_nr_rrc_ng_5G_S_TMSI = -1; /* NG_5G_S_TMSI */ +static int hf_nr_rrc_i_RNTI = -1; /* I_RNTI_Value */ +static int hf_nr_rrc_criticalExtensions_13 = -1; /* T_criticalExtensions_13 */ +static int hf_nr_rrc_rrcReestablishment_01 = -1; /* RRCReestablishment_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_13 = -1; /* T_criticalExtensionsFuture_13 */ +static int hf_nr_rrc_nextHopChainingCount = -1; /* NextHopChainingCount */ +static int hf_nr_rrc_nonCriticalExtension_14 = -1; /* T_nonCriticalExtension_14 */ +static int hf_nr_rrc_criticalExtensions_14 = -1; /* T_criticalExtensions_14 */ +static int hf_nr_rrc_rrcReestablishmentComplete_01 = -1; /* RRCReestablishmentComplete_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_14 = -1; /* T_criticalExtensionsFuture_14 */ +static int hf_nr_rrc_nonCriticalExtension_15 = -1; /* T_nonCriticalExtension_15 */ +static int hf_nr_rrc_rrcReestablishmentRequest_01 = -1; /* RRCReestablishmentRequest_IEs */ +static int hf_nr_rrc_ue_Identity_01 = -1; /* ReestabUE_Identity */ +static int hf_nr_rrc_reestablishmentCause = -1; /* ReestablishmentCause */ +static int hf_nr_rrc_c_RNTI = -1; /* RNTI_Value */ +static int hf_nr_rrc_physCellId = -1; /* PhysCellId */ +static int hf_nr_rrc_criticalExtensions_15 = -1; /* T_criticalExtensions_15 */ +static int hf_nr_rrc_rrcReconfiguration_02 = -1; /* RRCReconfiguration_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_15 = -1; /* T_criticalExtensionsFuture_15 */ static int hf_nr_rrc_radioBearerConfig = -1; /* RadioBearerConfig */ static int hf_nr_rrc_secondaryCellGroup = -1; /* T_secondaryCellGroup */ static int hf_nr_rrc_measConfig = -1; /* MeasConfig */ -static int hf_nr_rrc_nonCriticalExtension_06 = -1; /* T_nonCriticalExtension_06 */ -static int hf_nr_rrc_criticalExtensions_07 = -1; /* T_criticalExtensions_07 */ +static int hf_nr_rrc_nonCriticalExtension_16 = -1; /* RRCReconfiguration_v1530_IEs */ +static int hf_nr_rrc_masterCellGroup = -1; /* T_masterCellGroup */ +static int hf_nr_rrc_fullConfig = -1; /* T_fullConfig */ +static int hf_nr_rrc_dedicatedNAS_MessageList = -1; /* SEQUENCE_SIZE_1_maxDRB_OF_DedicatedNAS_Message */ +static int hf_nr_rrc_dedicatedNAS_MessageList_item = -1; /* DedicatedNAS_Message */ +static int hf_nr_rrc_masterKeyUpdate = -1; /* MasterKeyUpdate */ +static int hf_nr_rrc_dedicatedSIB1_Delivery = -1; /* T_dedicatedSIB1_Delivery */ +static int hf_nr_rrc_dedicatedSystemInformationDelivery = -1; /* T_dedicatedSystemInformationDelivery */ +static int hf_nr_rrc_otherConfig = -1; /* OtherConfig */ +static int hf_nr_rrc_nonCriticalExtension_17 = -1; /* T_nonCriticalExtension_16 */ +static int hf_nr_rrc_keySetChangeIndicator = -1; /* BOOLEAN */ +static int hf_nr_rrc_nas_Container = -1; /* T_nas_Container */ +static int hf_nr_rrc_criticalExtensions_16 = -1; /* T_criticalExtensions_16 */ static int hf_nr_rrc_rrcReconfigurationComplete_01 = -1; /* RRCReconfigurationComplete_IEs */ -static int hf_nr_rrc_criticalExtensionsFuture_07 = -1; /* T_criticalExtensionsFuture_07 */ -static int hf_nr_rrc_nonCriticalExtension_07 = -1; /* T_nonCriticalExtension_07 */ -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_08 = -1; /* T_nonCriticalExtension_08 */ -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_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_setup_01 = -1; /* RACH_ConfigCommon */ -static int hf_nr_rrc_pusch_ConfigCommon = -1; /* T_pusch_ConfigCommon */ -static int hf_nr_rrc_setup_02 = -1; /* PUSCH_ConfigCommon */ -static int hf_nr_rrc_pucch_ConfigCommon_01 = -1; /* T_pucch_ConfigCommon */ -static int hf_nr_rrc_setup_03 = -1; /* PUCCH_ConfigCommon */ -static int hf_nr_rrc_pucch_Config = -1; /* T_pucch_Config */ -static int hf_nr_rrc_setup_04 = -1; /* PUCCH_Config */ -static int hf_nr_rrc_pusch_Config = -1; /* T_pusch_Config */ -static int hf_nr_rrc_setup_05 = -1; /* PUSCH_Config */ -static int hf_nr_rrc_configuredGrantConfig = -1; /* T_configuredGrantConfig */ -static int hf_nr_rrc_setup_06 = -1; /* ConfiguredGrantConfig */ -static int hf_nr_rrc_srs_Config = -1; /* T_srs_Config */ -static int hf_nr_rrc_setup_07 = -1; /* SRS_Config */ -static int hf_nr_rrc_beamFailureRecoveryConfig = -1; /* T_beamFailureRecoveryConfig */ -static int hf_nr_rrc_setup_08 = -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_09 = -1; /* PDCCH_ConfigCommon */ -static int hf_nr_rrc_pdsch_ConfigCommon = -1; /* T_pdsch_ConfigCommon */ -static int hf_nr_rrc_setup_10 = -1; /* PDSCH_ConfigCommon */ -static int hf_nr_rrc_pdcch_Config = -1; /* T_pdcch_Config */ -static int hf_nr_rrc_setup_11 = -1; /* PDCCH_Config */ -static int hf_nr_rrc_pdsch_Config = -1; /* T_pdsch_Config */ -static int hf_nr_rrc_setup_12 = -1; /* PDSCH_Config */ -static int hf_nr_rrc_sps_Config = -1; /* T_sps_Config */ -static int hf_nr_rrc_setup_13 = -1; /* SPS_Config */ -static int hf_nr_rrc_radioLinkMonitoringConfig = -1; /* T_radioLinkMonitoringConfig */ -static int hf_nr_rrc_setup_14 = -1; /* RadioLinkMonitoringConfig */ +static int hf_nr_rrc_criticalExtensionsFuture_16 = -1; /* T_criticalExtensionsFuture_16 */ +static int hf_nr_rrc_nonCriticalExtension_18 = -1; /* RRCReconfigurationComplete_v1530_IEs */ +static int hf_nr_rrc_uplinkTxDirectCurrentList = -1; /* UplinkTxDirectCurrentList */ +static int hf_nr_rrc_nonCriticalExtension_19 = -1; /* T_nonCriticalExtension_17 */ +static int hf_nr_rrc_criticalExtensions_17 = -1; /* T_criticalExtensions_17 */ +static int hf_nr_rrc_rrcReject_01 = -1; /* RRCReject_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_17 = -1; /* T_criticalExtensionsFuture_17 */ +static int hf_nr_rrc_waitTime = -1; /* RejectWaitTime */ +static int hf_nr_rrc_nonCriticalExtension_20 = -1; /* T_nonCriticalExtension_18 */ +static int hf_nr_rrc_criticalExtensions_18 = -1; /* T_criticalExtensions_18 */ +static int hf_nr_rrc_rrcRelease_01 = -1; /* RRCRelease_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_18 = -1; /* T_criticalExtensionsFuture_18 */ +static int hf_nr_rrc_redirectedCarrierInfo = -1; /* RedirectedCarrierInfo */ +static int hf_nr_rrc_cellReselectionPriorities = -1; /* CellReselectionPriorities */ +static int hf_nr_rrc_suspendConfig = -1; /* SuspendConfig */ +static int hf_nr_rrc_deprioritisationReq = -1; /* T_deprioritisationReq */ +static int hf_nr_rrc_deprioritisationType = -1; /* T_deprioritisationType */ +static int hf_nr_rrc_deprioritisationTimer = -1; /* T_deprioritisationTimer */ +static int hf_nr_rrc_nonCriticalExtension_21 = -1; /* T_nonCriticalExtension_19 */ +static int hf_nr_rrc_nr = -1; /* CarrierInfoNR */ +static int hf_nr_rrc_eutra = -1; /* RedirectedCarrierInfo_EUTRA */ +static int hf_nr_rrc_eutraFrequency = -1; /* ARFCN_ValueEUTRA */ +static int hf_nr_rrc_cnType_r15 = -1; /* T_cnType_r15 */ +static int hf_nr_rrc_smtc = -1; /* SSB_MTC */ +static int hf_nr_rrc_fullI_RNTI = -1; /* I_RNTI_Value */ +static int hf_nr_rrc_shortI_RNTI = -1; /* ShortI_RNTI_Value */ +static int hf_nr_rrc_ran_PagingCycle = -1; /* PagingCycle */ +static int hf_nr_rrc_t380 = -1; /* PeriodicRNAU_TimerValue */ +static int hf_nr_rrc_freqPriorityListEUTRA = -1; /* FreqPriorityListEUTRA */ +static int hf_nr_rrc_freqPriorityListNR = -1; /* FreqPriorityListNR */ +static int hf_nr_rrc_t320 = -1; /* T_t320 */ +static int hf_nr_rrc_FreqPriorityListEUTRA_item = -1; /* FreqPriorityEUTRA */ +static int hf_nr_rrc_FreqPriorityListNR_item = -1; /* FreqPriorityNR */ +static int hf_nr_rrc_carrierFreq_01 = -1; /* ARFCN_ValueEUTRA */ +static int hf_nr_rrc_cellReselectionPriority = -1; /* CellReselectionPriority */ +static int hf_nr_rrc_cellReselectionSubPriority = -1; /* CellReselectionSubPriority */ +static int hf_nr_rrc_cellList = -1; /* PLMN_RAN_AreaCellList */ +static int hf_nr_rrc_ran_AreaConfigList = -1; /* PLMN_RAN_AreaConfigList */ +static int hf_nr_rrc_PLMN_RAN_AreaCellList_item = -1; /* PLMN_RAN_AreaCell */ +static int hf_nr_rrc_plmn_Identity = -1; /* PLMN_Identity */ +static int hf_nr_rrc_ran_AreaCells = -1; /* SEQUENCE_SIZE_1_32_OF_CellIdentity */ +static int hf_nr_rrc_ran_AreaCells_item = -1; /* CellIdentity */ +static int hf_nr_rrc_PLMN_RAN_AreaConfigList_item = -1; /* PLMN_RAN_AreaConfig */ +static int hf_nr_rrc_ran_Area = -1; /* SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig */ +static int hf_nr_rrc_ran_Area_item = -1; /* RAN_AreaConfig */ +static int hf_nr_rrc_trackingAreaCode = -1; /* TrackingAreaCode */ +static int hf_nr_rrc_ran_AreaCodeList = -1; /* SEQUENCE_SIZE_1_32_OF_RAN_AreaCode */ +static int hf_nr_rrc_ran_AreaCodeList_item = -1; /* RAN_AreaCode */ +static int hf_nr_rrc_criticalExtensions_19 = -1; /* T_criticalExtensions_19 */ +static int hf_nr_rrc_rrcResume_01 = -1; /* RRCResume_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_19 = -1; /* T_criticalExtensionsFuture_19 */ +static int hf_nr_rrc_masterCellGroup_01 = -1; /* T_masterCellGroup_01 */ +static int hf_nr_rrc_fullConfig_01 = -1; /* T_fullConfig_01 */ +static int hf_nr_rrc_nonCriticalExtension_22 = -1; /* T_nonCriticalExtension_20 */ +static int hf_nr_rrc_criticalExtensions_20 = -1; /* T_criticalExtensions_20 */ +static int hf_nr_rrc_rrcResumeComplete_01 = -1; /* RRCResumeComplete_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_20 = -1; /* T_criticalExtensionsFuture_20 */ +static int hf_nr_rrc_selectedPLMN_Identity = -1; /* INTEGER_1_maxPLMN */ +static int hf_nr_rrc_nonCriticalExtension_23 = -1; /* T_nonCriticalExtension_21 */ +static int hf_nr_rrc_rrcResumeRequest_01 = -1; /* RRCResumeRequest_IEs */ +static int hf_nr_rrc_resumeIdentity = -1; /* ShortI_RNTI_Value */ +static int hf_nr_rrc_resumeMAC_I = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_resumeCause = -1; /* ResumeCause */ +static int hf_nr_rrc_rrcResumeRequest1_01 = -1; /* RRCResumeRequest1_IEs */ +static int hf_nr_rrc_resumeIdentity_01 = -1; /* I_RNTI_Value */ +static int hf_nr_rrc_criticalExtensions_21 = -1; /* T_criticalExtensions_21 */ +static int hf_nr_rrc_rrcSetup_01 = -1; /* RRCSetup_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_21 = -1; /* T_criticalExtensionsFuture_21 */ +static int hf_nr_rrc_masterCellGroup_02 = -1; /* T_masterCellGroup_02 */ +static int hf_nr_rrc_nonCriticalExtension_24 = -1; /* T_nonCriticalExtension_22 */ +static int hf_nr_rrc_criticalExtensions_22 = -1; /* T_criticalExtensions_22 */ +static int hf_nr_rrc_rrcSetupComplete_01 = -1; /* RRCSetupComplete_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_22 = -1; /* T_criticalExtensionsFuture_22 */ +static int hf_nr_rrc_registeredAMF = -1; /* RegisteredAMF */ +static int hf_nr_rrc_guami_Type = -1; /* T_guami_Type */ +static int hf_nr_rrc_s_nssai_List = -1; /* SEQUENCE_SIZE_1_maxNrofS_NSSAI_OF_S_NSSAI */ +static int hf_nr_rrc_s_nssai_List_item = -1; /* S_NSSAI */ +static int hf_nr_rrc_ng_5G_S_TMSI_Value = -1; /* T_ng_5G_S_TMSI_Value */ +static int hf_nr_rrc_ng_5G_S_TMSI_Part2 = -1; /* BIT_STRING_SIZE_9 */ +static int hf_nr_rrc_nonCriticalExtension_25 = -1; /* T_nonCriticalExtension_23 */ +static int hf_nr_rrc_amf_Identifier = -1; /* AMF_Identifier */ +static int hf_nr_rrc_rrcSetupRequest_01 = -1; /* RRCSetupRequest_IEs */ +static int hf_nr_rrc_ue_Identity_02 = -1; /* InitialUE_Identity */ +static int hf_nr_rrc_establishmentCause = -1; /* EstablishmentCause */ +static int hf_nr_rrc_ng_5G_S_TMSI_Part1 = -1; /* BIT_STRING_SIZE_39 */ +static int hf_nr_rrc_randomValue = -1; /* BIT_STRING_SIZE_39 */ +static int hf_nr_rrc_criticalExtensions_23 = -1; /* T_criticalExtensions_23 */ +static int hf_nr_rrc_rrcSystemInfoRequest_r15 = -1; /* RRCSystemInfoRequest_r15_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_23 = -1; /* T_criticalExtensionsFuture_23 */ +static int hf_nr_rrc_requested_SI_List = -1; /* BIT_STRING_SIZE_maxSI_Message */ +static int hf_nr_rrc_spare_01 = -1; /* BIT_STRING_SIZE_12 */ +static int hf_nr_rrc_criticalExtensions_24 = -1; /* T_criticalExtensions_24 */ +static int hf_nr_rrc_securityModeCommand_01 = -1; /* SecurityModeCommand_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_24 = -1; /* T_criticalExtensionsFuture_24 */ +static int hf_nr_rrc_securityConfigSMC = -1; /* SecurityConfigSMC */ +static int hf_nr_rrc_nonCriticalExtension_26 = -1; /* T_nonCriticalExtension_24 */ +static int hf_nr_rrc_securityAlgorithmConfig = -1; /* SecurityAlgorithmConfig */ +static int hf_nr_rrc_criticalExtensions_25 = -1; /* T_criticalExtensions_25 */ +static int hf_nr_rrc_securityModeComplete_01 = -1; /* SecurityModeComplete_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_25 = -1; /* T_criticalExtensionsFuture_25 */ +static int hf_nr_rrc_nonCriticalExtension_27 = -1; /* T_nonCriticalExtension_25 */ +static int hf_nr_rrc_criticalExtensions_26 = -1; /* T_criticalExtensions_26 */ +static int hf_nr_rrc_securityModeFailure_01 = -1; /* SecurityModeFailure_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_26 = -1; /* T_criticalExtensionsFuture_26 */ +static int hf_nr_rrc_nonCriticalExtension_28 = -1; /* T_nonCriticalExtension_26 */ +static int hf_nr_rrc_cellSelectionInfo = -1; /* T_cellSelectionInfo */ +static int hf_nr_rrc_q_RxLevMin = -1; /* Q_RxLevMin */ +static int hf_nr_rrc_q_RxLevMinOffset = -1; /* INTEGER_1_8 */ +static int hf_nr_rrc_q_RxLevMinSUL = -1; /* Q_RxLevMin */ +static int hf_nr_rrc_q_QualMin = -1; /* Q_QualMin */ +static int hf_nr_rrc_q_QualMinOffset = -1; /* INTEGER_1_8 */ +static int hf_nr_rrc_cellAccessRelatedInfo = -1; /* CellAccessRelatedInfo */ +static int hf_nr_rrc_connEstFailureControl = -1; /* ConnEstFailureControl */ +static int hf_nr_rrc_si_SchedulingInfo = -1; /* SI_SchedulingInfo */ +static int hf_nr_rrc_servingCellConfigCommon = -1; /* ServingCellConfigCommonSIB */ +static int hf_nr_rrc_ims_EmergencySupport = -1; /* T_ims_EmergencySupport */ +static int hf_nr_rrc_eCallOverIMS_Support = -1; /* T_eCallOverIMS_Support */ +static int hf_nr_rrc_ue_TimersAndConstants = -1; /* UE_TimersAndConstants */ +static int hf_nr_rrc_uac_BarringInfo = -1; /* T_uac_BarringInfo */ +static int hf_nr_rrc_uac_BarringForCommon = -1; /* UAC_BarringPerCatList */ +static int hf_nr_rrc_uac_BarringPerPLMN_List = -1; /* UAC_BarringPerPLMN_List */ +static int hf_nr_rrc_uac_BarringInfoSetList = -1; /* UAC_BarringInfoSetList */ +static int hf_nr_rrc_uac_AccessCategory1_SelectionAssistanceInfo = -1; /* T_uac_AccessCategory1_SelectionAssistanceInfo */ +static int hf_nr_rrc_plmnCommon = -1; /* UAC_AccessCategory1_SelectionAssistanceInfo */ +static int hf_nr_rrc_individualPLMNList = -1; /* SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo */ +static int hf_nr_rrc_individualPLMNList_item = -1; /* UAC_AccessCategory1_SelectionAssistanceInfo */ +static int hf_nr_rrc_useFullResumeID = -1; /* T_useFullResumeID */ +static int hf_nr_rrc_nonCriticalExtension_29 = -1; /* T_nonCriticalExtension_27 */ +static int hf_nr_rrc_criticalExtensions_27 = -1; /* T_criticalExtensions_27 */ +static int hf_nr_rrc_systemInformation_r15 = -1; /* SystemInformation_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_27 = -1; /* T_criticalExtensionsFuture_27 */ +static int hf_nr_rrc_sib_TypeAndInfo = -1; /* T_sib_TypeAndInfo */ +static int hf_nr_rrc_sib_TypeAndInfo_item = -1; /* T_sib_TypeAndInfo_item */ +static int hf_nr_rrc_sib2 = -1; /* SIB2 */ +static int hf_nr_rrc_sib3 = -1; /* SIB3 */ +static int hf_nr_rrc_sib4 = -1; /* SIB4 */ +static int hf_nr_rrc_sib5 = -1; /* SIB5 */ +static int hf_nr_rrc_sib6 = -1; /* SIB6 */ +static int hf_nr_rrc_sib7 = -1; /* SIB7 */ +static int hf_nr_rrc_sib8 = -1; /* SIB8 */ +static int hf_nr_rrc_sib9 = -1; /* SIB9 */ +static int hf_nr_rrc_nonCriticalExtension_30 = -1; /* T_nonCriticalExtension_28 */ +static int hf_nr_rrc_criticalExtensions_28 = -1; /* T_criticalExtensions_28 */ +static int hf_nr_rrc_ueAssistanceInformation_01 = -1; /* UEAssistanceInformation_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_28 = -1; /* T_criticalExtensionsFuture_28 */ +static int hf_nr_rrc_delayBudgetReport = -1; /* DelayBudgetReport */ +static int hf_nr_rrc_nonCriticalExtension_31 = -1; /* T_nonCriticalExtension_29 */ +static int hf_nr_rrc_type1 = -1; /* T_type1 */ +static int hf_nr_rrc_criticalExtensions_29 = -1; /* T_criticalExtensions_29 */ +static int hf_nr_rrc_ueCapabilityEnquiry_01 = -1; /* UECapabilityEnquiry_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_29 = -1; /* T_criticalExtensionsFuture_29 */ +static int hf_nr_rrc_ue_CapabilityRAT_RequestList = -1; /* UE_CapabilityRAT_RequestList */ +static int hf_nr_rrc_nonCriticalExtension_32 = -1; /* T_nonCriticalExtension_30 */ +static int hf_nr_rrc_criticalExtensions_30 = -1; /* T_criticalExtensions_30 */ +static int hf_nr_rrc_ueCapabilityInformation_01 = -1; /* UECapabilityInformation_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_30 = -1; /* T_criticalExtensionsFuture_30 */ +static int hf_nr_rrc_ue_CapabilityRAT_ContainerList = -1; /* UE_CapabilityRAT_ContainerList */ +static int hf_nr_rrc_nonCriticalExtension_33 = -1; /* T_nonCriticalExtension_31 */ +static int hf_nr_rrc_criticalExtensions_31 = -1; /* T_criticalExtensions_31 */ +static int hf_nr_rrc_ulInformationTransfer_01 = -1; /* ULInformationTransfer_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_31 = -1; /* T_criticalExtensionsFuture_31 */ +static int hf_nr_rrc_nonCriticalExtension_34 = -1; /* T_nonCriticalExtension_32 */ +static int hf_nr_rrc_cellReselectionInfoCommon = -1; /* T_cellReselectionInfoCommon */ +static int hf_nr_rrc_nrofSS_BlocksToAverage = -1; /* INTEGER_2_maxNrofSS_BlocksToAverage */ +static int hf_nr_rrc_absThreshSS_BlocksConsolidation = -1; /* ThresholdNR */ +static int hf_nr_rrc_rangeToBestCell = -1; /* RangeToBestCell */ +static int hf_nr_rrc_q_Hyst = -1; /* T_q_Hyst */ +static int hf_nr_rrc_speedStateReselectionPars = -1; /* T_speedStateReselectionPars */ +static int hf_nr_rrc_mobilityStateParameters = -1; /* MobilityStateParameters */ +static int hf_nr_rrc_q_HystSF = -1; /* T_q_HystSF */ +static int hf_nr_rrc_sf_Medium = -1; /* T_sf_Medium */ +static int hf_nr_rrc_sf_High = -1; /* T_sf_High */ +static int hf_nr_rrc_cellReselectionServingFreqInfo = -1; /* T_cellReselectionServingFreqInfo */ +static int hf_nr_rrc_s_NonIntraSearchP = -1; /* ReselectionThreshold */ +static int hf_nr_rrc_s_NonIntraSearchQ = -1; /* ReselectionThresholdQ */ +static int hf_nr_rrc_threshServingLowP = -1; /* ReselectionThreshold */ +static int hf_nr_rrc_threshServingLowQ = -1; /* ReselectionThresholdQ */ +static int hf_nr_rrc_intraFreqCellReselectionInfo = -1; /* T_intraFreqCellReselectionInfo */ +static int hf_nr_rrc_s_IntraSearchP = -1; /* ReselectionThreshold */ +static int hf_nr_rrc_s_IntraSearchQ = -1; /* ReselectionThresholdQ */ +static int hf_nr_rrc_t_ReselectionNR = -1; /* T_Reselection */ +static int hf_nr_rrc_frequencyBandList = -1; /* MultiFrequencyBandListNR_SIB */ +static int hf_nr_rrc_frequencyBandListSUL = -1; /* MultiFrequencyBandListNR_SIB */ +static int hf_nr_rrc_p_Max = -1; /* P_Max */ +static int hf_nr_rrc_ssb_ToMeasure = -1; /* SSB_ToMeasure */ +static int hf_nr_rrc_deriveSSB_IndexFromCell = -1; /* BOOLEAN */ +static int hf_nr_rrc_intraFreqNeighCellList = -1; /* IntraFreqNeighCellList */ +static int hf_nr_rrc_intraFreqBlackCellList = -1; /* IntraFreqBlackCellList */ +static int hf_nr_rrc_IntraFreqNeighCellList_item = -1; /* IntraFreqNeighCellInfo */ +static int hf_nr_rrc_q_OffsetCell = -1; /* Q_OffsetRange */ +static int hf_nr_rrc_q_RxLevMinOffsetCell = -1; /* INTEGER_1_8 */ +static int hf_nr_rrc_q_RxLevMinOffsetCellSUL = -1; /* INTEGER_1_8 */ +static int hf_nr_rrc_q_QualMinOffsetCell = -1; /* INTEGER_1_8 */ +static int hf_nr_rrc_IntraFreqBlackCellList_item = -1; /* PCI_Range */ +static int hf_nr_rrc_interFreqCarrierFreqList = -1; /* InterFreqCarrierFreqList */ +static int hf_nr_rrc_InterFreqCarrierFreqList_item = -1; /* InterFreqCarrierFreqInfo */ +static int hf_nr_rrc_dl_CarrierFreq = -1; /* ARFCN_ValueNR */ +static int hf_nr_rrc_t_ReselectionNR_SF = -1; /* SpeedStateScaleFactors */ +static int hf_nr_rrc_threshX_HighP = -1; /* ReselectionThreshold */ +static int hf_nr_rrc_threshX_LowP = -1; /* ReselectionThreshold */ +static int hf_nr_rrc_threshX_Q = -1; /* T_threshX_Q */ +static int hf_nr_rrc_threshX_HighQ = -1; /* ReselectionThresholdQ */ +static int hf_nr_rrc_threshX_LowQ = -1; /* ReselectionThresholdQ */ +static int hf_nr_rrc_q_OffsetFreq = -1; /* Q_OffsetRange */ +static int hf_nr_rrc_interFreqNeighCellList = -1; /* InterFreqNeighCellList */ +static int hf_nr_rrc_interFreqBlackCellList = -1; /* InterFreqBlackCellList */ +static int hf_nr_rrc_InterFreqNeighCellList_item = -1; /* InterFreqNeighCellInfo */ +static int hf_nr_rrc_InterFreqBlackCellList_item = -1; /* PCI_Range */ +static int hf_nr_rrc_carrierFreqListEUTRA = -1; /* CarrierFreqListEUTRA */ +static int hf_nr_rrc_t_ReselectionEUTRA = -1; /* T_Reselection */ +static int hf_nr_rrc_t_ReselectionEUTRA_SF = -1; /* SpeedStateScaleFactors */ +static int hf_nr_rrc_CarrierFreqListEUTRA_item = -1; /* CarrierFreqEUTRA */ +static int hf_nr_rrc_eutra_multiBandInfoList = -1; /* EUTRA_MultiBandInfoList */ +static int hf_nr_rrc_eutra_FreqNeighCellList = -1; /* EUTRA_FreqNeighCellList */ +static int hf_nr_rrc_eutra_BlackCellList = -1; /* EUTRA_FreqBlackCellList */ +static int hf_nr_rrc_allowedMeasBandwidth = -1; /* EUTRA_AllowedMeasBandwidth */ +static int hf_nr_rrc_presenceAntennaPort1 = -1; /* EUTRA_PresenceAntennaPort1 */ +static int hf_nr_rrc_threshX_High = -1; /* ReselectionThreshold */ +static int hf_nr_rrc_threshX_Low = -1; /* ReselectionThreshold */ +static int hf_nr_rrc_q_RxLevMin_01 = -1; /* INTEGER_M70_M22 */ +static int hf_nr_rrc_q_QualMin_01 = -1; /* INTEGER_M34_M3 */ +static int hf_nr_rrc_p_MaxEUTRA = -1; /* INTEGER_M30_33 */ +static int hf_nr_rrc_threshX_Q_01 = -1; /* T_threshX_Q_01 */ +static int hf_nr_rrc_EUTRA_FreqBlackCellList_item = -1; /* EUTRA_PhysCellIdRange */ +static int hf_nr_rrc_EUTRA_FreqNeighCellList_item = -1; /* EUTRA_FreqNeighCellInfo */ +static int hf_nr_rrc_physCellId_01 = -1; /* EUTRA_PhysCellId */ +static int hf_nr_rrc_q_OffsetCell_01 = -1; /* EUTRA_Q_OffsetRange */ +static int hf_nr_rrc_messageIdentifier = -1; /* T_messageIdentifier */ +static int hf_nr_rrc_serialNumber = -1; /* T_serialNumber */ +static int hf_nr_rrc_warningType = -1; /* T_warningType */ +static int hf_nr_rrc_messageIdentifier_01 = -1; /* T_messageIdentifier_01 */ +static int hf_nr_rrc_serialNumber_01 = -1; /* T_serialNumber_01 */ +static int hf_nr_rrc_warningMessageSegmentType = -1; /* T_warningMessageSegmentType */ +static int hf_nr_rrc_warningMessageSegmentNumber = -1; /* T_warningMessageSegmentNumber */ +static int hf_nr_rrc_warningMessageSegment = -1; /* T_warningMessageSegment */ +static int hf_nr_rrc_dataCodingScheme = -1; /* T_dataCodingScheme */ +static int hf_nr_rrc_messageIdentifier_02 = -1; /* T_messageIdentifier_02 */ +static int hf_nr_rrc_serialNumber_02 = -1; /* T_serialNumber_02 */ +static int hf_nr_rrc_warningMessageSegmentType_01 = -1; /* T_warningMessageSegmentType_01 */ +static int hf_nr_rrc_warningMessageSegmentNumber_01 = -1; /* T_warningMessageSegmentNumber_01 */ +static int hf_nr_rrc_warningMessageSegment_01 = -1; /* T_warningMessageSegment_01 */ +static int hf_nr_rrc_dataCodingScheme_01 = -1; /* T_dataCodingScheme_01 */ +static int hf_nr_rrc_warningAreaCoordinatesSegment = -1; /* OCTET_STRING */ +static int hf_nr_rrc_timeInfo = -1; /* T_timeInfo */ +static int hf_nr_rrc_timeInfoUTC = -1; /* T_timeInfoUTC */ +static int hf_nr_rrc_dayLightSavingTime = -1; /* T_dayLightSavingTime */ +static int hf_nr_rrc_leapSeconds = -1; /* INTEGER_M127_128 */ +static int hf_nr_rrc_localTimeOffset = -1; /* INTEGER_M63_64 */ 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_rsrp_ThresholdSSB = -1; /* RSRP_Range */ @@ -453,6 +844,7 @@ static int hf_nr_rrc_ra_ssb_OccasionMaskIndex = -1; /* INTEGER_0_15 */ static int hf_nr_rrc_recoverySearchSpaceId = -1; /* SearchSpaceId */ static int hf_nr_rrc_ra_Prioritization = -1; /* RA_Prioritization */ static int hf_nr_rrc_beamFailureRecoveryTimer = -1; /* T_beamFailureRecoveryTimer */ +static int hf_nr_rrc_msg1_SubcarrierSpacing_v1530 = -1; /* SubcarrierSpacing */ 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 */ @@ -460,6 +852,61 @@ 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_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_periodicBSR_Timer = -1; /* T_periodicBSR_Timer */ +static int hf_nr_rrc_retxBSR_Timer = -1; /* T_retxBSR_Timer */ +static int hf_nr_rrc_logicalChannelSR_DelayTimer = -1; /* T_logicalChannelSR_DelayTimer */ +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_bwp_Id = -1; /* BWP_Id */ +static int hf_nr_rrc_bwp_Common = -1; /* BWP_DownlinkCommon */ +static int hf_nr_rrc_bwp_Dedicated = -1; /* BWP_DownlinkDedicated */ +static int hf_nr_rrc_genericParameters = -1; /* BWP */ +static int hf_nr_rrc_pdcch_ConfigCommon = -1; /* T_pdcch_ConfigCommon */ +static int hf_nr_rrc_setup_02 = -1; /* PDCCH_ConfigCommon */ +static int hf_nr_rrc_pdsch_ConfigCommon = -1; /* T_pdsch_ConfigCommon */ +static int hf_nr_rrc_setup_03 = -1; /* PDSCH_ConfigCommon */ +static int hf_nr_rrc_pdcch_Config = -1; /* T_pdcch_Config */ +static int hf_nr_rrc_setup_04 = -1; /* PDCCH_Config */ +static int hf_nr_rrc_pdsch_Config = -1; /* T_pdsch_Config */ +static int hf_nr_rrc_setup_05 = -1; /* PDSCH_Config */ +static int hf_nr_rrc_sps_Config = -1; /* T_sps_Config */ +static int hf_nr_rrc_setup_06 = -1; /* SPS_Config */ +static int hf_nr_rrc_radioLinkMonitoringConfig = -1; /* T_radioLinkMonitoringConfig */ +static int hf_nr_rrc_setup_07 = -1; /* RadioLinkMonitoringConfig */ +static int hf_nr_rrc_bwp_Common_01 = -1; /* BWP_UplinkCommon */ +static int hf_nr_rrc_bwp_Dedicated_01 = -1; /* BWP_UplinkDedicated */ +static int hf_nr_rrc_rach_ConfigCommon = -1; /* T_rach_ConfigCommon */ +static int hf_nr_rrc_setup_08 = -1; /* RACH_ConfigCommon */ +static int hf_nr_rrc_pusch_ConfigCommon = -1; /* T_pusch_ConfigCommon */ +static int hf_nr_rrc_setup_09 = -1; /* PUSCH_ConfigCommon */ +static int hf_nr_rrc_pucch_ConfigCommon = -1; /* T_pucch_ConfigCommon */ +static int hf_nr_rrc_setup_10 = -1; /* PUCCH_ConfigCommon */ +static int hf_nr_rrc_pucch_Config = -1; /* T_pucch_Config */ +static int hf_nr_rrc_setup_11 = -1; /* PUCCH_Config */ +static int hf_nr_rrc_pusch_Config = -1; /* T_pusch_Config */ +static int hf_nr_rrc_setup_12 = -1; /* PUSCH_Config */ +static int hf_nr_rrc_configuredGrantConfig = -1; /* T_configuredGrantConfig */ +static int hf_nr_rrc_setup_13 = -1; /* ConfiguredGrantConfig */ +static int hf_nr_rrc_srs_Config = -1; /* T_srs_Config */ +static int hf_nr_rrc_setup_14 = -1; /* SRS_Config */ +static int hf_nr_rrc_beamFailureRecoveryConfig = -1; /* T_beamFailureRecoveryConfig */ +static int hf_nr_rrc_setup_15 = -1; /* BeamFailureRecoveryConfig */ +static int hf_nr_rrc_plmn_IdentityList = -1; /* PLMN_IdentityInfoList */ +static int hf_nr_rrc_cellReservedForOtherUse = -1; /* T_cellReservedForOtherUse */ +static int hf_nr_rrc_plmn_IdentityList_eutra_5gc = -1; /* PLMN_IdentityList_EUTRA_5GC */ +static int hf_nr_rrc_trackingAreaCode_eutra_5gc = -1; /* TrackingAreaCode */ +static int hf_nr_rrc_ranac_5gc = -1; /* RAN_AreaCode */ +static int hf_nr_rrc_cellIdentity_eutra_5gc = -1; /* CellIdentity_EUTRA_5GC */ +static int hf_nr_rrc_PLMN_IdentityList_EUTRA_5GC_item = -1; /* PLMN_Identity_EUTRA_5GC */ +static int hf_nr_rrc_plmn_Identity_EUTRA_5GC = -1; /* PLMN_Identity */ +static int hf_nr_rrc_plmn_index = -1; /* INTEGER_1_maxPLMN */ +static int hf_nr_rrc_cellIdentity_EUTRA = -1; /* BIT_STRING_SIZE_28 */ +static int hf_nr_rrc_cellId_index = -1; /* INTEGER_1_maxPLMN */ +static int hf_nr_rrc_plmn_IdentityList_eutra_epc = -1; /* PLMN_IdentityList_EUTRA_EPC */ +static int hf_nr_rrc_trackingAreaCode_eutra_epc = -1; /* BIT_STRING_SIZE_16 */ +static int hf_nr_rrc_cellIdentity_eutra_epc = -1; /* BIT_STRING_SIZE_28 */ +static int hf_nr_rrc_PLMN_IdentityList_EUTRA_EPC_item = -1; /* PLMN_Identity */ static int hf_nr_rrc_cellGroupId = -1; /* CellGroupId */ static int hf_nr_rrc_rlc_BearerToAddModList = -1; /* SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_BearerConfig */ static int hf_nr_rrc_rlc_BearerToAddModList_item = -1; /* RLC_BearerConfig */ @@ -472,9 +919,10 @@ static int hf_nr_rrc_sCellToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofSCel 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_reportUplinkTxDirectCurrent_v1530 = -1; /* T_reportUplinkTxDirectCurrent_v1530 */ 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_15 = -1; /* RLF_TimersAndConstants */ +static int hf_nr_rrc_setup_16 = -1; /* RLF_TimersAndConstants */ static int hf_nr_rrc_rlmInSyncOutOfSyncThreshold = -1; /* T_rlmInSyncOutOfSyncThreshold */ static int hf_nr_rrc_spCellConfigDedicated = -1; /* ServingCellConfig */ static int hf_nr_rrc_spCellConfigCommon = -1; /* ServingCellConfigCommon */ @@ -482,12 +930,15 @@ 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; /* 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_supplementaryUplink = -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; /* ServingCellConfig */ +static int hf_nr_rrc_plmn_IdentityInfoList = -1; /* PLMN_IdentityInfoList */ +static int hf_nr_rrc_frequencyBandList_01 = -1; /* MultiFrequencyBandListNR */ +static int hf_nr_rrc_noSIB1 = -1; /* T_noSIB1 */ static int hf_nr_rrc_codebookType = -1; /* T_codebookType */ -static int hf_nr_rrc_type1 = -1; /* T_type1 */ +static int hf_nr_rrc_type1_01 = -1; /* T_type1_01 */ 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 */ @@ -551,7 +1002,7 @@ 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_16 = -1; /* CG_UCI_OnPUSCH */ +static int hf_nr_rrc_setup_17 = -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 */ @@ -576,6 +1027,9 @@ static int hf_nr_rrc_pathlossReferenceIndex = -1; /* INTEGER_0_maxNrofPUSCH_Pat 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_connEstFailCount = -1; /* T_connEstFailCount */ +static int hf_nr_rrc_connEstFailOffsetValidity = -1; /* T_connEstFailOffsetValidity */ +static int hf_nr_rrc_connEstFailOffset = -1; /* INTEGER_0_15 */ 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 */ @@ -608,8 +1062,8 @@ static int hf_nr_rrc_resourceSet = -1; /* INTEGER_1_maxNrofNZP_CSI_RS 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_csi_IM_ResourcesForInterference = -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_maxNrofPhysicalResourceBlocksPlus1 */ static int hf_nr_rrc_csi_IM_ResourceId = -1; /* CSI_IM_ResourceId */ @@ -655,13 +1109,13 @@ static int hf_nr_rrc_csi_ReportConfigToReleaseList = -1; /* SEQUENCE_SIZE_1_max 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_17 = -1; /* CSI_AperiodicTriggerStateList */ +static int hf_nr_rrc_setup_18 = -1; /* CSI_AperiodicTriggerStateList */ static int hf_nr_rrc_semiPersistentOnPUSCH_TriggerStateList = -1; /* T_semiPersistentOnPUSCH_TriggerStateList */ -static int hf_nr_rrc_setup_18 = -1; /* CSI_SemiPersistentOnPUSCH_TriggerStateList */ +static int hf_nr_rrc_setup_19 = -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_csi_IM_ResourcesForInterference_01 = -1; /* CSI_ResourceConfigId */ +static int hf_nr_rrc_nzp_CSI_RS_ResourcesForInterference_01 = -1; /* CSI_ResourceConfigId */ static int hf_nr_rrc_reportConfigType = -1; /* T_reportConfigType */ static int hf_nr_rrc_periodic = -1; /* T_periodic */ static int hf_nr_rrc_reportSlotConfig = -1; /* CSI_ReportPeriodicityAndOffset */ @@ -705,6 +1159,7 @@ 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_subbands19_v1530 = -1; /* BIT_STRING_SIZE_19 */ 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 */ @@ -717,6 +1172,8 @@ 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_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_semiPersistentOnPUSCH_v1530 = -1; /* T_semiPersistentOnPUSCH_v1530 */ +static int hf_nr_rrc_reportSlotConfig_v1530 = -1; /* T_reportSlotConfig_v1530 */ 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 */ @@ -773,6 +1230,7 @@ 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_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_refServCellIndex_v1530 = -1; /* ServCellIndex */ 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 */ @@ -805,7 +1263,7 @@ static int hf_nr_rrc_density_01 = -1; /* T_density_01 */ 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_spare_02 = -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 */ @@ -817,19 +1275,48 @@ 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_19 = -1; /* PTRS_DownlinkConfig */ +static int hf_nr_rrc_setup_20 = -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_20 = -1; /* PTRS_UplinkConfig */ +static int hf_nr_rrc_setup_21 = -1; /* PTRS_UplinkConfig */ static int hf_nr_rrc_maxLength_01 = -1; /* T_maxLength_01 */ static int hf_nr_rrc_transformPrecodingDisabled = -1; /* T_transformPrecodingDisabled */ static int hf_nr_rrc_transformPrecodingEnabled = -1; /* T_transformPrecodingEnabled */ 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_sequenceGroupHopping = -1; /* T_sequenceGroupHopping */ +static int hf_nr_rrc_sequenceHopping = -1; /* T_sequenceHopping */ static int hf_nr_rrc_frequencyInfoDL = -1; /* FrequencyInfoDL */ static int hf_nr_rrc_initialDownlinkBWP = -1; /* BWP_DownlinkCommon */ +static int hf_nr_rrc_frequencyInfoDL_01 = -1; /* FrequencyInfoDL_SIB */ +static int hf_nr_rrc_bcch_Config = -1; /* BCCH_Config */ +static int hf_nr_rrc_pcch_Config = -1; /* PCCH_Config */ +static int hf_nr_rrc_modificationPeriodCoeff = -1; /* T_modificationPeriodCoeff */ +static int hf_nr_rrc_defaultPagingCycle = -1; /* PagingCycle */ +static int hf_nr_rrc_nAndPagingFrameOffset = -1; /* T_nAndPagingFrameOffset */ +static int hf_nr_rrc_oneT = -1; /* NULL */ +static int hf_nr_rrc_halfT = -1; /* INTEGER_0_1 */ +static int hf_nr_rrc_quarterT = -1; /* INTEGER_0_3 */ +static int hf_nr_rrc_oneEighthT = -1; /* INTEGER_0_7 */ +static int hf_nr_rrc_oneSixteenthT = -1; /* INTEGER_0_15 */ +static int hf_nr_rrc_ns = -1; /* T_ns */ +static int hf_nr_rrc_firstPDCCH_MonitoringOccasionOfPO = -1; /* T_firstPDCCH_MonitoringOccasionOfPO */ +static int hf_nr_rrc_sCS15KHZoneT = -1; /* T_sCS15KHZoneT */ +static int hf_nr_rrc_sCS15KHZoneT_item = -1; /* INTEGER_0_139 */ +static int hf_nr_rrc_sCS30KHZoneT_SCS15KHZhalfT = -1; /* T_sCS30KHZoneT_SCS15KHZhalfT */ +static int hf_nr_rrc_sCS30KHZoneT_SCS15KHZhalfT_item = -1; /* INTEGER_0_279 */ +static int hf_nr_rrc_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT = -1; /* T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT */ +static int hf_nr_rrc_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_item = -1; /* INTEGER_0_559 */ +static int hf_nr_rrc_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT = -1; /* T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT */ +static int hf_nr_rrc_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_item = -1; /* INTEGER_0_1119 */ +static int hf_nr_rrc_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT = -1; /* T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT */ +static int hf_nr_rrc_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_item = -1; /* INTEGER_0_2239 */ +static int hf_nr_rrc_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT = -1; /* T_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT */ +static int hf_nr_rrc_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_item = -1; /* INTEGER_0_4479 */ +static int hf_nr_rrc_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT = -1; /* T_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT */ +static int hf_nr_rrc_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_item = -1; /* INTEGER_0_8959 */ +static int hf_nr_rrc_sCS120KHZoneSixteenthT = -1; /* T_sCS120KHZoneSixteenthT */ +static int hf_nr_rrc_sCS120KHZoneSixteenthT_item = -1; /* INTEGER_0_17919 */ 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 */ @@ -837,23 +1324,29 @@ static int hf_nr_rrc_int_ConfigurationPerServingCell = -1; /* SEQUENCE_SIZE_1_m 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_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_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_absoluteFrequencySSB = -1; /* ARFCN_ValueNR */ -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_offsetToPointA = -1; /* INTEGER_0_2199 */ 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_frequencyShift7p5khz_01 = -1; /* T_frequencyShift7p5khz_01 */ +static int hf_nr_rrc_eutra_RSTD = -1; /* EUTRA_RSTD_InfoList */ +static int hf_nr_rrc_EUTRA_RSTD_InfoList_item = -1; /* EUTRA_RSTD_Info */ +static int hf_nr_rrc_measPRS_Offset = -1; /* INTEGER_0_39 */ 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 */ @@ -868,42 +1361,18 @@ 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_bitRateQueryProhibitTimer = -1; /* T_bitRateQueryProhibitTimer */ static int hf_nr_rrc_drx_Config = -1; /* T_drx_Config */ -static int hf_nr_rrc_setup_21 = -1; /* DRX_Config */ +static int hf_nr_rrc_setup_22 = -1; /* DRX_Config */ static int hf_nr_rrc_schedulingRequestConfig = -1; /* SchedulingRequestConfig */ 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_22 = -1; /* PHR_Config */ +static int hf_nr_rrc_setup_23 = -1; /* PHR_Config */ static int hf_nr_rrc_skipUplinkTxDynamic = -1; /* BOOLEAN */ -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_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 */ -static int hf_nr_rrc_multiplePHR = -1; /* BOOLEAN */ -static int hf_nr_rrc_phr_Type2SpCell = -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; /* 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 */ -static int hf_nr_rrc_tag_ToAddModList_item = -1; /* TAG */ -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_logicalChannelSR_DelayTimer = -1; /* T_logicalChannelSR_DelayTimer */ +static int hf_nr_rrc_csi_Mask_v1530 = -1; /* BOOLEAN */ +static int hf_nr_rrc_dataInactivityTimer_v1530 = -1; /* T_dataInactivityTimer_v1530 */ +static int hf_nr_rrc_setup_24 = -1; /* DataInactivityTimer */ static int hf_nr_rrc_measObjectToRemoveList = -1; /* MeasObjectToRemoveList */ static int hf_nr_rrc_measObjectToAddModList = -1; /* MeasObjectToAddModList */ static int hf_nr_rrc_reportConfigToRemoveList = -1; /* ReportConfigToRemoveList */ @@ -920,25 +1389,39 @@ 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_gapFR1 = -1; /* T_gapFR1 */ +static int hf_nr_rrc_gapUE = -1; /* T_gapUE */ 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_gapSharingFR2 = -1; /* T_gapSharingFR2 */ -static int hf_nr_rrc_setup_23 = -1; /* MeasGapSharingScheme */ +static int hf_nr_rrc_setup_25 = -1; /* MeasGapSharingScheme */ +static int hf_nr_rrc_gapSharingFR1 = -1; /* T_gapSharingFR1 */ +static int hf_nr_rrc_gapSharingUE = -1; /* T_gapSharingUE */ 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_cellsToRemoveListEUTRAN = -1; /* EUTRA_CellIndexList */ +static int hf_nr_rrc_cellsToAddModListEUTRAN = -1; /* SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_Cell */ +static int hf_nr_rrc_cellsToAddModListEUTRAN_item = -1; /* EUTRA_Cell */ +static int hf_nr_rrc_blackCellsToRemoveListEUTRAN = -1; /* EUTRA_CellIndexList */ +static int hf_nr_rrc_blackCellsToAddModListEUTRAN = -1; /* SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_BlackCell */ +static int hf_nr_rrc_blackCellsToAddModListEUTRAN_item = -1; /* EUTRA_BlackCell */ +static int hf_nr_rrc_eutra_PresenceAntennaPort1 = -1; /* EUTRA_PresenceAntennaPort1 */ +static int hf_nr_rrc_eutra_Q_OffsetRange = -1; /* EUTRA_Q_OffsetRange */ +static int hf_nr_rrc_widebandRSRQ_Meas = -1; /* BOOLEAN */ +static int hf_nr_rrc_EUTRA_CellIndexList_item = -1; /* EUTRA_CellIndex */ +static int hf_nr_rrc_cellIndexEUTRA = -1; /* EUTRA_CellIndex */ +static int hf_nr_rrc_cellIndividualOffset = -1; /* EUTRA_Q_OffsetRange */ +static int hf_nr_rrc_physCellIdRange = -1; /* EUTRA_PhysCellIdRange */ static int hf_nr_rrc_ssbFrequency = -1; /* ARFCN_ValueNR */ -static int hf_nr_rrc_ssbSubcarrierSpacing = -1; /* SubcarrierSpacing */ static int hf_nr_rrc_smtc1 = -1; /* SSB_MTC */ static int hf_nr_rrc_smtc2 = -1; /* SSB_MTC2 */ 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_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_offsetMO = -1; /* Q_OffsetRangeList */ @@ -950,34 +1433,36 @@ static int hf_nr_rrc_blackCellsToAddModList_item = -1; /* PCI_RangeElement */ static int hf_nr_rrc_whiteCellsToRemoveList = -1; /* PCI_RangeIndexList */ static int hf_nr_rrc_whiteCellsToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement */ static int hf_nr_rrc_whiteCellsToAddModList_item = -1; /* PCI_RangeElement */ +static int hf_nr_rrc_freqBandIndicatorNR_v1530 = -1; /* FreqBandIndicatorNR */ +static int hf_nr_rrc_measCycleSCell_v1530 = -1; /* T_measCycleSCell_v1530 */ 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_ss_RSSI_Measurement = -1; /* SS_RSSI_Measurement */ +static int hf_nr_rrc_setup_26 = -1; /* CSI_RS_ResourceConfigMobility */ +static int hf_nr_rrc_ssb_ToMeasure_01 = -1; /* T_ssb_ToMeasure */ +static int hf_nr_rrc_setup_27 = -1; /* SSB_ToMeasure */ 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_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_physCellId = -1; /* PhysCellId */ -static int hf_nr_rrc_cellIndividualOffset = -1; /* Q_OffsetRangeList */ +static int hf_nr_rrc_cellIndividualOffset_01 = -1; /* Q_OffsetRangeList */ 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_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_measResultServingMOList = -1; /* MeasResultServMOList */ 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_MeasResultServMOList_item = -1; /* MeasResultServMO */ static int hf_nr_rrc_servCellId = -1; /* ServCellIndex */ static int hf_nr_rrc_measResultServingCell = -1; /* MeasResultNR */ @@ -990,9 +1475,26 @@ static int hf_nr_rrc_resultsCSI_RS_Cell = -1; /* MeasQuantityResults */ static int hf_nr_rrc_rsIndexResults = -1; /* T_rsIndexResults */ 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_cgi_Info = -1; /* CGI_Info */ +static int hf_nr_rrc_MeasResultListEUTRA_item = -1; /* MeasResultEUTRA */ +static int hf_nr_rrc_measResult_01 = -1; /* MeasQuantityResultsEUTRA */ +static int hf_nr_rrc_cgi_Info_01 = -1; /* T_cgi_Info */ +static int hf_nr_rrc_cgi_info_EPC = -1; /* T_cgi_info_EPC */ +static int hf_nr_rrc_cgi_info_EPC_legacy = -1; /* CellAccessRelatedInfo_EUTRA_EPC */ +static int hf_nr_rrc_cgi_info_EPC_list = -1; /* SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC */ +static int hf_nr_rrc_cgi_info_EPC_list_item = -1; /* CellAccessRelatedInfo_EUTRA_EPC */ +static int hf_nr_rrc_cgi_info_5GC = -1; /* SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC */ +static int hf_nr_rrc_cgi_info_5GC_item = -1; /* CellAccessRelatedInfo_EUTRA_5GC */ +static int hf_nr_rrc_freqBandIndicator = -1; /* FreqBandIndicatorEUTRA */ +static int hf_nr_rrc_multiBandInfoList = -1; /* MultiBandInfoListEUTRA */ +static int hf_nr_rrc_freqBandIndicatorPriority = -1; /* T_freqBandIndicatorPriority */ +static int hf_nr_rrc_MultiBandInfoListEUTRA_item = -1; /* FreqBandIndicatorEUTRA */ 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_rsrp_01 = -1; /* RSRP_RangeEUTRA */ +static int hf_nr_rrc_rsrq_01 = -1; /* RSRQ_RangeEUTRA */ +static int hf_nr_rrc_sinr_01 = -1; /* SINR_RangeEUTRA */ 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 */ @@ -1000,10 +1502,10 @@ static int hf_nr_rrc_csi_RS_Results = -1; /* MeasQuantityResults */ static int hf_nr_rrc_measResultPerMOList = -1; /* MeasResultList2NR */ static int hf_nr_rrc_MeasResultList2NR_item = -1; /* MeasResult2NR */ static int hf_nr_rrc_measResultNeighCellListNR = -1; /* MeasResultListNR */ -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_t_Evaluation = -1; /* T_t_Evaluation */ +static int hf_nr_rrc_t_HystNormal = -1; /* T_t_HystNormal */ +static int hf_nr_rrc_n_CellChangeMedium = -1; /* INTEGER_1_16 */ +static int hf_nr_rrc_n_CellChangeHigh = -1; /* INTEGER_1_16 */ static int hf_nr_rrc_MultiFrequencyBandListNR_item = -1; /* FreqBandIndicatorNR */ static int hf_nr_rrc_nzp_CSI_RS_ResourceId = -1; /* NZP_CSI_RS_ResourceId */ static int hf_nr_rrc_resourceMapping = -1; /* CSI_RS_ResourceMapping */ @@ -1032,24 +1534,24 @@ static int hf_nr_rrc_searchSpacesToAddModList_item = -1; /* SearchSpace */ 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_downlinkPreemption = -1; /* T_downlinkPreemption */ -static int hf_nr_rrc_setup_26 = -1; /* DownlinkPreemption */ +static int hf_nr_rrc_setup_28 = -1; /* DownlinkPreemption */ static int hf_nr_rrc_tpc_PUSCH = -1; /* T_tpc_PUSCH */ -static int hf_nr_rrc_setup_27 = -1; /* PUSCH_TPC_CommandConfig */ +static int hf_nr_rrc_setup_29 = -1; /* PUSCH_TPC_CommandConfig */ static int hf_nr_rrc_tpc_PUCCH = -1; /* T_tpc_PUCCH */ -static int hf_nr_rrc_setup_28 = -1; /* PUCCH_TPC_CommandConfig */ +static int hf_nr_rrc_setup_30 = -1; /* PUCCH_TPC_CommandConfig */ static int hf_nr_rrc_tpc_SRS = -1; /* T_tpc_SRS */ -static int hf_nr_rrc_setup_29 = -1; /* SRS_TPC_CommandConfig */ -static int hf_nr_rrc_controlResourceSetZero = -1; /* INTEGER_0_15 */ +static int hf_nr_rrc_setup_31 = -1; /* SRS_TPC_CommandConfig */ +static int hf_nr_rrc_controlResourceSetZero = -1; /* ControlResourceSetZero */ static int hf_nr_rrc_commonControlResourceSet = -1; /* ControlResourceSet */ -static int hf_nr_rrc_searchSpaceZero = -1; /* INTEGER_0_15 */ -static int hf_nr_rrc_commonSearchSpace = -1; /* SEQUENCE_SIZE_1_4_OF_SearchSpace */ -static int hf_nr_rrc_commonSearchSpace_item = -1; /* SearchSpace */ +static int hf_nr_rrc_searchSpaceZero = -1; /* SearchSpaceZero */ +static int hf_nr_rrc_commonSearchSpaceList = -1; /* SEQUENCE_SIZE_1_4_OF_SearchSpace */ +static int hf_nr_rrc_commonSearchSpaceList_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_SearchSpace = -1; /* SearchSpaceId */ static int hf_nr_rrc_slotFormatIndicator = -1; /* T_slotFormatIndicator */ -static int hf_nr_rrc_setup_30 = -1; /* SlotFormatIndicator */ +static int hf_nr_rrc_setup_32 = -1; /* SlotFormatIndicator */ 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_SizeUL = -1; /* T_pdcp_SN_SizeUL */ @@ -1082,9 +1584,10 @@ static int hf_nr_rrc_logicalChannel = -1; /* LogicalChannelIdentity */ static int hf_nr_rrc_ul_DataSplitThreshold = -1; /* UL_DataSplitThreshold */ static int hf_nr_rrc_pdcp_Duplication = -1; /* BOOLEAN */ static int hf_nr_rrc_t_Reordering = -1; /* T_t_Reordering */ +static int hf_nr_rrc_cipheringDisabled = -1; /* T_cipheringDisabled */ static int hf_nr_rrc_dataScramblingIdentityPDSCH = -1; /* INTEGER_0_1023 */ static int hf_nr_rrc_dmrs_DownlinkForPDSCH_MappingTypeA = -1; /* T_dmrs_DownlinkForPDSCH_MappingTypeA */ -static int hf_nr_rrc_setup_31 = -1; /* DMRS_DownlinkConfig */ +static int hf_nr_rrc_setup_33 = -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 */ @@ -1093,7 +1596,7 @@ 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_TimeDomainAllocationList = -1; /* T_pdsch_TimeDomainAllocationList */ -static int hf_nr_rrc_setup_32 = -1; /* PDSCH_TimeDomainResourceAllocationList */ +static int hf_nr_rrc_setup_34 = -1; /* PDSCH_TimeDomainResourceAllocationList */ 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 */ @@ -1123,13 +1626,13 @@ static int hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToAddModList_item = -1; /* ZP_CSI static int hf_nr_rrc_sp_ZP_CSI_RS_ResourceSetsToReleaseList = -1; /* SEQUENCE_SIZE_1_maxNrofZP_CSI_RS_ResourceSets_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_p_ZP_CSI_RS_ResourceSet = -1; /* T_p_ZP_CSI_RS_ResourceSet */ -static int hf_nr_rrc_setup_33 = -1; /* ZP_CSI_RS_ResourceSet */ +static int hf_nr_rrc_setup_35 = -1; /* ZP_CSI_RS_ResourceSet */ static int hf_nr_rrc_RateMatchPatternGroup_item = -1; /* RateMatchPatternGroup_item */ static int hf_nr_rrc_cellLevel = -1; /* RateMatchPatternId */ static int hf_nr_rrc_bwpLevel = -1; /* RateMatchPatternId */ static int hf_nr_rrc_pdsch_TimeDomainAllocationList_01 = -1; /* PDSCH_TimeDomainResourceAllocationList */ static int hf_nr_rrc_codeBlockGroupTransmission = -1; /* T_codeBlockGroupTransmission */ -static int hf_nr_rrc_setup_34 = -1; /* PDSCH_CodeBlockGroupTransmission */ +static int hf_nr_rrc_setup_36 = -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 */ @@ -1139,30 +1642,47 @@ static int hf_nr_rrc_PDSCH_TimeDomainResourceAllocationList_item = -1; /* PDSCH static int hf_nr_rrc_k0 = -1; /* INTEGER_0_32 */ static int hf_nr_rrc_mappingType = -1; /* T_mappingType */ static int hf_nr_rrc_startSymbolAndLength = -1; /* INTEGER_0_127 */ +static int hf_nr_rrc_phr_PeriodicTimer = -1; /* T_phr_PeriodicTimer */ +static int hf_nr_rrc_phr_ProhibitTimer = -1; /* T_phr_ProhibitTimer */ +static int hf_nr_rrc_phr_Tx_PowerFactorChange = -1; /* T_phr_Tx_PowerFactorChange */ +static int hf_nr_rrc_multiplePHR = -1; /* BOOLEAN */ +static int hf_nr_rrc_dummy = -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_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_p_NR_FR1 = -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_sp_CSI_RNTI = -1; /* RNTI_Value */ static int hf_nr_rrc_cs_RNTI = -1; /* T_cs_RNTI */ -static int hf_nr_rrc_setup_35 = -1; /* RNTI_Value */ +static int hf_nr_rrc_setup_37 = -1; /* RNTI_Value */ +static int hf_nr_rrc_mcs_C_RNTI = -1; /* RNTI_Value */ +static int hf_nr_rrc_p_UE_FR1 = -1; /* P_Max */ +static int hf_nr_rrc_mcc = -1; /* MCC */ +static int hf_nr_rrc_mnc = -1; /* MNC */ +static int hf_nr_rrc_MCC_item = -1; /* MCC_MNC_Digit */ +static int hf_nr_rrc_MNC_item = -1; /* MCC_MNC_Digit */ +static int hf_nr_rrc_PLMN_IdentityInfoList_item = -1; /* PLMN_IdentityInfo */ +static int hf_nr_rrc_plmn_IdentityList_01 = -1; /* SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_Identity */ +static int hf_nr_rrc_plmn_IdentityList_item = -1; /* PLMN_Identity */ +static int hf_nr_rrc_ranac = -1; /* RAN_AreaCode */ +static int hf_nr_rrc_cellReservedForOperatorUse = -1; /* T_cellReservedForOperatorUse */ 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_Ratio = -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_transformPrecoderDisabled = -1; /* T_transformPrecoderDisabled */ 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_transformPrecoderEnabled = -1; /* T_transformPrecoderEnabled */ 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_timeDensityTransformPrecoding = -1; /* T_timeDensityTransformPrecoding */ @@ -1175,7 +1695,7 @@ 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_36 = -1; /* PUCCH_FormatConfig */ +static int hf_nr_rrc_setup_38 = -1; /* PUCCH_FormatConfig */ static int hf_nr_rrc_format2 = -1; /* T_format2 */ static int hf_nr_rrc_format3 = -1; /* T_format3 */ static int hf_nr_rrc_format4 = -1; /* T_format4 */ @@ -1198,15 +1718,6 @@ static int hf_nr_rrc_maxCodeRate = -1; /* PUCCH_MaxCodeRate */ static int hf_nr_rrc_nrofSlots = -1; /* T_nrofSlots */ static int hf_nr_rrc_pi2BPSK = -1; /* T_pi2BPSK */ 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; /* T_srs */ -static int hf_nr_rrc_resource = -1; /* SRS_ResourceId */ -static int hf_nr_rrc_uplinkBWP = -1; /* BWP_Id */ -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_resourceList = -1; /* SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId */ static int hf_nr_rrc_resourceList_item = -1; /* PUCCH_ResourceId */ @@ -1232,7 +1743,7 @@ 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; /* INTEGER_0_15 */ static int hf_nr_rrc_pucch_GroupHopping = -1; /* T_pucch_GroupHopping */ -static int hf_nr_rrc_hoppingId = -1; /* INTEGER_0_1024 */ +static int hf_nr_rrc_hoppingId = -1; /* INTEGER_0_1023 */ 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 */ @@ -1244,14 +1755,23 @@ 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_Id = -1; /* P0_PUCCH_Id */ static int hf_nr_rrc_p0_PUCCH_Value = -1; /* INTEGER_M16_15 */ +static int hf_nr_rrc_pucch_PathlossReferenceRS_Id = -1; /* PUCCH_PathlossReferenceRS_Id */ +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_pucch_SpatialRelationInfoId = -1; /* PUCCH_SpatialRelationInfoId */ static int hf_nr_rrc_referenceSignal_01 = -1; /* T_referenceSignal_01 */ +static int hf_nr_rrc_srs = -1; /* T_srs */ +static int hf_nr_rrc_resource = -1; /* SRS_ResourceId */ +static int hf_nr_rrc_uplinkBWP = -1; /* BWP_Id */ +static int hf_nr_rrc_closedLoopIndex = -1; /* T_closedLoopIndex */ 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_1023 */ 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_37 = -1; /* DMRS_UplinkConfig */ +static int hf_nr_rrc_setup_39 = -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 */ @@ -1259,7 +1779,7 @@ static int hf_nr_rrc_frequencyHoppingOffsetLists = -1; /* T_frequencyHoppingOff 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_TimeDomainAllocationList = -1; /* T_pusch_TimeDomainAllocationList */ -static int hf_nr_rrc_setup_38 = -1; /* PUSCH_TimeDomainResourceAllocationList */ +static int hf_nr_rrc_setup_40 = -1; /* PUSCH_TimeDomainResourceAllocationList */ 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 */ @@ -1268,7 +1788,7 @@ 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_39 = -1; /* UCI_OnPUSCH */ +static int hf_nr_rrc_setup_41 = -1; /* UCI_OnPUSCH */ static int hf_nr_rrc_tp_pi2BPSK = -1; /* T_tp_pi2BPSK */ static int hf_nr_rrc_betaOffsets = -1; /* T_betaOffsets */ static int hf_nr_rrc_dynamic_01 = -1; /* SEQUENCE_SIZE_4_OF_BetaOffsets */ @@ -1309,7 +1829,7 @@ 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_40 = -1; /* PUSCH_CodeBlockGroupTransmission */ +static int hf_nr_rrc_setup_42 = -1; /* PUSCH_CodeBlockGroupTransmission */ 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 */ @@ -1321,6 +1841,7 @@ 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; /* SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR */ static int hf_nr_rrc_quantityConfigNR_List_item = -1; /* QuantityConfigNR */ +static int hf_nr_rrc_quantityConfigEUTRA = -1; /* FilterConfig */ 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 */ @@ -1350,15 +1871,7 @@ 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_msg1_SubcarrierSpacing = -1; /* SubcarrierSpacing */ static int hf_nr_rrc_restrictedSetConfig = -1; /* T_restrictedSetConfig */ -static int hf_nr_rrc_msg3_transformPrecoding = -1; /* T_msg3_transformPrecoding */ -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_M202_M60 */ -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_msg3_transformPrecoder = -1; /* T_msg3_transformPrecoder */ static int hf_nr_rrc_cfra = -1; /* CFRA */ static int hf_nr_rrc_occasions = -1; /* T_occasions */ static int hf_nr_rrc_ssb_perRACH_Occasion_01 = -1; /* T_ssb_perRACH_Occasion_01 */ @@ -1370,8 +1883,17 @@ 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_rsrp_ThresholdCSI_RS = -1; /* RSRP_Range */ +static int hf_nr_rrc_totalNumberOfRA_Preambles_v1530 = -1; /* INTEGER_1_63 */ static int hf_nr_rrc_csi_RS_02 = -1; /* CSI_RS_Index */ static int hf_nr_rrc_ra_OccasionList_01 = -1; /* T_ra_OccasionList_01 */ +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_M202_M60 */ +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_powerRampingStepHighPriority = -1; /* T_powerRampingStepHighPriority */ static int hf_nr_rrc_scalingFactorBI = -1; /* T_scalingFactorBI */ static int hf_nr_rrc_srb_ToAddModList = -1; /* SRB_ToAddModList */ @@ -1388,11 +1910,9 @@ 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_failureDetectionResourcesToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofFailureDetectionResources_OF_RadioLinkMonitoringRS */ static int hf_nr_rrc_failureDetectionResourcesToAddModList_item = -1; /* RadioLinkMonitoringRS */ @@ -1419,21 +1939,40 @@ 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_dummy_01 = -1; /* T_dummy */ 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_periodical = -1; /* PeriodicalReportConfigInterRAT */ +static int hf_nr_rrc_eventTriggered = -1; /* EventTriggerConfigInterRAT */ +static int hf_nr_rrc_reportCGI = -1; /* ReportCGI_EUTRA */ +static int hf_nr_rrc_cellForWhichToReportCGI = -1; /* EUTRA_PhysCellId */ static int hf_nr_rrc_eventId = -1; /* T_eventId */ -static int hf_nr_rrc_eventA1 = -1; /* T_eventA1 */ -static int hf_nr_rrc_a1_Threshold = -1; /* MeasTriggerQuantity */ +static int hf_nr_rrc_eventB1 = -1; /* T_eventB1 */ +static int hf_nr_rrc_b1_ThresholdEUTRA = -1; /* MeasTriggerQuantityEUTRA */ static int hf_nr_rrc_reportOnLeave = -1; /* BOOLEAN */ static int hf_nr_rrc_hysteresis = -1; /* Hysteresis */ static int hf_nr_rrc_timeToTrigger = -1; /* TimeToTrigger */ +static int hf_nr_rrc_eventB2 = -1; /* T_eventB2 */ +static int hf_nr_rrc_b2_Threshold1 = -1; /* MeasTriggerQuantity */ +static int hf_nr_rrc_b2_Threshold2EUTRA = -1; /* MeasTriggerQuantityEUTRA */ +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_reportQuantity_01 = -1; /* MeasReportQuantity */ +static int hf_nr_rrc_maxReportCells = -1; /* INTEGER_1_maxCellReport */ +static int hf_nr_rrc_reportAmount_01 = -1; /* T_reportAmount_01 */ +static int hf_nr_rrc_reportType_01 = -1; /* T_reportType_01 */ +static int hf_nr_rrc_periodical_01 = -1; /* PeriodicalReportConfig */ +static int hf_nr_rrc_eventTriggered_01 = -1; /* EventTriggerConfig */ +static int hf_nr_rrc_reportCGI_01 = -1; /* ReportCGI */ +static int hf_nr_rrc_cellForWhichToReportCGI_01 = -1; /* PhysCellId */ +static int hf_nr_rrc_eventId_01 = -1; /* T_eventId_01 */ +static int hf_nr_rrc_eventA1 = -1; /* T_eventA1 */ +static int hf_nr_rrc_a1_Threshold = -1; /* MeasTriggerQuantity */ static int hf_nr_rrc_eventA2 = -1; /* T_eventA2 */ static int hf_nr_rrc_a2_Threshold = -1; /* MeasTriggerQuantity */ static int hf_nr_rrc_eventA3 = -1; /* T_eventA3 */ @@ -1446,26 +1985,24 @@ 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; /* 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_reportAmount_02 = -1; /* T_reportAmount_02 */ 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_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_reportAmount_03 = -1; /* T_reportAmount_03 */ 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_rsrp_02 = -1; /* INTEGER_M30_30 */ +static int hf_nr_rrc_rsrq_02 = -1; /* INTEGER_M30_30 */ +static int hf_nr_rrc_sinr_02 = -1; /* INTEGER_M30_30 */ +static int hf_nr_rrc_rsrp_03 = -1; /* BOOLEAN */ +static int hf_nr_rrc_rsrq_03 = -1; /* BOOLEAN */ +static int hf_nr_rrc_sinr_03 = -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_reportConfigInterRAT = -1; /* ReportConfigInterRAT */ static int hf_nr_rrc_logicalChannelIdentity = -1; /* LogicalChannelIdentity */ static int hf_nr_rrc_servedRadioBearer = -1; /* T_servedRadioBearer */ static int hf_nr_rrc_reestablishRLC = -1; /* T_reestablishRLC */ @@ -1490,6 +2027,7 @@ 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_t311_v1530 = -1; /* T_t311_v1530 */ 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 */ @@ -1517,6 +2055,7 @@ static int hf_nr_rrc_sl640 = -1; /* INTEGER_0_639 */ static int hf_nr_rrc_resource_01 = -1; /* PUCCH_ResourceId */ static int hf_nr_rrc_offsetToCarrier = -1; /* INTEGER_0_2199 */ static int hf_nr_rrc_carrierBandwidth = -1; /* INTEGER_1_maxNrofPhysicalResourceBlocks */ +static int hf_nr_rrc_txDirectCurrentLocation_v1530 = -1; /* INTEGER_0_4095 */ 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 */ @@ -1550,8 +2089,8 @@ 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_dummy1 = -1; /* T_dummy1 */ +static int hf_nr_rrc_dummy2 = -1; /* T_dummy2 */ 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 */ @@ -1566,15 +2105,16 @@ 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_supplementaryUplink_01 = -1; /* UplinkConfig */ static int hf_nr_rrc_pdcch_ServingCellConfig = -1; /* T_pdcch_ServingCellConfig */ -static int hf_nr_rrc_setup_41 = -1; /* PDCCH_ServingCellConfig */ +static int hf_nr_rrc_setup_43 = -1; /* PDCCH_ServingCellConfig */ static int hf_nr_rrc_pdsch_ServingCellConfig = -1; /* T_pdsch_ServingCellConfig */ -static int hf_nr_rrc_setup_42 = -1; /* PDSCH_ServingCellConfig */ +static int hf_nr_rrc_setup_44 = -1; /* PDSCH_ServingCellConfig */ static int hf_nr_rrc_csi_MeasConfig = -1; /* T_csi_MeasConfig */ -static int hf_nr_rrc_setup_43 = -1; /* CSI_MeasConfig */ +static int hf_nr_rrc_setup_45 = -1; /* CSI_MeasConfig */ static int hf_nr_rrc_sCellDeactivationTimer = -1; /* T_sCellDeactivationTimer */ static int hf_nr_rrc_crossCarrierSchedulingConfig = -1; /* CrossCarrierSchedulingConfig */ +static int hf_nr_rrc_tag_Id = -1; /* TAG_Id */ 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_servingCellMO = -1; /* MeasObjectId */ @@ -1585,18 +2125,52 @@ static int hf_nr_rrc_uplinkBWP_ToAddModList = -1; /* SEQUENCE_SIZE_1_maxNrofBWP 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_44 = -1; /* PUSCH_ServingCellConfig */ +static int hf_nr_rrc_setup_46 = -1; /* PUSCH_ServingCellConfig */ static int hf_nr_rrc_carrierSwitching = -1; /* T_carrierSwitching */ -static int hf_nr_rrc_setup_45 = -1; /* SRS_CarrierSwitching */ +static int hf_nr_rrc_setup_47 = -1; /* SRS_CarrierSwitching */ static int hf_nr_rrc_downlinkConfigCommon = -1; /* DownlinkConfigCommon */ +static int hf_nr_rrc_uplinkConfigCommon = -1; /* UplinkConfigCommon */ static int hf_nr_rrc_supplementaryUplinkConfig = -1; /* UplinkConfigCommon */ static int hf_nr_rrc_n_TimingAdvanceOffset = -1; /* T_n_TimingAdvanceOffset */ -static int hf_nr_rrc_ssb_PositionsInBurst_01 = -1; /* T_ssb_PositionsInBurst_01 */ +static int hf_nr_rrc_ssb_PositionsInBurst = -1; /* T_ssb_PositionsInBurst */ +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_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_46 = -1; /* RateMatchPatternLTE_CRS */ +static int hf_nr_rrc_setup_48 = -1; /* RateMatchPatternLTE_CRS */ static int hf_nr_rrc_tdd_UL_DL_ConfigurationCommon = -1; /* TDD_UL_DL_ConfigCommon */ +static int hf_nr_rrc_ss_PBCH_BlockPower = -1; /* INTEGER_M60_50 */ +static int hf_nr_rrc_downlinkConfigCommon_01 = -1; /* DownlinkConfigCommonSIB */ +static int hf_nr_rrc_uplinkConfigCommon_01 = -1; /* UplinkConfigCommonSIB */ +static int hf_nr_rrc_supplementaryUplink_02 = -1; /* UplinkConfigCommonSIB */ +static int hf_nr_rrc_n_TimingAdvanceOffset_01 = -1; /* T_n_TimingAdvanceOffset_01 */ +static int hf_nr_rrc_ssb_PositionsInBurst_01 = -1; /* T_ssb_PositionsInBurst_01 */ +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_schedulingInfoList = -1; /* SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo */ +static int hf_nr_rrc_schedulingInfoList_item = -1; /* SchedulingInfo */ +static int hf_nr_rrc_si_WindowLength = -1; /* T_si_WindowLength */ +static int hf_nr_rrc_si_RequestConfig = -1; /* SI_RequestConfig */ +static int hf_nr_rrc_si_RequestConfigSUL = -1; /* SI_RequestConfig */ +static int hf_nr_rrc_systemInformationAreaID = -1; /* BIT_STRING_SIZE_24 */ +static int hf_nr_rrc_si_BroadcastStatus = -1; /* T_si_BroadcastStatus */ +static int hf_nr_rrc_si_Periodicity = -1; /* T_si_Periodicity */ +static int hf_nr_rrc_sib_MappingInfo = -1; /* SIB_Mapping */ +static int hf_nr_rrc_SIB_Mapping_item = -1; /* SIB_TypeInfo */ +static int hf_nr_rrc_type = -1; /* T_type */ +static int hf_nr_rrc_valueTag = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_areaScope = -1; /* T_areaScope */ +static int hf_nr_rrc_rach_OccasionsSI = -1; /* T_rach_OccasionsSI */ +static int hf_nr_rrc_rach_ConfigSI = -1; /* RACH_ConfigGeneric */ +static int hf_nr_rrc_ssb_perRACH_Occasion_02 = -1; /* T_ssb_perRACH_Occasion_02 */ +static int hf_nr_rrc_si_RequestPeriod = -1; /* T_si_RequestPeriod */ +static int hf_nr_rrc_si_RequestResources = -1; /* SEQUENCE_SIZE_1_maxSI_Message_OF_SI_RequestResources */ +static int hf_nr_rrc_si_RequestResources_item = -1; /* SI_RequestResources */ +static int hf_nr_rrc_ra_PreambleStartIndex = -1; /* INTEGER_0_63 */ +static int hf_nr_rrc_ra_AssociationPeriodIndex = -1; /* INTEGER_0_15 */ 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 */ @@ -1610,11 +2184,28 @@ static int hf_nr_rrc_slotFormatCombToAddModList = -1; /* SEQUENCE_SIZE_1_maxNro 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_sst = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_sst_SD = -1; /* BIT_STRING_SIZE_32 */ +static int hf_nr_rrc_sf_Medium_01 = -1; /* T_sf_Medium_01 */ +static int hf_nr_rrc_sf_High_01 = -1; /* T_sf_High_01 */ static int hf_nr_rrc_measurementSlots = -1; /* BIT_STRING_SIZE_1_80 */ static int hf_nr_rrc_endSymbol = -1; /* INTEGER_0_3 */ static int hf_nr_rrc_periodicity_01 = -1; /* T_periodicity_01 */ static int hf_nr_rrc_nrofHARQ_Processes_01 = -1; /* INTEGER_1_8 */ static int hf_nr_rrc_n1PUCCH_AN = -1; /* PUCCH_ResourceId */ +static int hf_nr_rrc_mcs_Table_03 = -1; /* T_mcs_Table_03 */ +static int hf_nr_rrc_srs_SwitchFromServCellIndex = -1; /* INTEGER_0_31 */ +static int hf_nr_rrc_srs_SwitchFromCarrier = -1; /* T_srs_SwitchFromCarrier */ +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_monitoringCells = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex */ +static int hf_nr_rrc_monitoringCells_item = -1; /* ServCellIndex */ +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_srs_ResourceSetToReleaseList = -1; /* SEQUENCE_SIZE_1_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_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet */ @@ -1631,6 +2222,8 @@ 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_1_maxNrofSRS_TriggerStates_1 */ static int hf_nr_rrc_slotOffset = -1; /* INTEGER_1_32 */ +static int hf_nr_rrc_aperiodicSRS_ResourceTriggerList_v1530 = -1; /* T_aperiodicSRS_ResourceTriggerList_v1530 */ +static int hf_nr_rrc_aperiodicSRS_ResourceTriggerList_v1530_item = -1; /* INTEGER_1_maxNrofSRS_TriggerStates_1 */ 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 */ @@ -1665,27 +2258,16 @@ 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_sequenceId = -1; /* INTEGER_0_1023 */ static int hf_nr_rrc_spatialRelationInfo = -1; /* SRS_SpatialRelationInfo */ static int hf_nr_rrc_referenceSignal_03 = -1; /* T_referenceSignal_03 */ static int hf_nr_rrc_srs_01 = -1; /* T_srs_01 */ static int hf_nr_rrc_resourceId = -1; /* SRS_ResourceId */ 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_srs_SwitchFromServCellIndex = -1; /* INTEGER_0_31 */ -static int hf_nr_rrc_srs_SwitchFromCarrier = -1; /* T_srs_SwitchFromCarrier */ -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_monitoringCells = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_ServCellIndex */ -static int hf_nr_rrc_monitoringCells_item = -1; /* ServCellIndex */ -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_startingBitOfFormat2_3 = -1; /* INTEGER_1_31 */ static int hf_nr_rrc_fieldTypeFormat2_3 = -1; /* INTEGER_0_1 */ +static int hf_nr_rrc_startingBitOfFormat2_3SUL_v1530 = -1; /* INTEGER_1_31 */ static int hf_nr_rrc_periodicityAndOffset_02 = -1; /* T_periodicityAndOffset_01 */ static int hf_nr_rrc_sf5 = -1; /* INTEGER_0_4 */ static int hf_nr_rrc_sf10 = -1; /* INTEGER_0_9 */ @@ -1697,6 +2279,11 @@ static int hf_nr_rrc_duration_02 = -1; /* T_duration */ 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_02 = -1; /* T_periodicity_02 */ +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 */ +static int hf_nr_rrc_tag_ToAddModList_item = -1; /* TAG */ +static int hf_nr_rrc_timeAlignmentTimer = -1; /* TimeAlignmentTimer */ 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 */ @@ -1712,6 +2299,7 @@ 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_dl_UL_TransmissionPeriodicity_v1530 = -1; /* T_dl_UL_TransmissionPeriodicity_v1530 */ 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 */ @@ -1723,9 +2311,36 @@ 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_UAC_BarringInfoSetList_item = -1; /* UAC_BarringInfoSet */ +static int hf_nr_rrc_uac_BarringFactor = -1; /* T_uac_BarringFactor */ +static int hf_nr_rrc_uac_BarringTime = -1; /* T_uac_BarringTime */ +static int hf_nr_rrc_uac_BarringForAccessIdentity = -1; /* BIT_STRING_SIZE_7 */ +static int hf_nr_rrc_UAC_BarringPerCatList_item = -1; /* UAC_BarringPerCat */ +static int hf_nr_rrc_accessCategory = -1; /* INTEGER_1_maxAccessCat_1 */ +static int hf_nr_rrc_uac_barringInfoSetIndex = -1; /* UAC_BarringInfoSetIndex */ +static int hf_nr_rrc_UAC_BarringPerPLMN_List_item = -1; /* UAC_BarringPerPLMN */ +static int hf_nr_rrc_plmn_IdentityIndex = -1; /* INTEGER_1_maxPLMN */ +static int hf_nr_rrc_uac_ACBarringListType = -1; /* T_uac_ACBarringListType */ +static int hf_nr_rrc_uac_ImplicitACBarringList = -1; /* SEQUENCE_SIZE_maxAccessCat_1_OF_UAC_BarringInfoSetIndex */ +static int hf_nr_rrc_uac_ImplicitACBarringList_item = -1; /* UAC_BarringInfoSetIndex */ +static int hf_nr_rrc_uac_ExplicitACBarringList = -1; /* UAC_BarringPerCatList */ +static int hf_nr_rrc_t300 = -1; /* T_t300 */ +static int hf_nr_rrc_t301 = -1; /* T_t301 */ +static int hf_nr_rrc_t310_01 = -1; /* T_t310_01 */ +static int hf_nr_rrc_n310_01 = -1; /* T_n310_01 */ +static int hf_nr_rrc_t311 = -1; /* T_t311 */ +static int hf_nr_rrc_n311_01 = -1; /* T_n311_01 */ +static int hf_nr_rrc_t319 = -1; /* T_t319 */ static int hf_nr_rrc_frequencyInfoUL = -1; /* FrequencyInfoUL */ static int hf_nr_rrc_initialUplinkBWP_01 = -1; /* BWP_UplinkCommon */ +static int hf_nr_rrc_dummy_02 = -1; /* TimeAlignmentTimer */ +static int hf_nr_rrc_frequencyInfoUL_01 = -1; /* FrequencyInfoUL_SIB */ static int hf_nr_rrc_timeAlignmentTimerCommon = -1; /* TimeAlignmentTimer */ +static int hf_nr_rrc_UplinkTxDirectCurrentList_item = -1; /* UplinkTxDirectCurrentCell */ +static int hf_nr_rrc_uplinkDirectCurrentBWP = -1; /* SEQUENCE_SIZE_1_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP */ +static int hf_nr_rrc_uplinkDirectCurrentBWP_item = -1; /* UplinkTxDirectCurrentBWP */ +static int hf_nr_rrc_shift7dot5kHz = -1; /* BOOLEAN */ +static int hf_nr_rrc_txDirectCurrentLocation = -1; /* INTEGER_0_3301 */ 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 */ @@ -1738,14 +2353,21 @@ static int hf_nr_rrc_ca_ParametersEUTRA = -1; /* CA_ParametersEUTRA */ 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_supportedBandwidthCombinationSet = -1; /* BIT_STRING_SIZE_1_32 */ -static int hf_nr_rrc_eutra = -1; /* T_eutra */ +static int hf_nr_rrc_powerClass_v1530 = -1; /* T_powerClass_v1530 */ +static int hf_nr_rrc_eutra_01 = -1; /* T_eutra */ static int hf_nr_rrc_bandEUTRA = -1; /* FreqBandIndicatorEUTRA */ static int hf_nr_rrc_ca_BandwidthClassDL_EUTRA = -1; /* CA_BandwidthClassEUTRA */ static int hf_nr_rrc_ca_BandwidthClassUL_EUTRA = -1; /* CA_BandwidthClassEUTRA */ -static int hf_nr_rrc_nr = -1; /* T_nr */ +static int hf_nr_rrc_nr_01 = -1; /* T_nr */ static int hf_nr_rrc_bandNR = -1; /* FreqBandIndicatorNR */ static int hf_nr_rrc_ca_BandwidthClassDL_NR = -1; /* CA_BandwidthClassNR */ static int hf_nr_rrc_ca_BandwidthClassUL_NR = -1; /* CA_BandwidthClassNR */ +static int hf_nr_rrc_multipleTimingAdvance = -1; /* T_multipleTimingAdvance */ +static int hf_nr_rrc_simultaneousRx_Tx = -1; /* T_simultaneousRx_Tx */ +static int hf_nr_rrc_supportedNAICS_2CRS_AP = -1; /* BIT_STRING_SIZE_1_8 */ +static int hf_nr_rrc_additionalRx_Tx_PerformanceReq = -1; /* T_additionalRx_Tx_PerformanceReq */ +static int hf_nr_rrc_ue_CA_PowerClass_N = -1; /* T_ue_CA_PowerClass_N */ +static int hf_nr_rrc_supportedBandwidthCombinationSetEUTRA_v1530 = -1; /* BIT_STRING_SIZE_1_32 */ static int hf_nr_rrc_multipleTimingAdvances = -1; /* T_multipleTimingAdvances */ static int hf_nr_rrc_parallelTxSRS_PUCCH_PUSCH = -1; /* T_parallelTxSRS_PUCCH_PUSCH */ static int hf_nr_rrc_parallelTxPRACH_SRS_PUCCH_PUSCH = -1; /* T_parallelTxPRACH_SRS_PUCCH_PUSCH */ @@ -1754,30 +2376,25 @@ static int hf_nr_rrc_simultaneousRxTxSUL = -1; /* T_simultaneousRxTxSUL */ 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_supportedNumberTAG = -1; /* T_supportedNumberTAG */ -static int hf_nr_rrc_multipleTimingAdvance = -1; /* T_multipleTimingAdvance */ -static int hf_nr_rrc_simultaneousRx_Tx = -1; /* T_simultaneousRx_Tx */ -static int hf_nr_rrc_supportedNAICS_2CRS_AP = -1; /* BIT_STRING_SIZE_1_8 */ -static int hf_nr_rrc_additionalRx_Tx_PerformanceReq = -1; /* T_additionalRx_Tx_PerformanceReq */ -static int hf_nr_rrc_ue_CA_PowerClass_N = -1; /* T_ue_CA_PowerClass_N */ static int hf_nr_rrc_FeatureSetCombination_item = -1; /* FeatureSetsPerBand */ static int hf_nr_rrc_FeatureSetsPerBand_item = -1; /* FeatureSet */ -static int hf_nr_rrc_eutra_01 = -1; /* T_eutra_01 */ +static int hf_nr_rrc_eutra_02 = -1; /* T_eutra_01 */ static int hf_nr_rrc_downlinkSetEUTRA = -1; /* FeatureSetEUTRA_DownlinkId */ static int hf_nr_rrc_uplinkSetEUTRA = -1; /* FeatureSetEUTRA_UplinkId */ -static int hf_nr_rrc_nr_01 = -1; /* T_nr_01 */ +static int hf_nr_rrc_nr_02 = -1; /* T_nr_01 */ static int hf_nr_rrc_downlinkSetNR = -1; /* FeatureSetDownlinkId */ static int hf_nr_rrc_uplinkSetNR = -1; /* FeatureSetUplinkId */ static int hf_nr_rrc_featureSetListPerDownlinkCC = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetDownlinkPerCC_Id */ static int hf_nr_rrc_featureSetListPerDownlinkCC_item = -1; /* FeatureSetDownlinkPerCC_Id */ static int hf_nr_rrc_intraBandFreqSeparationDL = -1; /* FreqSeparationClass */ static int hf_nr_rrc_scalingFactor = -1; /* T_scalingFactor */ -static int hf_nr_rrc_crossCarrierSchedulingDL_OtherSCS = -1; /* T_crossCarrierSchedulingDL_OtherSCS */ +static int hf_nr_rrc_crossCarrierScheduling_OtherSCS = -1; /* T_crossCarrierScheduling_OtherSCS */ 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_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_pdcchMonitoringAnyOccasionsWithSpanGap = -1; /* T_pdcchMonitoringAnyOccasionsWithSpanGap */ +static int hf_nr_rrc_pdcch_MonitoringAnyOccasions = -1; /* T_pdcch_MonitoringAnyOccasions */ +static int hf_nr_rrc_pdcch_MonitoringAnyOccasionsWithSpanGap = -1; /* T_pdcch_MonitoringAnyOccasionsWithSpanGap */ static int hf_nr_rrc_ue_SpecificUL_DL_Assignment = -1; /* T_ue_SpecificUL_DL_Assignment */ static int hf_nr_rrc_searchSpaceSharingCA_DL = -1; /* T_searchSpaceSharingCA_DL */ static int hf_nr_rrc_timeDurationForQCL = -1; /* T_timeDurationForQCL */ @@ -1821,16 +2438,25 @@ static int hf_nr_rrc_supportedBandwidthDL = -1; /* SupportedBandwidth */ static int hf_nr_rrc_channelBW_90mhz = -1; /* T_channelBW_90mhz */ static int hf_nr_rrc_maxNumberMIMO_LayersPDSCH = -1; /* MIMO_LayersDL */ static int hf_nr_rrc_supportedModulationOrderDL = -1; /* ModulationOrder */ +static int hf_nr_rrc_featureSetsDownlink = -1; /* SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink */ +static int hf_nr_rrc_featureSetsDownlink_item = -1; /* FeatureSetDownlink */ +static int hf_nr_rrc_featureSetsDownlinkPerCC = -1; /* SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC */ +static int hf_nr_rrc_featureSetsDownlinkPerCC_item = -1; /* FeatureSetDownlinkPerCC */ +static int hf_nr_rrc_featureSetsUplink = -1; /* SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink */ +static int hf_nr_rrc_featureSetsUplink_item = -1; /* FeatureSetUplink */ +static int hf_nr_rrc_featureSetsUplinkPerCC = -1; /* SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC */ +static int hf_nr_rrc_featureSetsUplinkPerCC_item = -1; /* FeatureSetUplinkPerCC */ static int hf_nr_rrc_featureSetListPerUplinkCC = -1; /* SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetUplinkPerCC_Id */ static int hf_nr_rrc_featureSetListPerUplinkCC_item = -1; /* FeatureSetUplinkPerCC_Id */ static int hf_nr_rrc_scalingFactor_01 = -1; /* T_scalingFactor_01 */ -static int hf_nr_rrc_crossCarrierSchedulingUL_OtherSCS = -1; /* T_crossCarrierSchedulingUL_OtherSCS */ +static int hf_nr_rrc_crossCarrierScheduling_OtherSCS_01 = -1; /* T_crossCarrierScheduling_OtherSCS_01 */ static int hf_nr_rrc_intraBandFreqSeparationUL = -1; /* FreqSeparationClass */ static int hf_nr_rrc_searchSpaceSharingCA_UL = -1; /* T_searchSpaceSharingCA_UL */ static int hf_nr_rrc_srs_TxSwitch = -1; /* SRS_TxSwitch */ static int hf_nr_rrc_supportedSRS_Resources = -1; /* SRS_Resources */ static int hf_nr_rrc_twoPUCCH_Group = -1; /* T_twoPUCCH_Group */ static int hf_nr_rrc_dynamicSwitchSUL = -1; /* T_dynamicSwitchSUL */ +static int hf_nr_rrc_simultaneousTxSUL_NonSUL_v1530 = -1; /* T_simultaneousTxSUL_NonSUL_v1530 */ static int hf_nr_rrc_pusch_DifferentTB_PerSlot = -1; /* T_pusch_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 */ @@ -1849,22 +2475,138 @@ static int hf_nr_rrc_maxNumberMIMO_LayersCB_PUSCH = -1; /* MIMO_LayersUL */ static int hf_nr_rrc_maxNumberSRS_ResourcePerSet = -1; /* INTEGER_1_2 */ static int hf_nr_rrc_maxNumberMIMO_LayersNonCB_PUSCH = -1; /* MIMO_LayersUL */ static int hf_nr_rrc_supportedModulationOrderUL = -1; /* ModulationOrder */ -static int hf_nr_rrc_simultaneousTxSUL_NonSUL = -1; /* T_simultaneousTxSUL_NonSUL */ -static int hf_nr_rrc_featureSetsDownlink = -1; /* SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink */ -static int hf_nr_rrc_featureSetsDownlink_item = -1; /* FeatureSetDownlink */ -static int hf_nr_rrc_featureSetsDownlinkPerCC = -1; /* SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC */ -static int hf_nr_rrc_featureSetsDownlinkPerCC_item = -1; /* FeatureSetDownlinkPerCC */ -static int hf_nr_rrc_featureSetsUplink = -1; /* SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink */ -static int hf_nr_rrc_featureSetsUplink_item = -1; /* FeatureSetUplink */ -static int hf_nr_rrc_featureSetsUplinkPerCC = -1; /* SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC */ -static int hf_nr_rrc_featureSetsUplinkPerCC_item = -1; /* FeatureSetUplinkPerCC */ static int hf_nr_rrc_FreqBandList_item = -1; /* FreqBandInformation */ static int hf_nr_rrc_bandInformationEUTRA = -1; /* FreqBandInformationEUTRA */ static int hf_nr_rrc_bandInformationNR = -1; /* FreqBandInformationNR */ -static int hf_nr_rrc_maxBandwidthRequestedDL = -1; /* AggregatedBandwith */ -static int hf_nr_rrc_maxBandwidthRequestedUL = -1; /* AggregatedBandwith */ +static int hf_nr_rrc_maxBandwidthRequestedDL = -1; /* AggregatedBandwidth */ +static int hf_nr_rrc_maxBandwidthRequestedUL = -1; /* AggregatedBandwidth */ static int hf_nr_rrc_maxCarriersRequestedDL = -1; /* INTEGER_1_maxNrofServingCells */ static int hf_nr_rrc_maxCarriersRequestedUL = -1; /* INTEGER_1_maxNrofServingCells */ +static int hf_nr_rrc_eutra_03 = -1; /* EUTRA_Parameters */ +static int hf_nr_rrc_supportedBandListEUTRA = -1; /* SEQUENCE_SIZE_1_maxBandsEUTRA_OF_FreqBandIndicatorEUTRA */ +static int hf_nr_rrc_supportedBandListEUTRA_item = -1; /* FreqBandIndicatorEUTRA */ +static int hf_nr_rrc_eutra_ParametersCommon = -1; /* EUTRA_ParametersCommon */ +static int hf_nr_rrc_eutra_ParametersXDD_Diff = -1; /* EUTRA_ParametersXDD_Diff */ +static int hf_nr_rrc_mfbi_EUTRA = -1; /* T_mfbi_EUTRA */ +static int hf_nr_rrc_modifiedMRP_BehaviorEUTRA = -1; /* BIT_STRING_SIZE_32 */ +static int hf_nr_rrc_multiNS_Pmax_EUTRA = -1; /* T_multiNS_Pmax_EUTRA */ +static int hf_nr_rrc_rs_SINR_MeasEUTRA = -1; /* T_rs_SINR_MeasEUTRA */ +static int hf_nr_rrc_rsrqMeasWidebandEUTRA = -1; /* T_rsrqMeasWidebandEUTRA */ +static int hf_nr_rrc_mac_ParametersCommon = -1; /* MAC_ParametersCommon */ +static int hf_nr_rrc_mac_ParametersXDD_Diff = -1; /* MAC_ParametersXDD_Diff */ +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_lch_ToSCellRestriction = -1; /* T_lch_ToSCellRestriction */ +static int hf_nr_rrc_recommendedBitRate = -1; /* T_recommendedBitRate */ +static int hf_nr_rrc_recommendedBitRateQuery = -1; /* T_recommendedBitRateQuery */ +static int hf_nr_rrc_skipUplinkTxDynamic_01 = -1; /* T_skipUplinkTxDynamic */ +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_multipleSR_Configurations = -1; /* T_multipleSR_Configurations */ +static int hf_nr_rrc_multipleConfiguredGrants = -1; /* T_multipleConfiguredGrants */ +static int hf_nr_rrc_measAndMobParametersCommon = -1; /* MeasAndMobParametersCommon */ +static int hf_nr_rrc_measAndMobParametersXDD_Diff = -1; /* MeasAndMobParametersXDD_Diff */ +static int hf_nr_rrc_measAndMobParametersFRX_Diff = -1; /* MeasAndMobParametersFRX_Diff */ +static int hf_nr_rrc_supportedGapPattern = -1; /* BIT_STRING_SIZE_22 */ +static int hf_nr_rrc_ssb_RLM = -1; /* T_ssb_RLM */ +static int hf_nr_rrc_ssb_AndCSI_RS_RLM = -1; /* T_ssb_AndCSI_RS_RLM */ +static int hf_nr_rrc_eventB_MeasAndReport = -1; /* T_eventB_MeasAndReport */ +static int hf_nr_rrc_handoverFDD_TDD = -1; /* T_handoverFDD_TDD */ +static int hf_nr_rrc_eutra_CGI_Reporting = -1; /* T_eutra_CGI_Reporting */ +static int hf_nr_rrc_nr_CGI_Reporting = -1; /* T_nr_CGI_Reporting */ +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_handoverInterF = -1; /* T_handoverInterF */ +static int hf_nr_rrc_handoverLTE = -1; /* T_handoverLTE */ +static int hf_nr_rrc_handover_eLTE = -1; /* T_handover_eLTE */ +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 */ +static int hf_nr_rrc_handoverInterF_01 = -1; /* T_handoverInterF_01 */ +static int hf_nr_rrc_handoverLTE_01 = -1; /* T_handoverLTE_01 */ +static int hf_nr_rrc_handover_eLTE_01 = -1; /* T_handover_eLTE_01 */ +static int hf_nr_rrc_measAndMobParametersMRDC_Common = -1; /* MeasAndMobParametersMRDC_Common */ +static int hf_nr_rrc_measAndMobParametersMRDC_XDD_Diff = -1; /* MeasAndMobParametersMRDC_XDD_Diff */ +static int hf_nr_rrc_measAndMobParametersMRDC_FRX_Diff = -1; /* MeasAndMobParametersMRDC_FRX_Diff */ +static int hf_nr_rrc_independentGapConfig = -1; /* T_independentGapConfig */ +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_tci_StatePDSCH = -1; /* T_tci_StatePDSCH */ +static int hf_nr_rrc_maxNumberConfiguredTCIstatesPerCC = -1; /* T_maxNumberConfiguredTCIstatesPerCC */ +static int hf_nr_rrc_maxNumberActiveTCI_PerBWP = -1; /* T_maxNumberActiveTCI_PerBWP */ +static int hf_nr_rrc_additionalActiveTCI_StatePDCCH = -1; /* T_additionalActiveTCI_StatePDCCH */ +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_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_03 = -1; /* T_scs_60kHz_03 */ +static int hf_nr_rrc_scs_120kHz_02 = -1; /* T_scs_120kHz_02 */ +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_BM = -1; /* T_maxNumberSRS_ResourcePerSet_BM */ +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_DL = -1; /* T_twoPortsPTRS_DL */ +static int hf_nr_rrc_twoPortsPTRS_UL = -1; /* T_twoPortsPTRS_UL */ +static int hf_nr_rrc_maxNumberSimultaneousSRS_PerCC = -1; /* INTEGER_1_4 */ +static int hf_nr_rrc_beamReportTiming = -1; /* T_beamReportTiming */ +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_04 = -1; /* T_scs_60kHz_04 */ +static int hf_nr_rrc_scs_120kHz_03 = -1; /* T_scs_120kHz_03 */ +static int hf_nr_rrc_ptrs_DensityRecommendationSetDL = -1; /* T_ptrs_DensityRecommendationSetDL */ +static int hf_nr_rrc_scs_15kHz_04 = -1; /* PTRS_DensityRecommendationDL */ +static int hf_nr_rrc_scs_30kHz_04 = -1; /* PTRS_DensityRecommendationDL */ +static int hf_nr_rrc_scs_60kHz_05 = -1; /* PTRS_DensityRecommendationDL */ +static int hf_nr_rrc_scs_120kHz_04 = -1; /* PTRS_DensityRecommendationDL */ +static int hf_nr_rrc_ptrs_DensityRecommendationSetUL = -1; /* T_ptrs_DensityRecommendationSetUL */ +static int hf_nr_rrc_scs_15kHz_05 = -1; /* PTRS_DensityRecommendationUL */ +static int hf_nr_rrc_scs_30kHz_05 = -1; /* PTRS_DensityRecommendationUL */ +static int hf_nr_rrc_scs_60kHz_06 = -1; /* PTRS_DensityRecommendationUL */ +static int hf_nr_rrc_scs_120kHz_05 = -1; /* PTRS_DensityRecommendationUL */ +static int hf_nr_rrc_csi_RS_ForTracking = -1; /* CSI_RS_ForTracking */ +static int hf_nr_rrc_aperiodicTRS = -1; /* T_aperiodicTRS */ +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_burstLength = -1; /* INTEGER_1_2 */ +static int hf_nr_rrc_maxSimultaneousResourceSetsPerCC = -1; /* INTEGER_1_8 */ +static int hf_nr_rrc_maxConfiguredResourceSetsPerCC = -1; /* INTEGER_1_64 */ +static int hf_nr_rrc_maxConfiguredResourceSetsAllCC = -1; /* INTEGER_1_128 */ +static int hf_nr_rrc_frequencyDensity1 = -1; /* INTEGER_1_276 */ +static int hf_nr_rrc_frequencyDensity2 = -1; /* INTEGER_1_276 */ +static int hf_nr_rrc_timeDensity1 = -1; /* INTEGER_0_29 */ +static int hf_nr_rrc_timeDensity2 = -1; /* INTEGER_0_29 */ +static int hf_nr_rrc_timeDensity3 = -1; /* INTEGER_0_29 */ +static int hf_nr_rrc_sampleDensity1 = -1; /* INTEGER_1_276 */ +static int hf_nr_rrc_sampleDensity2 = -1; /* INTEGER_1_276 */ +static int hf_nr_rrc_sampleDensity3 = -1; /* INTEGER_1_276 */ +static int hf_nr_rrc_sampleDensity4 = -1; /* INTEGER_1_276 */ +static int hf_nr_rrc_sampleDensity5 = -1; /* INTEGER_1_276 */ +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_1_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_singleUL_Transmission = -1; /* T_singleUL_Transmission */ static int hf_nr_rrc_dynamicPowerSharing = -1; /* T_dynamicPowerSharing */ static int hf_nr_rrc_tdm_Pattern = -1; /* T_tdm_Pattern */ @@ -1872,53 +2614,20 @@ 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_fr1 = -1; /* T_fr1 */ -static int hf_nr_rrc_fr2 = -1; /* T_fr2 */ -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_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_featureSetCombinations = -1; /* SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination */ -static int hf_nr_rrc_featureSetCombinations_item = -1; /* FeatureSetCombination */ -static int hf_nr_rrc_nonCriticalExtension_09 = -1; /* T_nonCriticalExtension_09 */ -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_measParametersMRDC_FRX_Diff = -1; /* MeasParametersMRDC_FRX_Diff */ -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_supportedBandCombinationList = -1; /* BandCombinationList */ -static int hf_nr_rrc_appliedFreqBandListFilter = -1; /* FreqBandList */ -static int hf_nr_rrc_measParametersMRDC_Common = -1; /* MeasParametersMRDC_Common */ -static int hf_nr_rrc_independentGapConfig = -1; /* T_independentGapConfig */ -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_accessStratumRelease = -1; /* AccessStratumRelease */ -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_phy_Parameters = -1; /* Phy_Parameters */ -static int hf_nr_rrc_rf_Parameters = -1; /* RF_Parameters */ -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_featureSets = -1; /* FeatureSets */ -static int hf_nr_rrc_nonCriticalExtension_10 = -1; /* T_nonCriticalExtension_10 */ +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 */ +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_01 */ +static int hf_nr_rrc_shortSN = -1; /* T_shortSN */ +static int hf_nr_rrc_pdcp_DuplicationSRB3 = -1; /* T_pdcp_DuplicationSRB3 */ +static int hf_nr_rrc_pdcp_DuplicationMCG_OrSCG = -1; /* T_pdcp_DuplicationMCG_OrSCG */ +static int hf_nr_rrc_pdcp_DuplicationSplitSRB = -1; /* T_pdcp_DuplicationSplitSRB */ +static int hf_nr_rrc_pdcp_DuplicationSplitDRB = -1; /* T_pdcp_DuplicationSplitDRB */ +static int hf_nr_rrc_phy_ParametersCommon = -1; /* Phy_ParametersCommon */ 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_csi_RS_CFRA_ForHO = -1; /* T_csi_RS_CFRA_ForHO */ @@ -1955,6 +2664,7 @@ static int hf_nr_rrc_dynamicHARQ_ACK_CodeB_CBG_Retx_DL = -1; /* T_dynamicHARQ_A 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_bwp_SwitchingDelay = -1; /* T_bwp_SwitchingDelay */ +static int hf_nr_rrc_eutra_RS_SINR_measurement = -1; /* T_eutra_RS_SINR_measurement */ static int hf_nr_rrc_dynamicSFI = -1; /* T_dynamicSFI */ 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 */ @@ -1982,7 +2692,7 @@ static int hf_nr_rrc_onePUCCH_LongAndShortFormat = -1; /* T_onePUCCH_LongAndSho 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_pdcch_BlindDetectionCA = -1; /* INTEGER_4_16 */ 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 */ @@ -1997,13 +2707,19 @@ static int hf_nr_rrc_sp_CSI_IM = -1; /* T_sp_CSI_IM */ static int hf_nr_rrc_tdd_MultiDL_UL_SwitchPerSlot = -1; /* T_tdd_MultiDL_UL_SwitchPerSlot */ static int hf_nr_rrc_multipleCORESET = -1; /* T_multipleCORESET */ 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_scs_60kHz_07 = -1; /* T_scs_60kHz_05 */ static int hf_nr_rrc_pdsch_256QAM_FR1 = -1; /* T_pdsch_256QAM_FR1 */ static int hf_nr_rrc_pdsch_RE_MappingFR1 = -1; /* T_pdsch_RE_MappingFR1 */ static int hf_nr_rrc_calibrationGapPA = -1; /* T_calibrationGapPA */ static int hf_nr_rrc_pdsch_RE_MappingFR2 = -1; /* T_pdsch_RE_MappingFR2 */ +static int hf_nr_rrc_naics_Capability_List = -1; /* SEQUENCE_SIZE_1_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry */ +static int hf_nr_rrc_naics_Capability_List_item = -1; /* NAICS_Capability_Entry */ +static int hf_nr_rrc_numberOfNAICS_CapableCC = -1; /* INTEGER_1_5 */ +static int hf_nr_rrc_numberOfAggregatedPRB = -1; /* T_numberOfAggregatedPRB */ static int hf_nr_rrc_supportedBandListNR = -1; /* SEQUENCE_SIZE_1_maxBands_OF_BandNR */ static int hf_nr_rrc_supportedBandListNR_item = -1; /* BandNR */ +static int hf_nr_rrc_supportedBandCombinationList = -1; /* BandCombinationList */ +static int hf_nr_rrc_appliedFreqBandListFilter = -1; /* FreqBandList */ static int hf_nr_rrc_modifiedMPR_Behaviour = -1; /* BIT_STRING_SIZE_8 */ static int hf_nr_rrc_mimo_ParametersPerBand = -1; /* MIMO_ParametersPerBand */ static int hf_nr_rrc_extendedCP = -1; /* T_extendedCP */ @@ -2011,115 +2727,133 @@ static int hf_nr_rrc_multipleTCI = -1; /* T_multipleTCI */ static int hf_nr_rrc_bwp_WithoutRestriction = -1; /* T_bwp_WithoutRestriction */ 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_crossCarrierSchedulingDL_SameSCS = -1; /* T_crossCarrierSchedulingDL_SameSCS */ -static int hf_nr_rrc_crossCarrierSchedulingUL_SameSCS = -1; /* T_crossCarrierSchedulingUL_SameSCS */ +static int hf_nr_rrc_crossCarrierScheduling_SameSCS = -1; /* T_crossCarrierScheduling_SameSCS */ 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_ue_PowerClass = -1; /* T_ue_PowerClass */ static int hf_nr_rrc_rateMatchingLTE_CRS = -1; /* T_rateMatchingLTE_CRS */ -static int hf_nr_rrc_tci_StatePDSCH = -1; /* T_tci_StatePDSCH */ -static int hf_nr_rrc_maxNumberConfiguredTCIstatesPerCC = -1; /* T_maxNumberConfiguredTCIstatesPerCC */ -static int hf_nr_rrc_maxNumberActiveTCI_PerBWP = -1; /* T_maxNumberActiveTCI_PerBWP */ -static int hf_nr_rrc_additionalActiveTCI_StatePDCCH = -1; /* T_additionalActiveTCI_StatePDCCH */ -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_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_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_01 = -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_DL = -1; /* T_twoPortsPTRS_DL */ -static int hf_nr_rrc_twoPortsPTRS_UL = -1; /* T_twoPortsPTRS_UL */ -static int hf_nr_rrc_maxNumberSimultaneousSRS_PerCC = -1; /* INTEGER_1_4 */ -static int hf_nr_rrc_beamReportTiming = -1; /* T_beamReportTiming */ -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_ptrs_DensityRecommendationSetDL = -1; /* T_ptrs_DensityRecommendationSetDL */ -static int hf_nr_rrc_scs_15kHz_04 = -1; /* PTRS_DensityRecommendationDL */ -static int hf_nr_rrc_scs_30kHz_04 = -1; /* PTRS_DensityRecommendationDL */ -static int hf_nr_rrc_scs_60kHz_06 = -1; /* PTRS_DensityRecommendationDL */ -static int hf_nr_rrc_scs_120kHz_04 = -1; /* PTRS_DensityRecommendationDL */ -static int hf_nr_rrc_ptrs_DensityRecommendationSetUL = -1; /* T_ptrs_DensityRecommendationSetUL */ -static int hf_nr_rrc_scs_15kHz_05 = -1; /* PTRS_DensityRecommendationUL */ -static int hf_nr_rrc_scs_30kHz_05 = -1; /* PTRS_DensityRecommendationUL */ -static int hf_nr_rrc_scs_60kHz_07 = -1; /* PTRS_DensityRecommendationUL */ -static int hf_nr_rrc_scs_120kHz_05 = -1; /* PTRS_DensityRecommendationUL */ -static int hf_nr_rrc_csi_RS_ForTracking = -1; /* CSI_RS_ForTracking */ -static int hf_nr_rrc_aperiodicTRS = -1; /* T_aperiodicTRS */ -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_burstLength = -1; /* INTEGER_1_2 */ -static int hf_nr_rrc_maxSimultaneousResourceSetsPerCC = -1; /* INTEGER_1_8 */ -static int hf_nr_rrc_maxConfiguredResourceSetsPerCC = -1; /* INTEGER_1_64 */ -static int hf_nr_rrc_maxConfiguredResourceSetsAllCC = -1; /* INTEGER_1_128 */ -static int hf_nr_rrc_frequencyDensity1 = -1; /* INTEGER_1_276 */ -static int hf_nr_rrc_frequencyDensity2 = -1; /* INTEGER_1_276 */ -static int hf_nr_rrc_timeDensity1 = -1; /* INTEGER_0_29 */ -static int hf_nr_rrc_timeDensity2 = -1; /* INTEGER_0_29 */ -static int hf_nr_rrc_timeDensity3 = -1; /* INTEGER_0_29 */ -static int hf_nr_rrc_sampleDensity1 = -1; /* INTEGER_1_276 */ -static int hf_nr_rrc_sampleDensity2 = -1; /* INTEGER_1_276 */ -static int hf_nr_rrc_sampleDensity3 = -1; /* INTEGER_1_276 */ -static int hf_nr_rrc_sampleDensity4 = -1; /* INTEGER_1_276 */ -static int hf_nr_rrc_sampleDensity5 = -1; /* INTEGER_1_276 */ -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_1_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 */ -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_01 */ -static int hf_nr_rrc_shortSN = -1; /* T_shortSN */ +static int hf_nr_rrc_channelBWs_DL_v1530 = -1; /* T_channelBWs_DL_v1530 */ +static int hf_nr_rrc_fr1 = -1; /* T_fr1 */ +static int hf_nr_rrc_scs_15kHz_06 = -1; /* BIT_STRING_SIZE_10 */ +static int hf_nr_rrc_scs_30kHz_06 = -1; /* BIT_STRING_SIZE_10 */ +static int hf_nr_rrc_scs_60kHz_08 = -1; /* BIT_STRING_SIZE_10 */ +static int hf_nr_rrc_fr2 = -1; /* T_fr2 */ +static int hf_nr_rrc_scs_60kHz_09 = -1; /* BIT_STRING_SIZE_3 */ +static int hf_nr_rrc_scs_120kHz_06 = -1; /* BIT_STRING_SIZE_3 */ +static int hf_nr_rrc_channelBWs_UL_v1530 = -1; /* T_channelBWs_UL_v1530 */ +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_maxUplinkDutyCycle = -1; /* T_maxUplinkDutyCycle */ 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_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_multipleSR_Configurations = -1; /* T_multipleSR_Configurations */ -static int hf_nr_rrc_multipleConfiguredGrants = -1; /* T_multipleConfiguredGrants */ -static int hf_nr_rrc_measParametersCommon = -1; /* MeasParametersCommon */ -static int hf_nr_rrc_supportedGapPattern = -1; /* BIT_STRING_SIZE_22 */ -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 */ +static int hf_nr_rrc_um_WithLongSN = -1; /* T_um_WithLongSN */ +static int hf_nr_rrc_fr1_02 = -1; /* T_fr1_02 */ +static int hf_nr_rrc_fr2_02 = -1; /* T_fr2_02 */ +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_UE_CapabilityRAT_RequestList_item = -1; /* UE_CapabilityRAT_Request */ +static int hf_nr_rrc_capabilityRequestFilter = -1; /* T_capabilityRequestFilter */ +static int hf_nr_rrc_frequencyBandList_02 = -1; /* FreqBandList */ +static int hf_nr_rrc_nonCriticalExtension_35 = -1; /* T_nonCriticalExtension_33 */ +static int hf_nr_rrc_measAndMobParametersMRDC = -1; /* MeasAndMobParametersMRDC */ +static int hf_nr_rrc_phy_ParametersMRDC_v1530 = -1; /* Phy_ParametersMRDC */ +static int hf_nr_rrc_rf_ParametersMRDC = -1; /* RF_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_featureSetCombinations = -1; /* SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination */ +static int hf_nr_rrc_featureSetCombinations_item = -1; /* FeatureSetCombination */ +static int hf_nr_rrc_pdcp_ParametersMRDC_v1530 = -1; /* PDCP_ParametersMRDC */ +static int hf_nr_rrc_nonCriticalExtension_36 = -1; /* T_nonCriticalExtension_34 */ +static int hf_nr_rrc_generalParametersMRDC_XDD_Diff = -1; /* GeneralParametersMRDC_XDD_Diff */ +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_v2x_EUTRA_v1530 = -1; /* T_v2x_EUTRA_v1530 */ +static int hf_nr_rrc_accessStratumRelease = -1; /* AccessStratumRelease */ +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_phy_Parameters = -1; /* Phy_Parameters */ +static int hf_nr_rrc_rf_Parameters = -1; /* RF_Parameters */ +static int hf_nr_rrc_measAndMobParameters = -1; /* MeasAndMobParameters */ +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_featureSets = -1; /* FeatureSets */ +static int hf_nr_rrc_nonCriticalExtension_37 = -1; /* UE_NR_Capability_1530 */ +static int hf_nr_rrc_fdd_Add_UE_NR_Capabilities_1530 = -1; /* UE_NR_CapabilityAddXDD_Mode_1530 */ +static int hf_nr_rrc_tdd_Add_UE_NR_Capabilities_1530 = -1; /* UE_NR_CapabilityAddXDD_Mode_1530 */ +static int hf_nr_rrc_voiceOverMCG_Bearer = -1; /* T_voiceOverMCG_Bearer */ +static int hf_nr_rrc_interRAT_Parameters = -1; /* InterRAT_Parameters */ +static int hf_nr_rrc_inactiveState = -1; /* T_inactiveState */ +static int hf_nr_rrc_delayBudgetReporting = -1; /* T_delayBudgetReporting */ +static int hf_nr_rrc_nonCriticalExtension_38 = -1; /* T_nonCriticalExtension_35 */ +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_subframeAllocation1 = -1; /* T_subframeAllocation1 */ +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_subframeAllocation2 = -1; /* T_subframeAllocation2 */ +static int hf_nr_rrc_oneFrame_01 = -1; /* BIT_STRING_SIZE_2 */ +static int hf_nr_rrc_fourFrames_01 = -1; /* BIT_STRING_SIZE_8 */ +static int hf_nr_rrc_EUTRA_MultiBandInfoList_item = -1; /* EUTRA_MultiBandInfo */ +static int hf_nr_rrc_eutra_FreqBandIndicator = -1; /* FreqBandIndicatorEUTRA */ +static int hf_nr_rrc_eutra_NS_PmaxList = -1; /* EUTRA_NS_PmaxList */ +static int hf_nr_rrc_EUTRA_NS_PmaxList_item = -1; /* EUTRA_NS_PmaxValue */ +static int hf_nr_rrc_additionalPmax = -1; /* INTEGER_M30_33 */ +static int hf_nr_rrc_additionalSpectrumEmission_01 = -1; /* INTEGER_1_288 */ +static int hf_nr_rrc_start_01 = -1; /* EUTRA_PhysCellId */ +static int hf_nr_rrc_range_01 = -1; /* T_range_01 */ +static int hf_nr_rrc_MultiFrequencyBandListNR_SIB_item = -1; /* NR_MultiBandInfo */ +static int hf_nr_rrc_freqBandIndicatorNR = -1; /* FreqBandIndicatorNR */ +static int hf_nr_rrc_nr_NS_PmaxList = -1; /* NR_NS_PmaxList */ +static int hf_nr_rrc_NR_NS_PmaxList_item = -1; /* NR_NS_PmaxValue */ +static int hf_nr_rrc_additionalPmax_01 = -1; /* P_Max */ +static int hf_nr_rrc_delayBudgetReportingConfig = -1; /* T_delayBudgetReportingConfig */ +static int hf_nr_rrc_setup_49 = -1; /* T_setup */ +static int hf_nr_rrc_delayBudgetReportingProhibitTimer = -1; /* T_delayBudgetReportingProhibitTimer */ +static int dummy_hf_nr_rrc_eag_field = -1; /* never registered */ /*--- End of included file: packet-nr-rrc-hf.c ---*/ -#line 40 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 54 "./asn1/nr-rrc/packet-nr-rrc-template.c" +static int hf_nr_rrc_serialNumber_gs = -1; +static int hf_nr_rrc_serialNumber_msg_code = -1; +static int hf_nr_rrc_serialNumber_upd_nb = -1; +static int hf_nr_rrc_warningType_value = -1; +static int hf_nr_rrc_warningType_emergency_user_alert = -1; +static int hf_nr_rrc_warningType_popup = -1; +static int hf_nr_rrc_warningMessageSegment_nb_pages = -1; +static int hf_nr_rrc_warningMessageSegment_decoded_page = -1; +static int hf_nr_rrc_sib7_fragments = -1; +static int hf_nr_rrc_sib7_fragment = -1; +static int hf_nr_rrc_sib7_fragment_overlap = -1; +static int hf_nr_rrc_sib7_fragment_overlap_conflict = -1; +static int hf_nr_rrc_sib7_fragment_multiple_tails = -1; +static int hf_nr_rrc_sib7_fragment_too_long_fragment = -1; +static int hf_nr_rrc_sib7_fragment_error = -1; +static int hf_nr_rrc_sib7_fragment_count = -1; +static int hf_nr_rrc_sib7_reassembled_in = -1; +static int hf_nr_rrc_sib7_reassembled_length = -1; +static int hf_nr_rrc_sib7_reassembled_data = -1; +static int hf_nr_rrc_sib8_fragments = -1; +static int hf_nr_rrc_sib8_fragment = -1; +static int hf_nr_rrc_sib8_fragment_overlap = -1; +static int hf_nr_rrc_sib8_fragment_overlap_conflict = -1; +static int hf_nr_rrc_sib8_fragment_multiple_tails = -1; +static int hf_nr_rrc_sib8_fragment_too_long_fragment = -1; +static int hf_nr_rrc_sib8_fragment_error = -1; +static int hf_nr_rrc_sib8_fragment_count = -1; +static int hf_nr_rrc_sib8_reassembled_in = -1; +static int hf_nr_rrc_sib8_reassembled_length = -1; +static int hf_nr_rrc_sib8_reassembled_data = -1; +static int hf_nr_rrc_utc_time = -1; +static int hf_nr_rrc_local_time = -1; /* Initialize the subtree pointers */ static gint ett_nr_rrc = -1; @@ -2138,8 +2872,9 @@ static gint ett_nr_rrc_T_c1_01 = -1; static gint ett_nr_rrc_T_criticalExtensionsFuture_01 = -1; static gint ett_nr_rrc_HandoverPreparationInformation_IEs = -1; static gint ett_nr_rrc_T_nonCriticalExtension_01 = -1; +static gint ett_nr_rrc_AS_Config = -1; static gint ett_nr_rrc_AS_Context = -1; -static gint ett_nr_rrc_T_reestablishmentInfo = -1; +static gint ett_nr_rrc_ReestablishmentInfo = -1; static gint ett_nr_rrc_ReestabNCellInfoList = -1; static gint ett_nr_rrc_ReestabNCellInfo = -1; static gint ett_nr_rrc_RRM_Config = -1; @@ -2153,8 +2888,10 @@ static gint ett_nr_rrc_MeasConfigSN = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsSN_OF_NR_FreqInfo = -1; static gint ett_nr_rrc_NR_FreqInfo = -1; static gint ett_nr_rrc_ConfigRestrictModReqSCG = -1; +static gint ett_nr_rrc_BandCombinationInfoSN = -1; static gint ett_nr_rrc_FR_InfoList = -1; static gint ett_nr_rrc_FR_Info = -1; +static gint ett_nr_rrc_CandidateServingFreqListNR = -1; static gint ett_nr_rrc_CG_ConfigInfo = -1; static gint ett_nr_rrc_T_criticalExtensions_03 = -1; static gint ett_nr_rrc_T_c1_03 = -1; @@ -2165,13 +2902,22 @@ static gint ett_nr_rrc_T_nonCriticalExtension_03 = -1; static gint ett_nr_rrc_ConfigRestrictInfoSCG = -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_BandCombinationInfoList = -1; +static gint ett_nr_rrc_BandCombinationInfo = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex = -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_T_measGapConfig = -1; +static gint ett_nr_rrc_MRDC_AssistanceInfo = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC = -1; +static gint ett_nr_rrc_AffectedCarrierFreqCombInfoMRDC = -1; +static gint ett_nr_rrc_T_affectedCarrierFreqCombMRDC = -1; +static gint ett_nr_rrc_VictimSystemType = -1; +static gint ett_nr_rrc_AffectedCarrierFreqCombEUTRA = -1; +static gint ett_nr_rrc_AffectedCarrierFreqCombNR = -1; static gint ett_nr_rrc_MeasurementTimingConfiguration = -1; static gint ett_nr_rrc_T_criticalExtensions_04 = -1; static gint ett_nr_rrc_T_c1_04 = -1; @@ -2181,38 +2927,277 @@ static gint ett_nr_rrc_T_nonCriticalExtension_04 = -1; static gint ett_nr_rrc_MeasTimingList = -1; static gint ett_nr_rrc_MeasTiming = -1; static gint ett_nr_rrc_T_frequencyAndTiming = -1; +static gint ett_nr_rrc_UERadioPagingInformation = -1; +static gint ett_nr_rrc_T_criticalExtensions_05 = -1; +static gint ett_nr_rrc_T_c1_05 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_05 = -1; +static gint ett_nr_rrc_UERadioPagingInformation_IEs = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicatorNR = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_05 = -1; +static gint ett_nr_rrc_UERadioAccessCapabilityInformation = -1; +static gint ett_nr_rrc_T_criticalExtensions_06 = -1; +static gint ett_nr_rrc_T_c1_06 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_06 = -1; +static gint ett_nr_rrc_UERadioAccessCapabilityInformation_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_06 = -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; +static gint ett_nr_rrc_BCCH_DL_SCH_Message = -1; +static gint ett_nr_rrc_BCCH_DL_SCH_MessageType = -1; +static gint ett_nr_rrc_T_c1_07 = -1; +static gint ett_nr_rrc_T_messageClassExtension_01 = -1; +static gint ett_nr_rrc_DL_CCCH_Message = -1; +static gint ett_nr_rrc_DL_CCCH_MessageType = -1; +static gint ett_nr_rrc_T_c1_08 = -1; +static gint ett_nr_rrc_T_messageClassExtension_02 = -1; static gint ett_nr_rrc_DL_DCCH_Message = -1; static gint ett_nr_rrc_DL_DCCH_MessageType = -1; -static gint ett_nr_rrc_T_c1_05 = -1; -static gint ett_nr_rrc_T_messageClassExtension_01 = -1; +static gint ett_nr_rrc_T_c1_09 = -1; +static gint ett_nr_rrc_T_messageClassExtension_03 = -1; +static gint ett_nr_rrc_PCCH_Message = -1; +static gint ett_nr_rrc_PCCH_MessageType = -1; +static gint ett_nr_rrc_T_c1_10 = -1; +static gint ett_nr_rrc_T_messageClassExtension_04 = -1; +static gint ett_nr_rrc_UL_CCCH_Message = -1; +static gint ett_nr_rrc_UL_CCCH_MessageType = -1; +static gint ett_nr_rrc_T_c1_11 = -1; +static gint ett_nr_rrc_T_messageClassExtension_05 = -1; +static gint ett_nr_rrc_UL_CCCH1_Message = -1; +static gint ett_nr_rrc_UL_CCCH1_MessageType = -1; +static gint ett_nr_rrc_T_c1_12 = -1; +static gint ett_nr_rrc_T_messageClassExtension_06 = -1; static gint ett_nr_rrc_UL_DCCH_Message = -1; static gint ett_nr_rrc_UL_DCCH_MessageType = -1; -static gint ett_nr_rrc_T_c1_06 = -1; -static gint ett_nr_rrc_T_messageClassExtension_02 = -1; +static gint ett_nr_rrc_T_c1_13 = -1; +static gint ett_nr_rrc_T_messageClassExtension_07 = -1; +static gint ett_nr_rrc_CounterCheck = -1; +static gint ett_nr_rrc_T_criticalExtensions_07 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_07 = -1; +static gint ett_nr_rrc_CounterCheck_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_07 = -1; +static gint ett_nr_rrc_DRB_CountMSB_InfoList = -1; +static gint ett_nr_rrc_DRB_CountMSB_Info = -1; +static gint ett_nr_rrc_CounterCheckResponse = -1; +static gint ett_nr_rrc_T_criticalExtensions_08 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_08 = -1; +static gint ett_nr_rrc_CounterCheckResponse_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_08 = -1; +static gint ett_nr_rrc_DRB_CountInfoList = -1; +static gint ett_nr_rrc_DRB_CountInfo = -1; +static gint ett_nr_rrc_DLInformationTransfer = -1; +static gint ett_nr_rrc_T_criticalExtensions_09 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_09 = -1; +static gint ett_nr_rrc_DLInformationTransfer_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_09 = -1; +static gint ett_nr_rrc_LocationMeasurementIndication = -1; +static gint ett_nr_rrc_T_criticalExtensions_10 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_10 = -1; +static gint ett_nr_rrc_LocationMeasurementIndication_IEs = -1; +static gint ett_nr_rrc_T_measurementIndication = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_10 = -1; static gint ett_nr_rrc_MIB = -1; static gint ett_nr_rrc_MeasurementReport = -1; -static gint ett_nr_rrc_T_criticalExtensions_05 = -1; -static gint ett_nr_rrc_T_criticalExtensionsFuture_05 = -1; +static gint ett_nr_rrc_T_criticalExtensions_11 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_11 = -1; static gint ett_nr_rrc_MeasurementReport_IEs = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_05 = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_11 = -1; +static gint ett_nr_rrc_MobilityFromNRCommand = -1; +static gint ett_nr_rrc_T_criticalExtensions_12 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_12 = -1; +static gint ett_nr_rrc_MobilityFromNRCommand_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_12 = -1; +static gint ett_nr_rrc_Paging = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_13 = -1; +static gint ett_nr_rrc_PagingRecordList = -1; +static gint ett_nr_rrc_PagingRecord = -1; +static gint ett_nr_rrc_PagingUE_Identity = -1; +static gint ett_nr_rrc_RRCReestablishment = -1; +static gint ett_nr_rrc_T_criticalExtensions_13 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_13 = -1; +static gint ett_nr_rrc_RRCReestablishment_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_14 = -1; +static gint ett_nr_rrc_RRCReestablishmentComplete = -1; +static gint ett_nr_rrc_T_criticalExtensions_14 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_14 = -1; +static gint ett_nr_rrc_RRCReestablishmentComplete_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_15 = -1; +static gint ett_nr_rrc_RRCReestablishmentRequest = -1; +static gint ett_nr_rrc_RRCReestablishmentRequest_IEs = -1; +static gint ett_nr_rrc_ReestabUE_Identity = -1; static gint ett_nr_rrc_RRCReconfiguration = -1; -static gint ett_nr_rrc_T_criticalExtensions_06 = -1; -static gint ett_nr_rrc_T_criticalExtensionsFuture_06 = -1; +static gint ett_nr_rrc_T_criticalExtensions_15 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_15 = -1; static gint ett_nr_rrc_RRCReconfiguration_IEs = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_06 = -1; +static gint ett_nr_rrc_RRCReconfiguration_v1530_IEs = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DedicatedNAS_Message = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_16 = -1; +static gint ett_nr_rrc_MasterKeyUpdate = -1; static gint ett_nr_rrc_RRCReconfigurationComplete = -1; -static gint ett_nr_rrc_T_criticalExtensions_07 = -1; -static gint ett_nr_rrc_T_criticalExtensionsFuture_07 = -1; +static gint ett_nr_rrc_T_criticalExtensions_16 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_16 = -1; static gint ett_nr_rrc_RRCReconfigurationComplete_IEs = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_07 = -1; +static gint ett_nr_rrc_RRCReconfigurationComplete_v1530_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_17 = -1; +static gint ett_nr_rrc_RRCReject = -1; +static gint ett_nr_rrc_T_criticalExtensions_17 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_17 = -1; +static gint ett_nr_rrc_RRCReject_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_18 = -1; +static gint ett_nr_rrc_RRCRelease = -1; +static gint ett_nr_rrc_T_criticalExtensions_18 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_18 = -1; +static gint ett_nr_rrc_RRCRelease_IEs = -1; +static gint ett_nr_rrc_T_deprioritisationReq = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_19 = -1; +static gint ett_nr_rrc_RedirectedCarrierInfo = -1; +static gint ett_nr_rrc_RedirectedCarrierInfo_EUTRA = -1; +static gint ett_nr_rrc_CarrierInfoNR = -1; +static gint ett_nr_rrc_SuspendConfig = -1; +static gint ett_nr_rrc_CellReselectionPriorities = -1; +static gint ett_nr_rrc_FreqPriorityListEUTRA = -1; +static gint ett_nr_rrc_FreqPriorityListNR = -1; +static gint ett_nr_rrc_FreqPriorityEUTRA = -1; +static gint ett_nr_rrc_FreqPriorityNR = -1; +static gint ett_nr_rrc_RAN_NotificationAreaInfo = -1; +static gint ett_nr_rrc_PLMN_RAN_AreaCellList = -1; +static gint ett_nr_rrc_PLMN_RAN_AreaCell = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_CellIdentity = -1; +static gint ett_nr_rrc_PLMN_RAN_AreaConfigList = -1; +static gint ett_nr_rrc_PLMN_RAN_AreaConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig = -1; +static gint ett_nr_rrc_RAN_AreaConfig = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_RAN_AreaCode = -1; +static gint ett_nr_rrc_RRCResume = -1; +static gint ett_nr_rrc_T_criticalExtensions_19 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_19 = -1; +static gint ett_nr_rrc_RRCResume_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_20 = -1; +static gint ett_nr_rrc_RRCResumeComplete = -1; +static gint ett_nr_rrc_T_criticalExtensions_20 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_20 = -1; +static gint ett_nr_rrc_RRCResumeComplete_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_21 = -1; +static gint ett_nr_rrc_RRCResumeRequest = -1; +static gint ett_nr_rrc_RRCResumeRequest_IEs = -1; +static gint ett_nr_rrc_RRCResumeRequest1 = -1; +static gint ett_nr_rrc_RRCResumeRequest1_IEs = -1; +static gint ett_nr_rrc_RRCSetup = -1; +static gint ett_nr_rrc_T_criticalExtensions_21 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_21 = -1; +static gint ett_nr_rrc_RRCSetup_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_22 = -1; +static gint ett_nr_rrc_RRCSetupComplete = -1; +static gint ett_nr_rrc_T_criticalExtensions_22 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_22 = -1; +static gint ett_nr_rrc_RRCSetupComplete_IEs = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofS_NSSAI_OF_S_NSSAI = -1; +static gint ett_nr_rrc_T_ng_5G_S_TMSI_Value = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_23 = -1; +static gint ett_nr_rrc_RegisteredAMF = -1; +static gint ett_nr_rrc_RRCSetupRequest = -1; +static gint ett_nr_rrc_RRCSetupRequest_IEs = -1; +static gint ett_nr_rrc_InitialUE_Identity = -1; +static gint ett_nr_rrc_RRCSystemInfoRequest = -1; +static gint ett_nr_rrc_T_criticalExtensions_23 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_23 = -1; +static gint ett_nr_rrc_RRCSystemInfoRequest_r15_IEs = -1; +static gint ett_nr_rrc_SecurityModeCommand = -1; +static gint ett_nr_rrc_T_criticalExtensions_24 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_24 = -1; +static gint ett_nr_rrc_SecurityModeCommand_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_24 = -1; +static gint ett_nr_rrc_SecurityConfigSMC = -1; +static gint ett_nr_rrc_SecurityModeComplete = -1; +static gint ett_nr_rrc_T_criticalExtensions_25 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_25 = -1; +static gint ett_nr_rrc_SecurityModeComplete_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_25 = -1; +static gint ett_nr_rrc_SecurityModeFailure = -1; +static gint ett_nr_rrc_T_criticalExtensions_26 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_26 = -1; +static gint ett_nr_rrc_SecurityModeFailure_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_26 = -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_08 = -1; +static gint ett_nr_rrc_T_cellSelectionInfo = -1; +static gint ett_nr_rrc_T_uac_BarringInfo = -1; +static gint ett_nr_rrc_T_uac_AccessCategory1_SelectionAssistanceInfo = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_27 = -1; +static gint ett_nr_rrc_SystemInformation = -1; +static gint ett_nr_rrc_T_criticalExtensions_27 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_27 = -1; +static gint ett_nr_rrc_SystemInformation_IEs = -1; +static gint ett_nr_rrc_T_sib_TypeAndInfo = -1; +static gint ett_nr_rrc_T_sib_TypeAndInfo_item = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_28 = -1; +static gint ett_nr_rrc_UEAssistanceInformation = -1; +static gint ett_nr_rrc_T_criticalExtensions_28 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_28 = -1; +static gint ett_nr_rrc_UEAssistanceInformation_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_29 = -1; +static gint ett_nr_rrc_DelayBudgetReport = -1; +static gint ett_nr_rrc_UECapabilityEnquiry = -1; +static gint ett_nr_rrc_T_criticalExtensions_29 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_29 = -1; +static gint ett_nr_rrc_UECapabilityEnquiry_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_30 = -1; +static gint ett_nr_rrc_UECapabilityInformation = -1; +static gint ett_nr_rrc_T_criticalExtensions_30 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_30 = -1; +static gint ett_nr_rrc_UECapabilityInformation_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_31 = -1; +static gint ett_nr_rrc_ULInformationTransfer = -1; +static gint ett_nr_rrc_T_criticalExtensions_31 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_31 = -1; +static gint ett_nr_rrc_ULInformationTransfer_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_32 = -1; +static gint ett_nr_rrc_SIB2 = -1; +static gint ett_nr_rrc_T_cellReselectionInfoCommon = -1; +static gint ett_nr_rrc_T_speedStateReselectionPars = -1; +static gint ett_nr_rrc_T_q_HystSF = -1; +static gint ett_nr_rrc_T_cellReselectionServingFreqInfo = -1; +static gint ett_nr_rrc_T_intraFreqCellReselectionInfo = -1; +static gint ett_nr_rrc_SIB3 = -1; +static gint ett_nr_rrc_IntraFreqNeighCellList = -1; +static gint ett_nr_rrc_IntraFreqNeighCellInfo = -1; +static gint ett_nr_rrc_IntraFreqBlackCellList = -1; +static gint ett_nr_rrc_SIB4 = -1; +static gint ett_nr_rrc_InterFreqCarrierFreqList = -1; +static gint ett_nr_rrc_InterFreqCarrierFreqInfo = -1; +static gint ett_nr_rrc_T_threshX_Q = -1; +static gint ett_nr_rrc_InterFreqNeighCellList = -1; +static gint ett_nr_rrc_InterFreqNeighCellInfo = -1; +static gint ett_nr_rrc_InterFreqBlackCellList = -1; +static gint ett_nr_rrc_SIB5 = -1; +static gint ett_nr_rrc_CarrierFreqListEUTRA = -1; +static gint ett_nr_rrc_CarrierFreqEUTRA = -1; +static gint ett_nr_rrc_T_threshX_Q_01 = -1; +static gint ett_nr_rrc_EUTRA_FreqBlackCellList = -1; +static gint ett_nr_rrc_EUTRA_FreqNeighCellList = -1; +static gint ett_nr_rrc_EUTRA_FreqNeighCellInfo = -1; +static gint ett_nr_rrc_SIB6 = -1; +static gint ett_nr_rrc_SIB7 = -1; +static gint ett_nr_rrc_SIB8 = -1; +static gint ett_nr_rrc_SIB9 = -1; +static gint ett_nr_rrc_T_timeInfo = -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_T_ra_OccasionList = -1; +static gint ett_nr_rrc_BSR_Config = -1; static gint ett_nr_rrc_BWP = -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_BWP_Uplink = -1; static gint ett_nr_rrc_BWP_UplinkCommon = -1; static gint ett_nr_rrc_T_rach_ConfigCommon = -1; @@ -2224,21 +3209,13 @@ 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_T_ra_OccasionList = -1; +static gint ett_nr_rrc_CellAccessRelatedInfo = -1; +static gint ett_nr_rrc_CellAccessRelatedInfo_EUTRA_5GC = -1; +static gint ett_nr_rrc_PLMN_IdentityList_EUTRA_5GC = -1; +static gint ett_nr_rrc_PLMN_Identity_EUTRA_5GC = -1; +static gint ett_nr_rrc_CellIdentity_EUTRA_5GC = -1; +static gint ett_nr_rrc_CellAccessRelatedInfo_EUTRA_EPC = -1; +static gint ett_nr_rrc_PLMN_IdentityList_EUTRA_EPC = -1; static gint ett_nr_rrc_CellGroupConfig = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_BearerConfig = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentity = -1; @@ -2249,9 +3226,11 @@ 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_CGI_Info = -1; +static gint ett_nr_rrc_T_noSIB1 = -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_type1_01 = -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; @@ -2270,6 +3249,7 @@ 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_ConnEstFailureControl = -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; @@ -2325,6 +3305,7 @@ static gint ett_nr_rrc_T_csi_ReportingBand = -1; static gint ett_nr_rrc_T_groupBasedBeamReporting = -1; static gint ett_nr_rrc_T_disabled = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks = -1; +static gint ett_nr_rrc_T_semiPersistentOnPUSCH_v1530 = -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; @@ -2372,16 +3353,34 @@ static gint ett_nr_rrc_T_phaseTrackingRS_01 = -1; static gint ett_nr_rrc_T_transformPrecodingDisabled = -1; static gint ett_nr_rrc_T_transformPrecodingEnabled = -1; static gint ett_nr_rrc_DownlinkConfigCommon = -1; +static gint ett_nr_rrc_DownlinkConfigCommonSIB = -1; +static gint ett_nr_rrc_BCCH_Config = -1; +static gint ett_nr_rrc_PCCH_Config = -1; +static gint ett_nr_rrc_T_nAndPagingFrameOffset = -1; +static gint ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO = -1; +static gint ett_nr_rrc_T_sCS15KHZoneT = -1; +static gint ett_nr_rrc_T_sCS30KHZoneT_SCS15KHZhalfT = -1; +static gint ett_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT = -1; +static gint ett_nr_rrc_T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT = -1; +static gint ett_nr_rrc_T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT = -1; +static gint ett_nr_rrc_T_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT = -1; +static gint ett_nr_rrc_T_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT = -1; +static gint ett_nr_rrc_T_sCS120KHZoneSixteenthT = -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_DRX_Config = -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_FrequencyInfoDL = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier = -1; +static gint ett_nr_rrc_FrequencyInfoDL_SIB = -1; static gint ett_nr_rrc_FrequencyInfoUL = -1; +static gint ett_nr_rrc_FrequencyInfoUL_SIB = -1; +static gint ett_nr_rrc_LocationMeasurementInfo = -1; +static gint ett_nr_rrc_EUTRA_RSTD_InfoList = -1; +static gint ett_nr_rrc_EUTRA_RSTD_Info = -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; @@ -2389,16 +3388,7 @@ 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_DRX_Config = -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_TAG_Config = -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 = -1; -static gint ett_nr_rrc_TAG = -1; -static gint ett_nr_rrc_BSR_Config = -1; +static gint ett_nr_rrc_T_dataInactivityTimer_v1530 = -1; static gint ett_nr_rrc_MeasConfig = -1; static gint ett_nr_rrc_T_s_MeasureConfig = -1; static gint ett_nr_rrc_MeasObjectToRemoveList = -1; @@ -2406,11 +3396,21 @@ 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_T_gapFR1 = -1; +static gint ett_nr_rrc_T_gapUE = -1; static gint ett_nr_rrc_GapConfig = -1; static gint ett_nr_rrc_MeasGapSharingConfig = -1; static gint ett_nr_rrc_T_gapSharingFR2 = -1; +static gint ett_nr_rrc_T_gapSharingFR1 = -1; +static gint ett_nr_rrc_T_gapSharingUE = -1; static gint ett_nr_rrc_MeasIdToAddModList = -1; static gint ett_nr_rrc_MeasIdToAddMod = -1; +static gint ett_nr_rrc_MeasObjectEUTRA = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_Cell = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_BlackCell = -1; +static gint ett_nr_rrc_EUTRA_CellIndexList = -1; +static gint ett_nr_rrc_EUTRA_Cell = -1; +static gint ett_nr_rrc_EUTRA_BlackCell = -1; static gint ett_nr_rrc_MeasObjectNR = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement = -1; static gint ett_nr_rrc_ReferenceSignalConfig = -1; @@ -2418,13 +3418,14 @@ 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_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; static gint ett_nr_rrc_MeasObjectToAddModList = -1; static gint ett_nr_rrc_MeasObjectToAddMod = -1; static gint ett_nr_rrc_T_measObject = -1; +static gint ett_nr_rrc_MeasResultCellListSFTD = -1; +static gint ett_nr_rrc_MeasResultCellSFTD = -1; static gint ett_nr_rrc_MeasResults = -1; static gint ett_nr_rrc_T_measResultNeighCells = -1; static gint ett_nr_rrc_MeasResultServMOList = -1; @@ -2434,7 +3435,15 @@ 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_MeasResultListEUTRA = -1; +static gint ett_nr_rrc_MeasResultEUTRA = -1; +static gint ett_nr_rrc_T_cgi_Info = -1; +static gint ett_nr_rrc_T_cgi_info_EPC = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC = -1; +static gint ett_nr_rrc_MultiBandInfoListEUTRA = -1; static gint ett_nr_rrc_MeasQuantityResults = -1; +static gint ett_nr_rrc_MeasQuantityResultsEUTRA = -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; @@ -2442,8 +3451,7 @@ static gint ett_nr_rrc_ResultsPerCSI_RS_Index = -1; static gint ett_nr_rrc_MeasResultSCG_Failure = -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_MobilityStateParameters = -1; static gint ett_nr_rrc_MultiFrequencyBandListNR = -1; static gint ett_nr_rrc_NZP_CSI_RS_Resource = -1; static gint ett_nr_rrc_NZP_CSI_RS_ResourceSet = -1; @@ -2463,6 +3471,7 @@ static gint ett_nr_rrc_T_tpc_PUCCH = -1; static gint ett_nr_rrc_T_tpc_SRS = -1; static gint ett_nr_rrc_PDCCH_ConfigCommon = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpace = -1; +static gint ett_nr_rrc_PDCCH_ConfigSIB1 = -1; static gint ett_nr_rrc_PDCCH_ServingCellConfig = -1; static gint ett_nr_rrc_T_slotFormatIndicator = -1; static gint ett_nr_rrc_PDCP_Config = -1; @@ -2498,17 +3507,23 @@ static gint ett_nr_rrc_T_codeBlockGroupTransmission = -1; static gint ett_nr_rrc_PDSCH_CodeBlockGroupTransmission = -1; static gint ett_nr_rrc_PDSCH_TimeDomainResourceAllocationList = -1; static gint ett_nr_rrc_PDSCH_TimeDomainResourceAllocation = -1; +static gint ett_nr_rrc_PHR_Config = -1; static gint ett_nr_rrc_PhysicalCellGroupConfig = -1; static gint ett_nr_rrc_T_cs_RNTI = -1; +static gint ett_nr_rrc_PLMN_Identity = -1; +static gint ett_nr_rrc_MCC = -1; +static gint ett_nr_rrc_MNC = -1; +static gint ett_nr_rrc_PLMN_IdentityInfoList = -1; +static gint ett_nr_rrc_PLMN_IdentityInfo = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_Identity = -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_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_transformPrecoderDisabled = -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_transformPrecoderEnabled = -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_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet = -1; @@ -2526,9 +3541,6 @@ 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_T_srs = -1; static gint ett_nr_rrc_PUCCH_ResourceSet = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId = -1; static gint ett_nr_rrc_PUCCH_Resource = -1; @@ -2544,7 +3556,10 @@ 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 = -1; +static gint ett_nr_rrc_PUCCH_SpatialRelationInfo = -1; static gint ett_nr_rrc_T_referenceSignal_01 = -1; +static gint ett_nr_rrc_T_srs = -1; static gint ett_nr_rrc_PUCCH_TPC_CommandConfig = -1; static gint ett_nr_rrc_PUSCH_Config = -1; static gint ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA = -1; @@ -2582,7 +3597,6 @@ 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_RACH_ConfigGeneric = -1; static gint ett_nr_rrc_RACH_ConfigDedicated = -1; static gint ett_nr_rrc_CFRA = -1; static gint ett_nr_rrc_T_occasions = -1; @@ -2594,6 +3608,7 @@ static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxRA_CSIRS_Resources_OF_CFRA_CSIRS_Resou 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_01 = -1; +static gint ett_nr_rrc_RACH_ConfigGeneric = -1; static gint ett_nr_rrc_RA_Prioritization = -1; static gint ett_nr_rrc_RadioBearerConfig = -1; static gint ett_nr_rrc_SRB_ToAddModList = -1; @@ -2614,10 +3629,20 @@ 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_ReportConfigInterRAT = -1; static gint ett_nr_rrc_T_reportType = -1; -static gint ett_nr_rrc_EventTriggerConfig = -1; +static gint ett_nr_rrc_ReportCGI_EUTRA = -1; +static gint ett_nr_rrc_EventTriggerConfigInterRAT = -1; static gint ett_nr_rrc_T_eventId = -1; +static gint ett_nr_rrc_T_eventB1 = -1; +static gint ett_nr_rrc_T_eventB2 = -1; +static gint ett_nr_rrc_PeriodicalReportConfigInterRAT = -1; +static gint ett_nr_rrc_MeasTriggerQuantityEUTRA = -1; +static gint ett_nr_rrc_ReportConfigNR = -1; +static gint ett_nr_rrc_T_reportType_01 = -1; +static gint ett_nr_rrc_ReportCGI = -1; +static gint ett_nr_rrc_EventTriggerConfig = -1; +static gint ett_nr_rrc_T_eventId_01 = -1; static gint ett_nr_rrc_T_eventA1 = -1; static gint ett_nr_rrc_T_eventA2 = -1; static gint ett_nr_rrc_T_eventA3 = -1; @@ -2676,8 +3701,19 @@ 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_T_carrierSwitching = -1; static gint ett_nr_rrc_ServingCellConfigCommon = -1; -static gint ett_nr_rrc_T_ssb_PositionsInBurst_01 = -1; +static gint ett_nr_rrc_T_ssb_PositionsInBurst = -1; static gint ett_nr_rrc_T_lte_CRS_ToMatchAround = -1; +static gint ett_nr_rrc_ServingCellConfigCommonSIB = -1; +static gint ett_nr_rrc_T_ssb_PositionsInBurst_01 = -1; +static gint ett_nr_rrc_SI_SchedulingInfo = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo = -1; +static gint ett_nr_rrc_SchedulingInfo = -1; +static gint ett_nr_rrc_SIB_Mapping = -1; +static gint ett_nr_rrc_SIB_TypeInfo = -1; +static gint ett_nr_rrc_SI_RequestConfig = -1; +static gint ett_nr_rrc_T_rach_OccasionsSI = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SI_RequestResources = -1; +static gint ett_nr_rrc_SI_RequestResources = -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; @@ -2685,8 +3721,17 @@ 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_S_NSSAI = -1; +static gint ett_nr_rrc_SpeedStateScaleFactors = -1; static gint ett_nr_rrc_SS_RSSI_Measurement = -1; static gint ett_nr_rrc_SPS_Config = -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_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_SRS_Config = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet = -1; @@ -2696,6 +3741,7 @@ 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_T_resourceType_01 = -1; static gint ett_nr_rrc_T_aperiodic_01 = -1; +static gint ett_nr_rrc_T_aperiodicSRS_ResourceTriggerList_v1530 = -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_pathlossReferenceRS = -1; @@ -2713,18 +3759,16 @@ static gint ett_nr_rrc_SRS_SpatialRelationInfo = -1; static gint ett_nr_rrc_T_referenceSignal_03 = -1; static gint ett_nr_rrc_T_srs_01 = -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_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_SRS_TPC_CommandConfig = -1; static gint ett_nr_rrc_SSB_MTC = -1; static gint ett_nr_rrc_T_periodicityAndOffset_01 = -1; static gint ett_nr_rrc_SSB_MTC2 = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId = -1; +static gint ett_nr_rrc_SSB_ToMeasure = -1; +static gint ett_nr_rrc_TAG_Config = -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 = -1; +static gint ett_nr_rrc_TAG = -1; static gint ett_nr_rrc_TCI_State = -1; static gint ett_nr_rrc_QCL_Info = -1; static gint ett_nr_rrc_T_referenceSignal_04 = -1; @@ -2736,7 +3780,21 @@ 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_UAC_BarringInfoSetList = -1; +static gint ett_nr_rrc_UAC_BarringInfoSet = -1; +static gint ett_nr_rrc_UAC_BarringPerCatList = -1; +static gint ett_nr_rrc_UAC_BarringPerCat = -1; +static gint ett_nr_rrc_UAC_BarringPerPLMN_List = -1; +static gint ett_nr_rrc_UAC_BarringPerPLMN = -1; +static gint ett_nr_rrc_T_uac_ACBarringListType = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_maxAccessCat_1_OF_UAC_BarringInfoSetIndex = -1; +static gint ett_nr_rrc_UE_TimersAndConstants = -1; static gint ett_nr_rrc_UplinkConfigCommon = -1; +static gint ett_nr_rrc_UplinkConfigCommonSIB = -1; +static gint ett_nr_rrc_UplinkTxDirectCurrentList = -1; +static gint ett_nr_rrc_UplinkTxDirectCurrentCell = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP = -1; +static gint ett_nr_rrc_UplinkTxDirectCurrentBWP = -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; @@ -2746,8 +3804,8 @@ static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxSimultaneousBands_OF_BandParameters = static gint ett_nr_rrc_BandParameters = -1; static gint ett_nr_rrc_T_eutra = -1; static gint ett_nr_rrc_T_nr = -1; -static gint ett_nr_rrc_CA_ParametersNR = -1; static gint ett_nr_rrc_CA_ParametersEUTRA = -1; +static gint ett_nr_rrc_CA_ParametersNR = -1; static gint ett_nr_rrc_FeatureSetCombination = -1; static gint ett_nr_rrc_FeatureSetsPerBand = -1; static gint ett_nr_rrc_FeatureSet = -1; @@ -2767,49 +3825,37 @@ static gint ett_nr_rrc_TypeI_MultiPanelCodebook = -1; static gint ett_nr_rrc_TypeII_Codebook = -1; static gint ett_nr_rrc_TypeII_CodebookPortSelection = -1; static gint ett_nr_rrc_FeatureSetDownlinkPerCC = -1; +static gint ett_nr_rrc_FeatureSets = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC = -1; static gint ett_nr_rrc_FeatureSetUplink = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetUplinkPerCC_Id = -1; static gint ett_nr_rrc_T_pusch_DifferentTB_PerSlot = -1; static gint ett_nr_rrc_CSI_ReportFramework = -1; static gint ett_nr_rrc_FeatureSetUplinkPerCC = -1; static gint ett_nr_rrc_T_mimo_CB_PUSCH = -1; -static gint ett_nr_rrc_FeatureSets = -1; -static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink = -1; -static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC = -1; -static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink = -1; -static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC = -1; static gint ett_nr_rrc_FreqBandList = -1; static gint ett_nr_rrc_FreqBandInformation = -1; static gint ett_nr_rrc_FreqBandInformationEUTRA = -1; static gint ett_nr_rrc_FreqBandInformationNR = -1; -static gint ett_nr_rrc_MRDC_Parameters = -1; -static gint ett_nr_rrc_SupportedBandwidth = -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_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_09 = -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_GeneralParametersMRDC_XDD_Diff = -1; -static gint ett_nr_rrc_RF_ParametersMRDC = -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_UE_NR_Capability = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_10 = -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_SEQUENCE_SIZE_1_maxBands_OF_BandNR = -1; -static gint ett_nr_rrc_BandNR = -1; +static gint ett_nr_rrc_InterRAT_Parameters = -1; +static gint ett_nr_rrc_EUTRA_Parameters = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_FreqBandIndicatorEUTRA = -1; +static gint ett_nr_rrc_EUTRA_ParametersCommon = -1; +static gint ett_nr_rrc_EUTRA_ParametersXDD_Diff = -1; +static gint ett_nr_rrc_MAC_Parameters = -1; +static gint ett_nr_rrc_MAC_ParametersCommon = -1; +static gint ett_nr_rrc_MAC_ParametersXDD_Diff = -1; +static gint ett_nr_rrc_MeasAndMobParameters = -1; +static gint ett_nr_rrc_MeasAndMobParametersCommon = -1; +static gint ett_nr_rrc_MeasAndMobParametersXDD_Diff = -1; +static gint ett_nr_rrc_MeasAndMobParametersFRX_Diff = -1; +static gint ett_nr_rrc_MeasAndMobParametersMRDC = -1; +static gint ett_nr_rrc_MeasAndMobParametersMRDC_Common = -1; +static gint ett_nr_rrc_MeasAndMobParametersMRDC_XDD_Diff = -1; +static gint ett_nr_rrc_MeasAndMobParametersMRDC_FRX_Diff = -1; static gint ett_nr_rrc_MIMO_ParametersPerBand = -1; static gint ett_nr_rrc_T_tci_StatePDSCH = -1; static gint ett_nr_rrc_T_maxNumberRxTxBeamSwitchDL = -1; @@ -2823,27 +3869,99 @@ static gint ett_nr_rrc_PTRS_DensityRecommendationDL = -1; static gint ett_nr_rrc_PTRS_DensityRecommendationUL = -1; static gint ett_nr_rrc_SRS_Resources = -1; static gint ett_nr_rrc_SRS_TxSwitch = -1; +static gint ett_nr_rrc_MRDC_Parameters = -1; static gint ett_nr_rrc_PDCP_Parameters = -1; static gint ett_nr_rrc_T_supportedROHC_Profiles = -1; +static gint ett_nr_rrc_PDCP_ParametersMRDC = -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_Phy_ParametersMRDC = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry = -1; +static gint ett_nr_rrc_NAICS_Capability_Entry = -1; +static gint ett_nr_rrc_RF_Parameters = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR = -1; +static gint ett_nr_rrc_BandNR = -1; +static gint ett_nr_rrc_T_channelBWs_DL_v1530 = -1; +static gint ett_nr_rrc_T_fr1 = -1; +static gint ett_nr_rrc_T_fr2 = -1; +static gint ett_nr_rrc_T_channelBWs_UL_v1530 = -1; +static gint ett_nr_rrc_T_fr1_01 = -1; +static gint ett_nr_rrc_T_fr2_01 = -1; +static gint ett_nr_rrc_RF_ParametersMRDC = -1; static gint ett_nr_rrc_RLC_Parameters = -1; -static gint ett_nr_rrc_MAC_Parameters = -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_MeasParametersCommon = -1; -static gint ett_nr_rrc_MeasParametersXDD_Diff = -1; -static gint ett_nr_rrc_MeasParametersFRX_Diff = -1; +static gint ett_nr_rrc_SupportedBandwidth = -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_CapabilityRAT_RequestList = -1; +static gint ett_nr_rrc_UE_CapabilityRAT_Request = -1; +static gint ett_nr_rrc_UE_CapabilityRequestFilterNR = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_33 = -1; +static gint ett_nr_rrc_UE_MRDC_Capability = -1; +static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_34 = -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_GeneralParametersMRDC_XDD_Diff = -1; +static gint ett_nr_rrc_UE_NR_Capability = -1; +static gint ett_nr_rrc_UE_NR_Capability_1530 = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_35 = -1; +static gint ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode = -1; +static gint ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode_1530 = -1; +static gint ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode = -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_subframeAllocation1 = -1; +static gint ett_nr_rrc_T_subframeAllocation2 = -1; +static gint ett_nr_rrc_EUTRA_MultiBandInfoList = -1; +static gint ett_nr_rrc_EUTRA_MultiBandInfo = -1; +static gint ett_nr_rrc_EUTRA_NS_PmaxList = -1; +static gint ett_nr_rrc_EUTRA_NS_PmaxValue = -1; +static gint ett_nr_rrc_EUTRA_PhysCellIdRange = -1; +static gint ett_nr_rrc_MultiFrequencyBandListNR_SIB = -1; +static gint ett_nr_rrc_NR_MultiBandInfo = -1; +static gint ett_nr_rrc_NR_NS_PmaxList = -1; +static gint ett_nr_rrc_NR_NS_PmaxValue = -1; +static gint ett_nr_rrc_OtherConfig = -1; +static gint ett_nr_rrc_T_delayBudgetReportingConfig = -1; +static gint ett_nr_rrc_T_setup = -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; +#line 90 "./asn1/nr-rrc/packet-nr-rrc-template.c" +static gint ett_nr_rrc_DedicatedNAS_Message = -1; +static gint ett_rr_rrc_targetRAT_MessageContainer = -1; +static gint ett_nr_rrc_nas_Container = -1; +static gint ett_nr_rrc_serialNumber = -1; +static gint ett_nr_rrc_warningType = -1; +static gint ett_nr_rrc_dataCodingScheme = -1; +static gint ett_nr_rrc_sib7_fragment = -1; +static gint ett_nr_rrc_sib7_fragments = -1; +static gint ett_nr_rrc_sib8_fragment = -1; +static gint ett_nr_rrc_sib8_fragments = -1; +static gint ett_nr_rrc_warningMessageSegment = -1; +static gint ett_nr_rrc_timeInfo = -1; +static gint ett_nr_rrc_capabilityRequestFilter = -1; + +static expert_field ei_nr_rrc_number_pages_le15 = EI_INIT; + +static const unit_name_string units_periodicities = { " periodicity", " periodicities" }; +static const unit_name_string units_prbs = { " PRB", " PRBs" }; +static const unit_name_string units_slots = { " slot", " slots" }; typedef struct { guint8 rat_type; + guint8 target_rat_type; + guint16 message_identifier; + guint8 warning_message_segment_type; + guint8 warning_message_segment_number; } nr_rrc_private_data_t; /* Helper function to get or create a struct that will be actx->private_data */ -static nr_rrc_private_data_t* nr_rrc_get_private_data(asn1_ctx_t *actx) +static nr_rrc_private_data_t* +nr_rrc_get_private_data(asn1_ctx_t *actx) { if (actx->private_data == NULL) { actx->private_data = wmem_new0(wmem_packet_scope(), nr_rrc_private_data_t); @@ -2851,16 +3969,231 @@ static nr_rrc_private_data_t* nr_rrc_get_private_data(asn1_ctx_t *actx) return (nr_rrc_private_data_t*)actx->private_data; } -static guint8 private_data_get_rat_type(asn1_ctx_t *actx) +static void +nr_rrc_call_dissector(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +{ + TRY { + call_dissector(handle, tvb, pinfo, tree); + } + CATCH_BOUNDS_ERRORS { + show_exception(tvb, pinfo, tree, EXCEPT_CODE, GET_MESSAGE); + } + ENDTRY; +} + +/* Forward declarations */ +static int dissect_UE_CapabilityRequestFilterNR_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); + +static void +nr_rrc_q_RxLevMin_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%u dB (%u)", 2*v, v); +} + +static const value_string nr_rrc_serialNumber_gs_vals[] = { + { 0, "Display mode immediate, cell wide"}, + { 1, "Display mode normal, PLMN wide"}, + { 2, "Display mode normal, tracking area wide"}, + { 3, "Display mode normal, cell wide"}, + { 0, NULL}, +}; + +static const value_string nr_rrc_warningType_vals[] = { + { 0, "Earthquake"}, + { 1, "Tsunami"}, + { 2, "Earthquake and Tsunami"}, + { 3, "Test"}, + { 4, "Other"}, + { 0, NULL}, +}; + +static const fragment_items nr_rrc_sib7_frag_items = { + &ett_nr_rrc_sib7_fragment, + &ett_nr_rrc_sib7_fragments, + &hf_nr_rrc_sib7_fragments, + &hf_nr_rrc_sib7_fragment, + &hf_nr_rrc_sib7_fragment_overlap, + &hf_nr_rrc_sib7_fragment_overlap_conflict, + &hf_nr_rrc_sib7_fragment_multiple_tails, + &hf_nr_rrc_sib7_fragment_too_long_fragment, + &hf_nr_rrc_sib7_fragment_error, + &hf_nr_rrc_sib7_fragment_count, + &hf_nr_rrc_sib7_reassembled_in, + &hf_nr_rrc_sib7_reassembled_length, + &hf_nr_rrc_sib7_reassembled_data, + "SIB7 warning message segments" +}; + +static const fragment_items nr_rrc_sib8_frag_items = { + &ett_nr_rrc_sib8_fragment, + &ett_nr_rrc_sib8_fragments, + &hf_nr_rrc_sib8_fragments, + &hf_nr_rrc_sib8_fragment, + &hf_nr_rrc_sib8_fragment_overlap, + &hf_nr_rrc_sib8_fragment_overlap_conflict, + &hf_nr_rrc_sib8_fragment_multiple_tails, + &hf_nr_rrc_sib8_fragment_too_long_fragment, + &hf_nr_rrc_sib8_fragment_error, + &hf_nr_rrc_sib8_fragment_count, + &hf_nr_rrc_sib8_reassembled_in, + &hf_nr_rrc_sib8_reassembled_length, + &hf_nr_rrc_sib8_reassembled_data, + "SIB8 warning message segments" +}; + +static void +dissect_nr_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dataCodingScheme) +{ + guint32 offset; + guint8 nb_of_pages, length, *str; + proto_item *ti; + tvbuff_t *cb_data_page_tvb, *cb_data_tvb; + int i; + + nb_of_pages = tvb_get_guint8(warning_msg_seg_tvb, 0); + ti = proto_tree_add_uint(tree, hf_nr_rrc_warningMessageSegment_nb_pages, warning_msg_seg_tvb, 0, 1, nb_of_pages); + if (nb_of_pages > 15) { + expert_add_info_format(pinfo, ti, &ei_nr_rrc_number_pages_le15, + "Number of pages should be <=15 (found %u)", nb_of_pages); + nb_of_pages = 15; + } + for (i = 0, offset = 1; i < nb_of_pages; i++) { + length = tvb_get_guint8(warning_msg_seg_tvb, offset+82); + cb_data_page_tvb = tvb_new_subset_length(warning_msg_seg_tvb, offset, length); + cb_data_tvb = dissect_cbs_data(dataCodingScheme, cb_data_page_tvb, tree, pinfo, 0); + if (cb_data_tvb) { + str = tvb_get_string_enc(wmem_packet_scope(), cb_data_tvb, 0, tvb_reported_length(cb_data_tvb), ENC_UTF_8|ENC_NA); + proto_tree_add_string_format(tree, hf_nr_rrc_warningMessageSegment_decoded_page, warning_msg_seg_tvb, offset, 83, + str, "Decoded Page %u: %s", i+1, str); + } + offset += 83; + } +} + +static const value_string nr_rrc_daylightSavingTime_vals[] = { + { 0, "No adjustment for Daylight Saving Time"}, + { 1, "+1 hour adjustment for Daylight Saving Time"}, + { 2, "+2 hours adjustment for Daylight Saving Time"}, + { 3, "Reserved"}, + { 0, NULL}, +}; + +static void +nr_rrc_localTimeOffset_fmt(gchar *s, guint32 v) +{ + gint32 time_offset = (gint32) v; + + g_snprintf(s, ITEM_LABEL_LENGTH, "UTC time %c %dhr %dmin (%d)", + (time_offset < 0) ? '-':'+', abs(time_offset) >> 2, + (abs(time_offset) & 0x03) * 15, time_offset); +} + +static void +nr_rrc_drx_SlotOffset_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%g ms (%u)", 1./32 * v, v); +} + +static void +nr_rrc_Hysteresis_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%gdB (%u)", 0.5 * v, v); +} + +static void +nr_rrc_msg3_DeltaPreamble_fmt(gchar *s, guint32 v) +{ + gint32 d = (gint32)v; + + g_snprintf(s, ITEM_LABEL_LENGTH, "%ddB (%d)", 2 * d, d); +} + +static void +nr_rrc_Q_RxLevMin_fmt(gchar *s, guint32 v) +{ + gint32 d = (gint32)v; + + g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%d)", 2 * d, d); +} + +static void +nr_rrc_RSRP_RangeEUTRA_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "RSRP < -140dBm (0)"); + } else if (v < 97) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= RSRP < %ddBm (%u)", v-141, v-140, v); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "-44dBm <= RSRP (97)"); + } +} + +static void +nr_rrc_RSRQ_RangeEUTRA_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "RSRQ < -19.5dB (0)"); + } else if (v < 34) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= RSRQ < %.1fdB (%u)", ((float)v/2)-20, (((float)v+1)/2)-20, v); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "-3dB <= RSRQ (34)"); + } +} + +static void +nr_rrc_SINR_RangeEUTRA_fmt(gchar *s, guint32 v) { - nr_rrc_private_data_t *private_data = (nr_rrc_private_data_t*)nr_rrc_get_private_data(actx); - return private_data->rat_type; + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SINR < -23dB (0)"); + } else if (v == 127) { + g_snprintf(s, ITEM_LABEL_LENGTH, "40dB <= SINR (127)"); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= SINR < %.1fdB (%u)", (((float)v-1)/2)-23, ((float)v/2)-23, v); + } } -static void private_data_set_rat_type(asn1_ctx_t *actx, guint8 rat_type) +static void +nr_rrc_ReselectionThreshold_fmt(gchar *s, guint32 v) { - nr_rrc_private_data_t *private_data = (nr_rrc_private_data_t*)nr_rrc_get_private_data(actx); - private_data->rat_type = rat_type; + g_snprintf(s, ITEM_LABEL_LENGTH, "%udB (%u)", 2 * v, v); +} + +static void +nr_rrc_RSRP_Range_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRP < -156dBm (0)"); + } else if (v < 126) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%ddBm <= SS-RSRP < %ddBm (%u)", v-157, v-156, v); + } else if (v == 126) { + g_snprintf(s, ITEM_LABEL_LENGTH, "-31dBm <= SS-RSRP (126)"); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "infinity (127)"); + } +} + +static void +nr_rrc_RSRQ_Range_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRQ < -43dB (0)"); + } else if (v < 127) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= SS-RSRQ < %.1fdB (%u)", (((float)v-1)/2)-43, ((float)v/2)-43, v); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "-20dB <= SS-RSRQ (127)"); + } +} + +static void +nr_rrc_SINR_Range_fmt(gchar *s, guint32 v) +{ + if (v == 0) { + g_snprintf(s, ITEM_LABEL_LENGTH, "SS-SINR < -23dB (0)"); + } else if (v < 127) { + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fdB <= SS-SINR < %.1fdB (%u)", (((float)v-1)/2)-23, ((float)v/2)-23, v); + } else { + g_snprintf(s, ITEM_LABEL_LENGTH, "40dB <= SS-SINR (127)"); + } } @@ -2869,6 +4202,7 @@ static void private_data_set_rat_type(asn1_ctx_t *actx, guint8 rat_type) /*--- PDUs declarations ---*/ static int dissect_MeasResultList2NR_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_SystemInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); @@ -2996,7 +4330,7 @@ dissect_nr_rrc_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac 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_eutra, "eutra" }, { RAT_Type_spare1, "spare1" }, { 0, NULL } }; @@ -3005,10 +4339,11 @@ static const value_string nr_rrc_RAT_Type_vals[] = { 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; + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); 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); + nr_priv->rat_type = (guint8)rat_type; return offset; @@ -3018,27 +4353,32 @@ dissect_nr_rrc_RAT_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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; + 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) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_UE_CapabilityRAT_Container); - switch(private_data_get_rat_type(actx)){ + switch(nr_priv->rat_type){ 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; + case RAT_Type_eutra: + dissect_lte_rrc_UE_EUTRA_Capability_PDU(ue_cap_tvb, actx->pinfo, subtree, NULL); + break; default: break; } } + return offset; } @@ -3051,8 +4391,9 @@ static const per_sequence_t UE_CapabilityRAT_Container_sequence[] = { 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_) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); /* Initialise to invalid value */ - private_data_set_rat_type(actx, 0xFF); + nr_priv->rat_type = 0xFF; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_nr_rrc_UE_CapabilityRAT_Container, UE_CapabilityRAT_Container_sequence); @@ -3078,7 +4419,7 @@ dissect_nr_rrc_UE_CapabilityRAT_ContainerList(tvbuff_t *tvb _U_, int offset _U_, static int -dissect_nr_rrc_T_sourceConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_rrcReconfiguration(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_RRCReconfiguration_PDU); @@ -3086,6 +4427,20 @@ dissect_nr_rrc_T_sourceConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } +static const per_sequence_t AS_Config_sequence[] = { + { &hf_nr_rrc_rrcReconfiguration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_rrcReconfiguration }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_AS_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_AS_Config, AS_Config_sequence); + + return offset; +} + + static const value_string nr_rrc_T_ue_InactiveTime_vals[] = { { 0, "s1" }, { 1, "s2" }, @@ -3154,6 +4509,8 @@ static const value_string nr_rrc_T_ue_InactiveTime_vals[] = { { 0, NULL } }; +static value_string_ext nr_rrc_T_ue_InactiveTime_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_ue_InactiveTime_vals); + static int dissect_nr_rrc_T_ue_InactiveTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -3168,7 +4525,7 @@ dissect_nr_rrc_T_ue_InactiveTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * 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_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 3279165U, NULL, FALSE); + 0U, maxNARFCN, NULL, FALSE); return offset; } @@ -3249,7 +4606,7 @@ dissect_nr_rrc_T_cellResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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, - 0U, 63U, NULL, FALSE); + 0U, maxNrofSSBs_1, NULL, FALSE); return offset; } @@ -3278,7 +4635,7 @@ 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); + 1, maxNrofIndexesToReport2, FALSE); return offset; } @@ -3317,7 +4674,7 @@ static int 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); + 1, maxNrofIndexesToReport2, FALSE); return offset; } @@ -3353,9 +4710,268 @@ dissect_nr_rrc_T_measResult(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } + +static int +dissect_nr_rrc_MCC_MNC_Digit(tvbuff_t *tvb _U_, int offset _U_, 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 const per_sequence_t MCC_sequence_of[1] = { + { &hf_nr_rrc_MCC_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MCC_MNC_Digit }, +}; + +static int +dissect_nr_rrc_MCC(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_MCC, MCC_sequence_of, + 3, 3, FALSE); + + return offset; +} + + +static const per_sequence_t MNC_sequence_of[1] = { + { &hf_nr_rrc_MNC_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MCC_MNC_Digit }, +}; + +static int +dissect_nr_rrc_MNC(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_MNC, MNC_sequence_of, + 2, 3, FALSE); + + return offset; +} + + +static const per_sequence_t PLMN_Identity_sequence[] = { + { &hf_nr_rrc_mcc , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MCC }, + { &hf_nr_rrc_mnc , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MNC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PLMN_Identity, PLMN_Identity_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_Identity_sequence_of[1] = { + { &hf_nr_rrc_plmn_IdentityList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PLMN_Identity }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_Identity, SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_Identity_sequence_of, + 1, maxPLMN, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_TrackingAreaCode(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 int +dissect_nr_rrc_RAN_AreaCode(tvbuff_t *tvb _U_, int offset _U_, 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_CellIdentity(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, + 36, 36, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_cellReservedForOperatorUse_vals[] = { + { 0, "reserved" }, + { 1, "notReserved" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_cellReservedForOperatorUse(tvbuff_t *tvb _U_, int offset _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 PLMN_IdentityInfo_sequence[] = { + { &hf_nr_rrc_plmn_IdentityList_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_Identity }, + { &hf_nr_rrc_trackingAreaCode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_TrackingAreaCode }, + { &hf_nr_rrc_ranac , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RAN_AreaCode }, + { &hf_nr_rrc_cellIdentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellIdentity }, + { &hf_nr_rrc_cellReservedForOperatorUse, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cellReservedForOperatorUse }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PLMN_IdentityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PLMN_IdentityInfo, PLMN_IdentityInfo_sequence); + + return offset; +} + + +static const per_sequence_t PLMN_IdentityInfoList_sequence_of[1] = { + { &hf_nr_rrc_PLMN_IdentityInfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PLMN_IdentityInfo }, +}; + +static int +dissect_nr_rrc_PLMN_IdentityInfoList(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_PLMN_IdentityInfoList, PLMN_IdentityInfoList_sequence_of, + 1, maxPLMN, 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_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 15U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_ControlResourceSetZero(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 15U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_SearchSpaceZero(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 15U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t PDCCH_ConfigSIB1_sequence[] = { + { &hf_nr_rrc_controlResourceSetZero, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ControlResourceSetZero }, + { &hf_nr_rrc_searchSpaceZero, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SearchSpaceZero }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PDCCH_ConfigSIB1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_ConfigSIB1, PDCCH_ConfigSIB1_sequence); + + return offset; +} + + +static const per_sequence_t T_noSIB1_sequence[] = { + { &hf_nr_rrc_ssb_SubcarrierOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_15 }, + { &hf_nr_rrc_pdcch_ConfigSIB1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PDCCH_ConfigSIB1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_noSIB1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_noSIB1, T_noSIB1_sequence); + + return offset; +} + + +static const per_sequence_t CGI_Info_sequence[] = { + { &hf_nr_rrc_plmn_IdentityInfoList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PLMN_IdentityInfoList }, + { &hf_nr_rrc_frequencyBandList_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MultiFrequencyBandListNR }, + { &hf_nr_rrc_noSIB1 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_noSIB1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_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_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CGI_Info, CGI_Info_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultNR_eag_1_sequence[] = { + { &hf_nr_rrc_cgi_Info , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CGI_Info }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasResultNR_eag_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_eag(tvb, offset, actx, tree, MeasResultNR_eag_1_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_measResult , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_measResult }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultNR_eag_1 }, { NULL, 0, 0, NULL } }; @@ -3383,10 +4999,10 @@ dissect_nr_rrc_MeasResultListNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a 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_measResultServingCell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasResultNR }, - { &hf_nr_rrc_measResultNeighCellListNR, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultListNR }, + { &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_measResultServingCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasResultNR }, + { &hf_nr_rrc_measResultNeighCellListNR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasResultListNR }, { NULL, 0, 0, NULL } }; @@ -3428,31 +5044,11 @@ dissect_nr_rrc_RRM_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } -static const value_string nr_rrc_ShortMAC_I_vals[] = { - { 0, "ffsTypeAndValue" }, - { 0, NULL } -}; - static int dissect_nr_rrc_ShortMAC_I(tvbuff_t *tvb _U_, int offset _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_CellIdentity_vals[] = { - { 0, "ffsTypeAndValue" }, - { 0, NULL } -}; - - -static int -dissect_nr_rrc_CellIdentity(tvbuff_t *tvb _U_, int offset _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); + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL, NULL); return offset; } @@ -3498,7 +5094,7 @@ dissect_nr_rrc_ReestabNCellInfoList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } -static const per_sequence_t T_reestablishmentInfo_sequence[] = { +static const per_sequence_t ReestablishmentInfo_sequence[] = { { &hf_nr_rrc_sourcePhysCellId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, { &hf_nr_rrc_targetCellShortMAC_I, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ShortMAC_I }, { &hf_nr_rrc_additionalReestabInfoList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ReestabNCellInfoList }, @@ -3506,9 +5102,9 @@ static const per_sequence_t T_reestablishmentInfo_sequence[] = { }; static int -dissect_nr_rrc_T_reestablishmentInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_ReestablishmentInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_reestablishmentInfo, T_reestablishmentInfo_sequence); + ett_nr_rrc_ReestablishmentInfo, ReestablishmentInfo_sequence); return offset; } @@ -3524,14 +5120,53 @@ dissect_nr_rrc_BandCombinationIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } -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_FeatureSetEntryIndex(tvbuff_t *tvb _U_, int offset _U_, 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, maxFeatureSetsPerBand, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex_sequence_of[1] = { + { &hf_nr_rrc_allowedFeatureSetsList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetEntryIndex }, }; static int -dissect_nr_rrc_BandCombinationIndexList(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_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex(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, + ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex, SEQUENCE_SIZE_1_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex_sequence_of, + 1, maxFeatureSetsPerBand, FALSE); + + return offset; +} + + +static const per_sequence_t BandCombinationInfo_sequence[] = { + { &hf_nr_rrc_bandCombinationIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationIndex }, + { &hf_nr_rrc_allowedFeatureSetsList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BandCombinationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BandCombinationInfo, BandCombinationInfo_sequence); + + return offset; +} + + +static const per_sequence_t BandCombinationInfoList_sequence_of[1] = { + { &hf_nr_rrc_BandCombinationInfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationInfo }, +}; + +static int +dissect_nr_rrc_BandCombinationInfoList(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_BandCombinationInfoList, BandCombinationInfoList_sequence_of, 1, maxBandComb, FALSE); return offset; @@ -3549,8 +5184,9 @@ dissect_nr_rrc_P_Max(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr 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_maxNR_FR1 , 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 }, + { &hf_nr_rrc_p_maxUE_FR1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, { NULL, 0, 0, NULL } }; @@ -3609,7 +5245,7 @@ dissect_nr_rrc_INTEGER_1_maxMeasIdentitiesMN(tvbuff_t *tvb _U_, int offset _U_, static const per_sequence_t ConfigRestrictInfoSCG_sequence[] = { - { &hf_nr_rrc_allowedBC_ListMRDC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationIndexList }, + { &hf_nr_rrc_allowedBC_ListMRDC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationInfoList }, { &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 }, @@ -3626,9 +5262,160 @@ dissect_nr_rrc_ConfigRestrictInfoSCG(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } +static const per_sequence_t SEQUENCE_SIZE_1_32_OF_CellIdentity_sequence_of[1] = { + { &hf_nr_rrc_ran_AreaCells_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellIdentity }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_32_OF_CellIdentity(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_CellIdentity, SEQUENCE_SIZE_1_32_OF_CellIdentity_sequence_of, + 1, 32, FALSE); + + return offset; +} + + +static const per_sequence_t PLMN_RAN_AreaCell_sequence[] = { + { &hf_nr_rrc_plmn_Identity, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PLMN_Identity }, + { &hf_nr_rrc_ran_AreaCells, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_32_OF_CellIdentity }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PLMN_RAN_AreaCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PLMN_RAN_AreaCell, PLMN_RAN_AreaCell_sequence); + + return offset; +} + + +static const per_sequence_t PLMN_RAN_AreaCellList_sequence_of[1] = { + { &hf_nr_rrc_PLMN_RAN_AreaCellList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PLMN_RAN_AreaCell }, +}; + +static int +dissect_nr_rrc_PLMN_RAN_AreaCellList(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_PLMN_RAN_AreaCellList, PLMN_RAN_AreaCellList_sequence_of, + 1, maxPLMNIdentities, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_32_OF_RAN_AreaCode_sequence_of[1] = { + { &hf_nr_rrc_ran_AreaCodeList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RAN_AreaCode }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_32_OF_RAN_AreaCode(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_RAN_AreaCode, SEQUENCE_SIZE_1_32_OF_RAN_AreaCode_sequence_of, + 1, 32, FALSE); + + return offset; +} + + +static const per_sequence_t RAN_AreaConfig_sequence[] = { + { &hf_nr_rrc_trackingAreaCode, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TrackingAreaCode }, + { &hf_nr_rrc_ran_AreaCodeList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_32_OF_RAN_AreaCode }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RAN_AreaConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RAN_AreaConfig, RAN_AreaConfig_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig_sequence_of[1] = { + { &hf_nr_rrc_ran_Area_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RAN_AreaConfig }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig(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_16_OF_RAN_AreaConfig, SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig_sequence_of, + 1, 16, FALSE); + + return offset; +} + + +static const per_sequence_t PLMN_RAN_AreaConfig_sequence[] = { + { &hf_nr_rrc_plmn_Identity, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PLMN_Identity }, + { &hf_nr_rrc_ran_Area , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PLMN_RAN_AreaConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PLMN_RAN_AreaConfig, PLMN_RAN_AreaConfig_sequence); + + return offset; +} + + +static const per_sequence_t PLMN_RAN_AreaConfigList_sequence_of[1] = { + { &hf_nr_rrc_PLMN_RAN_AreaConfigList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PLMN_RAN_AreaConfig }, +}; + +static int +dissect_nr_rrc_PLMN_RAN_AreaConfigList(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_PLMN_RAN_AreaConfigList, PLMN_RAN_AreaConfigList_sequence_of, + 1, maxPLMNIdentities, FALSE); + + return offset; +} + + +static const value_string nr_rrc_RAN_NotificationAreaInfo_vals[] = { + { 0, "cellList" }, + { 1, "ran-AreaConfigList" }, + { 0, NULL } +}; + +static const per_choice_t RAN_NotificationAreaInfo_choice[] = { + { 0, &hf_nr_rrc_cellList , ASN1_EXTENSION_ROOT , dissect_nr_rrc_PLMN_RAN_AreaCellList }, + { 1, &hf_nr_rrc_ran_AreaConfigList, ASN1_EXTENSION_ROOT , dissect_nr_rrc_PLMN_RAN_AreaConfigList }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_RAN_NotificationAreaInfo(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_RAN_NotificationAreaInfo, RAN_NotificationAreaInfo_choice, + NULL); + + return offset; +} + + +static const per_sequence_t AS_Context_eag_1_sequence[] = { + { &hf_nr_rrc_ran_NotificationAreaInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RAN_NotificationAreaInfo }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_AS_Context_eag_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_eag(tvb, offset, actx, tree, AS_Context_eag_1_sequence); + + return offset; +} + + static const per_sequence_t AS_Context_sequence[] = { - { &hf_nr_rrc_reestablishmentInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_reestablishmentInfo }, + { &hf_nr_rrc_reestablishmentInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ReestablishmentInfo }, { &hf_nr_rrc_configRestrictInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ConfigRestrictInfoSCG }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_AS_Context_eag_1 }, { NULL, 0, 0, NULL } }; @@ -3656,7 +5443,7 @@ dissect_nr_rrc_T_nonCriticalExtension_01(tvbuff_t *tvb _U_, int offset _U_, asn1 static const per_sequence_t HandoverPreparationInformation_IEs_sequence[] = { { &hf_nr_rrc_ue_CapabilityRAT_List, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UE_CapabilityRAT_ContainerList }, - { &hf_nr_rrc_sourceConfig , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sourceConfig }, + { &hf_nr_rrc_sourceConfig , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_AS_Config }, { &hf_nr_rrc_rrm_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RRM_Config }, { &hf_nr_rrc_as_Context , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_AS_Context }, { &hf_nr_rrc_nonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_01 }, @@ -3767,8 +5554,23 @@ dissect_nr_rrc_T_scg_RB_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } +static const per_sequence_t BandCombinationInfoSN_sequence[] = { + { &hf_nr_rrc_bandCombinationIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandCombinationIndex }, + { &hf_nr_rrc_requestedFeatureSets, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetEntryIndex }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BandCombinationInfoSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BandCombinationInfoSN, BandCombinationInfoSN_sequence); + + return offset; +} + + static const per_sequence_t ConfigRestrictModReqSCG_sequence[] = { - { &hf_nr_rrc_requestedBC_MRDC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationIndex }, + { &hf_nr_rrc_requestedBC_MRDC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationInfoSN }, { &hf_nr_rrc_requestedP_MaxFR1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, { NULL, 0, 0, NULL } }; @@ -4227,6 +6029,20 @@ dissect_nr_rrc_FR_InfoList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } +static const per_sequence_t CandidateServingFreqListNR_sequence_of[1] = { + { &hf_nr_rrc_CandidateServingFreqListNR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueNR }, +}; + +static int +dissect_nr_rrc_CandidateServingFreqListNR(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_CandidateServingFreqListNR, CandidateServingFreqListNR_sequence_of, + 1, maxFreqIDC_MRDC, FALSE); + + return offset; +} + + static const per_sequence_t T_nonCriticalExtension_02_sequence[] = { { NULL, 0, 0, NULL } }; @@ -4247,8 +6063,9 @@ static const per_sequence_t CG_Config_IEs_sequence[] = { { &hf_nr_rrc_drx_InfoSCG , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_DRX_Info }, { &hf_nr_rrc_candidateCellInfoListSN, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_candidateCellInfoListSN }, { &hf_nr_rrc_measConfigSN , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasConfigSN }, - { &hf_nr_rrc_selectedBandCombinationNR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationIndex }, + { &hf_nr_rrc_selectedBandCombinationNR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationInfoSN }, { &hf_nr_rrc_fr_InfoListSCG, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FR_InfoList }, + { &hf_nr_rrc_candidateServingFreqListNR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CandidateServingFreqListNR }, { &hf_nr_rrc_nonCriticalExtension_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_02 }, { NULL, 0, 0, NULL } }; @@ -4613,6 +6430,234 @@ dissect_nr_rrc_T_mcg_RB_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } +static const value_string nr_rrc_T_gps_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_gps(tvbuff_t *tvb _U_, int offset _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_glonass_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_glonass(tvbuff_t *tvb _U_, int offset _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_bds_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_bds(tvbuff_t *tvb _U_, int offset _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_galileo_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_galileo(tvbuff_t *tvb _U_, int offset _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_wlan_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_wlan(tvbuff_t *tvb _U_, int offset _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_bluetooth_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_bluetooth(tvbuff_t *tvb _U_, int offset _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 VictimSystemType_sequence[] = { + { &hf_nr_rrc_gps , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_gps }, + { &hf_nr_rrc_glonass , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_glonass }, + { &hf_nr_rrc_bds , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_bds }, + { &hf_nr_rrc_galileo , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_galileo }, + { &hf_nr_rrc_wlan , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_wlan }, + { &hf_nr_rrc_bluetooth , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_bluetooth }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_VictimSystemType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_VictimSystemType, VictimSystemType_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_interferenceDirectionMRDC_vals[] = { + { 0, "eutra-nr" }, + { 1, "nr" }, + { 2, "other" }, + { 3, "utra-nr-other" }, + { 4, "nr-other" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_interferenceDirectionMRDC(tvbuff_t *tvb _U_, int offset _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_ARFCN_ValueEUTRA(tvbuff_t *tvb _U_, int offset _U_, 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, maxEARFCN, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t AffectedCarrierFreqCombEUTRA_sequence_of[1] = { + { &hf_nr_rrc_AffectedCarrierFreqCombEUTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueEUTRA }, +}; + +static int +dissect_nr_rrc_AffectedCarrierFreqCombEUTRA(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_AffectedCarrierFreqCombEUTRA, AffectedCarrierFreqCombEUTRA_sequence_of, + 1, maxNrofServingCellsEUTRA, FALSE); + + return offset; +} + + +static const per_sequence_t AffectedCarrierFreqCombNR_sequence_of[1] = { + { &hf_nr_rrc_AffectedCarrierFreqCombNR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueNR }, +}; + +static int +dissect_nr_rrc_AffectedCarrierFreqCombNR(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_AffectedCarrierFreqCombNR, AffectedCarrierFreqCombNR_sequence_of, + 1, maxNrofServingCells, FALSE); + + return offset; +} + + +static const per_sequence_t T_affectedCarrierFreqCombMRDC_sequence[] = { + { &hf_nr_rrc_affectedCarrierFreqCombEUTRA, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_AffectedCarrierFreqCombEUTRA }, + { &hf_nr_rrc_affectedCarrierFreqCombNR, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_AffectedCarrierFreqCombNR }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_affectedCarrierFreqCombMRDC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_affectedCarrierFreqCombMRDC, T_affectedCarrierFreqCombMRDC_sequence); + + return offset; +} + + +static const per_sequence_t AffectedCarrierFreqCombInfoMRDC_sequence[] = { + { &hf_nr_rrc_victimSystemType, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_VictimSystemType }, + { &hf_nr_rrc_interferenceDirectionMRDC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_interferenceDirectionMRDC }, + { &hf_nr_rrc_affectedCarrierFreqCombMRDC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_affectedCarrierFreqCombMRDC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_AffectedCarrierFreqCombInfoMRDC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_AffectedCarrierFreqCombInfoMRDC, AffectedCarrierFreqCombInfoMRDC_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC_sequence_of[1] = { + { &hf_nr_rrc_affectedCarrierFreqCombInfoListMRDC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_AffectedCarrierFreqCombInfoMRDC }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC(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_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC, SEQUENCE_SIZE_1_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC_sequence_of, + 1, maxNrofCombIDC, FALSE); + + return offset; +} + + +static const per_sequence_t MRDC_AssistanceInfo_sequence[] = { + { &hf_nr_rrc_affectedCarrierFreqCombInfoListMRDC, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MRDC_AssistanceInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MRDC_AssistanceInfo, MRDC_AssistanceInfo_sequence); + + return offset; +} + + static const per_sequence_t T_nonCriticalExtension_03_sequence[] = { { NULL, 0, 0, NULL } }; @@ -4638,6 +6683,7 @@ static const per_sequence_t CG_ConfigInfo_IEs_sequence[] = { { &hf_nr_rrc_sourceConfigSCG, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sourceConfigSCG }, { &hf_nr_rrc_scg_RB_Config_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scg_RB_Config_01 }, { &hf_nr_rrc_mcg_RB_Config, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_mcg_RB_Config }, + { &hf_nr_rrc_mrdc_AssistanceInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MRDC_AssistanceInfo }, { &hf_nr_rrc_nonCriticalExtension_03, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_03 }, { NULL, 0, 0, NULL } }; @@ -4726,6 +6772,28 @@ dissect_nr_rrc_CG_ConfigInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } +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_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, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + static int dissect_nr_rrc_INTEGER_0_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -4800,9 +6868,46 @@ dissect_nr_rrc_SSB_MTC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, } + +static int +dissect_nr_rrc_BIT_STRING_SIZE_1_80(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, 80, FALSE, NULL, NULL); + + return offset; +} + + + +static int +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, 3U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SS_RSSI_Measurement_sequence[] = { + { &hf_nr_rrc_measurementSlots, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_1_80 }, + { &hf_nr_rrc_endSymbol , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_3 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_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_SS_RSSI_Measurement, SS_RSSI_Measurement_sequence); + + return offset; +} + + static const per_sequence_t T_frequencyAndTiming_sequence[] = { { &hf_nr_rrc_carrierFreq , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_ssbSubcarrierSpacing, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, { &hf_nr_rrc_ssb_MeasurementTimingConfiguration, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SSB_MTC }, + { &hf_nr_rrc_ss_RSSI_Measurement, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SS_RSSI_Measurement }, { NULL, 0, 0, NULL } }; @@ -4946,6 +7051,252 @@ dissect_nr_rrc_MeasurementTimingConfiguration(tvbuff_t *tvb _U_, int offset _U_, } +static const per_sequence_t SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicatorNR_sequence_of[1] = { + { &hf_nr_rrc_supportedBandListNRForPaging_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorNR }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicatorNR, SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicatorNR_sequence_of, + 1, maxBands, FALSE); + + 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 UERadioPagingInformation_IEs_sequence[] = { + { &hf_nr_rrc_supportedBandListNRForPaging, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicatorNR }, + { &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_UERadioPagingInformation_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_UERadioPagingInformation_IEs, UERadioPagingInformation_IEs_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_c1_05_vals[] = { + { 0, "ueRadioPagingInformation" }, + { 1, "spare7" }, + { 2, "spare6" }, + { 3, "spare5" }, + { 4, "spare4" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, + { 0, NULL } +}; + +static const per_choice_t T_c1_05_choice[] = { + { 0, &hf_nr_rrc_ueRadioPagingInformation, ASN1_NO_EXTENSIONS , dissect_nr_rrc_UERadioPagingInformation_IEs }, + { 1, &hf_nr_rrc_spare7 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 2, &hf_nr_rrc_spare6 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 3, &hf_nr_rrc_spare5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 4, &hf_nr_rrc_spare4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 5, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 6, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 7, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_c1_05(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_05, T_c1_05_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_05_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_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_criticalExtensionsFuture_05, T_criticalExtensionsFuture_05_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_05_vals[] = { + { 0, "c1" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_05_choice[] = { + { 0, &hf_nr_rrc_c1_05 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_05 }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_05, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_05 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensions_05(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_05, T_criticalExtensions_05_choice, + NULL); + + return offset; +} + + +static const per_sequence_t UERadioPagingInformation_sequence[] = { + { &hf_nr_rrc_criticalExtensions_05, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_05 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UERadioPagingInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UERadioPagingInformation, UERadioPagingInformation_sequence); + + return offset; +} + + + +static int +dissect_nr_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_nr_rrc_UE_CapabilityRAT_ContainerList_PDU); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_06_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +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 UERadioAccessCapabilityInformation_IEs_sequence[] = { + { &hf_nr_rrc_ue_RadioAccessCapabilityInfo, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ue_RadioAccessCapabilityInfo }, + { &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_UERadioAccessCapabilityInformation_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_UERadioAccessCapabilityInformation_IEs, UERadioAccessCapabilityInformation_IEs_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_c1_06_vals[] = { + { 0, "ueRadioAccessCapabilityInformation" }, + { 1, "spare7" }, + { 2, "spare6" }, + { 3, "spare5" }, + { 4, "spare4" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, + { 0, NULL } +}; + +static const per_choice_t T_c1_06_choice[] = { + { 0, &hf_nr_rrc_ueRadioAccessCapabilityInformation, ASN1_NO_EXTENSIONS , dissect_nr_rrc_UERadioAccessCapabilityInformation_IEs }, + { 1, &hf_nr_rrc_spare7 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 2, &hf_nr_rrc_spare6 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 3, &hf_nr_rrc_spare5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 4, &hf_nr_rrc_spare4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 5, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 6, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 7, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_c1_06(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_06, T_c1_06_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_06_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_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_criticalExtensionsFuture_06, T_criticalExtensionsFuture_06_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_06_vals[] = { + { 0, "c1" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_06_choice[] = { + { 0, &hf_nr_rrc_c1_06 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_06 }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_06, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_06 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensions_06(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_06, T_criticalExtensions_06_choice, + NULL); + + return offset; +} + + +static const per_sequence_t UERadioAccessCapabilityInformation_sequence[] = { + { &hf_nr_rrc_criticalExtensions_06, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_06 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UERadioAccessCapabilityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UERadioAccessCapabilityInformation, UERadioAccessCapabilityInformation_sequence); + + return offset; +} + + static int dissect_nr_rrc_BIT_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -4972,16 +7323,6 @@ dissect_nr_rrc_T_subCarrierSpacingCommon(tvbuff_t *tvb _U_, int offset _U_, asn1 } - -static int -dissect_nr_rrc_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 15U, NULL, FALSE); - - return offset; -} - - static const value_string nr_rrc_T_dmrs_TypeA_Position_vals[] = { { 0, "pos2" }, { 1, "pos3" }, @@ -5045,7 +7386,7 @@ static const per_sequence_t MIB_sequence[] = { { &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_pdcch_ConfigSIB1, 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_PDCCH_ConfigSIB1 }, { &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_1 }, @@ -5122,77 +7463,109 @@ dissect_nr_rrc_BCCH_BCH_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a static int -dissect_nr_rrc_RRC_TransactionIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 0U, 3U, NULL, FALSE); + 2U, maxNrofSS_BlocksToAverage, NULL, FALSE); return offset; } +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_SRB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 1U, 3U, NULL, FALSE); +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_reestablishPDCP_vals[] = { - { 0, "true" }, +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_reestablishPDCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 1, NULL, FALSE, 0, NULL); + 31, NULL, FALSE, 0, NULL); return offset; } -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); +dissect_nr_rrc_RangeToBestCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_nr_rrc_Q_OffsetRange(tvb, offset, actx, tree, hf_index); return offset; } -static const value_string nr_rrc_T_discardTimer_vals[] = { - { 0, "ms10" }, - { 1, "ms20" }, - { 2, "ms30" }, - { 3, "ms40" }, - { 4, "ms50" }, - { 5, "ms60" }, - { 6, "ms75" }, - { 7, "ms100" }, - { 8, "ms150" }, - { 9, "ms200" }, - { 10, "ms250" }, - { 11, "ms300" }, - { 12, "ms500" }, - { 13, "ms750" }, - { 14, "ms1500" }, - { 15, "infinity" }, +static const value_string nr_rrc_T_q_Hyst_vals[] = { + { 0, "dB0" }, + { 1, "dB1" }, + { 2, "dB2" }, + { 3, "dB3" }, + { 4, "dB4" }, + { 5, "dB5" }, + { 6, "dB6" }, + { 7, "dB8" }, + { 8, "dB10" }, + { 9, "dB12" }, + { 10, "dB14" }, + { 11, "dB16" }, + { 12, "dB18" }, + { 13, "dB20" }, + { 14, "dB22" }, + { 15, "dB24" }, { 0, NULL } }; static int -dissect_nr_rrc_T_discardTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_q_Hyst(tvbuff_t *tvb _U_, int offset _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); @@ -5200,239 +7573,233 @@ 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_SizeUL_vals[] = { - { 0, "len12bits" }, - { 1, "len18bits" }, +static const value_string nr_rrc_T_t_Evaluation_vals[] = { + { 0, "s30" }, + { 1, "s60" }, + { 2, "s120" }, + { 3, "s180" }, + { 4, "s240" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_t_Evaluation(tvbuff_t *tvb _U_, int offset _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 value_string nr_rrc_T_pdcp_SN_SizeDL_vals[] = { - { 0, "len12bits" }, - { 1, "len18bits" }, +static const value_string nr_rrc_T_t_HystNormal_vals[] = { + { 0, "s30" }, + { 1, "s60" }, + { 2, "s120" }, + { 3, "s180" }, + { 4, "s240" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_t_HystNormal(tvbuff_t *tvb _U_, int offset _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 MobilityStateParameters_sequence[] = { + { &hf_nr_rrc_t_Evaluation , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t_Evaluation }, + { &hf_nr_rrc_t_HystNormal , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t_HystNormal }, + { &hf_nr_rrc_n_CellChangeMedium, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_16 }, + { &hf_nr_rrc_n_CellChangeHigh, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_16 }, + { NULL, 0, 0, NULL } +}; static int -dissect_nr_rrc_INTEGER_1_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 1U, 16383U, NULL, FALSE); +dissect_nr_rrc_MobilityStateParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MobilityStateParameters, MobilityStateParameters_sequence); return offset; } +static const value_string nr_rrc_T_sf_Medium_vals[] = { + { 0, "dB-6" }, + { 1, "dB-4" }, + { 2, "dB-2" }, + { 3, "dB0" }, + { 0, NULL } +}; + static int -dissect_nr_rrc_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL); +dissect_nr_rrc_T_sf_Medium(tvbuff_t *tvb _U_, int offset _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_profiles_sequence[] = { - { &hf_nr_rrc_profile0x0001, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0002, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0003, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0004, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0006, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0101, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0102, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0103, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0104, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { NULL, 0, 0, NULL } +static const value_string nr_rrc_T_sf_High_vals[] = { + { 0, "dB-6" }, + { 1, "dB-4" }, + { 2, "dB-2" }, + { 3, "dB0" }, + { 0, NULL } }; + static int -dissect_nr_rrc_T_profiles(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_profiles, T_profiles_sequence); +dissect_nr_rrc_T_sf_High(tvbuff_t *tvb _U_, int offset _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_drb_ContinueROHC_vals[] = { - { 0, "true" }, - { 0, NULL } +static const per_sequence_t T_q_HystSF_sequence[] = { + { &hf_nr_rrc_sf_Medium , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sf_Medium }, + { &hf_nr_rrc_sf_High , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sf_High }, + { NULL, 0, 0, NULL } }; - static int -dissect_nr_rrc_T_drb_ContinueROHC(tvbuff_t *tvb _U_, int offset _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_q_HystSF(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_q_HystSF, T_q_HystSF_sequence); return offset; } -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_OPTIONAL , dissect_nr_rrc_T_drb_ContinueROHC }, +static const per_sequence_t T_speedStateReselectionPars_sequence[] = { + { &hf_nr_rrc_mobilityStateParameters, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MobilityStateParameters }, + { &hf_nr_rrc_q_HystSF , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_q_HystSF }, { 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_speedStateReselectionPars(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_speedStateReselectionPars, T_speedStateReselectionPars_sequence); return offset; } -static const per_sequence_t T_profiles_01_sequence[] = { - { &hf_nr_rrc_profile0x0006, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, +static const per_sequence_t T_cellReselectionInfoCommon_sequence[] = { + { &hf_nr_rrc_nrofSS_BlocksToAverage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_maxNrofSS_BlocksToAverage }, + { &hf_nr_rrc_absThreshSS_BlocksConsolidation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ThresholdNR }, + { &hf_nr_rrc_rangeToBestCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RangeToBestCell }, + { &hf_nr_rrc_q_Hyst , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_q_Hyst }, + { &hf_nr_rrc_speedStateReselectionPars, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_speedStateReselectionPars }, { 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_cellReselectionInfoCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_cellReselectionInfoCommon, T_cellReselectionInfoCommon_sequence); return offset; } -static const value_string nr_rrc_T_drb_ContinueROHC_01_vals[] = { - { 0, "true" }, - { 0, NULL } -}; - static int -dissect_nr_rrc_T_drb_ContinueROHC_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_ReselectionThreshold(tvbuff_t *tvb _U_, int offset _U_, 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 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_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_drb_ContinueROHC_01 }, - { NULL, 0, 0, NULL } -}; static int -dissect_nr_rrc_T_uplinkOnlyROHC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_uplinkOnlyROHC, T_uplinkOnlyROHC_sequence); +dissect_nr_rrc_ReselectionThresholdQ(tvbuff_t *tvb _U_, int offset _U_, 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 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_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 } -}; static int -dissect_nr_rrc_T_headerCompression(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_headerCompression, T_headerCompression_choice, - NULL); +dissect_nr_rrc_CellReselectionPriority(tvbuff_t *tvb _U_, int offset _U_, 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_integrityProtection_vals[] = { - { 0, "enabled" }, +static const value_string nr_rrc_CellReselectionSubPriority_vals[] = { + { 0, "oDot2" }, + { 1, "oDot4" }, + { 2, "oDot6" }, + { 3, "oDot8" }, { 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_) { +dissect_nr_rrc_CellReselectionSubPriority(tvbuff_t *tvb _U_, int offset _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); + 4, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_statusReportRequired_vals[] = { - { 0, "true" }, - { 0, NULL } +static const per_sequence_t T_cellReselectionServingFreqInfo_sequence[] = { + { &hf_nr_rrc_s_NonIntraSearchP, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ReselectionThreshold }, + { &hf_nr_rrc_s_NonIntraSearchQ, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ReselectionThresholdQ }, + { &hf_nr_rrc_threshServingLowP, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReselectionThreshold }, + { &hf_nr_rrc_threshServingLowQ, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ReselectionThresholdQ }, + { &hf_nr_rrc_cellReselectionPriority, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellReselectionPriority }, + { &hf_nr_rrc_cellReselectionSubPriority, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CellReselectionSubPriority }, + { NULL, 0, 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); +dissect_nr_rrc_T_cellReselectionServingFreqInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_cellReselectionServingFreqInfo, T_cellReselectionServingFreqInfo_sequence); return offset; } -static const value_string nr_rrc_T_outOfOrderDelivery_vals[] = { - { 0, "true" }, - { 0, NULL } -}; - static int -dissect_nr_rrc_T_outOfOrderDelivery(tvbuff_t *tvb _U_, int offset _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_Q_RxLevMin(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -70, -22, NULL, FALSE); 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_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_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_OPTIONAL , dissect_nr_rrc_T_outOfOrderDelivery }, - { NULL, 0, 0, NULL } -}; static int -dissect_nr_rrc_T_drb(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_drb, T_drb_sequence); +dissect_nr_rrc_Q_QualMin(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -34, -3, NULL, FALSE); return offset; } @@ -5440,9 +7807,9 @@ 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_) { +dissect_nr_rrc_T_Reselection(tvbuff_t *tvb _U_, int offset _U_, 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, maxSecondaryCellGroups, NULL, FALSE); + 0U, 7U, NULL, FALSE); return offset; } @@ -5450,230 +7817,121 @@ 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_) { +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, maxLC_ID, NULL, FALSE); + 0U, 7U, NULL, FALSE); return offset; } -static const per_sequence_t T_primaryPath_sequence[] = { - { &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 }, +static const per_sequence_t NR_NS_PmaxValue_sequence[] = { + { &hf_nr_rrc_additionalPmax_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { &hf_nr_rrc_additionalSpectrumEmission, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_AdditionalSpectrumEmission }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_primaryPath(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_NR_NS_PmaxValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_primaryPath, T_primaryPath_sequence); + ett_nr_rrc_NR_NS_PmaxValue, NR_NS_PmaxValue_sequence); return offset; } -static const value_string nr_rrc_UL_DataSplitThreshold_vals[] = { - { 0, "b0" }, - { 1, "b100" }, - { 2, "b200" }, - { 3, "b400" }, - { 4, "b800" }, - { 5, "b1600" }, - { 6, "b3200" }, - { 7, "b6400" }, - { 8, "b12800" }, - { 9, "b25600" }, - { 10, "b51200" }, - { 11, "b102400" }, - { 12, "b204800" }, - { 13, "b409600" }, - { 14, "b819200" }, - { 15, "b1228800" }, - { 16, "b1638400" }, - { 17, "b2457600" }, - { 18, "b3276800" }, - { 19, "b4096000" }, - { 20, "b4915200" }, - { 21, "b5734400" }, - { 22, "b6553600" }, - { 23, "infinity" }, - { 24, "spare8" }, - { 25, "spare7" }, - { 26, "spare6" }, - { 27, "spare5" }, - { 28, "spare4" }, - { 29, "spare3" }, - { 30, "spare2" }, - { 31, "spare1" }, - { 0, NULL } +static const per_sequence_t NR_NS_PmaxList_sequence_of[1] = { + { &hf_nr_rrc_NR_NS_PmaxList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NR_NS_PmaxValue }, }; -static value_string_ext nr_rrc_UL_DataSplitThreshold_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_UL_DataSplitThreshold_vals); - - static int -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); +dissect_nr_rrc_NR_NS_PmaxList(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_NR_NS_PmaxList, NR_NS_PmaxList_sequence_of, + 1, maxNR_NS_Pmax, FALSE); return offset; } -static const per_sequence_t T_moreThanOneRLC_sequence[] = { - { &hf_nr_rrc_primaryPath , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_primaryPath }, - { &hf_nr_rrc_ul_DataSplitThreshold, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UL_DataSplitThreshold }, - { &hf_nr_rrc_pdcp_Duplication, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BOOLEAN }, +static const per_sequence_t NR_MultiBandInfo_sequence[] = { + { &hf_nr_rrc_freqBandIndicatorNR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FreqBandIndicatorNR }, + { &hf_nr_rrc_nr_NS_PmaxList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_NR_NS_PmaxList }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_moreThanOneRLC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_NR_MultiBandInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_moreThanOneRLC, T_moreThanOneRLC_sequence); + ett_nr_rrc_NR_MultiBandInfo, NR_MultiBandInfo_sequence); return offset; } -static const value_string nr_rrc_T_t_Reordering_vals[] = { - { 0, "ms0" }, - { 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 } +static const per_sequence_t MultiFrequencyBandListNR_SIB_sequence_of[1] = { + { &hf_nr_rrc_MultiFrequencyBandListNR_SIB_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NR_MultiBandInfo }, }; -static value_string_ext nr_rrc_T_t_Reordering_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_t_Reordering_vals); - - static int -dissect_nr_rrc_T_t_Reordering(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 64, NULL, FALSE, 0, NULL); +dissect_nr_rrc_MultiFrequencyBandListNR_SIB(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_SIB, MultiFrequencyBandListNR_SIB_sequence_of, + 1, maxNrofMultiBands, FALSE); return offset; } -static const per_sequence_t PDCP_Config_sequence[] = { - { &hf_nr_rrc_drb , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_drb }, - { &hf_nr_rrc_moreThanOneRLC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_moreThanOneRLC }, - { &hf_nr_rrc_t_Reordering , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_t_Reordering }, - { NULL, 0, 0, NULL } -}; static int -dissect_nr_rrc_PDCP_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_PDCP_Config, PDCP_Config_sequence); +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 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 } -}; static int -dissect_nr_rrc_SRB_ToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_SRB_ToAddMod, SRB_ToAddMod_sequence); +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 const per_sequence_t SRB_ToAddModList_sequence_of[1] = { - { &hf_nr_rrc_SRB_ToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRB_ToAddMod }, -}; static int -dissect_nr_rrc_SRB_ToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_SRB_ToAddModList, SRB_ToAddModList_sequence_of, - 1, 2, FALSE); +dissect_nr_rrc_BIT_STRING_SIZE_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 64, 64, FALSE, NULL, NULL); return offset; } -static const value_string nr_rrc_T_srb3_ToRelease_vals[] = { - { 0, "true" }, +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_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); +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; } @@ -5681,41 +7939,52 @@ dissect_nr_rrc_T_srb3_ToRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a static int -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); +dissect_nr_rrc_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL); return offset; } -static const value_string nr_rrc_T_sdap_HeaderDL_vals[] = { - { 0, "present" }, - { 1, "absent" }, - { 0, NULL } +static const per_sequence_t T_intraFreqCellReselectionInfo_sequence[] = { + { &hf_nr_rrc_q_RxLevMin , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Q_RxLevMin }, + { &hf_nr_rrc_q_RxLevMinSUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_Q_RxLevMin }, + { &hf_nr_rrc_q_QualMin , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_Q_QualMin }, + { &hf_nr_rrc_s_IntraSearchP, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReselectionThreshold }, + { &hf_nr_rrc_s_IntraSearchQ, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ReselectionThresholdQ }, + { &hf_nr_rrc_t_ReselectionNR, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_Reselection }, + { &hf_nr_rrc_frequencyBandList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MultiFrequencyBandListNR_SIB }, + { &hf_nr_rrc_frequencyBandListSUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MultiFrequencyBandListNR_SIB }, + { &hf_nr_rrc_p_Max , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { &hf_nr_rrc_smtc , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SSB_MTC }, + { &hf_nr_rrc_ss_RSSI_Measurement, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SS_RSSI_Measurement }, + { &hf_nr_rrc_ssb_ToMeasure, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SSB_ToMeasure }, + { &hf_nr_rrc_deriveSSB_IndexFromCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } }; - static int -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); +dissect_nr_rrc_T_intraFreqCellReselectionInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_intraFreqCellReselectionInfo, T_intraFreqCellReselectionInfo_sequence); return offset; } -static const value_string nr_rrc_T_sdap_HeaderUL_vals[] = { - { 0, "present" }, - { 1, "absent" }, - { 0, NULL } +static const per_sequence_t SIB2_sequence[] = { + { &hf_nr_rrc_cellReselectionInfoCommon, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cellReselectionInfoCommon }, + { &hf_nr_rrc_cellReselectionServingFreqInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cellReselectionServingFreqInfo }, + { &hf_nr_rrc_intraFreqCellReselectionInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_intraFreqCellReselectionInfo }, + { NULL, 0, 0, NULL } }; - static int -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); +dissect_nr_rrc_SIB2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB2"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SIB2, SIB2_sequence); return offset; } @@ -5723,258 +7992,318 @@ dissect_nr_rrc_T_sdap_HeaderUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int -dissect_nr_rrc_QFI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, maxQFI, NULL, FALSE); + 1U, 8U, NULL, FALSE); return offset; } -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 const per_sequence_t IntraFreqNeighCellInfo_sequence[] = { + { &hf_nr_rrc_physCellId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_q_OffsetCell , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Q_OffsetRange }, + { &hf_nr_rrc_q_RxLevMinOffsetCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, + { &hf_nr_rrc_q_RxLevMinOffsetCellSUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, + { &hf_nr_rrc_q_QualMinOffsetCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, + { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_IntraFreqNeighCellInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_IntraFreqNeighCellInfo, IntraFreqNeighCellInfo_sequence); + + return offset; +} + + +static const per_sequence_t IntraFreqNeighCellList_sequence_of[1] = { + { &hf_nr_rrc_IntraFreqNeighCellList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_IntraFreqNeighCellInfo }, +}; + +static int +dissect_nr_rrc_IntraFreqNeighCellList(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_maxNrofQFIs_OF_QFI, SEQUENCE_SIZE_1_maxNrofQFIs_OF_QFI_sequence_of, - 1, maxNrofQFIs, FALSE); + ett_nr_rrc_IntraFreqNeighCellList, IntraFreqNeighCellList_sequence_of, + 1, maxCellIntra, FALSE); return offset; } -static const per_sequence_t SDAP_Config_sequence[] = { - { &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_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 }, +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 int +dissect_nr_rrc_T_range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t 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_SDAP_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_SDAP_Config, SDAP_Config_sequence); + ett_nr_rrc_PCI_Range, PCI_Range_sequence); return offset; } -static const value_string nr_rrc_T_cnAssociation_vals[] = { - { 0, "eps-BearerIdentity" }, - { 1, "sdap-Config" }, - { 0, NULL } +static const per_sequence_t IntraFreqBlackCellList_sequence_of[1] = { + { &hf_nr_rrc_IntraFreqBlackCellList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCI_Range }, }; -static const per_choice_t T_cnAssociation_choice[] = { - { 0, &hf_nr_rrc_eps_BearerIdentity, ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_15 }, - { 1, &hf_nr_rrc_sdap_Config , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SDAP_Config }, - { 0, NULL, 0, NULL } -}; +static int +dissect_nr_rrc_IntraFreqBlackCellList(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_IntraFreqBlackCellList, IntraFreqBlackCellList_sequence_of, + 1, maxCellBlack, FALSE); + + return offset; +} + + static int -dissect_nr_rrc_T_cnAssociation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_cnAssociation, T_cnAssociation_choice, - NULL); +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 SIB3_sequence[] = { + { &hf_nr_rrc_intraFreqNeighCellList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_IntraFreqNeighCellList }, + { &hf_nr_rrc_intraFreqBlackCellList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_IntraFreqBlackCellList }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { NULL, 0, 0, NULL } +}; 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, - 1U, 32U, NULL, FALSE); +dissect_nr_rrc_SIB3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB3"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SIB3, SIB3_sequence); return offset; } -static const value_string nr_rrc_T_reestablishPDCP_01_vals[] = { - { 0, "true" }, +static const value_string nr_rrc_T_sf_Medium_01_vals[] = { + { 0, "oDot25" }, + { 1, "oDot5" }, + { 2, "oDot75" }, + { 3, "lDot0" }, { 0, NULL } }; static int -dissect_nr_rrc_T_reestablishPDCP_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_sf_Medium_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); + 4, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_recoverPDCP_vals[] = { - { 0, "true" }, +static const value_string nr_rrc_T_sf_High_01_vals[] = { + { 0, "oDot25" }, + { 1, "oDot5" }, + { 2, "oDot75" }, + { 3, "lDot0" }, { 0, NULL } }; static int -dissect_nr_rrc_T_recoverPDCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_sf_High_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); + 4, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t DRB_ToAddMod_sequence[] = { - { &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 }, - { &hf_nr_rrc_pdcp_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PDCP_Config }, +static const per_sequence_t SpeedStateScaleFactors_sequence[] = { + { &hf_nr_rrc_sf_Medium_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sf_Medium_01 }, + { &hf_nr_rrc_sf_High_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sf_High_01 }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_DRB_ToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_SpeedStateScaleFactors(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_DRB_ToAddMod, DRB_ToAddMod_sequence); + ett_nr_rrc_SpeedStateScaleFactors, SpeedStateScaleFactors_sequence); return offset; } -static const per_sequence_t DRB_ToAddModList_sequence_of[1] = { - { &hf_nr_rrc_DRB_ToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_ToAddMod }, +static const per_sequence_t T_threshX_Q_sequence[] = { + { &hf_nr_rrc_threshX_HighQ, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReselectionThresholdQ }, + { &hf_nr_rrc_threshX_LowQ , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReselectionThresholdQ }, + { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_DRB_ToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_DRB_ToAddModList, DRB_ToAddModList_sequence_of, - 1, maxDRB, FALSE); +dissect_nr_rrc_T_threshX_Q(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_threshX_Q, T_threshX_Q_sequence); return offset; } -static const per_sequence_t DRB_ToReleaseList_sequence_of[1] = { - { &hf_nr_rrc_DRB_ToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_Identity }, +static const per_sequence_t InterFreqNeighCellInfo_sequence[] = { + { &hf_nr_rrc_physCellId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_q_OffsetCell , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Q_OffsetRange }, + { &hf_nr_rrc_q_RxLevMinOffsetCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, + { &hf_nr_rrc_q_RxLevMinOffsetCellSUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, + { &hf_nr_rrc_q_QualMinOffsetCell, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, + { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_DRB_ToReleaseList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_DRB_ToReleaseList, DRB_ToReleaseList_sequence_of, - 1, maxDRB, FALSE); +dissect_nr_rrc_InterFreqNeighCellInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_InterFreqNeighCellInfo, InterFreqNeighCellInfo_sequence); return offset; } -static const value_string nr_rrc_CipheringAlgorithm_vals[] = { - { 0, "nea0" }, - { 1, "nea1" }, - { 2, "nea2" }, - { 3, "nea3" }, - { 4, "spare4" }, - { 5, "spare3" }, - { 6, "spare2" }, - { 7, "spare1" }, - { 0, NULL } +static const per_sequence_t InterFreqNeighCellList_sequence_of[1] = { + { &hf_nr_rrc_InterFreqNeighCellList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_InterFreqNeighCellInfo }, }; - static int -dissect_nr_rrc_CipheringAlgorithm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 8, NULL, TRUE, 0, NULL); +dissect_nr_rrc_InterFreqNeighCellList(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_InterFreqNeighCellList, InterFreqNeighCellList_sequence_of, + 1, maxCellInter, FALSE); return offset; } -static const value_string nr_rrc_IntegrityProtAlgorithm_vals[] = { - { 0, "nia0" }, - { 1, "nia1" }, - { 2, "nia2" }, - { 3, "nia3" }, - { 4, "spare4" }, - { 5, "spare3" }, - { 6, "spare2" }, - { 7, "spare1" }, - { 0, NULL } +static const per_sequence_t InterFreqBlackCellList_sequence_of[1] = { + { &hf_nr_rrc_InterFreqBlackCellList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCI_Range }, }; - static int -dissect_nr_rrc_IntegrityProtAlgorithm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 8, NULL, TRUE, 0, NULL); +dissect_nr_rrc_InterFreqBlackCellList(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_InterFreqBlackCellList, InterFreqBlackCellList_sequence_of, + 1, maxCellBlack, FALSE); return offset; } -static const per_sequence_t SecurityAlgorithmConfig_sequence[] = { - { &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 }, +static const per_sequence_t InterFreqCarrierFreqInfo_sequence[] = { + { &hf_nr_rrc_dl_CarrierFreq, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_frequencyBandList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MultiFrequencyBandListNR_SIB }, + { &hf_nr_rrc_frequencyBandListSUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MultiFrequencyBandListNR_SIB }, + { &hf_nr_rrc_nrofSS_BlocksToAverage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_maxNrofSS_BlocksToAverage }, + { &hf_nr_rrc_absThreshSS_BlocksConsolidation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ThresholdNR }, + { &hf_nr_rrc_smtc , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SSB_MTC }, + { &hf_nr_rrc_ssbSubcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_ssb_ToMeasure, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SSB_ToMeasure }, + { &hf_nr_rrc_deriveSSB_IndexFromCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_ss_RSSI_Measurement, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SS_RSSI_Measurement }, + { &hf_nr_rrc_q_RxLevMin , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Q_RxLevMin }, + { &hf_nr_rrc_q_RxLevMinSUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_Q_RxLevMin }, + { &hf_nr_rrc_q_QualMin , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_Q_QualMin }, + { &hf_nr_rrc_p_Max , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { &hf_nr_rrc_t_ReselectionNR, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_Reselection }, + { &hf_nr_rrc_t_ReselectionNR_SF, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SpeedStateScaleFactors }, + { &hf_nr_rrc_threshX_HighP, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReselectionThreshold }, + { &hf_nr_rrc_threshX_LowP , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReselectionThreshold }, + { &hf_nr_rrc_threshX_Q , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_threshX_Q }, + { &hf_nr_rrc_cellReselectionPriority, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CellReselectionPriority }, + { &hf_nr_rrc_cellReselectionSubPriority, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CellReselectionSubPriority }, + { &hf_nr_rrc_q_OffsetFreq , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_Q_OffsetRange }, + { &hf_nr_rrc_interFreqNeighCellList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_InterFreqNeighCellList }, + { &hf_nr_rrc_interFreqBlackCellList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_InterFreqBlackCellList }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_SecurityAlgorithmConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_InterFreqCarrierFreqInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_SecurityAlgorithmConfig, SecurityAlgorithmConfig_sequence); + ett_nr_rrc_InterFreqCarrierFreqInfo, InterFreqCarrierFreqInfo_sequence); return offset; } -static const value_string nr_rrc_T_keyToUse_vals[] = { - { 0, "keNB" }, - { 1, "s-KgNB" }, - { 0, NULL } +static const per_sequence_t InterFreqCarrierFreqList_sequence_of[1] = { + { &hf_nr_rrc_InterFreqCarrierFreqList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_InterFreqCarrierFreqInfo }, }; - static int -dissect_nr_rrc_T_keyToUse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 2, NULL, FALSE, 0, NULL); +dissect_nr_rrc_InterFreqCarrierFreqList(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_InterFreqCarrierFreqList, InterFreqCarrierFreqList_sequence_of, + 1, maxFreq, FALSE); return offset; } -static const per_sequence_t SecurityConfig_sequence[] = { - { &hf_nr_rrc_securityAlgorithmConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SecurityAlgorithmConfig }, - { &hf_nr_rrc_keyToUse , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_keyToUse }, +static const per_sequence_t SIB4_sequence[] = { + { &hf_nr_rrc_interFreqCarrierFreqList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_InterFreqCarrierFreqList }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_SecurityConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_SIB4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB4"); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_SecurityConfig, SecurityConfig_sequence); + ett_nr_rrc_SIB4, SIB4_sequence); return offset; } -static const per_sequence_t RadioBearerConfig_sequence[] = { - { &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 } -}; static int -dissect_nr_rrc_RadioBearerConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_RadioBearerConfig, RadioBearerConfig_sequence); +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; } @@ -5982,9 +8311,9 @@ dissect_nr_rrc_RadioBearerConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int -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); +dissect_nr_rrc_INTEGER_M30_33(tvbuff_t *tvb _U_, int offset _U_, 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; } @@ -5992,172 +8321,234 @@ dissect_nr_rrc_T_secondaryCellGroup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ 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_) { +dissect_nr_rrc_INTEGER_1_288(tvbuff_t *tvb _U_, int offset _U_, 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); + 1U, 288U, NULL, FALSE); return offset; } -static const per_sequence_t MeasObjectToRemoveList_sequence_of[1] = { - { &hf_nr_rrc_MeasObjectToRemoveList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasObjectId }, +static const per_sequence_t EUTRA_NS_PmaxValue_sequence[] = { + { &hf_nr_rrc_additionalPmax, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M30_33 }, + { &hf_nr_rrc_additionalSpectrumEmission_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_288 }, + { NULL, 0, 0, NULL } }; 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); +dissect_nr_rrc_EUTRA_NS_PmaxValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_EUTRA_NS_PmaxValue, EUTRA_NS_PmaxValue_sequence); 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 const per_sequence_t EUTRA_NS_PmaxList_sequence_of[1] = { + { &hf_nr_rrc_EUTRA_NS_PmaxList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_NS_PmaxValue }, }; +static int +dissect_nr_rrc_EUTRA_NS_PmaxList(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_NS_PmaxList, EUTRA_NS_PmaxList_sequence_of, + 1, maxEUTRA_NS_Pmax, FALSE); + + return offset; +} + + +static const per_sequence_t EUTRA_MultiBandInfo_sequence[] = { + { &hf_nr_rrc_eutra_FreqBandIndicator, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorEUTRA }, + { &hf_nr_rrc_eutra_NS_PmaxList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_NS_PmaxList }, + { 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_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 8, NULL, FALSE, 0, NULL); +dissect_nr_rrc_EUTRA_MultiBandInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_EUTRA_MultiBandInfo, EUTRA_MultiBandInfo_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 const per_sequence_t EUTRA_MultiBandInfoList_sequence_of[1] = { + { &hf_nr_rrc_EUTRA_MultiBandInfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_MultiBandInfo }, }; static int -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_) { +dissect_nr_rrc_EUTRA_MultiBandInfoList(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); + ett_nr_rrc_EUTRA_MultiBandInfoList, EUTRA_MultiBandInfoList_sequence_of, + 1, maxMultiBands, FALSE); return offset; } -static const value_string nr_rrc_T_periodicity_02_vals[] = { - { 0, "sf5" }, - { 1, "sf10" }, - { 2, "sf20" }, - { 3, "sf40" }, - { 4, "sf80" }, - { 5, "spare3" }, - { 6, "spare2" }, - { 7, "spare1" }, + +static int +dissect_nr_rrc_EUTRA_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, 503U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_EUTRA_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_EUTRA_Q_OffsetRange_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_EUTRA_Q_OffsetRange_vals); + static int -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_) { +dissect_nr_rrc_EUTRA_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, - 8, NULL, FALSE, 0, NULL); + 31, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t SSB_MTC2_sequence[] = { - { &hf_nr_rrc_pci_List , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId }, - { &hf_nr_rrc_periodicity_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicity_02 }, +static const per_sequence_t EUTRA_FreqNeighCellInfo_sequence[] = { + { &hf_nr_rrc_physCellId_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_PhysCellId }, + { &hf_nr_rrc_q_OffsetCell_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_Q_OffsetRange }, + { &hf_nr_rrc_q_RxLevMinOffsetCell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, + { &hf_nr_rrc_q_QualMinOffsetCell, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_SSB_MTC2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_EUTRA_FreqNeighCellInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_MTC2, SSB_MTC2_sequence); + ett_nr_rrc_EUTRA_FreqNeighCellInfo, EUTRA_FreqNeighCellInfo_sequence); return offset; } +static const per_sequence_t EUTRA_FreqNeighCellList_sequence_of[1] = { + { &hf_nr_rrc_EUTRA_FreqNeighCellList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_FreqNeighCellInfo }, +}; 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_EUTRA_FreqNeighCellList(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_FreqNeighCellList, EUTRA_FreqNeighCellList_sequence_of, + 1, maxCellEUTRA, FALSE); return offset; } +static const value_string nr_rrc_T_range_01_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 2, "n12" }, + { 3, "n16" }, + { 4, "n24" }, + { 5, "n32" }, + { 6, "n48" }, + { 7, "n64" }, + { 8, "n84" }, + { 9, "n96" }, + { 10, "n128" }, + { 11, "n168" }, + { 12, "n252" }, + { 13, "n504" }, + { 14, "spare2" }, + { 15, "spare1" }, + { 0, NULL } +}; + static int -dissect_nr_rrc_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_range_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, + 16, NULL, FALSE, 0, NULL); return offset; } +static const per_sequence_t EUTRA_PhysCellIdRange_sequence[] = { + { &hf_nr_rrc_start_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_PhysCellId }, + { &hf_nr_rrc_range_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_range_01 }, + { 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_EUTRA_PhysCellIdRange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_EUTRA_PhysCellIdRange, EUTRA_PhysCellIdRange_sequence); 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 const per_sequence_t EUTRA_FreqBlackCellList_sequence_of[1] = { + { &hf_nr_rrc_EUTRA_FreqBlackCellList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_PhysCellIdRange }, }; static int -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); +dissect_nr_rrc_EUTRA_FreqBlackCellList(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_FreqBlackCellList, EUTRA_FreqBlackCellList_sequence_of, + 1, maxEUTRA_CellBlack, FALSE); return offset; } -static const value_string nr_rrc_T_ssb_ToMeasure_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const value_string nr_rrc_EUTRA_AllowedMeasBandwidth_vals[] = { + { 0, "mbw6" }, + { 1, "mbw15" }, + { 2, "mbw25" }, + { 3, "mbw50" }, + { 4, "mbw75" }, + { 5, "mbw100" }, { 0, NULL } }; -static const per_choice_t T_ssb_ToMeasure_choice[] = { - { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 1, &hf_nr_rrc_setup_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); +dissect_nr_rrc_EUTRA_AllowedMeasBandwidth(tvbuff_t *tvb _U_, int offset _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; } @@ -6165,9 +8556,8 @@ dissect_nr_rrc_T_ssb_ToMeasure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int -dissect_nr_rrc_BIT_STRING_SIZE_1_80(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, 80, FALSE, NULL, NULL); +dissect_nr_rrc_EUTRA_PresenceAntennaPort1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL); return offset; } @@ -6175,143 +8565,172 @@ dissect_nr_rrc_BIT_STRING_SIZE_1_80(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static int -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_) { +dissect_nr_rrc_INTEGER_M70_M22(tvbuff_t *tvb _U_, int offset _U_, 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); + -70, -22, NULL, FALSE); return offset; } -static const per_sequence_t SS_RSSI_Measurement_sequence[] = { - { &hf_nr_rrc_measurementSlots, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_1_80 }, - { &hf_nr_rrc_endSymbol , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_3 }, - { NULL, 0, 0, NULL } -}; static int -dissect_nr_rrc_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_SS_RSSI_Measurement, SS_RSSI_Measurement_sequence); +dissect_nr_rrc_INTEGER_M34_M3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -34, -3, NULL, FALSE); return offset; } -static const per_sequence_t SSB_ConfigMobility_sequence[] = { - { &hf_nr_rrc_ssb_ToMeasure, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_ToMeasure }, - { &hf_nr_rrc_useServingCellTimingForSync, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_ss_RSSI_Measurement, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SS_RSSI_Measurement }, +static const per_sequence_t T_threshX_Q_01_sequence[] = { + { &hf_nr_rrc_threshX_HighQ, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReselectionThresholdQ }, + { &hf_nr_rrc_threshX_LowQ , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReselectionThresholdQ }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_threshX_Q_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_SSB_ConfigMobility, SSB_ConfigMobility_sequence); + ett_nr_rrc_T_threshX_Q_01, T_threshX_Q_01_sequence); return offset; } -static const value_string nr_rrc_T_nrofPRBs_vals[] = { - { 0, "size24" }, - { 1, "size48" }, - { 2, "size96" }, - { 3, "size192" }, - { 4, "size264" }, - { 0, NULL } +static const per_sequence_t CarrierFreqEUTRA_sequence[] = { + { &hf_nr_rrc_carrierFreq_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueEUTRA }, + { &hf_nr_rrc_eutra_multiBandInfoList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_MultiBandInfoList }, + { &hf_nr_rrc_eutra_FreqNeighCellList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_FreqNeighCellList }, + { &hf_nr_rrc_eutra_BlackCellList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_FreqBlackCellList }, + { &hf_nr_rrc_allowedMeasBandwidth, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_AllowedMeasBandwidth }, + { &hf_nr_rrc_presenceAntennaPort1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_PresenceAntennaPort1 }, + { &hf_nr_rrc_cellReselectionPriority, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellReselectionPriority }, + { &hf_nr_rrc_cellReselectionSubPriority, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellReselectionSubPriority }, + { &hf_nr_rrc_threshX_High , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReselectionThreshold }, + { &hf_nr_rrc_threshX_Low , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReselectionThreshold }, + { &hf_nr_rrc_q_RxLevMin_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M70_M22 }, + { &hf_nr_rrc_q_QualMin_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M34_M3 }, + { &hf_nr_rrc_p_MaxEUTRA , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M30_33 }, + { &hf_nr_rrc_threshX_Q_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_threshX_Q_01 }, + { NULL, 0, 0, NULL } }; - static int -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, - 5, NULL, FALSE, 0, NULL); +dissect_nr_rrc_CarrierFreqEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CarrierFreqEUTRA, CarrierFreqEUTRA_sequence); return offset; } +static const per_sequence_t CarrierFreqListEUTRA_sequence_of[1] = { + { &hf_nr_rrc_CarrierFreqListEUTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CarrierFreqEUTRA }, +}; 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); +dissect_nr_rrc_CarrierFreqListEUTRA(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_CarrierFreqListEUTRA, CarrierFreqListEUTRA_sequence_of, + 1, maxEUTRA_Carrier, 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 }, +static const per_sequence_t SIB5_sequence[] = { + { &hf_nr_rrc_carrierFreqListEUTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CarrierFreqListEUTRA }, + { &hf_nr_rrc_t_ReselectionEUTRA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_Reselection }, + { &hf_nr_rrc_t_ReselectionEUTRA_SF, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SpeedStateScaleFactors }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, { 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_SIB5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB5"); + 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_SIB5, SIB5_sequence); return offset; } -static const value_string nr_rrc_T_density_vals[] = { - { 0, "d1" }, - { 1, "d3" }, - { 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_enumerated(tvb, offset, actx, tree, hf_index, - 2, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_messageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *msg_id_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, + 16, 16, FALSE, &msg_id_tvb, NULL); + + + + if (msg_id_tvb) { + actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN); + } 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_serialNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *serial_nb_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, &serial_nb_tvb, NULL); + + + + if (serial_nb_tvb) { + proto_tree *subtree; + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_serialNumber); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + } + + return offset; +} + + 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_warningType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *warning_type_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 2, 2, FALSE, &warning_type_tvb); + + + + if (warning_type_tvb) { + proto_tree *subtree; + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningType); + proto_tree_add_item(subtree, hf_nr_rrc_warningType_value, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_warningType_emergency_user_alert, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_warningType_popup, warning_type_tvb, 0, 2, ENC_BIG_ENDIAN); + } 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 }, +static const per_sequence_t SIB6_sequence[] = { + { &hf_nr_rrc_messageIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_messageIdentifier }, + { &hf_nr_rrc_serialNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_serialNumber }, + { &hf_nr_rrc_warningType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_warningType }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_SIB6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB6"); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_associatedSSB, T_associatedSSB_sequence); + ett_nr_rrc_SIB6, SIB6_sequence); return offset; } @@ -6319,31 +8738,62 @@ dissect_nr_rrc_T_associatedSSB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac 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_) { +dissect_nr_rrc_T_messageIdentifier_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *msg_id_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, + 16, 16, FALSE, &msg_id_tvb, NULL); + + + + if (msg_id_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + nr_priv->message_identifier = tvb_get_ntohs(msg_id_tvb, 0) << 16; + actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN); + } + + return offset; +} + + + +static int +dissect_nr_rrc_T_serialNumber_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *serial_nb_tvb = NULL; offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, - 12, 12, FALSE, NULL, NULL); + 16, 16, FALSE, &serial_nb_tvb, NULL); + + + + if (serial_nb_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + nr_priv->message_identifier |= tvb_get_ntohs(serial_nb_tvb, 0); + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_serialNumber); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + } return offset; } -static const value_string nr_rrc_T_frequencyDomainAllocation_vals[] = { - { 0, "row1" }, - { 1, "row2" }, +static const value_string nr_rrc_T_warningMessageSegmentType_vals[] = { + { 0, "notLastSegment" }, + { 1, "lastSegment" }, { 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 }, - { 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); +dissect_nr_rrc_T_warningMessageSegmentType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + guint32 segment_type; + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, &segment_type, FALSE, 0, NULL); + + nr_priv->warning_message_segment_type = (guint8)segment_type; + return offset; } @@ -6351,141 +8801,247 @@ dissect_nr_rrc_T_frequencyDomainAllocation(tvbuff_t *tvb _U_, int offset _U_, as static int -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_) { +dissect_nr_rrc_T_warningMessageSegmentNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + guint32 segment_number; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 13U, NULL, FALSE); + 0U, 63U, &segment_number, FALSE); + + nr_priv->warning_message_segment_number = (guint8)segment_number; + 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_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_frequencyDomainAllocation }, - { &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_CSI_RS_Resource_Mobility(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_CSI_RS_Resource_Mobility, CSI_RS_Resource_Mobility_sequence); +dissect_nr_rrc_T_warningMessageSegment(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *warning_msg_seg_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, &warning_msg_seg_tvb); + + + + if (warning_msg_seg_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + tvbuff_t *frag_tvb; + gpointer p_dcs; + fragment_head *frag_data = fragment_add_seq_check(&nr_rrc_sib7_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo, + nr_priv->message_identifier, NULL, + nr_priv->warning_message_segment_number, + tvb_reported_length(warning_msg_seg_tvb), + nr_priv->warning_message_segment_type ? FALSE : TRUE); + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningMessageSegment); + frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB7 warning message", + frag_data, &nr_rrc_sib7_frag_items, NULL, subtree); + p_dcs = wmem_map_lookup(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier)); + if (frag_tvb && p_dcs) { + dissect_nr_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs)); + } + } return offset; } -static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility_sequence_of[1] = { - { &hf_nr_rrc_csi_rs_ResourceList_Mobility_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_Resource_Mobility }, -}; static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility, SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility_sequence_of, - 1, maxNrofCSI_RS_ResourcesRRM, FALSE); +dissect_nr_rrc_T_dataCodingScheme(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *data_coding_scheme_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 1, 1, FALSE, &data_coding_scheme_tvb); + + + + if (data_coding_scheme_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + guint32 dataCodingScheme; + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_dataCodingScheme); + dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0); + wmem_map_insert(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier), + GUINT_TO_POINTER(dataCodingScheme)); + } 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 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_density }, - { &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 SIB7_sequence[] = { + { &hf_nr_rrc_messageIdentifier_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_messageIdentifier_01 }, + { &hf_nr_rrc_serialNumber_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_serialNumber_01 }, + { &hf_nr_rrc_warningMessageSegmentType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_warningMessageSegmentType }, + { &hf_nr_rrc_warningMessageSegmentNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_warningMessageSegmentNumber }, + { &hf_nr_rrc_warningMessageSegment, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_warningMessageSegment }, + { &hf_nr_rrc_dataCodingScheme, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dataCodingScheme }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_SIB7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB7"); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_CSI_RS_CellMobility, CSI_RS_CellMobility_sequence); + ett_nr_rrc_SIB7, SIB7_sequence); return offset; } -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); +dissect_nr_rrc_T_messageIdentifier_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *msg_id_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, + 16, 16, FALSE, &msg_id_tvb, NULL); + + + + if (msg_id_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + nr_priv->message_identifier = tvb_get_ntohs(msg_id_tvb, 0) << 16; + actx->created_item = proto_tree_add_item(tree, hf_index, msg_id_tvb, 0, 2, ENC_BIG_ENDIAN); + } return offset; } -static const per_sequence_t CSI_RS_ResourceConfigMobility_sequence[] = { - { &hf_nr_rrc_subcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, - { &hf_nr_rrc_csi_RS_CellList_Mobility, ASN1_EXTENSION_ROOT , 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_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_CSI_RS_ResourceConfigMobility, CSI_RS_ResourceConfigMobility_sequence); +dissect_nr_rrc_T_serialNumber_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *serial_nb_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, &serial_nb_tvb, NULL); + + + + if (serial_nb_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + nr_priv->message_identifier |= tvb_get_ntohs(serial_nb_tvb, 0); + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_serialNumber); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_gs, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_msg_code, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_nr_rrc_serialNumber_upd_nb, serial_nb_tvb, 0, 2, ENC_BIG_ENDIAN); + } return offset; } -static const value_string nr_rrc_T_csi_rs_ResourceConfigMobility_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const value_string nr_rrc_T_warningMessageSegmentType_01_vals[] = { + { 0, "notLastSegment" }, + { 1, "lastSegment" }, { 0, NULL } }; -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_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_T_csi_rs_ResourceConfigMobility, T_csi_rs_ResourceConfigMobility_choice, - NULL); +dissect_nr_rrc_T_warningMessageSegmentType_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + guint32 segment_type; + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, &segment_type, FALSE, 0, NULL); + + nr_priv->warning_message_segment_type = (guint8)segment_type; + 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_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); +dissect_nr_rrc_T_warningMessageSegmentNumber_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + guint32 segment_number; + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, &segment_number, FALSE); + + nr_priv->warning_message_segment_number = (guint8)segment_number; + return offset; } -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 }, + +static int +dissect_nr_rrc_T_warningMessageSegment_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *warning_msg_seg_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, &warning_msg_seg_tvb); + + + + if (warning_msg_seg_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + tvbuff_t *frag_tvb; + gpointer p_dcs; + fragment_head *frag_data = fragment_add_seq_check(&nr_rrc_sib8_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo, + nr_priv->message_identifier, NULL, + nr_priv->warning_message_segment_number, + tvb_reported_length(warning_msg_seg_tvb), + nr_priv->warning_message_segment_type ? FALSE : TRUE); + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_warningMessageSegment); + frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB8 warning message", + frag_data, &nr_rrc_sib8_frag_items, NULL, subtree); + p_dcs = wmem_map_lookup(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier)); + if (frag_tvb && p_dcs) { + dissect_nr_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs)); + } + } + + return offset; +} + + + +static int +dissect_nr_rrc_T_dataCodingScheme_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *data_coding_scheme_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 1, 1, FALSE, &data_coding_scheme_tvb); + + + + if (data_coding_scheme_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + guint32 dataCodingScheme; + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_dataCodingScheme); + dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0); + wmem_map_insert(nr_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)nr_priv->message_identifier), + GUINT_TO_POINTER(dataCodingScheme)); + } + + return offset; +} + + +static const per_sequence_t SIB8_sequence[] = { + { &hf_nr_rrc_messageIdentifier_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_messageIdentifier_02 }, + { &hf_nr_rrc_serialNumber_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_serialNumber_02 }, + { &hf_nr_rrc_warningMessageSegmentType_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_warningMessageSegmentType_01 }, + { &hf_nr_rrc_warningMessageSegmentNumber_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_warningMessageSegmentNumber_01 }, + { &hf_nr_rrc_warningMessageSegment_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_warningMessageSegment_01 }, + { &hf_nr_rrc_dataCodingScheme_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dataCodingScheme_01 }, + { &hf_nr_rrc_warningAreaCoordinatesSegment, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, { 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_SIB8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB8"); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_ThresholdNR, ThresholdNR_sequence); + ett_nr_rrc_SIB8, SIB8_sequence); return offset; } @@ -6493,9 +9049,21 @@ dissect_nr_rrc_ThresholdNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ 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); +dissect_nr_rrc_T_timeInfoUTC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + guint64 timeInfo; + proto_tree *subtree; + nstime_t ts; + guint32 old_offset = offset; + offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index, + 0U, G_GUINT64_CONSTANT(549755813887), &timeInfo, FALSE); + + + + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_timeInfo); + ts.secs = (time_t)(timeInfo/100)-2208988800U; /* epoch is 00:00:00 (midnight) UTC on 1900-01-01 */ + ts.nsecs = (int)(timeInfo%100)*10000000; + proto_tree_add_time(subtree, hf_nr_rrc_utc_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts); + proto_tree_add_time(subtree, hf_nr_rrc_local_time, tvb, old_offset>>3, (old_offset&0x07) ? 6 : 5, &ts); return offset; } @@ -6503,9 +9071,17 @@ dissect_nr_rrc_INTEGER_2_maxNrofSS_BlocksToAverage(tvbuff_t *tvb _U_, int offset static int -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); +dissect_nr_rrc_T_dayLightSavingTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *daylight_saving_time_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, + 2, 2, FALSE, &daylight_saving_time_tvb, NULL); + + + + if (daylight_saving_time_tvb) { + guint bitvalue = tvb_get_bits8(daylight_saving_time_tvb, 0, 2); + actx->created_item = proto_tree_add_uint(tree, hf_index, daylight_saving_time_tvb, 0, 1, bitvalue); + } return offset; } @@ -6513,824 +9089,850 @@ dissect_nr_rrc_INTEGER_2_maxNrofCSI_RS_ResourcesToAverage(tvbuff_t *tvb _U_, int static int -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_) { +dissect_nr_rrc_INTEGER_M127_128(tvbuff_t *tvb _U_, int offset _U_, 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, maxNrofQuantityConfig, NULL, FALSE); + -127, 128U, NULL, FALSE); return offset; } -static const value_string nr_rrc_Q_OffsetRange_vals[] = { - { 0, "dB-24" }, - { 1, "dB-22" }, - { 2, "dB-20" }, - { 3, "dB-18" }, - { 4, "dB-16" }, - { 5, "dB-14" }, - { 6, "dB-12" }, - { 7, "dB-10" }, - { 8, "dB-8" }, - { 9, "dB-6" }, - { 10, "dB-5" }, - { 11, "dB-4" }, - { 12, "dB-3" }, - { 13, "dB-2" }, - { 14, "dB-1" }, - { 15, "dB0" }, - { 16, "dB1" }, - { 17, "dB2" }, - { 18, "dB3" }, - { 19, "dB4" }, - { 20, "dB5" }, - { 21, "dB6" }, - { 22, "dB8" }, - { 23, "dB10" }, - { 24, "dB12" }, - { 25, "dB14" }, - { 26, "dB16" }, - { 27, "dB18" }, - { 28, "dB20" }, - { 29, "dB22" }, - { 30, "dB24" }, - { 0, NULL } -}; -static value_string_ext nr_rrc_Q_OffsetRange_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_Q_OffsetRange_vals); +static int +dissect_nr_rrc_INTEGER_M63_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, + -63, 64U, NULL, FALSE); + + return offset; +} +static const per_sequence_t T_timeInfo_sequence[] = { + { &hf_nr_rrc_timeInfoUTC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_timeInfoUTC }, + { &hf_nr_rrc_dayLightSavingTime, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dayLightSavingTime }, + { &hf_nr_rrc_leapSeconds , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M127_128 }, + { &hf_nr_rrc_localTimeOffset, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M63_64 }, + { NULL, 0, 0, NULL } +}; + 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_T_timeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_timeInfo, T_timeInfo_sequence); 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 SIB9_sequence[] = { + { &hf_nr_rrc_timeInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_timeInfo }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, { 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_SIB9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB9"); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_Q_OffsetRangeList, Q_OffsetRangeList_sequence); + ett_nr_rrc_SIB9, SIB9_sequence); return offset; } -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 const value_string nr_rrc_T_sib_TypeAndInfo_item_vals[] = { + { 0, "sib2" }, + { 1, "sib3" }, + { 2, "sib4" }, + { 3, "sib5" }, + { 4, "sib6" }, + { 5, "sib7" }, + { 6, "sib8" }, + { 7, "sib9" }, + { 0, NULL } +}; + +static const per_choice_t T_sib_TypeAndInfo_item_choice[] = { + { 0, &hf_nr_rrc_sib2 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_SIB2 }, + { 1, &hf_nr_rrc_sib3 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_SIB3 }, + { 2, &hf_nr_rrc_sib4 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_SIB4 }, + { 3, &hf_nr_rrc_sib5 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_SIB5 }, + { 4, &hf_nr_rrc_sib6 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_SIB6 }, + { 5, &hf_nr_rrc_sib7 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_SIB7 }, + { 6, &hf_nr_rrc_sib8 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_SIB8 }, + { 7, &hf_nr_rrc_sib9 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_SIB9 }, + { 0, NULL, 0, NULL } }; static int -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); +dissect_nr_rrc_T_sib_TypeAndInfo_item(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_sib_TypeAndInfo_item, T_sib_TypeAndInfo_item_choice, + NULL); return offset; } -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 const per_sequence_t T_sib_TypeAndInfo_sequence_of[1] = { + { &hf_nr_rrc_sib_TypeAndInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sib_TypeAndInfo_item }, }; static int -dissect_nr_rrc_CellsToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_CellsToAddMod, CellsToAddMod_sequence); +dissect_nr_rrc_T_sib_TypeAndInfo(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_sib_TypeAndInfo, T_sib_TypeAndInfo_sequence_of, + 1, maxSIB, FALSE); 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 T_nonCriticalExtension_28_sequence[] = { + { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_CellsToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_CellsToAddModList, CellsToAddModList_sequence_of, - 1, maxNrofCellMeas, FALSE); +dissect_nr_rrc_T_nonCriticalExtension_28(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_28, T_nonCriticalExtension_28_sequence); return offset; } +static const per_sequence_t SystemInformation_IEs_sequence[] = { + { &hf_nr_rrc_sib_TypeAndInfo, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sib_TypeAndInfo }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_30, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_28 }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_SystemInformation_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_SystemInformation_IEs, SystemInformation_IEs_sequence); 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 const per_sequence_t T_criticalExtensionsFuture_27_sequence[] = { + { NULL, 0, 0, NULL } }; static int -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); +dissect_nr_rrc_T_criticalExtensionsFuture_27(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_27, T_criticalExtensionsFuture_27_sequence); 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, "n1008" }, - { 15, "spare1" }, +static const value_string nr_rrc_T_criticalExtensions_27_vals[] = { + { 0, "systemInformation-r15" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_27_choice[] = { + { 0, &hf_nr_rrc_systemInformation_r15, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SystemInformation_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_27, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_27 }, + { 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_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 16, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_criticalExtensions_27(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_27, T_criticalExtensions_27_choice, + 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 }, +static const per_sequence_t SystemInformation_sequence[] = { + { &hf_nr_rrc_criticalExtensions_27, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_27 }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_SystemInformation(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, "System Information ["); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_PCI_Range, PCI_Range_sequence); + ett_nr_rrc_SystemInformation, SystemInformation_sequence); + + col_append_str(actx->pinfo->cinfo, COL_INFO, " ]"); return offset; } -static const per_sequence_t PCI_RangeElement_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 }, +static const per_sequence_t T_cellSelectionInfo_sequence[] = { + { &hf_nr_rrc_q_RxLevMin , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Q_RxLevMin }, + { &hf_nr_rrc_q_RxLevMinOffset, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, + { &hf_nr_rrc_q_RxLevMinSUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Q_RxLevMin }, + { &hf_nr_rrc_q_QualMin , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Q_QualMin }, + { &hf_nr_rrc_q_QualMinOffset, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_8 }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_PCI_RangeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_cellSelectionInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_RangeElement, PCI_RangeElement_sequence); + ett_nr_rrc_T_cellSelectionInfo, T_cellSelectionInfo_sequence); return offset; } -static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement_sequence_of[1] = { - { &hf_nr_rrc_blackCellsToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCI_RangeElement }, +static const value_string nr_rrc_T_cellReservedForOtherUse_vals[] = { + { 0, "true" }, + { 0, NULL } }; + static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement(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_maxNrofPCI_Ranges_OF_PCI_RangeElement, SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement_sequence_of, - 1, maxNrofPCI_Ranges, FALSE); +dissect_nr_rrc_T_cellReservedForOtherUse(tvbuff_t *tvb _U_, int offset _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 MeasObjectNR_sequence[] = { - { &hf_nr_rrc_ssbFrequency , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, - { &hf_nr_rrc_ssbSubcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SubcarrierSpacing }, - { &hf_nr_rrc_smtc1 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SSB_MTC }, - { &hf_nr_rrc_smtc2 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SSB_MTC2 }, - { &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_offsetMO , 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_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement }, - { &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_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement }, +static const per_sequence_t CellAccessRelatedInfo_sequence[] = { + { &hf_nr_rrc_plmn_IdentityList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PLMN_IdentityInfoList }, + { &hf_nr_rrc_cellReservedForOtherUse, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_cellReservedForOtherUse }, { 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_CellAccessRelatedInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_CellAccessRelatedInfo, CellAccessRelatedInfo_sequence); return offset; } -static const value_string nr_rrc_T_measObject_vals[] = { - { 0, "measObjectNR" }, +static const value_string nr_rrc_T_connEstFailCount_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n3" }, + { 3, "n4" }, { 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_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_connEstFailCount(tvbuff_t *tvb _U_, int offset _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 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 const value_string nr_rrc_T_connEstFailOffsetValidity_vals[] = { + { 0, "s30" }, + { 1, "s60" }, + { 2, "s120" }, + { 3, "s240" }, + { 4, "s300" }, + { 5, "s420" }, + { 6, "s600" }, + { 7, "s900" }, + { 0, NULL } }; + static int -dissect_nr_rrc_MeasObjectToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_MeasObjectToAddMod, MeasObjectToAddMod_sequence); +dissect_nr_rrc_T_connEstFailOffsetValidity(tvbuff_t *tvb _U_, int offset _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 MeasObjectToAddModList_sequence_of[1] = { - { &hf_nr_rrc_MeasObjectToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasObjectToAddMod }, +static const per_sequence_t ConnEstFailureControl_sequence[] = { + { &hf_nr_rrc_connEstFailCount, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_connEstFailCount }, + { &hf_nr_rrc_connEstFailOffsetValidity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_connEstFailOffsetValidity }, + { &hf_nr_rrc_connEstFailOffset, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_15 }, + { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_MeasObjectToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_MeasObjectToAddModList, MeasObjectToAddModList_sequence_of, - 1, maxNrofObjectId, FALSE); +dissect_nr_rrc_ConnEstFailureControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ConnEstFailureControl, ConnEstFailureControl_sequence); return offset; } +static const value_string nr_rrc_T_si_BroadcastStatus_vals[] = { + { 0, "broadcasting" }, + { 1, "notBroadcasting" }, + { 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, maxReportConfigId, NULL, FALSE); +dissect_nr_rrc_T_si_BroadcastStatus(tvbuff_t *tvb _U_, int offset _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 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_si_Periodicity_vals[] = { + { 0, "rf8" }, + { 1, "rf16" }, + { 2, "rf32" }, + { 3, "rf64" }, + { 4, "rf128" }, + { 5, "rf256" }, + { 6, "rf512" }, + { 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, maxReportConfigId, FALSE); +dissect_nr_rrc_T_si_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, + 7, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_NR_RS_Type_vals[] = { - { 0, "ssb" }, - { 1, "csi-rs" }, +static const value_string nr_rrc_T_type_vals[] = { + { 0, "sibType2" }, + { 1, "sibType3" }, + { 2, "sibType4" }, + { 3, "sibType5" }, + { 4, "sibType6" }, + { 5, "sibType7" }, + { 6, "sibType8" }, + { 7, "sibType9" }, + { 8, "spare8" }, + { 9, "spare7" }, + { 10, "spare6" }, + { 11, "spare5" }, + { 12, "spare4" }, + { 13, "spare3" }, + { 14, "spare2" }, + { 15, "spare1" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_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); + 16, NULL, TRUE, 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" }, +static const value_string nr_rrc_T_areaScope_vals[] = { + { 0, "true" }, { 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_areaScope(tvbuff_t *tvb _U_, int offset _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); + 1, 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 const per_sequence_t SIB_TypeInfo_sequence[] = { + { &hf_nr_rrc_type , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_type }, + { &hf_nr_rrc_valueTag , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_31 }, + { &hf_nr_rrc_areaScope , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_areaScope }, + { NULL, 0, 0, NULL } }; +static int +dissect_nr_rrc_SIB_TypeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SIB_TypeInfo, SIB_TypeInfo_sequence); + + return offset; +} + + +static const per_sequence_t SIB_Mapping_sequence_of[1] = { + { &hf_nr_rrc_SIB_Mapping_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SIB_TypeInfo }, +}; static int -dissect_nr_rrc_T_reportAmount_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 8, NULL, FALSE, 0, NULL); +dissect_nr_rrc_SIB_Mapping(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_SIB_Mapping, SIB_Mapping_sequence_of, + 1, maxSIB, FALSE); 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 const per_sequence_t SchedulingInfo_sequence[] = { + { &hf_nr_rrc_si_BroadcastStatus, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_si_BroadcastStatus }, + { &hf_nr_rrc_si_Periodicity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_si_Periodicity }, + { &hf_nr_rrc_sib_MappingInfo, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SIB_Mapping }, { 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_SchedulingInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_SchedulingInfo, SchedulingInfo_sequence); return offset; } +static const per_sequence_t SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo_sequence_of[1] = { + { &hf_nr_rrc_schedulingInfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SchedulingInfo }, +}; 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_SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo(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_maxSI_Message_OF_SchedulingInfo, SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo_sequence_of, + 1, maxSI_Message, FALSE); return offset; } +static const value_string nr_rrc_T_si_WindowLength_vals[] = { + { 0, "s5" }, + { 1, "s10" }, + { 2, "s20" }, + { 3, "s40" }, + { 4, "s80" }, + { 5, "s160" }, + { 6, "s320" }, + { 7, "s640" }, + { 8, "s1280" }, + { 0, NULL } +}; + static int -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, - 1U, maxNrofIndexesToReport, NULL, FALSE); +dissect_nr_rrc_T_si_WindowLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 9, NULL, FALSE, 0, NULL); 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 const value_string nr_rrc_T_msg1_FDM_vals[] = { + { 0, "one" }, + { 1, "two" }, + { 2, "four" }, + { 3, "eight" }, + { 0, NULL } }; + static int -dissect_nr_rrc_PeriodicalReportConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_PeriodicalReportConfig, PeriodicalReportConfig_sequence); +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 const value_string nr_rrc_MeasTriggerQuantity_vals[] = { - { 0, "rsrp" }, - { 1, "rsrq" }, - { 2, "sinr" }, + +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, + 0U, maxNrofPhysicalResourceBlocks_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_M202_M60(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + -202, -60, 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 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_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); +dissect_nr_rrc_T_preambleTransMax(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 11, NULL, FALSE, 0, NULL); return offset; } +static const value_string nr_rrc_T_powerRampingStep_vals[] = { + { 0, "dB0" }, + { 1, "dB2" }, + { 2, "dB4" }, + { 3, "dB6" }, + { 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_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_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_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_TimeToTrigger(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 16, NULL, FALSE, 0, NULL); + 8, 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 }, +static const per_sequence_t RACH_ConfigGeneric_sequence[] = { + { &hf_nr_rrc_prach_ConfigurationIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_255 }, + { &hf_nr_rrc_msg1_FDM , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_msg1_FDM }, + { &hf_nr_rrc_msg1_FrequencyStart, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofPhysicalResourceBlocks_1 }, + { &hf_nr_rrc_zeroCorrelationZoneConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_15 }, + { &hf_nr_rrc_preambleReceivedTargetPower, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M202_M60 }, + { &hf_nr_rrc_preambleTransMax, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_preambleTransMax }, + { &hf_nr_rrc_powerRampingStep, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_powerRampingStep }, + { &hf_nr_rrc_ra_ResponseWindow, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ra_ResponseWindow }, { 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_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_eventA1, T_eventA1_sequence); + ett_nr_rrc_RACH_ConfigGeneric, RACH_ConfigGeneric_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 const value_string nr_rrc_T_ssb_perRACH_Occasion_02_vals[] = { + { 0, "oneEighth" }, + { 1, "oneFourth" }, + { 2, "oneHalf" }, + { 3, "one" }, + { 4, "two" }, + { 5, "four" }, + { 6, "eight" }, + { 7, "sixteen" }, + { 0, NULL } }; + static int -dissect_nr_rrc_T_eventA2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_eventA2, T_eventA2_sequence); +dissect_nr_rrc_T_ssb_perRACH_Occasion_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, + 8, NULL, FALSE, 0, NULL); return offset; } +static const per_sequence_t T_rach_OccasionsSI_sequence[] = { + { &hf_nr_rrc_rach_ConfigSI, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RACH_ConfigGeneric }, + { &hf_nr_rrc_ssb_perRACH_Occasion_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ssb_perRACH_Occasion_02 }, + { NULL, 0, 0, NULL } +}; static int -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, - -30, 30U, NULL, FALSE); +dissect_nr_rrc_T_rach_OccasionsSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_rach_OccasionsSI, T_rach_OccasionsSI_sequence); return offset; } -static const value_string nr_rrc_MeasTriggerQuantityOffset_vals[] = { - { 0, "rsrp" }, - { 1, "rsrq" }, - { 2, "sinr" }, +static const value_string nr_rrc_T_si_RequestPeriod_vals[] = { + { 0, "one" }, + { 1, "two" }, + { 2, "four" }, + { 3, "six" }, + { 4, "eight" }, + { 5, "ten" }, + { 6, "twelve" }, + { 7, "sixteen" }, { 0, NULL } }; -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_MeasTriggerQuantityOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_MeasTriggerQuantityOffset, MeasTriggerQuantityOffset_choice, - NULL); +dissect_nr_rrc_T_si_RequestPeriod(tvbuff_t *tvb _U_, int offset _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_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 }, +static const per_sequence_t SI_RequestResources_sequence[] = { + { &hf_nr_rrc_ra_PreambleStartIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_63 }, + { &hf_nr_rrc_ra_AssociationPeriodIndex, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_15 }, + { &hf_nr_rrc_ra_ssb_OccasionMaskIndex, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_15 }, { 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_SI_RequestResources(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_SI_RequestResources, SI_RequestResources_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_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { NULL, 0, 0, NULL } +static const per_sequence_t SEQUENCE_SIZE_1_maxSI_Message_OF_SI_RequestResources_sequence_of[1] = { + { &hf_nr_rrc_si_RequestResources_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SI_RequestResources }, }; 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_SEQUENCE_SIZE_1_maxSI_Message_OF_SI_RequestResources(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_maxSI_Message_OF_SI_RequestResources, SEQUENCE_SIZE_1_maxSI_Message_OF_SI_RequestResources_sequence_of, + 1, maxSI_Message, FALSE); 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_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, +static const per_sequence_t SI_RequestConfig_sequence[] = { + { &hf_nr_rrc_rach_OccasionsSI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_rach_OccasionsSI }, + { &hf_nr_rrc_si_RequestPeriod, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_si_RequestPeriod }, + { &hf_nr_rrc_si_RequestResources, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SI_RequestResources }, { 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_SI_RequestConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_SI_RequestConfig, SI_RequestConfig_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_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + +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 per_sequence_t SI_SchedulingInfo_sequence[] = { + { &hf_nr_rrc_schedulingInfoList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo }, + { &hf_nr_rrc_si_WindowLength, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_si_WindowLength }, + { &hf_nr_rrc_si_RequestConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SI_RequestConfig }, + { &hf_nr_rrc_si_RequestConfigSUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SI_RequestConfig }, + { &hf_nr_rrc_systemInformationAreaID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_24 }, { 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_SI_SchedulingInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_SI_SchedulingInfo, SI_SchedulingInfo_sequence); return offset; } -static const value_string nr_rrc_T_eventId_vals[] = { - { 0, "eventA1" }, - { 1, "eventA2" }, - { 2, "eventA3" }, - { 3, "eventA4" }, - { 4, "eventA5" }, - { 5, "eventA6" }, - { 0, NULL } -}; - -static const per_choice_t T_eventId_choice[] = { - { 0, &hf_nr_rrc_eventA1 , ASN1_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_T_eventId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_eventId, T_eventId_choice, - NULL); +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_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_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 int -dissect_nr_rrc_T_reportAmount(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 8, NULL, FALSE, 0, NULL); +dissect_nr_rrc_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, 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, 4095U, NULL, FALSE); return offset; } -static const value_string nr_rrc_T_reportAddNeighMeas_vals[] = { - { 0, "setup" }, - { 0, NULL } +static const per_sequence_t SCS_SpecificCarrier_eag_1_sequence[] = { + { &hf_nr_rrc_txDirectCurrentLocation_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_4095 }, + { NULL, 0, 0, NULL } }; - static int -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, - 1, NULL, FALSE, 0, NULL); +dissect_nr_rrc_SCS_SpecificCarrier_eag_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_eag(tvb, offset, actx, tree, SCS_SpecificCarrier_eag_1_sequence); return offset; } -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 }, +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_carrierBandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxNrofPhysicalResourceBlocks }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_SCS_SpecificCarrier_eag_1 }, { 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_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_EventTriggerConfig, EventTriggerConfig_sequence); + ett_nr_rrc_SCS_SpecificCarrier, SCS_SpecificCarrier_sequence); return offset; } -static const value_string nr_rrc_T_reportType_vals[] = { - { 0, "periodical" }, - { 1, "eventTriggered" }, - { 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 }, - { 0, NULL, 0, NULL } +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_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); +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 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 FrequencyInfoDL_SIB_sequence[] = { + { &hf_nr_rrc_frequencyBandList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MultiFrequencyBandListNR_SIB }, + { &hf_nr_rrc_offsetToPointA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_2199 }, + { &hf_nr_rrc_scs_SpecificCarrierList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier }, { 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_FrequencyInfoDL_SIB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_FrequencyInfoDL_SIB, FrequencyInfoDL_SIB_sequence); return offset; } -static const value_string nr_rrc_T_reportConfig_vals[] = { - { 0, "reportConfigNR" }, + +static int +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, 37949U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_cyclicPrefix_vals[] = { + { 0, "extended" }, { 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_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); +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 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 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_ReportConfigToAddMod(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_ReportConfigToAddMod, ReportConfigToAddMod_sequence); + ett_nr_rrc_BWP, BWP_sequence); return offset; } -static const per_sequence_t ReportConfigToAddModList_sequence_of[1] = { - { &hf_nr_rrc_ReportConfigToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportConfigToAddMod }, -}; static int -dissect_nr_rrc_ReportConfigToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_ReportConfigToAddModList, ReportConfigToAddModList_sequence_of, - 1, maxReportConfigId, FALSE); +dissect_nr_rrc_ControlResourceSetId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofControlResourceSets_1, NULL, FALSE); return offset; } @@ -7338,916 +9940,982 @@ dissect_nr_rrc_ReportConfigToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ 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_) { +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; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxCoReSetDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 1U, maxNrofMeasId, NULL, FALSE); + 1U, maxCoReSetDuration, 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 const value_string nr_rrc_T_reg_BundleSize_vals[] = { + { 0, "n2" }, + { 1, "n3" }, + { 2, "n6" }, + { 0, NULL } }; + static int -dissect_nr_rrc_MeasIdToRemoveList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_MeasIdToRemoveList, MeasIdToRemoveList_sequence_of, - 1, maxNrofMeasId, FALSE); +dissect_nr_rrc_T_reg_BundleSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); return offset; } -static const 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 const value_string nr_rrc_T_interleaverSize_vals[] = { + { 0, "n2" }, + { 1, "n3" }, + { 2, "n6" }, + { 0, NULL } }; + static int -dissect_nr_rrc_MeasIdToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_MeasIdToAddMod, MeasIdToAddMod_sequence); +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 MeasIdToAddModList_sequence_of[1] = { - { &hf_nr_rrc_MeasIdToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasIdToAddMod }, +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_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxNrofPhysicalResourceBlocks_1 }, + { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_MeasIdToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_MeasIdToAddModList, MeasIdToAddModList_sequence_of, - 1, maxNrofMeasId, FALSE); +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_s_MeasureConfig_vals[] = { - { 0, "ssb-RSRP" }, - { 1, "csi-RSRP" }, +static const value_string nr_rrc_T_cce_REG_MappingType_vals[] = { + { 0, "interleaved" }, + { 1, "nonInterleaved" }, { 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 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_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_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_s_MeasureConfig, T_s_MeasureConfig_choice, + ett_nr_rrc_T_cce_REG_MappingType, T_cce_REG_MappingType_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" }, +static const value_string nr_rrc_T_precoderGranularity_vals[] = { + { 0, "sameAsREG-bundle" }, + { 1, "allContiguousRBs" }, { 0, NULL } }; static int -dissect_nr_rrc_FilterCoefficient(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 16, NULL, TRUE, 0, NULL); + 2, NULL, FALSE, 0, NULL); return offset; } -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_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_FilterConfig, FilterConfig_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 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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId_sequence_of[1] = { + { &hf_nr_rrc_tci_StatesPDCCH_ToAddList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TCI_StateId }, }; static int -dissect_nr_rrc_QuantityConfigRS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_QuantityConfigRS, QuantityConfigRS_sequence); +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_maxNrofTCI_StatesPDCCH_OF_TCI_StateId, SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId_sequence_of, + 1, maxNrofTCI_StatesPDCCH, FALSE); 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 const value_string nr_rrc_T_tci_PresentInDCI_vals[] = { + { 0, "enabled" }, + { 0, NULL } }; + static int -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); +dissect_nr_rrc_T_tci_PresentInDCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR_sequence_of[1] = { - { &hf_nr_rrc_quantityConfigNR_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_QuantityConfigNR }, -}; static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR(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_maxNrofQuantityConfig_OF_QuantityConfigNR, SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR_sequence_of, - 1, maxNrofQuantityConfig, FALSE); +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 QuantityConfig_sequence[] = { - { &hf_nr_rrc_quantityConfigNR_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR }, +static const per_sequence_t ControlResourceSet_sequence[] = { + { &hf_nr_rrc_controlResourceSetId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ControlResourceSetId }, + { &hf_nr_rrc_frequencyDomainResources, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_45 }, + { &hf_nr_rrc_duration , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxCoReSetDuration }, + { &hf_nr_rrc_cce_REG_MappingType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cce_REG_MappingType }, + { &hf_nr_rrc_precoderGranularity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_precoderGranularity }, + { &hf_nr_rrc_tci_StatesPDCCH_ToAddList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId }, + { &hf_nr_rrc_tci_StatesPDCCH_ToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId }, + { &hf_nr_rrc_tci_PresentInDCI, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tci_PresentInDCI }, + { &hf_nr_rrc_pdcch_DMRS_ScramblingID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_65535 }, { 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_) { +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_QuantityConfig, QuantityConfig_sequence); + ett_nr_rrc_ControlResourceSet, ControlResourceSet_sequence); return offset; } -static const value_string nr_rrc_T_gapFR2_vals[] = { - { 0, "release" }, - { 1, "setup" }, + +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, + 0U, maxNrofSearchSpaces_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 1U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_0_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_monitoringSlotPeriodicityAndOffset_vals[] = { + { 0, "sl1" }, + { 1, "sl2" }, + { 2, "sl4" }, + { 3, "sl5" }, + { 4, "sl8" }, + { 5, "sl10" }, + { 6, "sl16" }, + { 7, "sl20" }, + { 8, "sl40" }, + { 9, "sl80" }, + { 10, "sl160" }, + { 11, "sl320" }, + { 12, "sl640" }, + { 13, "sl1280" }, + { 14, "sl2560" }, { 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 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_GapConfig }, +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_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_sl40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, + { 9, &hf_nr_rrc_sl80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, + { 10, &hf_nr_rrc_sl160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, + { 11, &hf_nr_rrc_sl320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, + { 12, &hf_nr_rrc_sl640 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_639 }, + { 13, &hf_nr_rrc_sl1280 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_1279 }, + { 14, &hf_nr_rrc_sl2560 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_2559 }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_monitoringSlotPeriodicityAndOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_gapFR2, T_gapFR2_choice, + ett_nr_rrc_T_monitoringSlotPeriodicityAndOffset, T_monitoringSlotPeriodicityAndOffset_choice, NULL); return offset; } -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_MeasGapConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_MeasGapConfig, MeasGapConfig_sequence); +dissect_nr_rrc_INTEGER_2_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, + 2U, 2559U, NULL, FALSE); return offset; } -static const value_string nr_rrc_MeasGapSharingScheme_vals[] = { - { 0, "scheme00" }, - { 1, "scheme01" }, - { 2, "scheme10" }, - { 3, "scheme11" }, + +static int +dissect_nr_rrc_BIT_STRING_SIZE_14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 14, 14, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_aggregationLevel1_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 4, "n4" }, + { 5, "n5" }, + { 6, "n6" }, + { 7, "n8" }, { 0, NULL } }; static int -dissect_nr_rrc_MeasGapSharingScheme(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(tvbuff_t *tvb _U_, int offset _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_gapSharingFR2_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const value_string nr_rrc_T_aggregationLevel2_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 4, "n4" }, + { 5, "n5" }, + { 6, "n6" }, + { 7, "n8" }, { 0, NULL } }; -static const per_choice_t T_gapSharingFR2_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_MeasGapSharingScheme }, - { 0, NULL, 0, NULL } -}; static int -dissect_nr_rrc_T_gapSharingFR2(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_gapSharingFR2, T_gapSharingFR2_choice, - NULL); +dissect_nr_rrc_T_aggregationLevel2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t MeasGapSharingConfig_sequence[] = { - { &hf_nr_rrc_gapSharingFR2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_gapSharingFR2 }, - { NULL, 0, 0, NULL } +static const value_string nr_rrc_T_aggregationLevel4_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 4, "n4" }, + { 5, "n5" }, + { 6, "n6" }, + { 7, "n8" }, + { 0, NULL } }; + static int -dissect_nr_rrc_MeasGapSharingConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_MeasGapSharingConfig, MeasGapSharingConfig_sequence); +dissect_nr_rrc_T_aggregationLevel4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); return offset; } -static const 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_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasGapConfig }, - { &hf_nr_rrc_measGapSharingConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasGapSharingConfig }, - { NULL, 0, 0, NULL } +static const value_string nr_rrc_T_aggregationLevel8_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 2, "n2" }, + { 3, "n3" }, + { 4, "n4" }, + { 5, "n5" }, + { 6, "n6" }, + { 7, "n8" }, + { 0, NULL } }; + static int -dissect_nr_rrc_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); +dissect_nr_rrc_T_aggregationLevel8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, FALSE, 0, NULL); return offset; } +static const 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_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_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_nonCriticalExtension_06_sequence[] = { +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 } }; static int -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_) { +dissect_nr_rrc_T_nrofCandidates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_06, T_nonCriticalExtension_06_sequence); + ett_nr_rrc_T_nrofCandidates, T_nrofCandidates_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_06, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_06 }, - { NULL, 0, 0, NULL } +static const per_sequence_t T_dci_Format0_0_AndFormat1_0_sequence[] = { + { NULL, ASN1_EXTENSION_ROOT, 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_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_RRCReconfiguration_IEs, RRCReconfiguration_IEs_sequence); + ett_nr_rrc_T_dci_Format0_0_AndFormat1_0, T_dci_Format0_0_AndFormat1_0_sequence); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_06_sequence[] = { - { NULL, 0, 0, NULL } +static const value_string nr_rrc_T_aggregationLevel1_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } }; + static int -dissect_nr_rrc_T_criticalExtensionsFuture_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_criticalExtensionsFuture_06, T_criticalExtensionsFuture_06_sequence); +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, + 2, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_criticalExtensions_06_vals[] = { - { 0, "rrcReconfiguration" }, - { 1, "criticalExtensionsFuture" }, +static const value_string nr_rrc_T_aggregationLevel2_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_06_choice[] = { - { 0, &hf_nr_rrc_rrcReconfiguration_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfiguration_IEs }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_06, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_06 }, - { 0, NULL, 0, NULL } -}; static int -dissect_nr_rrc_T_criticalExtensions_06(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_06, T_criticalExtensions_06_choice, - NULL); +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 RRCReconfiguration_sequence[] = { - { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, - { &hf_nr_rrc_criticalExtensions_06, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_06 }, - { 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_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); +static int +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 value_string nr_rrc_T_c1_05_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 value_string nr_rrc_T_aggregationLevel8_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, { 0, NULL } }; -static const per_choice_t T_c1_05_choice[] = { - { 0, &hf_nr_rrc_rrcReconfiguration, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfiguration }, - { 1, &hf_nr_rrc_spare15 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 2, &hf_nr_rrc_spare14 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 3, &hf_nr_rrc_spare13 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 4, &hf_nr_rrc_spare12 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 5, &hf_nr_rrc_spare11 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 6, &hf_nr_rrc_spare10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 7, &hf_nr_rrc_spare9 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 8, &hf_nr_rrc_spare8 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 9, &hf_nr_rrc_spare7 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 10, &hf_nr_rrc_spare6 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 11, &hf_nr_rrc_spare5 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 12, &hf_nr_rrc_spare4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 13, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 14, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 15, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 0, NULL, 0, NULL } -}; static int -dissect_nr_rrc_T_c1_05(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_05, T_c1_05_choice, - NULL); +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 per_sequence_t T_messageClassExtension_01_sequence[] = { - { NULL, 0, 0, NULL } +static const value_string nr_rrc_T_aggregationLevel16_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } }; + static int -dissect_nr_rrc_T_messageClassExtension_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_messageClassExtension_01, T_messageClassExtension_01_sequence); +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 value_string nr_rrc_DL_DCCH_MessageType_vals[] = { - { 0, "c1" }, - { 1, "messageClassExtension" }, - { 0, NULL } -}; - -static const per_choice_t DL_DCCH_MessageType_choice[] = { - { 0, &hf_nr_rrc_c1_05 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_05 }, - { 1, &hf_nr_rrc_messageClassExtension_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_01 }, - { 0, NULL, 0, NULL } +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_DL_DCCH_MessageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_DL_DCCH_MessageType, DL_DCCH_MessageType_choice, - NULL); +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_T_nrofCandidates_SFI, T_nrofCandidates_SFI_sequence); 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 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_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_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); - 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 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_DL_DCCH_Message, DL_DCCH_Message_sequence); + ett_nr_rrc_T_dci_Format2_1, T_dci_Format2_1_sequence); return offset; } -static const per_sequence_t MeasResultServMO_sequence[] = { - { &hf_nr_rrc_servCellId , 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_OPTIONAL , dissect_nr_rrc_MeasResultNR }, - { NULL, 0, 0, NULL } +static const per_sequence_t T_dci_Format2_2_sequence[] = { + { NULL, ASN1_EXTENSION_ROOT, 0, NULL } }; static int -dissect_nr_rrc_MeasResultServMO(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_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_MeasResultServMO, MeasResultServMO_sequence); + ett_nr_rrc_T_dci_Format2_2, T_dci_Format2_2_sequence); return offset; } -static const per_sequence_t MeasResultServMOList_sequence_of[1] = { - { &hf_nr_rrc_MeasResultServMOList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultServMO }, +static const value_string nr_rrc_T_dummy1_vals[] = { + { 0, "sl1" }, + { 1, "sl2" }, + { 2, "sl4" }, + { 3, "sl5" }, + { 4, "sl8" }, + { 5, "sl10" }, + { 6, "sl16" }, + { 7, "sl20" }, + { 0, NULL } }; + static int -dissect_nr_rrc_MeasResultServMOList(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_MeasResultServMOList, MeasResultServMOList_sequence_of, - 1, maxNrofServingCells, FALSE); +dissect_nr_rrc_T_dummy1(tvbuff_t *tvb _U_, int offset _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_measResultNeighCells_vals[] = { - { 0, "measResultListNR" }, +static const value_string nr_rrc_T_dummy2_vals[] = { + { 0, "n1" }, + { 1, "n2" }, { 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_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); +dissect_nr_rrc_T_dummy2(tvbuff_t *tvb _U_, int offset _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 MeasResults_sequence[] = { - { &hf_nr_rrc_measId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasId }, - { &hf_nr_rrc_measResultServingMOList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultServMOList }, - { &hf_nr_rrc_measResultNeighCells, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_measResultNeighCells }, +static const per_sequence_t T_dci_Format2_3_sequence[] = { + { &hf_nr_rrc_dummy1 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dummy1 }, + { &hf_nr_rrc_dummy2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dummy2 }, { 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_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_MeasResults, MeasResults_sequence); + ett_nr_rrc_T_dci_Format2_3, T_dci_Format2_3_sequence); return offset; } -static const per_sequence_t T_nonCriticalExtension_05_sequence[] = { +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_T_nonCriticalExtension_05(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_T_nonCriticalExtension_05, T_nonCriticalExtension_05_sequence); + ett_nr_rrc_T_common, T_common_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_05, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_05 }, - { NULL, 0, 0, NULL } +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_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); +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); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_05_sequence[] = { +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 } }; static int -dissect_nr_rrc_T_criticalExtensionsFuture_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_ue_Specific(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensionsFuture_05, T_criticalExtensionsFuture_05_sequence); + ett_nr_rrc_T_ue_Specific, T_ue_Specific_sequence); return offset; } -static const value_string nr_rrc_T_criticalExtensions_05_vals[] = { - { 0, "measurementReport" }, - { 1, "criticalExtensionsFuture" }, +static const value_string nr_rrc_T_searchSpaceType_vals[] = { + { 0, "common" }, + { 1, "ue-Specific" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_05_choice[] = { - { 0, &hf_nr_rrc_measurementReport_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasurementReport_IEs }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_05, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_05 }, +static const per_choice_t T_searchSpaceType_choice[] = { + { 0, &hf_nr_rrc_common , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_common }, + { 1, &hf_nr_rrc_ue_Specific , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_ue_Specific }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensions_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_searchSpaceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensions_05, T_criticalExtensions_05_choice, + ett_nr_rrc_T_searchSpaceType, T_searchSpaceType_choice, NULL); return offset; } -static const per_sequence_t MeasurementReport_sequence[] = { - { &hf_nr_rrc_criticalExtensions_05, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_05 }, +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_OPTIONAL , dissect_nr_rrc_ControlResourceSetId }, + { &hf_nr_rrc_monitoringSlotPeriodicityAndOffset, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_monitoringSlotPeriodicityAndOffset }, + { &hf_nr_rrc_duration_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_2559 }, + { &hf_nr_rrc_monitoringSymbolsWithinSlot, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_14 }, + { &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 } }; 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_SearchSpace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_MeasurementReport, MeasurementReport_sequence); + ett_nr_rrc_SearchSpace, SearchSpace_sequence); return offset; } -static const per_sequence_t T_nonCriticalExtension_07_sequence[] = { - { NULL, 0, 0, NULL } +static const per_sequence_t SEQUENCE_SIZE_1_4_OF_SearchSpace_sequence_of[1] = { + { &hf_nr_rrc_commonSearchSpaceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SearchSpace }, }; static int -dissect_nr_rrc_T_nonCriticalExtension_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_07, T_nonCriticalExtension_07_sequence); +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_4_OF_SearchSpace, SEQUENCE_SIZE_1_4_OF_SearchSpace_sequence_of, + 1, 4, FALSE); return offset; } -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_07, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_07 }, +static const per_sequence_t PDCCH_ConfigCommon_sequence[] = { + { &hf_nr_rrc_controlResourceSetZero, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ControlResourceSetZero }, + { &hf_nr_rrc_commonControlResourceSet, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ControlResourceSet }, + { &hf_nr_rrc_searchSpaceZero, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SearchSpaceZero }, + { &hf_nr_rrc_commonSearchSpaceList, 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_SearchSpace, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SearchSpaceId }, { 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_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_RRCReconfigurationComplete_IEs, RRCReconfigurationComplete_IEs_sequence); + ett_nr_rrc_PDCCH_ConfigCommon, PDCCH_ConfigCommon_sequence); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_07_sequence[] = { - { NULL, 0, 0, NULL } +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_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDCCH_ConfigCommon }, + { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensionsFuture_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensionsFuture_07, T_criticalExtensionsFuture_07_sequence); +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_criticalExtensions_07_vals[] = { - { 0, "rrcReconfigurationComplete" }, - { 1, "criticalExtensionsFuture" }, + +static int +dissect_nr_rrc_INTEGER_0_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 32U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_mappingType_vals[] = { + { 0, "typeA" }, + { 1, "typeB" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_07_choice[] = { - { 0, &hf_nr_rrc_rrcReconfigurationComplete_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfigurationComplete_IEs }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_07, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_07 }, - { 0, NULL, 0, NULL } -}; static int -dissect_nr_rrc_T_criticalExtensions_07(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_07, T_criticalExtensions_07_choice, - NULL); +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); 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_07, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_07 }, +static const per_sequence_t PDSCH_TimeDomainResourceAllocation_sequence[] = { + { &hf_nr_rrc_k0 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_32 }, + { &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_INTEGER_0_127 }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_RRCReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration Complete"); - +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_RRCReconfigurationComplete, RRCReconfigurationComplete_sequence); + ett_nr_rrc_PDSCH_TimeDomainResourceAllocation, PDSCH_TimeDomainResourceAllocation_sequence); return offset; } -static const value_string nr_rrc_T_c1_06_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_06_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 const per_sequence_t PDSCH_TimeDomainResourceAllocationList_sequence_of[1] = { + { &hf_nr_rrc_PDSCH_TimeDomainResourceAllocationList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PDSCH_TimeDomainResourceAllocation }, }; static int -dissect_nr_rrc_T_c1_06(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_06, T_c1_06_choice, - NULL); +dissect_nr_rrc_PDSCH_TimeDomainResourceAllocationList(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_PDSCH_TimeDomainResourceAllocationList, PDSCH_TimeDomainResourceAllocationList_sequence_of, + 1, maxNrofDL_Allocations, FALSE); return offset; } -static const per_sequence_t T_messageClassExtension_02_sequence[] = { +static const per_sequence_t PDSCH_ConfigCommon_sequence[] = { + { &hf_nr_rrc_pdsch_TimeDomainAllocationList_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PDSCH_TimeDomainResourceAllocationList }, { 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_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_T_messageClassExtension_02, T_messageClassExtension_02_sequence); + ett_nr_rrc_PDSCH_ConfigCommon, PDSCH_ConfigCommon_sequence); return offset; } -static const value_string nr_rrc_UL_DCCH_MessageType_vals[] = { - { 0, "c1" }, - { 1, "messageClassExtension" }, +static const value_string nr_rrc_T_pdsch_ConfigCommon_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; -static const per_choice_t UL_DCCH_MessageType_choice[] = { - { 0, &hf_nr_rrc_c1_06 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_06 }, - { 1, &hf_nr_rrc_messageClassExtension_02, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_02 }, +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_03 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_ConfigCommon }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_UL_DCCH_MessageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_UL_DCCH_MessageType, UL_DCCH_MessageType_choice, + ett_nr_rrc_T_pdsch_ConfigCommon, T_pdsch_ConfigCommon_choice, NULL); return offset; } -static const per_sequence_t UL_DCCH_Message_sequence[] = { - { &hf_nr_rrc_message_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UL_DCCH_MessageType }, +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, 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_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; - +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_UL_DCCH_Message, UL_DCCH_Message_sequence); + ett_nr_rrc_BWP_DownlinkCommon, BWP_DownlinkCommon_sequence); return offset; } -static const value_string nr_rrc_T_frequencyOffsetSSB_vals[] = { - { 0, "khz-5" }, - { 1, "khz5" }, +static const value_string nr_rrc_T_modificationPeriodCoeff_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 2, "n8" }, + { 3, "n16" }, { 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_) { +dissect_nr_rrc_T_modificationPeriodCoeff(tvbuff_t *tvb _U_, int offset _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); + 4, 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 }, +static const per_sequence_t BCCH_Config_sequence[] = { + { &hf_nr_rrc_modificationPeriodCoeff, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_modificationPeriodCoeff }, { 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_) { +dissect_nr_rrc_BCCH_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_ssb_PositionsInBurst, T_ssb_PositionsInBurst_sequence); + ett_nr_rrc_BCCH_Config, BCCH_Config_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" }, +static const value_string nr_rrc_PagingCycle_vals[] = { + { 0, "rf32" }, + { 1, "rf64" }, + { 2, "rf128" }, + { 3, "rf256" }, { 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_PagingCycle(tvbuff_t *tvb _U_, int offset _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); + 4, NULL, FALSE, 0, NULL); return offset; } +static const value_string nr_rrc_T_nAndPagingFrameOffset_vals[] = { + { 0, "oneT" }, + { 1, "halfT" }, + { 2, "quarterT" }, + { 3, "oneEighthT" }, + { 4, "oneSixteenthT" }, + { 0, NULL } +}; + +static const per_choice_t T_nAndPagingFrameOffset_choice[] = { + { 0, &hf_nr_rrc_oneT , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_halfT , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_1 }, + { 2, &hf_nr_rrc_quarterT , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_3 }, + { 3, &hf_nr_rrc_oneEighthT , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_7 }, + { 4, &hf_nr_rrc_oneSixteenthT, ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_15 }, + { 0, NULL, 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); +dissect_nr_rrc_T_nAndPagingFrameOffset(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_nAndPagingFrameOffset, T_nAndPagingFrameOffset_choice, + NULL); return offset; } +static const value_string nr_rrc_T_ns_vals[] = { + { 0, "four" }, + { 1, "two" }, + { 2, "one" }, + { 0, NULL } +}; + 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_) { +dissect_nr_rrc_T_ns(tvbuff_t *tvb _U_, int offset _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_INTEGER_0_139(tvbuff_t *tvb _U_, int offset _U_, 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); + 0U, 139U, 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 const per_sequence_t T_sCS15KHZoneT_sequence_of[1] = { + { &hf_nr_rrc_sCS15KHZoneT_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_139 }, }; 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_) { +dissect_nr_rrc_T_sCS15KHZoneT(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); + ett_nr_rrc_T_sCS15KHZoneT, T_sCS15KHZoneT_sequence_of, + 1, 4, FALSE); return offset; } @@ -8255,49 +10923,47 @@ dissect_nr_rrc_MultiFrequencyBandListNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int -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_) { +dissect_nr_rrc_INTEGER_0_279(tvbuff_t *tvb _U_, int offset _U_, 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); + 0U, 279U, NULL, FALSE); return offset; } +static const per_sequence_t T_sCS30KHZoneT_SCS15KHZhalfT_sequence_of[1] = { + { &hf_nr_rrc_sCS30KHZoneT_SCS15KHZhalfT_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_279 }, +}; 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_T_sCS30KHZoneT_SCS15KHZhalfT(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_sCS30KHZoneT_SCS15KHZhalfT, T_sCS30KHZoneT_SCS15KHZhalfT_sequence_of, + 1, 4, 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_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); +dissect_nr_rrc_INTEGER_0_559(tvbuff_t *tvb _U_, int offset _U_, 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, 559U, NULL, FALSE); 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 const per_sequence_t T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_sequence_of[1] = { + { &hf_nr_rrc_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_559 }, }; 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_) { +dissect_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT(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); + ett_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_sequence_of, + 1, 4, FALSE); return offset; } @@ -8305,43 +10971,47 @@ dissect_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier(tvbuff_t *tvb _U_, 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_) { +dissect_nr_rrc_INTEGER_0_1119(tvbuff_t *tvb _U_, int offset _U_, 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); + 0U, 1119U, NULL, FALSE); return offset; } -static const value_string nr_rrc_T_frequencyShift7p5khz_vals[] = { - { 0, "true" }, - { 0, NULL } +static const per_sequence_t T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_sequence_of[1] = { + { &hf_nr_rrc_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_1119 }, }; +static int +dissect_nr_rrc_T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT(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_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_sequence_of, + 1, 4, FALSE); + + return offset; +} + + 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_INTEGER_0_2239(tvbuff_t *tvb _U_, int offset _U_, 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, 2239U, NULL, FALSE); 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_SpecificCarrierList, 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 const per_sequence_t T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_sequence_of[1] = { + { &hf_nr_rrc_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_2239 }, }; static int -dissect_nr_rrc_FrequencyInfoUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_FrequencyInfoUL, FrequencyInfoUL_sequence); +dissect_nr_rrc_T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT(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_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_sequence_of, + 1, 4, FALSE); return offset; } @@ -8349,58 +11019,47 @@ dissect_nr_rrc_FrequencyInfoUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int -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_) { +dissect_nr_rrc_INTEGER_0_4479(tvbuff_t *tvb _U_, int offset _U_, 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, 37949U, NULL, FALSE); + 0U, 4479U, NULL, FALSE); return offset; } -static const value_string nr_rrc_T_cyclicPrefix_vals[] = { - { 0, "extended" }, - { 0, NULL } +static const per_sequence_t T_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_sequence_of[1] = { + { &hf_nr_rrc_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_4479 }, }; - 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_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT(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_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, T_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_sequence_of, + 1, 4, FALSE); 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_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_BWP, BWP_sequence); +dissect_nr_rrc_INTEGER_0_8959(tvbuff_t *tvb _U_, int offset _U_, 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, 8959U, NULL, FALSE); return offset; } -static const value_string nr_rrc_T_msg1_FDM_vals[] = { - { 0, "one" }, - { 1, "two" }, - { 2, "four" }, - { 3, "eight" }, - { 0, NULL } +static const per_sequence_t T_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_sequence_of[1] = { + { &hf_nr_rrc_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_8959 }, }; - static int -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); +dissect_nr_rrc_T_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT(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_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, T_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_sequence_of, + 1, 4, FALSE); return offset; } @@ -8408,105 +11067,124 @@ dissect_nr_rrc_T_msg1_FDM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U 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_) { +dissect_nr_rrc_INTEGER_0_17919(tvbuff_t *tvb _U_, int offset _U_, 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); + 0U, 17919U, NULL, FALSE); return offset; } +static const per_sequence_t T_sCS120KHZoneSixteenthT_sequence_of[1] = { + { &hf_nr_rrc_sCS120KHZoneSixteenthT_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_17919 }, +}; static int -dissect_nr_rrc_INTEGER_M202_M60(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - -202, -60, NULL, FALSE); +dissect_nr_rrc_T_sCS120KHZoneSixteenthT(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_sCS120KHZoneSixteenthT, T_sCS120KHZoneSixteenthT_sequence_of, + 1, 4, 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" }, +static const value_string nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO_vals[] = { + { 0, "sCS15KHZoneT" }, + { 1, "sCS30KHZoneT-SCS15KHZhalfT" }, + { 2, "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT" }, + { 3, "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT" }, + { 4, "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT" }, + { 5, "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT" }, + { 6, "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT" }, + { 7, "sCS120KHZoneSixteenthT" }, { 0, NULL } }; +static const per_choice_t T_firstPDCCH_MonitoringOccasionOfPO_choice[] = { + { 0, &hf_nr_rrc_sCS15KHZoneT , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_sCS15KHZoneT }, + { 1, &hf_nr_rrc_sCS30KHZoneT_SCS15KHZhalfT, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_sCS30KHZoneT_SCS15KHZhalfT }, + { 2, &hf_nr_rrc_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT }, + { 3, &hf_nr_rrc_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT }, + { 4, &hf_nr_rrc_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT }, + { 5, &hf_nr_rrc_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT }, + { 6, &hf_nr_rrc_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT }, + { 7, &hf_nr_rrc_sCS120KHZoneSixteenthT, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_sCS120KHZoneSixteenthT }, + { 0, NULL, 0, NULL } +}; static int -dissect_nr_rrc_T_preambleTransMax(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 11, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO(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_firstPDCCH_MonitoringOccasionOfPO, T_firstPDCCH_MonitoringOccasionOfPO_choice, + NULL); return offset; } -static const value_string nr_rrc_T_powerRampingStep_vals[] = { - { 0, "dB0" }, - { 1, "dB2" }, - { 2, "dB4" }, - { 3, "dB6" }, - { 0, NULL } +static const per_sequence_t PCCH_Config_sequence[] = { + { &hf_nr_rrc_defaultPagingCycle, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PagingCycle }, + { &hf_nr_rrc_nAndPagingFrameOffset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_nAndPagingFrameOffset }, + { &hf_nr_rrc_ns , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ns }, + { &hf_nr_rrc_firstPDCCH_MonitoringOccasionOfPO, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO }, + { NULL, 0, 0, NULL } }; +static int +dissect_nr_rrc_PCCH_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_PCCH_Config, PCCH_Config_sequence); + + return offset; +} + + +static const per_sequence_t DownlinkConfigCommonSIB_sequence[] = { + { &hf_nr_rrc_frequencyInfoDL_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FrequencyInfoDL_SIB }, + { &hf_nr_rrc_initialDownlinkBWP, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_DownlinkCommon }, + { &hf_nr_rrc_bcch_Config , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BCCH_Config }, + { &hf_nr_rrc_pcch_Config , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCCH_Config }, + { NULL, 0, 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_DownlinkConfigCommonSIB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DownlinkConfigCommonSIB, DownlinkConfigCommonSIB_sequence); 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" }, +static const value_string nr_rrc_T_frequencyShift7p5khz_01_vals[] = { + { 0, "true" }, { 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_) { +dissect_nr_rrc_T_frequencyShift7p5khz_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); + 1, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t RACH_ConfigGeneric_sequence[] = { - { &hf_nr_rrc_prach_ConfigurationIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_255 }, - { &hf_nr_rrc_msg1_FDM , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_msg1_FDM }, - { &hf_nr_rrc_msg1_FrequencyStart, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofPhysicalResourceBlocks_1 }, - { &hf_nr_rrc_zeroCorrelationZoneConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_15 }, - { &hf_nr_rrc_preambleReceivedTargetPower, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_M202_M60 }, - { &hf_nr_rrc_preambleTransMax, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_preambleTransMax }, - { &hf_nr_rrc_powerRampingStep, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_powerRampingStep }, - { &hf_nr_rrc_ra_ResponseWindow, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ra_ResponseWindow }, +static const per_sequence_t FrequencyInfoUL_SIB_sequence[] = { + { &hf_nr_rrc_frequencyBandList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MultiFrequencyBandListNR_SIB }, + { &hf_nr_rrc_absoluteFrequencyPointA, ASN1_EXTENSION_ROOT , ASN1_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 }, + { &hf_nr_rrc_p_Max , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { &hf_nr_rrc_frequencyShift7p5khz_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_frequencyShift7p5khz_01 }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_FrequencyInfoUL_SIB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_ConfigGeneric, RACH_ConfigGeneric_sequence); + ett_nr_rrc_FrequencyInfoUL_SIB, FrequencyInfoUL_SIB_sequence); return offset; } @@ -8666,16 +11344,6 @@ dissect_nr_rrc_T_two_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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, - 1U, 8U, NULL, FALSE); - - return offset; -} - - - -static int dissect_nr_rrc_INTEGER_1_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 4U, NULL, FALSE); @@ -8728,7 +11396,7 @@ static const value_string nr_rrc_T_ra_Msg3SizeGroupA_vals[] = { { 6, "b640" }, { 7, "b800" }, { 8, "b1000" }, - { 9, "spare7" }, + { 9, "b72" }, { 10, "spare6" }, { 11, "spare5" }, { 12, "spare4" }, @@ -8877,14 +11545,14 @@ dissect_nr_rrc_T_restrictedSetConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } -static const value_string nr_rrc_T_msg3_transformPrecoding_vals[] = { +static const value_string nr_rrc_T_msg3_transformPrecoder_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_) { +dissect_nr_rrc_T_msg3_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); @@ -8903,7 +11571,7 @@ static const per_sequence_t RACH_ConfigCommon_sequence[] = { { &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_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 }, + { &hf_nr_rrc_msg3_transformPrecoder, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_msg3_transformPrecoder }, { NULL, 0, 0, NULL } }; @@ -8924,7 +11592,7 @@ static const value_string nr_rrc_T_rach_ConfigCommon_vals[] = { 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_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RACH_ConfigCommon }, + { 1, &hf_nr_rrc_setup_08 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RACH_ConfigCommon }, { 0, NULL, 0, NULL } }; @@ -8953,16 +11621,6 @@ dissect_nr_rrc_T_groupHoppingEnabledTransformPrecoding(tvbuff_t *tvb _U_, int of } - -static int -dissect_nr_rrc_INTEGER_0_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 32U, NULL, FALSE); - - return offset; -} - - static const value_string nr_rrc_T_mappingType_01_vals[] = { { 0, "typeA" }, { 1, "typeB" }, @@ -9054,7 +11712,7 @@ static const value_string nr_rrc_T_pusch_ConfigCommon_vals[] = { 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_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_ConfigCommon }, + { 1, &hf_nr_rrc_setup_09 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_ConfigCommon }, { 0, NULL, 0, NULL } }; @@ -9085,20 +11743,10 @@ dissect_nr_rrc_T_pucch_GroupHopping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } - -static int -dissect_nr_rrc_INTEGER_0_1024(tvbuff_t *tvb _U_, int offset _U_, 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, 1024U, NULL, FALSE); - - return offset; -} - - static const per_sequence_t PUCCH_ConfigCommon_sequence[] = { { &hf_nr_rrc_pucch_ResourceCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_15 }, { &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_INTEGER_0_1024 }, + { &hf_nr_rrc_hoppingId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1023 }, { &hf_nr_rrc_p0_nominal , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_M202_24 }, { NULL, 0, 0, NULL } }; @@ -9120,7 +11768,7 @@ static const value_string nr_rrc_T_pucch_ConfigCommon_vals[] = { 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_03 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_ConfigCommon }, + { 1, &hf_nr_rrc_setup_10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_ConfigCommon }, { 0, NULL, 0, NULL } }; @@ -9138,7 +11786,7 @@ 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 }, + { &hf_nr_rrc_pucch_ConfigCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_ConfigCommon }, { NULL, 0, 0, NULL } }; @@ -9173,31 +11821,69 @@ dissect_nr_rrc_TimeAlignmentTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -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 }, +static const per_sequence_t UplinkConfigCommonSIB_sequence[] = { + { &hf_nr_rrc_frequencyInfoUL_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FrequencyInfoUL_SIB }, + { &hf_nr_rrc_initialUplinkBWP_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_UplinkCommon }, { &hf_nr_rrc_timeAlignmentTimerCommon, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeAlignmentTimer }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_UplinkConfigCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_UplinkConfigCommonSIB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_UplinkConfigCommon, UplinkConfigCommon_sequence); + ett_nr_rrc_UplinkConfigCommonSIB, UplinkConfigCommonSIB_sequence); return offset; } -static const per_sequence_t T_supplementaryUplink_sequence[] = { - { &hf_nr_rrc_uplinkConfigCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfigCommon }, +static const value_string nr_rrc_T_n_TimingAdvanceOffset_01_vals[] = { + { 0, "n0" }, + { 1, "n25560" }, + { 2, "n39936" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_n_TimingAdvanceOffset_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 T_ssb_PositionsInBurst_01_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_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_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_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_supplementaryUplink, T_supplementaryUplink_sequence); + ett_nr_rrc_T_ssb_PositionsInBurst_01, T_ssb_PositionsInBurst_01_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" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ssb_PeriodicityServingCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 6, NULL, FALSE, 0, NULL); return offset; } @@ -9245,12 +11931,42 @@ dissect_nr_rrc_INTEGER_0_maxNrofSymbols_1(tvbuff_t *tvb _U_, int offset _U_, asn } +static const value_string nr_rrc_T_dl_UL_TransmissionPeriodicity_v1530_vals[] = { + { 0, "ms3" }, + { 1, "ms4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dl_UL_TransmissionPeriodicity_v1530(tvbuff_t *tvb _U_, int offset _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 TDD_UL_DL_Pattern_eag_1_sequence[] = { + { &hf_nr_rrc_dl_UL_TransmissionPeriodicity_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dl_UL_TransmissionPeriodicity_v1530 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_TDD_UL_DL_Pattern_eag_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_eag(tvb, offset, actx, tree, TDD_UL_DL_Pattern_eag_1_sequence); + + return offset; +} + + static const per_sequence_t TDD_UL_DL_Pattern_sequence[] = { { &hf_nr_rrc_dl_UL_TransmissionPeriodicity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dl_UL_TransmissionPeriodicity }, { &hf_nr_rrc_nrofDownlinkSlots, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofSlots }, { &hf_nr_rrc_nrofDownlinkSymbols, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofSymbols_1 }, { &hf_nr_rrc_nrofUplinkSlots, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofSlots }, { &hf_nr_rrc_nrofUplinkSymbols, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_maxNrofSymbols_1 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_TDD_UL_DL_Pattern_eag_1 }, { NULL, 0, 0, NULL } }; @@ -9281,198 +11997,281 @@ dissect_nr_rrc_TDD_UL_DL_ConfigCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ct static int -dissect_nr_rrc_ControlResourceSetId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 0U, maxNrofControlResourceSets_1, NULL, FALSE); + -60, 50U, NULL, FALSE); return offset; } +static const per_sequence_t ServingCellConfigCommonSIB_sequence[] = { + { &hf_nr_rrc_downlinkConfigCommon_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DownlinkConfigCommonSIB }, + { &hf_nr_rrc_uplinkConfigCommon_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfigCommonSIB }, + { &hf_nr_rrc_supplementaryUplink_02, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfigCommonSIB }, + { &hf_nr_rrc_n_TimingAdvanceOffset_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_n_TimingAdvanceOffset_01 }, + { &hf_nr_rrc_ssb_PositionsInBurst_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ssb_PositionsInBurst_01 }, + { &hf_nr_rrc_ssb_PeriodicityServingCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_ssb_PeriodicityServingCell }, + { &hf_nr_rrc_tdd_UL_DL_ConfigurationCommon, 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_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); +dissect_nr_rrc_ServingCellConfigCommonSIB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ServingCellConfigCommonSIB, ServingCellConfigCommonSIB_sequence); return offset; } +static const value_string nr_rrc_T_ims_EmergencySupport_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + static int -dissect_nr_rrc_INTEGER_1_maxCoReSetDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 1U, maxCoReSetDuration, NULL, FALSE); +dissect_nr_rrc_T_ims_EmergencySupport(tvbuff_t *tvb _U_, int offset _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_reg_BundleSize_vals[] = { - { 0, "n2" }, - { 1, "n3" }, - { 2, "n6" }, +static const value_string nr_rrc_T_eCallOverIMS_Support_vals[] = { + { 0, "true" }, { 0, NULL } }; static int -dissect_nr_rrc_T_reg_BundleSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_eCallOverIMS_Support(tvbuff_t *tvb _U_, int offset _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 value_string nr_rrc_T_interleaverSize_vals[] = { - { 0, "n2" }, - { 1, "n3" }, - { 2, "n6" }, +static const value_string nr_rrc_T_t300_vals[] = { + { 0, "ms100" }, + { 1, "ms200" }, + { 2, "ms300" }, + { 3, "ms400" }, + { 4, "ms600" }, + { 5, "ms1000" }, + { 6, "ms1500" }, + { 7, "ms2000" }, { 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_) { +dissect_nr_rrc_T_t300(tvbuff_t *tvb _U_, int offset _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); + 8, 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_OPTIONAL , dissect_nr_rrc_INTEGER_0_maxNrofPhysicalResourceBlocks_1 }, - { NULL, 0, 0, NULL } +static const value_string nr_rrc_T_t301_vals[] = { + { 0, "ms100" }, + { 1, "ms200" }, + { 2, "ms300" }, + { 3, "ms400" }, + { 4, "ms600" }, + { 5, "ms1000" }, + { 6, "ms1500" }, + { 7, "ms2000" }, + { 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); +dissect_nr_rrc_T_t301(tvbuff_t *tvb _U_, int offset _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_cce_REG_MappingType_vals[] = { - { 0, "interleaved" }, - { 1, "nonInterleaved" }, +static const value_string nr_rrc_T_t310_01_vals[] = { + { 0, "ms0" }, + { 1, "ms50" }, + { 2, "ms100" }, + { 3, "ms200" }, + { 4, "ms500" }, + { 5, "ms1000" }, + { 6, "ms2000" }, { 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_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_cce_REG_MappingType, T_cce_REG_MappingType_choice, - NULL); +dissect_nr_rrc_T_t310_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, + 7, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_precoderGranularity_vals[] = { - { 0, "sameAsREG-bundle" }, - { 1, "allContiguousRBs" }, +static const value_string nr_rrc_T_n310_01_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_precoderGranularity(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_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); + 8, NULL, FALSE, 0, NULL); return offset; } +static const value_string nr_rrc_T_t311_vals[] = { + { 0, "ms1000" }, + { 1, "ms3000" }, + { 2, "ms5000" }, + { 3, "ms10000" }, + { 4, "ms15000" }, + { 5, "ms20000" }, + { 6, "ms30000" }, + { 0, NULL } +}; + static int -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); +dissect_nr_rrc_T_t311(tvbuff_t *tvb _U_, int offset _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 SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId_sequence_of[1] = { - { &hf_nr_rrc_tci_StatesPDCCH_ToAddList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TCI_StateId }, +static const value_string nr_rrc_T_n311_01_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n3" }, + { 3, "n4" }, + { 4, "n5" }, + { 5, "n6" }, + { 6, "n8" }, + { 7, "n10" }, + { 0, NULL } }; + static int -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_maxNrofTCI_StatesPDCCH_OF_TCI_StateId, SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId_sequence_of, - 1, maxNrofTCI_StatesPDCCH, FALSE); +dissect_nr_rrc_T_n311_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 value_string nr_rrc_T_tci_PresentInDCI_vals[] = { - { 0, "enabled" }, +static const value_string nr_rrc_T_t319_vals[] = { + { 0, "ms100" }, + { 1, "ms200" }, + { 2, "ms300" }, + { 3, "ms400" }, + { 4, "ms600" }, + { 5, "ms1000" }, + { 6, "ms1500" }, + { 7, "ms2000" }, { 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_) { +dissect_nr_rrc_T_t319(tvbuff_t *tvb _U_, int offset _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 per_sequence_t UE_TimersAndConstants_sequence[] = { + { &hf_nr_rrc_t300 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t300 }, + { &hf_nr_rrc_t301 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t301 }, + { &hf_nr_rrc_t310_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t310_01 }, + { &hf_nr_rrc_n310_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_n310_01 }, + { &hf_nr_rrc_t311 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t311 }, + { &hf_nr_rrc_n311_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_n311_01 }, + { &hf_nr_rrc_t319 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t319 }, + { NULL, 0, 0, NULL } +}; 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_) { +dissect_nr_rrc_UE_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_UE_TimersAndConstants, UE_TimersAndConstants_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_maxAccessCat_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, 65535U, NULL, FALSE); + 1U, maxAccessCat_1, NULL, FALSE); return offset; } -static const per_sequence_t ControlResourceSet_sequence[] = { - { &hf_nr_rrc_controlResourceSetId, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ControlResourceSetId }, - { &hf_nr_rrc_frequencyDomainResources, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_45 }, - { &hf_nr_rrc_duration , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxCoReSetDuration }, - { &hf_nr_rrc_cce_REG_MappingType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_cce_REG_MappingType }, - { &hf_nr_rrc_precoderGranularity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_precoderGranularity }, - { &hf_nr_rrc_tci_StatesPDCCH_ToAddList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId }, - { &hf_nr_rrc_tci_StatesPDCCH_ToReleaseList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofTCI_StatesPDCCH_OF_TCI_StateId }, - { &hf_nr_rrc_tci_PresentInDCI, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tci_PresentInDCI }, - { &hf_nr_rrc_pdcch_DMRS_ScramblingID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_65535 }, + +static int +dissect_nr_rrc_UAC_BarringInfoSetIndex(tvbuff_t *tvb _U_, int offset _U_, 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, maxBarringInfoSet, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t UAC_BarringPerCat_sequence[] = { + { &hf_nr_rrc_accessCategory, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxAccessCat_1 }, + { &hf_nr_rrc_uac_barringInfoSetIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UAC_BarringInfoSetIndex }, { 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_) { +dissect_nr_rrc_UAC_BarringPerCat(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); + ett_nr_rrc_UAC_BarringPerCat, UAC_BarringPerCat_sequence); return offset; } +static const per_sequence_t UAC_BarringPerCatList_sequence_of[1] = { + { &hf_nr_rrc_UAC_BarringPerCatList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UAC_BarringPerCat }, +}; 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, - 0U, maxNrofSearchSpaces_1, NULL, FALSE); +dissect_nr_rrc_UAC_BarringPerCatList(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_UAC_BarringPerCatList, UAC_BarringPerCatList_sequence_of, + 1, maxAccessCat_1, FALSE); return offset; } @@ -9480,129 +12279,124 @@ dissect_nr_rrc_SearchSpaceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int -dissect_nr_rrc_INTEGER_0_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_INTEGER_1_maxPLMN(tvbuff_t *tvb _U_, int offset _U_, 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); + 1U, maxPLMN, NULL, FALSE); return offset; } +static const per_sequence_t SEQUENCE_SIZE_maxAccessCat_1_OF_UAC_BarringInfoSetIndex_sequence_of[1] = { + { &hf_nr_rrc_uac_ImplicitACBarringList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UAC_BarringInfoSetIndex }, +}; 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_SEQUENCE_SIZE_maxAccessCat_1_OF_UAC_BarringInfoSetIndex(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_maxAccessCat_1_OF_UAC_BarringInfoSetIndex, SEQUENCE_SIZE_maxAccessCat_1_OF_UAC_BarringInfoSetIndex_sequence_of, + maxAccessCat_1, maxAccessCat_1, FALSE); return offset; } -static const value_string nr_rrc_T_monitoringSlotPeriodicityAndOffset_vals[] = { - { 0, "sl1" }, - { 1, "sl2" }, - { 2, "sl4" }, - { 3, "sl5" }, - { 4, "sl8" }, - { 5, "sl10" }, - { 6, "sl16" }, - { 7, "sl20" }, - { 8, "sl40" }, - { 9, "sl80" }, - { 10, "sl160" }, - { 11, "sl320" }, - { 12, "sl640" }, - { 13, "sl1280" }, - { 14, "sl2560" }, +static const value_string nr_rrc_T_uac_ACBarringListType_vals[] = { + { 0, "uac-ImplicitACBarringList" }, + { 1, "uac-ExplicitACBarringList" }, { 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_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_sl40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_39 }, - { 9, &hf_nr_rrc_sl80 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_79 }, - { 10, &hf_nr_rrc_sl160 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_159 }, - { 11, &hf_nr_rrc_sl320 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_319 }, - { 12, &hf_nr_rrc_sl640 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_639 }, - { 13, &hf_nr_rrc_sl1280 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_1279 }, - { 14, &hf_nr_rrc_sl2560 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_2559 }, +static const per_choice_t T_uac_ACBarringListType_choice[] = { + { 0, &hf_nr_rrc_uac_ImplicitACBarringList, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_maxAccessCat_1_OF_UAC_BarringInfoSetIndex }, + { 1, &hf_nr_rrc_uac_ExplicitACBarringList, ASN1_NO_EXTENSIONS , dissect_nr_rrc_UAC_BarringPerCatList }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_monitoringSlotPeriodicityAndOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_uac_ACBarringListType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_monitoringSlotPeriodicityAndOffset, T_monitoringSlotPeriodicityAndOffset_choice, + ett_nr_rrc_T_uac_ACBarringListType, T_uac_ACBarringListType_choice, NULL); return offset; } +static const per_sequence_t UAC_BarringPerPLMN_sequence[] = { + { &hf_nr_rrc_plmn_IdentityIndex, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxPLMN }, + { &hf_nr_rrc_uac_ACBarringListType, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_uac_ACBarringListType }, + { NULL, 0, 0, NULL } +}; static int -dissect_nr_rrc_INTEGER_2_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, - 2U, 2559U, NULL, FALSE); +dissect_nr_rrc_UAC_BarringPerPLMN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UAC_BarringPerPLMN, UAC_BarringPerPLMN_sequence); return offset; } +static const per_sequence_t UAC_BarringPerPLMN_List_sequence_of[1] = { + { &hf_nr_rrc_UAC_BarringPerPLMN_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UAC_BarringPerPLMN }, +}; static int -dissect_nr_rrc_BIT_STRING_SIZE_14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, - 14, 14, FALSE, NULL, NULL); +dissect_nr_rrc_UAC_BarringPerPLMN_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_UAC_BarringPerPLMN_List, UAC_BarringPerPLMN_List_sequence_of, + 1, maxPLMN, FALSE); return offset; } -static const value_string nr_rrc_T_aggregationLevel1_vals[] = { - { 0, "n0" }, - { 1, "n1" }, - { 2, "n2" }, - { 3, "n3" }, - { 4, "n4" }, - { 5, "n5" }, - { 6, "n6" }, - { 7, "n8" }, +static const value_string nr_rrc_T_uac_BarringFactor_vals[] = { + { 0, "p00" }, + { 1, "p05" }, + { 2, "p10" }, + { 3, "p15" }, + { 4, "p20" }, + { 5, "p25" }, + { 6, "p30" }, + { 7, "p40" }, + { 8, "p50" }, + { 9, "p60" }, + { 10, "p70" }, + { 11, "p75" }, + { 12, "p80" }, + { 13, "p85" }, + { 14, "p90" }, + { 15, "p95" }, { 0, NULL } }; static int -dissect_nr_rrc_T_aggregationLevel1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_uac_BarringFactor(tvbuff_t *tvb _U_, int offset _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, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_aggregationLevel2_vals[] = { - { 0, "n0" }, - { 1, "n1" }, - { 2, "n2" }, - { 3, "n3" }, - { 4, "n4" }, - { 5, "n5" }, - { 6, "n6" }, - { 7, "n8" }, +static const value_string nr_rrc_T_uac_BarringTime_vals[] = { + { 0, "s4" }, + { 1, "s8" }, + { 2, "s16" }, + { 3, "s32" }, + { 4, "s64" }, + { 5, "s128" }, + { 6, "s256" }, + { 7, "s512" }, { 0, NULL } }; static int -dissect_nr_rrc_T_aggregationLevel2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_uac_BarringTime(tvbuff_t *tvb _U_, int offset _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); @@ -9610,160 +12404,429 @@ dissect_nr_rrc_T_aggregationLevel2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const value_string nr_rrc_T_aggregationLevel4_vals[] = { - { 0, "n0" }, - { 1, "n1" }, - { 2, "n2" }, - { 3, "n3" }, - { 4, "n4" }, - { 5, "n5" }, - { 6, "n6" }, - { 7, "n8" }, + +static int +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 UAC_BarringInfoSet_sequence[] = { + { &hf_nr_rrc_uac_BarringFactor, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_uac_BarringFactor }, + { &hf_nr_rrc_uac_BarringTime, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_uac_BarringTime }, + { &hf_nr_rrc_uac_BarringForAccessIdentity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_7 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UAC_BarringInfoSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UAC_BarringInfoSet, UAC_BarringInfoSet_sequence); + + return offset; +} + + +static const per_sequence_t UAC_BarringInfoSetList_sequence_of[1] = { + { &hf_nr_rrc_UAC_BarringInfoSetList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UAC_BarringInfoSet }, +}; + +static int +dissect_nr_rrc_UAC_BarringInfoSetList(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_UAC_BarringInfoSetList, UAC_BarringInfoSetList_sequence_of, + 1, maxBarringInfoSet, FALSE); + + return offset; +} + + +static const value_string nr_rrc_UAC_AccessCategory1_SelectionAssistanceInfo_vals[] = { + { 0, "a" }, + { 1, "b" }, + { 2, "c" }, { 0, NULL } }; static int -dissect_nr_rrc_T_aggregationLevel4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_UAC_AccessCategory1_SelectionAssistanceInfo(tvbuff_t *tvb _U_, int offset _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_aggregationLevel8_vals[] = { - { 0, "n0" }, - { 1, "n1" }, - { 2, "n2" }, - { 3, "n3" }, - { 4, "n4" }, - { 5, "n5" }, - { 6, "n6" }, - { 7, "n8" }, +static const per_sequence_t SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo_sequence_of[1] = { + { &hf_nr_rrc_individualPLMNList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UAC_AccessCategory1_SelectionAssistanceInfo }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo(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_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo, SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo_sequence_of, + 2, maxPLMN, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_uac_AccessCategory1_SelectionAssistanceInfo_vals[] = { + { 0, "plmnCommon" }, + { 1, "individualPLMNList" }, { 0, NULL } }; +static const per_choice_t T_uac_AccessCategory1_SelectionAssistanceInfo_choice[] = { + { 0, &hf_nr_rrc_plmnCommon , ASN1_NO_EXTENSIONS , dissect_nr_rrc_UAC_AccessCategory1_SelectionAssistanceInfo }, + { 1, &hf_nr_rrc_individualPLMNList, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo }, + { 0, NULL, 0, NULL } +}; static int -dissect_nr_rrc_T_aggregationLevel8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 8, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_uac_AccessCategory1_SelectionAssistanceInfo(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_uac_AccessCategory1_SelectionAssistanceInfo, T_uac_AccessCategory1_SelectionAssistanceInfo_choice, + NULL); return offset; } -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" }, +static const per_sequence_t T_uac_BarringInfo_sequence[] = { + { &hf_nr_rrc_uac_BarringForCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UAC_BarringPerCatList }, + { &hf_nr_rrc_uac_BarringPerPLMN_List, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UAC_BarringPerPLMN_List }, + { &hf_nr_rrc_uac_BarringInfoSetList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UAC_BarringInfoSetList }, + { &hf_nr_rrc_uac_AccessCategory1_SelectionAssistanceInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_uac_AccessCategory1_SelectionAssistanceInfo }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_uac_BarringInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_uac_BarringInfo, T_uac_BarringInfo_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_useFullResumeID_vals[] = { + { 0, "true" }, { 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_) { +dissect_nr_rrc_T_useFullResumeID(tvbuff_t *tvb _U_, int offset _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 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 }, +static const per_sequence_t T_nonCriticalExtension_27_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nrofCandidates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_27(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nrofCandidates, T_nrofCandidates_sequence); + ett_nr_rrc_T_nonCriticalExtension_27, T_nonCriticalExtension_27_sequence); return offset; } -static const per_sequence_t T_dci_Format0_0_AndFormat1_0_sequence[] = { - { NULL, ASN1_EXTENSION_ROOT, 0, NULL } +static const per_sequence_t SIB1_sequence[] = { + { &hf_nr_rrc_cellSelectionInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_cellSelectionInfo }, + { &hf_nr_rrc_cellAccessRelatedInfo, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellAccessRelatedInfo }, + { &hf_nr_rrc_connEstFailureControl, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ConnEstFailureControl }, + { &hf_nr_rrc_si_SchedulingInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SI_SchedulingInfo }, + { &hf_nr_rrc_servingCellConfigCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ServingCellConfigCommonSIB }, + { &hf_nr_rrc_ims_EmergencySupport, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ims_EmergencySupport }, + { &hf_nr_rrc_eCallOverIMS_Support, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_eCallOverIMS_Support }, + { &hf_nr_rrc_ue_TimersAndConstants, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_TimersAndConstants }, + { &hf_nr_rrc_uac_BarringInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_uac_BarringInfo }, + { &hf_nr_rrc_useFullResumeID, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_useFullResumeID }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_29, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_27 }, + { NULL, 0, 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_) { +dissect_nr_rrc_SIB1(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, "SIB1"); + 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); + ett_nr_rrc_SIB1, SIB1_sequence); return offset; } -static const value_string nr_rrc_T_aggregationLevel1_01_vals[] = { - { 0, "n1" }, - { 1, "n2" }, +static const value_string nr_rrc_T_c1_07_vals[] = { + { 0, "systemInformation" }, + { 1, "systemInformationBlockType1" }, { 0, NULL } }; +static const per_choice_t T_c1_07_choice[] = { + { 0, &hf_nr_rrc_systemInformation, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SystemInformation }, + { 1, &hf_nr_rrc_systemInformationBlockType1, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SIB1 }, + { 0, NULL, 0, NULL } +}; static int -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_) { +dissect_nr_rrc_T_c1_07(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_07, T_c1_07_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_messageClassExtension_01_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_messageClassExtension_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_messageClassExtension_01, T_messageClassExtension_01_sequence); + + return offset; +} + + +static const value_string nr_rrc_BCCH_DL_SCH_MessageType_vals[] = { + { 0, "c1" }, + { 1, "messageClassExtension" }, + { 0, NULL } +}; + +static const per_choice_t BCCH_DL_SCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1_07 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_07 }, + { 1, &hf_nr_rrc_messageClassExtension_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_01 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_BCCH_DL_SCH_MessageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BCCH_DL_SCH_MessageType, BCCH_DL_SCH_MessageType_choice, + NULL); + + return offset; +} + + +static const per_sequence_t BCCH_DL_SCH_Message_sequence[] = { + { &hf_nr_rrc_message_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BCCH_DL_SCH_MessageType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BCCH_DL_SCH_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + proto_item *ti; + + col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_clear(actx->pinfo->cinfo, COL_INFO); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + tree = proto_item_add_subtree(ti, ett_nr_rrc); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_BCCH_DL_SCH_Message, BCCH_DL_SCH_Message_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_RejectWaitTime(tvbuff_t *tvb _U_, int offset _U_, 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_nonCriticalExtension_18_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_18(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_18, T_nonCriticalExtension_18_sequence); + + return offset; +} + + +static const per_sequence_t RRCReject_IEs_sequence[] = { + { &hf_nr_rrc_waitTime , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RejectWaitTime }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_20, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_18 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReject_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_RRCReject_IEs, RRCReject_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_17_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_17, T_criticalExtensionsFuture_17_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_17_vals[] = { + { 0, "rrcReject" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_17_choice[] = { + { 0, &hf_nr_rrc_rrcReject_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReject_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_17, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_17 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensions_17(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_17, T_criticalExtensions_17_choice, + NULL); + + return offset; +} + + +static const per_sequence_t RRCReject_sequence[] = { + { &hf_nr_rrc_criticalExtensions_17, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_17 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReject(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 Reject"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReject, RRCReject_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_RRC_TransactionIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 3U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_SRB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 3U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_reestablishPDCP_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reestablishPDCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 2, NULL, FALSE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_aggregationLevel2_01_vals[] = { - { 0, "n1" }, - { 1, "n2" }, +static const value_string nr_rrc_T_discardOnPDCP_vals[] = { + { 0, "true" }, { 0, NULL } }; static int -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_) { +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, - 2, NULL, FALSE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_aggregationLevel4_01_vals[] = { - { 0, "n1" }, - { 1, "n2" }, +static const value_string nr_rrc_T_discardTimer_vals[] = { + { 0, "ms10" }, + { 1, "ms20" }, + { 2, "ms30" }, + { 3, "ms40" }, + { 4, "ms50" }, + { 5, "ms60" }, + { 6, "ms75" }, + { 7, "ms100" }, + { 8, "ms150" }, + { 9, "ms200" }, + { 10, "ms250" }, + { 11, "ms300" }, + { 12, "ms500" }, + { 13, "ms750" }, + { 14, "ms1500" }, + { 15, "infinity" }, { 0, NULL } }; static int -dissect_nr_rrc_T_aggregationLevel4_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_discardTimer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 2, NULL, FALSE, 0, NULL); + 16, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_aggregationLevel8_01_vals[] = { - { 0, "n1" }, - { 1, "n2" }, +static const value_string nr_rrc_T_pdcp_SN_SizeUL_vals[] = { + { 0, "len12bits" }, + { 1, "len18bits" }, { 0, NULL } }; static int -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_) { +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); @@ -9771,15 +12834,15 @@ dissect_nr_rrc_T_aggregationLevel8_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ct } -static const value_string nr_rrc_T_aggregationLevel16_01_vals[] = { - { 0, "n1" }, - { 1, "n2" }, +static const value_string nr_rrc_T_pdcp_SN_SizeDL_vals[] = { + { 0, "len12bits" }, + { 1, "len18bits" }, { 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_) { +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); @@ -9787,297 +12850,468 @@ dissect_nr_rrc_T_aggregationLevel16_01(tvbuff_t *tvb _U_, int offset _U_, asn1_c } -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 }, + +static int +dissect_nr_rrc_INTEGER_1_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 16383U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_profiles_sequence[] = { + { &hf_nr_rrc_profile0x0001, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0002, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0003, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0004, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0006, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0101, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0102, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0103, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0104, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nrofCandidates_SFI(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(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nrofCandidates_SFI, T_nrofCandidates_SFI_sequence); + ett_nr_rrc_T_profiles, T_profiles_sequence); return offset; } -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 }, +static const value_string nr_rrc_T_drb_ContinueROHC_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_drb_ContinueROHC(tvbuff_t *tvb _U_, int offset _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_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_OPTIONAL , dissect_nr_rrc_T_drb_ContinueROHC }, { NULL, 0, 0, NULL } }; static int -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_) { +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_dci_Format2_0, T_dci_Format2_0_sequence); + ett_nr_rrc_T_rohc, T_rohc_sequence); return offset; } -static const per_sequence_t T_dci_Format2_1_sequence[] = { - { NULL, ASN1_EXTENSION_ROOT, 0, NULL } +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_dci_Format2_1(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_dci_Format2_1, T_dci_Format2_1_sequence); + ett_nr_rrc_T_profiles_01, T_profiles_01_sequence); return offset; } -static const per_sequence_t T_dci_Format2_2_sequence[] = { - { NULL, ASN1_EXTENSION_ROOT, 0, NULL } +static const value_string nr_rrc_T_drb_ContinueROHC_01_vals[] = { + { 0, "true" }, + { 0, NULL } }; + static int -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_) { +dissect_nr_rrc_T_drb_ContinueROHC_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_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_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_drb_ContinueROHC_01 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_uplinkOnlyROHC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_dci_Format2_2, T_dci_Format2_2_sequence); + ett_nr_rrc_T_uplinkOnlyROHC, T_uplinkOnlyROHC_sequence); return offset; } -static const value_string nr_rrc_T_monitoringPeriodicity_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 2, "n4" }, - { 3, "n5" }, - { 4, "n8" }, - { 5, "n10" }, - { 6, "n16" }, - { 7, "n20" }, +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_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 } +}; + +static int +dissect_nr_rrc_T_headerCompression(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_headerCompression, T_headerCompression_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_integrityProtection_vals[] = { + { 0, "enabled" }, { 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_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, - 8, NULL, FALSE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_nrofPDCCH_Candidates_vals[] = { - { 0, "n1" }, - { 1, "n2" }, +static const value_string nr_rrc_T_statusReportRequired_vals[] = { + { 0, "true" }, { 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_) { +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, - 2, NULL, FALSE, 0, NULL); + 1, 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 }, +static const value_string nr_rrc_T_outOfOrderDelivery_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_outOfOrderDelivery(tvbuff_t *tvb _U_, int offset _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_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_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_OPTIONAL , dissect_nr_rrc_T_outOfOrderDelivery }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_drb(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_dci_Format2_3, T_dci_Format2_3_sequence); + ett_nr_rrc_T_drb, T_drb_sequence); return offset; } -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 }, + +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, + 0U, maxSecondaryCellGroups, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_LogicalChannelIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxLC_ID, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_primaryPath_sequence[] = { + { &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 } }; 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_) { +dissect_nr_rrc_T_primaryPath(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_common, T_common_sequence); + ett_nr_rrc_T_primaryPath, T_primaryPath_sequence); return offset; } -static const value_string nr_rrc_T_dci_Formats_vals[] = { - { 0, "formats0-0-And-1-0" }, - { 1, "formats0-1-And-1-1" }, +static const value_string nr_rrc_UL_DataSplitThreshold_vals[] = { + { 0, "b0" }, + { 1, "b100" }, + { 2, "b200" }, + { 3, "b400" }, + { 4, "b800" }, + { 5, "b1600" }, + { 6, "b3200" }, + { 7, "b6400" }, + { 8, "b12800" }, + { 9, "b25600" }, + { 10, "b51200" }, + { 11, "b102400" }, + { 12, "b204800" }, + { 13, "b409600" }, + { 14, "b819200" }, + { 15, "b1228800" }, + { 16, "b1638400" }, + { 17, "b2457600" }, + { 18, "b3276800" }, + { 19, "b4096000" }, + { 20, "b4915200" }, + { 21, "b5734400" }, + { 22, "b6553600" }, + { 23, "infinity" }, + { 24, "spare8" }, + { 25, "spare7" }, + { 26, "spare6" }, + { 27, "spare5" }, + { 28, "spare4" }, + { 29, "spare3" }, + { 30, "spare2" }, + { 31, "spare1" }, { 0, NULL } }; +static value_string_ext nr_rrc_UL_DataSplitThreshold_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_UL_DataSplitThreshold_vals); + static int -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_) { +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, - 2, NULL, FALSE, 0, NULL); + 32, NULL, FALSE, 0, NULL); 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 }, +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_OPTIONAL , dissect_nr_rrc_UL_DataSplitThreshold }, + { &hf_nr_rrc_pdcp_Duplication, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BOOLEAN }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_ue_Specific(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_moreThanOneRLC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_ue_Specific, T_ue_Specific_sequence); + ett_nr_rrc_T_moreThanOneRLC, T_moreThanOneRLC_sequence); return offset; } -static const value_string nr_rrc_T_searchSpaceType_vals[] = { - { 0, "common" }, - { 1, "ue-Specific" }, +static const value_string nr_rrc_T_t_Reordering_vals[] = { + { 0, "ms0" }, + { 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 } }; -static const per_choice_t T_searchSpaceType_choice[] = { - { 0, &hf_nr_rrc_common , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_common }, - { 1, &hf_nr_rrc_ue_Specific , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_ue_Specific }, - { 0, NULL, 0, NULL } -}; +static value_string_ext nr_rrc_T_t_Reordering_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_t_Reordering_vals); + static int -dissect_nr_rrc_T_searchSpaceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_searchSpaceType, T_searchSpaceType_choice, - NULL); +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, + 64, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t SearchSpace_sequence[] = { - { &hf_nr_rrc_searchSpaceId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SearchSpaceId }, - { &hf_nr_rrc_controlResourceSetId, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ControlResourceSetId }, - { &hf_nr_rrc_monitoringSlotPeriodicityAndOffset, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_monitoringSlotPeriodicityAndOffset }, - { &hf_nr_rrc_duration_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_2559 }, - { &hf_nr_rrc_monitoringSymbolsWithinSlot, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_14 }, - { &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 } +static const value_string nr_rrc_T_cipheringDisabled_vals[] = { + { 0, "true" }, + { 0, NULL } }; + static int -dissect_nr_rrc_SearchSpace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_SearchSpace, SearchSpace_sequence); +dissect_nr_rrc_T_cipheringDisabled(tvbuff_t *tvb _U_, int offset _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_4_OF_SearchSpace_sequence_of[1] = { - { &hf_nr_rrc_commonSearchSpace_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SearchSpace }, +static const per_sequence_t PDCP_Config_eag_1_sequence[] = { + { &hf_nr_rrc_cipheringDisabled, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_cipheringDisabled }, + { NULL, 0, 0, NULL } }; static int -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_4_OF_SearchSpace, SEQUENCE_SIZE_1_4_OF_SearchSpace_sequence_of, - 1, 4, FALSE); +dissect_nr_rrc_PDCP_Config_eag_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_eag(tvb, offset, actx, tree, PDCP_Config_eag_1_sequence); return offset; } -static const per_sequence_t PDCCH_ConfigCommon_sequence[] = { - { &hf_nr_rrc_controlResourceSetZero, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_15 }, - { &hf_nr_rrc_commonControlResourceSet, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ControlResourceSet }, - { &hf_nr_rrc_searchSpaceZero, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_15 }, - { &hf_nr_rrc_commonSearchSpace, 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_SearchSpace, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SearchSpaceId }, +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 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_PDCP_Config_eag_1 }, { 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_) { +dissect_nr_rrc_PDCP_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_PDCCH_ConfigCommon, PDCCH_ConfigCommon_sequence); + ett_nr_rrc_PDCP_Config, PDCP_Config_sequence); return offset; } -static const per_sequence_t T_nonCriticalExtension_08_sequence[] = { +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 } }; static int -dissect_nr_rrc_T_nonCriticalExtension_08(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_SRB_ToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_08, T_nonCriticalExtension_08_sequence); + ett_nr_rrc_SRB_ToAddMod, SRB_ToAddMod_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_08, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_08 }, - { NULL, 0, 0, NULL } +static const per_sequence_t SRB_ToAddModList_sequence_of[1] = { + { &hf_nr_rrc_SRB_ToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRB_ToAddMod }, }; static int -dissect_nr_rrc_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); +dissect_nr_rrc_SRB_ToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SRB_ToAddModList, SRB_ToAddModList_sequence_of, + 1, 2, FALSE); return offset; } -static const value_string nr_rrc_Alpha_vals[] = { - { 0, "alpha0" }, - { 1, "alpha04" }, - { 2, "alpha05" }, - { 3, "alpha06" }, - { 4, "alpha07" }, - { 5, "alpha08" }, - { 6, "alpha09" }, - { 7, "alpha1" }, +static const value_string nr_rrc_T_srb3_ToRelease_vals[] = { + { 0, "true" }, { 0, NULL } }; static int -dissect_nr_rrc_Alpha(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 8, NULL, FALSE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } @@ -10085,168 +13319,300 @@ dissect_nr_rrc_Alpha(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr 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_) { +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, maxNrofBWPs, NULL, FALSE); + 0U, 255U, NULL, FALSE); return offset; } +static const value_string nr_rrc_T_sdap_HeaderDL_vals[] = { + { 0, "present" }, + { 1, "absent" }, + { 0, NULL } +}; + 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); +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); return offset; } +static const value_string nr_rrc_T_sdap_HeaderUL_vals[] = { + { 0, "present" }, + { 1, "absent" }, + { 0, NULL } +}; + 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_) { +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); + + return offset; +} + + + +static int +dissect_nr_rrc_QFI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, maxNrofPUCCH_Resources_1, NULL, FALSE); + 0U, maxQFI, NULL, FALSE); return offset; } -static const per_sequence_t SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId_sequence_of[1] = { - { &hf_nr_rrc_resourceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_ResourceId }, +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_1_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_) { +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_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId, SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId_sequence_of, - 1, maxNrofPUCCH_ResourcesPerSet, 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_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_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 } +}; 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_) { +dissect_nr_rrc_SDAP_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SDAP_Config, SDAP_Config_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_cnAssociation_vals[] = { + { 0, "eps-BearerIdentity" }, + { 1, "sdap-Config" }, + { 0, NULL } +}; + +static const per_choice_t T_cnAssociation_choice[] = { + { 0, &hf_nr_rrc_eps_BearerIdentity, ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_0_15 }, + { 1, &hf_nr_rrc_sdap_Config , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SDAP_Config }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_cnAssociation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_cnAssociation, T_cnAssociation_choice, + NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_DRB_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 4U, 256U, NULL, FALSE); + 1U, 32U, 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_resourceList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId }, - { &hf_nr_rrc_maxPayloadMinus1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_4_256 }, +static const value_string nr_rrc_T_reestablishPDCP_01_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reestablishPDCP_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_recoverPDCP_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_recoverPDCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t DRB_ToAddMod_sequence[] = { + { &hf_nr_rrc_cnAssociation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_cnAssociation }, + { &hf_nr_rrc_drb_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_Identity }, + { &hf_nr_rrc_reestablishPDCP_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_reestablishPDCP_01 }, + { &hf_nr_rrc_recoverPDCP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_recoverPDCP }, + { &hf_nr_rrc_pdcp_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PDCP_Config }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_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_DRB_ToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_PUCCH_ResourceSet, PUCCH_ResourceSet_sequence); + ett_nr_rrc_DRB_ToAddMod, DRB_ToAddMod_sequence); return offset; } -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 const per_sequence_t DRB_ToAddModList_sequence_of[1] = { + { &hf_nr_rrc_DRB_ToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_ToAddMod }, }; static int -dissect_nr_rrc_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_) { +dissect_nr_rrc_DRB_ToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet, SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet_sequence_of, - 1, maxNrofPUCCH_ResourceSets, FALSE); + ett_nr_rrc_DRB_ToAddModList, DRB_ToAddModList_sequence_of, + 1, maxDRB, 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 const per_sequence_t DRB_ToReleaseList_sequence_of[1] = { + { &hf_nr_rrc_DRB_ToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_Identity }, }; static int -dissect_nr_rrc_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_) { +dissect_nr_rrc_DRB_ToReleaseList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId, SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSetId_sequence_of, - 1, maxNrofPUCCH_ResourceSets, FALSE); + ett_nr_rrc_DRB_ToReleaseList, DRB_ToReleaseList_sequence_of, + 1, maxDRB, FALSE); return offset; } +static const value_string nr_rrc_CipheringAlgorithm_vals[] = { + { 0, "nea0" }, + { 1, "nea1" }, + { 2, "nea2" }, + { 3, "nea3" }, + { 4, "spare4" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, + { 0, NULL } +}; + static int -dissect_nr_rrc_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); +dissect_nr_rrc_CipheringAlgorithm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 8, NULL, TRUE, 0, NULL); return offset; } -static const value_string nr_rrc_T_intraSlotFrequencyHopping_vals[] = { - { 0, "enabled" }, +static const value_string nr_rrc_IntegrityProtAlgorithm_vals[] = { + { 0, "nia0" }, + { 1, "nia1" }, + { 2, "nia2" }, + { 3, "nia3" }, + { 4, "spare4" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, { 0, NULL } }; static int -dissect_nr_rrc_T_intraSlotFrequencyHopping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_IntegrityProtAlgorithm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 1, NULL, FALSE, 0, NULL); + 8, NULL, TRUE, 0, NULL); return offset; } +static const per_sequence_t SecurityAlgorithmConfig_sequence[] = { + { &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 } +}; 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); +dissect_nr_rrc_SecurityAlgorithmConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SecurityAlgorithmConfig, SecurityAlgorithmConfig_sequence); return offset; } +static const value_string nr_rrc_T_keyToUse_vals[] = { + { 0, "master" }, + { 1, "secondary" }, + { 0, NULL } +}; + 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); +dissect_nr_rrc_T_keyToUse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t 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 }, +static const per_sequence_t SecurityConfig_sequence[] = { + { &hf_nr_rrc_securityAlgorithmConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SecurityAlgorithmConfig }, + { &hf_nr_rrc_keyToUse , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_keyToUse }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_PUCCH_format0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_SecurityConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_PUCCH_format0, PUCCH_format0_sequence); + ett_nr_rrc_SecurityConfig, SecurityConfig_sequence); return offset; } +static const per_sequence_t RadioBearerConfig_sequence[] = { + { &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 } +}; 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); +dissect_nr_rrc_RadioBearerConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RadioBearerConfig, RadioBearerConfig_sequence); return offset; } @@ -10254,408 +13620,584 @@ dissect_nr_rrc_INTEGER_4_14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx 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); +dissect_nr_rrc_T_masterCellGroup_02(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 const per_sequence_t T_nonCriticalExtension_22_sequence[] = { + { 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_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 6U, NULL, FALSE); +dissect_nr_rrc_T_nonCriticalExtension_22(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_22, T_nonCriticalExtension_22_sequence); 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 }, +static const per_sequence_t RRCSetup_IEs_sequence[] = { + { &hf_nr_rrc_radioBearerConfig, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RadioBearerConfig }, + { &hf_nr_rrc_masterCellGroup_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_masterCellGroup_02 }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_24, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_22 }, { 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_) { +dissect_nr_rrc_RRCSetup_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_PUCCH_format1, PUCCH_format1_sequence); + ett_nr_rrc_RRCSetup_IEs, RRCSetup_IEs_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 }, +static const per_sequence_t T_criticalExtensionsFuture_21_sequence[] = { { 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_) { +dissect_nr_rrc_T_criticalExtensionsFuture_21(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); + ett_nr_rrc_T_criticalExtensionsFuture_21, T_criticalExtensionsFuture_21_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 const value_string nr_rrc_T_criticalExtensions_21_vals[] = { + { 0, "rrcSetup" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_21_choice[] = { + { 0, &hf_nr_rrc_rrcSetup_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCSetup_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_21, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_21 }, + { 0, NULL, 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); +dissect_nr_rrc_T_criticalExtensions_21(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_21, T_criticalExtensions_21_choice, + NULL); return offset; } -static const value_string nr_rrc_T_occ_Length_vals[] = { - { 0, "n2" }, - { 1, "n4" }, - { 0, NULL } +static const per_sequence_t RRCSetup_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_21, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_21 }, + { NULL, 0, 0, NULL } }; - static int -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); +dissect_nr_rrc_RRCSetup(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 Setup"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCSetup, RRCSetup_sequence); return offset; } -static const value_string nr_rrc_T_occ_Index_vals[] = { - { 0, "n0" }, - { 1, "n1" }, - { 2, "n2" }, - { 3, "n3" }, +static const value_string nr_rrc_T_c1_08_vals[] = { + { 0, "rrcReject" }, + { 1, "rrcSetup" }, + { 2, "spare2" }, + { 3, "spare1" }, { 0, NULL } }; +static const per_choice_t T_c1_08_choice[] = { + { 0, &hf_nr_rrc_rrcReject , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReject }, + { 1, &hf_nr_rrc_rrcSetup , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCSetup }, + { 2, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 3, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 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); +dissect_nr_rrc_T_c1_08(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_08, T_c1_08_choice, + NULL); return offset; } -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 }, +static const per_sequence_t T_messageClassExtension_02_sequence[] = { { 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_) { +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_PUCCH_format4, PUCCH_format4_sequence); + ett_nr_rrc_T_messageClassExtension_02, T_messageClassExtension_02_sequence); return offset; } -static const value_string nr_rrc_T_format_vals[] = { - { 0, "format0" }, - { 1, "format1" }, - { 2, "format2" }, - { 3, "format3" }, - { 4, "format4" }, +static const value_string nr_rrc_DL_CCCH_MessageType_vals[] = { + { 0, "c1" }, + { 1, "messageClassExtension" }, { 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 }, +static const per_choice_t DL_CCCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1_08 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_08 }, + { 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_format(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_DL_CCCH_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_format, T_format_choice, + ett_nr_rrc_DL_CCCH_MessageType, DL_CCCH_MessageType_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 }, +static const per_sequence_t DL_CCCH_Message_sequence[] = { + { &hf_nr_rrc_message_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DL_CCCH_MessageType }, { 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_) { +dissect_nr_rrc_DL_CCCH_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); + + actx->pinfo->link_dir = P2P_DIR_DL; + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + tree = proto_item_add_subtree(ti, ett_nr_rrc); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_PUCCH_Resource, PUCCH_Resource_sequence); + ett_nr_rrc_DL_CCCH_Message, DL_CCCH_Message_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_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, maxNrofObjectId, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t MeasObjectToRemoveList_sequence_of[1] = { + { &hf_nr_rrc_MeasObjectToRemoveList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasObjectId }, }; static int -dissect_nr_rrc_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_) { +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_SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource, SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_Resource_sequence_of, - 1, maxNrofPUCCH_Resources, FALSE); + ett_nr_rrc_MeasObjectToRemoveList, MeasObjectToRemoveList_sequence_of, + 1, maxNrofObjectId, 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 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_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_) { +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_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId, SEQUENCE_SIZE_1_maxNrofPUCCH_Resources_OF_PUCCH_ResourceId_sequence_of, - 1, maxNrofPUCCH_Resources, FALSE); + 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_interslotFrequencyHopping_vals[] = { - { 0, "enabled" }, +static const value_string nr_rrc_T_periodicity_02_vals[] = { + { 0, "sf5" }, + { 1, "sf10" }, + { 2, "sf20" }, + { 3, "sf40" }, + { 4, "sf80" }, + { 5, "spare3" }, + { 6, "spare2" }, + { 7, "spare1" }, { 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_) { +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, - 1, NULL, FALSE, 0, NULL); + 8, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_additionalDMRS_vals[] = { - { 0, "true" }, - { 0, NULL } +static const per_sequence_t SSB_MTC2_sequence[] = { + { &hf_nr_rrc_pci_List , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId }, + { &hf_nr_rrc_periodicity_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicity_02 }, + { NULL, 0, 0, NULL } }; - static int -dissect_nr_rrc_T_additionalDMRS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 1, NULL, FALSE, 0, NULL); +dissect_nr_rrc_SSB_MTC2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_MTC2, SSB_MTC2_sequence); return offset; } -static const value_string nr_rrc_PUCCH_MaxCodeRate_vals[] = { - { 0, "zeroDot08" }, - { 1, "zeroDot15" }, - { 2, "zeroDot25" }, - { 3, "zeroDot35" }, - { 4, "zeroDot45" }, - { 5, "zeroDot60" }, - { 6, "zeroDot80" }, +static const value_string nr_rrc_T_ssb_ToMeasure_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_ssb_ToMeasure_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_27 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SSB_ToMeasure }, + { 0, NULL, 0, NULL } +}; static int -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, - 7, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_ssb_ToMeasure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_ssb_ToMeasure, T_ssb_ToMeasure_choice, + NULL); return offset; } -static const value_string nr_rrc_T_nrofSlots_vals[] = { - { 0, "n2" }, - { 1, "n4" }, - { 2, "n8" }, +static const per_sequence_t SSB_ConfigMobility_sequence[] = { + { &hf_nr_rrc_ssb_ToMeasure_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_ToMeasure }, + { &hf_nr_rrc_deriveSSB_IndexFromCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_ss_RSSI_Measurement, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SS_RSSI_Measurement }, + { NULL, 0, 0, NULL } +}; + +static int +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_SSB_ConfigMobility, SSB_ConfigMobility_sequence); + + return offset; +} + + +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_T_nrofSlots(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, - 3, NULL, FALSE, 0, NULL); + 5, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_pi2BPSK_vals[] = { - { 0, "enabled" }, + +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_T_csi_rs_MeasurementBW(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_csi_rs_MeasurementBW, T_csi_rs_MeasurementBW_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_density_vals[] = { + { 0, "d1" }, + { 1, "d3" }, { 0, NULL } }; static int -dissect_nr_rrc_T_pi2BPSK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_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_simultaneousHARQ_ACK_CSI_vals[] = { - { 0, "true" }, +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_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_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 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_pi2BPSK , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pi2BPSK }, - { &hf_nr_rrc_simultaneousHARQ_ACK_CSI, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_simultaneousHARQ_ACK_CSI }, +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_PUCCH_FormatConfig(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_PUCCH_FormatConfig, PUCCH_FormatConfig_sequence); + ett_nr_rrc_T_associatedSSB, T_associatedSSB_sequence); return offset; } -static const value_string nr_rrc_T_format1_vals[] = { - { 0, "release" }, - { 1, "setup" }, + +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_vals[] = { + { 0, "row1" }, + { 1, "row2" }, { 0, NULL } }; -static const per_choice_t T_format1_choice[] = { - { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 1, &hf_nr_rrc_setup_36 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_FormatConfig }, +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 }, { 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_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_format1, T_format1_choice, + ett_nr_rrc_T_frequencyDomainAllocation, T_frequencyDomainAllocation_choice, NULL); return offset; } -static const value_string nr_rrc_T_format2_vals[] = { - { 0, "release" }, - { 1, "setup" }, - { 0, NULL } + +static int +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 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_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_frequencyDomainAllocation }, + { &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 const per_choice_t T_format2_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_PUCCH_FormatConfig }, - { 0, NULL, 0, NULL } +static int +dissect_nr_rrc_CSI_RS_Resource_Mobility(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CSI_RS_Resource_Mobility, CSI_RS_Resource_Mobility_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofCSI_RS_ResourcesRRM_OF_CSI_RS_Resource_Mobility_sequence_of[1] = { + { &hf_nr_rrc_csi_rs_ResourceList_Mobility_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_Resource_Mobility }, }; static int -dissect_nr_rrc_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); +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 value_string nr_rrc_T_format3_vals[] = { - { 0, "release" }, - { 1, "setup" }, - { 0, NULL } +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 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_density }, + { &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 const per_choice_t T_format3_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_PUCCH_FormatConfig }, - { 0, NULL, 0, NULL } +static int +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_CSI_RS_CellMobility, CSI_RS_CellMobility_sequence); + + return offset; +} + + +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_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); +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 value_string nr_rrc_T_format4_vals[] = { +static const per_sequence_t CSI_RS_ResourceConfigMobility_eag_1_sequence[] = { + { &hf_nr_rrc_refServCellIndex_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_RS_ResourceConfigMobility_eag_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_eag(tvb, offset, actx, tree, CSI_RS_ResourceConfigMobility_eag_1_sequence); + + return offset; +} + + +static const per_sequence_t CSI_RS_ResourceConfigMobility_sequence[] = { + { &hf_nr_rrc_subcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_csi_RS_CellList_Mobility, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofCSI_RS_CellsRRM_OF_CSI_RS_CellMobility }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_RS_ResourceConfigMobility_eag_1 }, + { NULL, 0, 0, NULL } +}; + +static int +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_CSI_RS_ResourceConfigMobility, CSI_RS_ResourceConfigMobility_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_csi_rs_ResourceConfigMobility_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_format4_choice[] = { +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_36 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_FormatConfig }, + { 1, &hf_nr_rrc_setup_26 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_RS_ResourceConfigMobility }, { 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_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_T_format4, T_format4_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_SchedulingRequestResourceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_ReferenceSignalConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReferenceSignalConfig, ReferenceSignalConfig_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_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, - 1U, maxNrofSR_Resources, NULL, FALSE); + 2U, maxNrofCSI_RS_ResourcesToAverage, NULL, FALSE); return offset; } @@ -10663,233 +14205,385 @@ dissect_nr_rrc_SchedulingRequestResourceId(tvbuff_t *tvb _U_, int offset _U_, as 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_) { +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, 7U, NULL, FALSE); + 1U, maxNrofQuantityConfig, NULL, FALSE); return offset; } -static const value_string nr_rrc_T_periodicityAndOffset_vals[] = { - { 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_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 const per_choice_t T_periodicityAndOffset_choice[] = { - { 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 } +static int +dissect_nr_rrc_Q_OffsetRangeList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_Q_OffsetRangeList, Q_OffsetRangeList_sequence); + + return offset; +} + + +static 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_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); +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 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_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_periodicityAndOffset }, - { &hf_nr_rrc_resource_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PUCCH_ResourceId }, +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_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Q_OffsetRangeList }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_SchedulingRequestResourceConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_SchedulingRequestResourceConfig, SchedulingRequestResourceConfig_sequence); + ett_nr_rrc_CellsToAddMod, CellsToAddMod_sequence); return offset; } -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 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_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig(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_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig, SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig_sequence_of, - 1, maxNrofSR_Resources, FALSE); + ett_nr_rrc_CellsToAddModList, CellsToAddModList_sequence_of, + 1, maxNrofCellMeas, FALSE); return offset; } -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_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_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_) { +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_SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId, SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceId_sequence_of, - 1, maxNrofSR_Resources, FALSE); + ett_nr_rrc_PCI_RangeIndexList, PCI_RangeIndexList_sequence_of, + 1, maxNrofPCI_Ranges, 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 const per_sequence_t PCI_RangeElement_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 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); +dissect_nr_rrc_PCI_RangeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_RangeElement, PCI_RangeElement_sequence); 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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement_sequence_of[1] = { + { &hf_nr_rrc_blackCellsToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCI_RangeElement }, }; 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_) { +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement(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, - 1, 8, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement, SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement_sequence_of, + 1, maxNrofPCI_Ranges, FALSE); return offset; } +static const value_string nr_rrc_T_measCycleSCell_v1530_vals[] = { + { 0, "sf160" }, + { 1, "sf256" }, + { 2, "sf320" }, + { 3, "sf512" }, + { 4, "sf640" }, + { 5, "sf1024" }, + { 6, "sf1280" }, + { 0, NULL } +}; + 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); +dissect_nr_rrc_T_measCycleSCell_v1530(tvbuff_t *tvb _U_, int offset _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 MeasObjectNR_eag_1_sequence[] = { + { &hf_nr_rrc_freqBandIndicatorNR_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FreqBandIndicatorNR }, + { &hf_nr_rrc_measCycleSCell_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_measCycleSCell_v1530 }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_MeasObjectNR_eag_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_eag(tvb, offset, actx, tree, MeasObjectNR_eag_1_sequence); 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_ssbSubcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_smtc1 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SSB_MTC }, + { &hf_nr_rrc_smtc2 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SSB_MTC2 }, + { &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_offsetMO , 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_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement }, + { &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_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasObjectNR_eag_1 }, + { NULL, 0, 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_) { +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 int +dissect_nr_rrc_EUTRA_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, - 0U, maxNrofSRS_Resources_1, NULL, FALSE); + 1U, maxCellMeasEUTRA, NULL, FALSE); return offset; } -static const per_sequence_t T_srs_sequence[] = { - { &hf_nr_rrc_resource , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceId }, - { &hf_nr_rrc_uplinkBWP , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Id }, +static const per_sequence_t EUTRA_CellIndexList_sequence_of[1] = { + { &hf_nr_rrc_EUTRA_CellIndexList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_CellIndex }, +}; + +static int +dissect_nr_rrc_EUTRA_CellIndexList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_EUTRA_CellIndexList, EUTRA_CellIndexList_sequence_of, + 1, maxCellMeasEUTRA, FALSE); + + return offset; +} + + +static const per_sequence_t EUTRA_Cell_sequence[] = { + { &hf_nr_rrc_cellIndexEUTRA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_CellIndex }, + { &hf_nr_rrc_physCellId_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_PhysCellId }, + { &hf_nr_rrc_cellIndividualOffset, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_Q_OffsetRange }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_srs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_EUTRA_Cell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_srs, T_srs_sequence); + ett_nr_rrc_EUTRA_Cell, EUTRA_Cell_sequence); return offset; } -static const value_string nr_rrc_T_referenceSignal_vals[] = { - { 0, "ssb-Index" }, - { 1, "csi-RS-Index" }, - { 2, "srs" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_Cell_sequence_of[1] = { + { &hf_nr_rrc_cellsToAddModListEUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_Cell }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_Cell(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_maxCellMeasEUTRA_OF_EUTRA_Cell, SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_Cell_sequence_of, + 1, maxCellMeasEUTRA, FALSE); + + return offset; +} + + +static const per_sequence_t EUTRA_BlackCell_sequence[] = { + { &hf_nr_rrc_cellIndexEUTRA, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_CellIndex }, + { &hf_nr_rrc_physCellIdRange, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_PhysCellIdRange }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_EUTRA_BlackCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_EUTRA_BlackCell, EUTRA_BlackCell_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_BlackCell_sequence_of[1] = { + { &hf_nr_rrc_blackCellsToAddModListEUTRAN_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_BlackCell }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_BlackCell(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_maxCellMeasEUTRA_OF_EUTRA_BlackCell, SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_BlackCell_sequence_of, + 1, maxCellMeasEUTRA, FALSE); + + return offset; +} + + +static const per_sequence_t MeasObjectEUTRA_sequence[] = { + { &hf_nr_rrc_carrierFreq_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueEUTRA }, + { &hf_nr_rrc_allowedMeasBandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_AllowedMeasBandwidth }, + { &hf_nr_rrc_cellsToRemoveListEUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_CellIndexList }, + { &hf_nr_rrc_cellsToAddModListEUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_Cell }, + { &hf_nr_rrc_blackCellsToRemoveListEUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_CellIndexList }, + { &hf_nr_rrc_blackCellsToAddModListEUTRAN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_BlackCell }, + { &hf_nr_rrc_eutra_PresenceAntennaPort1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_PresenceAntennaPort1 }, + { &hf_nr_rrc_eutra_Q_OffsetRange, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_Q_OffsetRange }, + { &hf_nr_rrc_widebandRSRQ_Meas, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasObjectEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasObjectEUTRA, MeasObjectEUTRA_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_measObject_vals[] = { + { 0, "measObjectNR" }, + { 1, "measObjectEUTRA" }, { 0, NULL } }; -static const per_choice_t T_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_T_srs }, +static const per_choice_t T_measObject_choice[] = { + { 0, &hf_nr_rrc_measObjectNR , ASN1_EXTENSION_ROOT , dissect_nr_rrc_MeasObjectNR }, + { 1, &hf_nr_rrc_measObjectEUTRA, ASN1_NOT_EXTENSION_ROOT, dissect_nr_rrc_MeasObjectEUTRA }, { 0, NULL, 0, NULL } }; static int -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_) { +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_referenceSignal, T_referenceSignal_choice, + 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_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); +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_P0_PUCCH_Id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MeasObjectToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasObjectToAddModList, MeasObjectToAddModList_sequence_of, + 1, maxNrofObjectId, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_ReportConfigId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 1U, 8U, NULL, FALSE); + 1U, maxReportConfigId, NULL, FALSE); return offset; } -static const value_string nr_rrc_T_closedLoopIndex_vals[] = { - { 0, "i0" }, - { 1, "i1" }, +static const per_sequence_t ReportConfigToRemoveList_sequence_of[1] = { + { &hf_nr_rrc_ReportConfigToRemoveList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportConfigId }, +}; + +static int +dissect_nr_rrc_ReportConfigToRemoveList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReportConfigToRemoveList, ReportConfigToRemoveList_sequence_of, + 1, 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_T_closedLoopIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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); @@ -10897,48 +14591,133 @@ dissect_nr_rrc_T_closedLoopIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } -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_servingCellId, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, - { &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 }, +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_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_03_vals[] = { + { 0, "r1" }, + { 1, "r2" }, + { 2, "r4" }, + { 3, "r8" }, + { 4, "r16" }, + { 5, "r32" }, + { 6, "r64" }, + { 7, "infinity" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reportAmount_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, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t MeasReportQuantity_sequence[] = { + { &hf_nr_rrc_rsrp_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_rsrq_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_sinr_03 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, { 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_) { +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_PUCCH_SpatialRelationInfo, PUCCH_SpatialRelationInfo_sequence); + ett_nr_rrc_MeasReportQuantity, MeasReportQuantity_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_INTEGER_1_maxCellReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, maxCellReport, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_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, + 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_03, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportAmount_03 }, + { &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_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); +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 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 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_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); +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; } @@ -10946,102 +14725,245 @@ dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSpatialRelationInfos_OF_PUCCH_SpatialRelat 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_) { +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, - -16, 15U, NULL, FALSE); + 0U, 30U, 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 }, +static const value_string nr_rrc_TimeToTrigger_vals[] = { + { 0, "ms0" }, + { 1, "ms40" }, + { 2, "ms64" }, + { 3, "ms80" }, + { 4, "ms100" }, + { 5, "ms128" }, + { 6, "ms160" }, + { 7, "ms256" }, + { 8, "ms320" }, + { 9, "ms480" }, + { 10, "ms512" }, + { 11, "ms640" }, + { 12, "ms1024" }, + { 13, "ms1280" }, + { 14, "ms2560" }, + { 15, "ms5120" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_TimeToTrigger(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_eventA1_sequence[] = { + { &hf_nr_rrc_a1_Threshold , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantity }, + { &hf_nr_rrc_reportOnLeave, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_hysteresis , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Hysteresis }, + { &hf_nr_rrc_timeToTrigger, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeToTrigger }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_P0_PUCCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_P0_PUCCH, P0_PUCCH_sequence); + ett_nr_rrc_T_eventA1, T_eventA1_sequence); return offset; } -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 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_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); +dissect_nr_rrc_T_eventA2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventA2, T_eventA2_sequence); return offset; } -static const value_string nr_rrc_T_referenceSignal_01_vals[] = { - { 0, "ssb-Index" }, - { 1, "csi-RS-Index" }, + +static int +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, + -30, 30U, NULL, FALSE); + + return offset; +} + + +static const value_string nr_rrc_MeasTriggerQuantityOffset_vals[] = { + { 0, "rsrp" }, + { 1, "rsrq" }, + { 2, "sinr" }, { 0, NULL } }; -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 }, +static const per_choice_t MeasTriggerQuantityOffset_choice[] = { + { 0, &hf_nr_rrc_rsrp_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_M30_30 }, + { 1, &hf_nr_rrc_rsrq_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_M30_30 }, + { 2, &hf_nr_rrc_sinr_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_M30_30 }, { 0, NULL, 0, NULL } }; static int -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_) { +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_referenceSignal_01, T_referenceSignal_01_choice, + ett_nr_rrc_MeasTriggerQuantityOffset, MeasTriggerQuantityOffset_choice, NULL); return offset; } -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 }, +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 int -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_) { +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_PUCCH_PathlossReferenceRS, PUCCH_PathlossReferenceRS_sequence); + ett_nr_rrc_T_eventA3, T_eventA3_sequence); return offset; } -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 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_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); +dissect_nr_rrc_T_eventA4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventA4, T_eventA4_sequence); return offset; } -static const value_string nr_rrc_T_twoPUCCH_PC_AdjustmentStates_vals[] = { - { 0, "twoStates" }, +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_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_eventA6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventA6, T_eventA6_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_eventId_01_vals[] = { + { 0, "eventA1" }, + { 1, "eventA2" }, + { 2, "eventA3" }, + { 3, "eventA4" }, + { 4, "eventA5" }, + { 5, "eventA6" }, + { 0, NULL } +}; + +static const per_choice_t T_eventId_01_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_T_eventId_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_01, T_eventId_01_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_reportAmount_02_vals[] = { + { 0, "r1" }, + { 1, "r2" }, + { 2, "r4" }, + { 3, "r8" }, + { 4, "r16" }, + { 5, "r32" }, + { 6, "r64" }, + { 7, "infinity" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_reportAmount_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, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_reportAddNeighMeas_vals[] = { + { 0, "setup" }, + { 0, NULL } +}; + + +static int +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, 1, NULL, FALSE, 0, NULL); @@ -11049,144 +14971,370 @@ dissect_nr_rrc_T_twoPUCCH_PC_AdjustmentStates(tvbuff_t *tvb _U_, int offset _U_, } -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 }, +static const per_sequence_t EventTriggerConfig_sequence[] = { + { &hf_nr_rrc_eventId_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_eventId_01 }, + { &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_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportAmount_02 }, + { &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_PUCCH_PowerControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_PUCCH_PowerControl, PUCCH_PowerControl_sequence); + ett_nr_rrc_EventTriggerConfig, EventTriggerConfig_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 }, +static const per_sequence_t ReportCGI_sequence[] = { + { &hf_nr_rrc_cellForWhichToReportCGI_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, { 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_ReportCGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_ReportCGI, ReportCGI_sequence); return offset; } -static const value_string nr_rrc_T_pucch_Config_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const value_string nr_rrc_T_reportType_01_vals[] = { + { 0, "periodical" }, + { 1, "eventTriggered" }, + { 2, "reportCGI" }, { 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_04 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_Config }, +static const per_choice_t T_reportType_01_choice[] = { + { 0, &hf_nr_rrc_periodical_01, ASN1_EXTENSION_ROOT , dissect_nr_rrc_PeriodicalReportConfig }, + { 1, &hf_nr_rrc_eventTriggered_01, ASN1_EXTENSION_ROOT , dissect_nr_rrc_EventTriggerConfig }, + { 2, &hf_nr_rrc_reportCGI_01 , ASN1_NOT_EXTENSION_ROOT, dissect_nr_rrc_ReportCGI }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_reportType_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_pucch_Config, T_pucch_Config_choice, + ett_nr_rrc_T_reportType_01, T_reportType_01_choice, NULL); return offset; } -static const value_string nr_rrc_T_txConfig_vals[] = { - { 0, "codebook" }, - { 1, "nonCodebook" }, +static const per_sequence_t ReportConfigNR_sequence[] = { + { &hf_nr_rrc_reportType_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportType_01 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ReportConfigNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReportConfigNR, ReportConfigNR_sequence); + + return offset; +} + + +static const 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_T_txConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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, - 2, NULL, FALSE, 0, NULL); + 8, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_dmrs_Type_01_vals[] = { - { 0, "type2" }, +static const per_sequence_t PeriodicalReportConfigInterRAT_sequence[] = { + { &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_reportQuantity_01, 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 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PeriodicalReportConfigInterRAT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PeriodicalReportConfigInterRAT, PeriodicalReportConfigInterRAT_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_RSRP_RangeEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 97U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_RSRQ_RangeEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 34U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_SINR_RangeEUTRA(tvbuff_t *tvb _U_, int offset _U_, 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 value_string nr_rrc_MeasTriggerQuantityEUTRA_vals[] = { + { 0, "rsrp" }, + { 1, "rsrq" }, + { 2, "sinr" }, { 0, NULL } }; +static const per_choice_t MeasTriggerQuantityEUTRA_choice[] = { + { 0, &hf_nr_rrc_rsrp_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RSRP_RangeEUTRA }, + { 1, &hf_nr_rrc_rsrq_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RSRQ_RangeEUTRA }, + { 2, &hf_nr_rrc_sinr_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SINR_RangeEUTRA }, + { 0, NULL, 0, NULL } +}; static int -dissect_nr_rrc_T_dmrs_Type_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 1, NULL, FALSE, 0, NULL); +dissect_nr_rrc_MeasTriggerQuantityEUTRA(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_MeasTriggerQuantityEUTRA, MeasTriggerQuantityEUTRA_choice, + NULL); return offset; } -static const value_string nr_rrc_T_dmrs_AdditionalPosition_01_vals[] = { - { 0, "pos0" }, - { 1, "pos1" }, - { 2, "pos3" }, +static const per_sequence_t T_eventB1_sequence[] = { + { &hf_nr_rrc_b1_ThresholdEUTRA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantityEUTRA }, + { &hf_nr_rrc_reportOnLeave, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_hysteresis , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Hysteresis }, + { &hf_nr_rrc_timeToTrigger, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeToTrigger }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_eventB1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_eventB1, T_eventB1_sequence); + + return offset; +} + + +static const per_sequence_t T_eventB2_sequence[] = { + { &hf_nr_rrc_b2_Threshold1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantity }, + { &hf_nr_rrc_b2_Threshold2EUTRA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasTriggerQuantityEUTRA }, + { &hf_nr_rrc_reportOnLeave, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_hysteresis , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_Hysteresis }, + { &hf_nr_rrc_timeToTrigger, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeToTrigger }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_eventB2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_eventB2, T_eventB2_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_eventId_vals[] = { + { 0, "eventB1" }, + { 1, "eventB2" }, { 0, NULL } }; +static const per_choice_t T_eventId_choice[] = { + { 0, &hf_nr_rrc_eventB1 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_eventB1 }, + { 1, &hf_nr_rrc_eventB2 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_eventB2 }, + { 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_eventId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_eventId, T_eventId_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_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_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, - 3, NULL, FALSE, 0, NULL); + 8, NULL, FALSE, 0, NULL); return offset; } +static const per_sequence_t EventTriggerConfigInterRAT_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_reportQuantity_01, 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 }, + { NULL, 0, 0, NULL } +}; static int -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, - 1U, 276U, NULL, FALSE); +dissect_nr_rrc_EventTriggerConfigInterRAT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_EventTriggerConfigInterRAT, EventTriggerConfigInterRAT_sequence); 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 const per_sequence_t ReportCGI_EUTRA_sequence[] = { + { &hf_nr_rrc_cellForWhichToReportCGI, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_PhysCellId }, + { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_ReportCGI_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_ReportCGI_EUTRA, ReportCGI_EUTRA_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_reportType_vals[] = { + { 0, "periodical" }, + { 1, "eventTriggered" }, + { 2, "reportCGI" }, + { 0, NULL } +}; + +static const per_choice_t T_reportType_choice[] = { + { 0, &hf_nr_rrc_periodical , ASN1_EXTENSION_ROOT , dissect_nr_rrc_PeriodicalReportConfigInterRAT }, + { 1, &hf_nr_rrc_eventTriggered, ASN1_EXTENSION_ROOT , dissect_nr_rrc_EventTriggerConfigInterRAT }, + { 2, &hf_nr_rrc_reportCGI , ASN1_EXTENSION_ROOT , dissect_nr_rrc_ReportCGI_EUTRA }, + { 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 ReportConfigInterRAT_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_ReportConfigInterRAT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReportConfigInterRAT, ReportConfigInterRAT_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_reportConfig_vals[] = { + { 0, "reportConfigNR" }, + { 1, "reportConfigInterRAT" }, + { 0, NULL } +}; + +static const per_choice_t T_reportConfig_choice[] = { + { 0, &hf_nr_rrc_reportConfigNR, ASN1_EXTENSION_ROOT , dissect_nr_rrc_ReportConfigNR }, + { 1, &hf_nr_rrc_reportConfigInterRAT, ASN1_NOT_EXTENSION_ROOT, dissect_nr_rrc_ReportConfigInterRAT }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_reportConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_reportConfig, T_reportConfig_choice, + NULL); + + return offset; +} + + +static const per_sequence_t ReportConfigToAddMod_sequence[] = { + { &hf_nr_rrc_reportConfigId_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportConfigId }, + { &hf_nr_rrc_reportConfig , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ReportConfigToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReportConfigToAddMod, ReportConfigToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t ReportConfigToAddModList_sequence_of[1] = { + { &hf_nr_rrc_ReportConfigToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReportConfigToAddMod }, +}; + +static int +dissect_nr_rrc_ReportConfigToAddModList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_frequencyDensity_01, T_frequencyDensity_01_sequence_of, - 2, 2, FALSE); + ett_nr_rrc_ReportConfigToAddModList, ReportConfigToAddModList_sequence_of, + 1, maxReportConfigId, FALSE); return offset; } @@ -11194,224 +15342,424 @@ dissect_nr_rrc_T_frequencyDensity_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static int -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_) { +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, - 0U, 29U, NULL, FALSE); + 1U, maxNrofMeasId, NULL, FALSE); return offset; } -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 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_T_timeDensity_01(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_T_timeDensity_01, T_timeDensity_01_sequence_of, - 3, 3, FALSE); + ett_nr_rrc_MeasIdToRemoveList, MeasIdToRemoveList_sequence_of, + 1, maxNrofMeasId, FALSE); return offset; } -static const value_string nr_rrc_T_maxNrofPorts_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 0, NULL } +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_MeasIdToAddMod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasIdToAddMod, MeasIdToAddMod_sequence); + + return offset; +} + + +static const per_sequence_t MeasIdToAddModList_sequence_of[1] = { + { &hf_nr_rrc_MeasIdToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasIdToAddMod }, +}; static int -dissect_nr_rrc_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, - 2, 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_resourceElementOffset_01_vals[] = { - { 0, "offset01" }, - { 1, "offset10" }, - { 2, "offset11" }, +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_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); +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_ptrs_Power_vals[] = { - { 0, "p00" }, - { 1, "p01" }, - { 2, "p10" }, - { 3, "p11" }, +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_ptrs_Power(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, - 4, NULL, FALSE, 0, NULL); + 16, NULL, TRUE, 0, NULL); return offset; } -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 }, +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_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_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_T_cp_OFDM, T_cp_OFDM_sequence); + ett_nr_rrc_FilterConfig, FilterConfig_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 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_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); +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 value_string nr_rrc_T_timeDensityTransformPrecoding_vals[] = { - { 0, "d2" }, - { 0, NULL } +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_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 SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR_sequence_of[1] = { + { &hf_nr_rrc_quantityConfigNR_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_QuantityConfigNR }, +}; static int -dissect_nr_rrc_T_timeDensityTransformPrecoding(tvbuff_t *tvb _U_, int offset _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_SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR(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_maxNrofQuantityConfig_OF_QuantityConfigNR, SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR_sequence_of, + 1, maxNrofQuantityConfig, FALSE); 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_timeDensityTransformPrecoding, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_timeDensityTransformPrecoding }, +static const per_sequence_t QuantityConfig_eag_1_sequence[] = { + { &hf_nr_rrc_quantityConfigEUTRA, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FilterConfig }, { 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_) { +dissect_nr_rrc_QuantityConfig_eag_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_eag(tvb, offset, actx, tree, QuantityConfig_eag_1_sequence); + + return offset; +} + + +static const per_sequence_t QuantityConfig_sequence[] = { + { &hf_nr_rrc_quantityConfigNR_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofQuantityConfig_OF_QuantityConfigNR }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_QuantityConfig_eag_1 }, + { 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_T_dft_S_OFDM, T_dft_S_OFDM_sequence); + ett_nr_rrc_QuantityConfig, QuantityConfig_sequence); return offset; } -static const value_string nr_rrc_T_modeSpecificParameters_vals[] = { - { 0, "cp-OFDM" }, - { 1, "dft-S-OFDM" }, +static const value_string nr_rrc_T_gapFR2_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; -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 }, +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 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_GapConfig }, { 0, NULL, 0, NULL } }; static int -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_) { +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_modeSpecificParameters, T_modeSpecificParameters_choice, + ett_nr_rrc_T_gapFR2, T_gapFR2_choice, NULL); return offset; } -static const per_sequence_t PTRS_UplinkConfig_sequence[] = { - { &hf_nr_rrc_modeSpecificParameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_modeSpecificParameters }, +static const value_string nr_rrc_T_gapFR1_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_gapFR1_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup , ASN1_NO_EXTENSIONS , dissect_nr_rrc_GapConfig }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_gapFR1(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_gapFR1, T_gapFR1_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_gapUE_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_gapUE_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup , ASN1_NO_EXTENSIONS , dissect_nr_rrc_GapConfig }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_gapUE(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_gapUE, T_gapUE_choice, + NULL); + + return offset; +} + + +static const per_sequence_t MeasGapConfig_eag_1_sequence[] = { + { &hf_nr_rrc_gapFR1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_gapFR1 }, + { &hf_nr_rrc_gapUE , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_gapUE }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_MeasGapConfig_eag_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_eag(tvb, offset, actx, tree, MeasGapConfig_eag_1_sequence); + + return offset; +} + + +static const per_sequence_t MeasGapConfig_sequence[] = { + { &hf_nr_rrc_gapFR2 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_gapFR2 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasGapConfig_eag_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasGapConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_PTRS_UplinkConfig, PTRS_UplinkConfig_sequence); + ett_nr_rrc_MeasGapConfig, MeasGapConfig_sequence); return offset; } -static const value_string nr_rrc_T_phaseTrackingRS_01_vals[] = { +static const value_string nr_rrc_MeasGapSharingScheme_vals[] = { + { 0, "scheme00" }, + { 1, "scheme01" }, + { 2, "scheme10" }, + { 3, "scheme11" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_MeasGapSharingScheme(tvbuff_t *tvb _U_, int offset _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_gapSharingFR2_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_phaseTrackingRS_01_choice[] = { +static const per_choice_t T_gapSharingFR2_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_PTRS_UplinkConfig }, + { 1, &hf_nr_rrc_setup_25 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasGapSharingScheme }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_gapSharingFR2(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, + ett_nr_rrc_T_gapSharingFR2, T_gapSharingFR2_choice, NULL); return offset; } -static const value_string nr_rrc_T_maxLength_01_vals[] = { - { 0, "len2" }, +static const value_string nr_rrc_T_gapSharingFR1_vals[] = { + { 0, "release" }, + { 1, "setup" }, { 0, NULL } }; +static const per_choice_t T_gapSharingFR1_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_MeasGapSharingScheme }, + { 0, NULL, 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); +dissect_nr_rrc_T_gapSharingFR1(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_gapSharingFR1, T_gapSharingFR1_choice, + NULL); return offset; } -static const per_sequence_t T_transformPrecodingDisabled_sequence[] = { - { &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 }, +static const value_string nr_rrc_T_gapSharingUE_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_gapSharingUE_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_MeasGapSharingScheme }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_gapSharingUE(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_gapSharingUE, T_gapSharingUE_choice, + NULL); + + return offset; +} + + +static const per_sequence_t MeasGapSharingConfig_eag_1_sequence[] = { + { &hf_nr_rrc_gapSharingFR1, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_gapSharingFR1 }, + { &hf_nr_rrc_gapSharingUE , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_gapSharingUE }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_transformPrecodingDisabled(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MeasGapSharingConfig_eag_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_eag(tvb, offset, actx, tree, MeasGapSharingConfig_eag_1_sequence); + + return offset; +} + + +static const per_sequence_t MeasGapSharingConfig_sequence[] = { + { &hf_nr_rrc_gapSharingFR2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_gapSharingFR2 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasGapSharingConfig_eag_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasGapSharingConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_transformPrecodingDisabled, T_transformPrecodingDisabled_sequence); + ett_nr_rrc_MeasGapSharingConfig, MeasGapSharingConfig_sequence); + + return offset; +} + + +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_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasGapConfig }, + { &hf_nr_rrc_measGapSharingConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MeasGapSharingConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasConfig, MeasConfig_sequence); return offset; } @@ -11419,22 +15767,22 @@ dissect_nr_rrc_T_transformPrecodingDisabled(tvbuff_t *tvb _U_, int offset _U_, a 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); +dissect_nr_rrc_T_masterCellGroup(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 const value_string nr_rrc_T_disableSequenceGroupHopping_vals[] = { - { 0, "disabled" }, +static const value_string nr_rrc_T_fullConfig_vals[] = { + { 0, "true" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_fullConfig(tvbuff_t *tvb _U_, int offset _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); @@ -11442,108 +15790,296 @@ dissect_nr_rrc_T_disableSequenceGroupHopping(tvbuff_t *tvb _U_, int offset _U_, } -static const value_string nr_rrc_T_sequenceHoppingEnabled_vals[] = { - { 0, "enabled" }, - { 0, NULL } + +static int +dissect_nr_rrc_DedicatedNAS_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *nas_5gs_tvb = NULL; + proto_tree *subtree; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, &nas_5gs_tvb); + + if (nas_5gs_tvb && nas_5gs_handle) { + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_DedicatedNAS_Message); + nr_rrc_call_dissector(nas_5gs_handle, nas_5gs_tvb, actx->pinfo, subtree); + } + + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxDRB_OF_DedicatedNAS_Message_sequence_of[1] = { + { &hf_nr_rrc_dedicatedNAS_MessageList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DedicatedNAS_Message }, }; +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DedicatedNAS_Message(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_maxDRB_OF_DedicatedNAS_Message, SEQUENCE_SIZE_1_maxDRB_OF_DedicatedNAS_Message_sequence_of, + 1, maxDRB, FALSE); + + return offset; +} + + 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); +dissect_nr_rrc_NextHopChainingCount(tvbuff_t *tvb _U_, int offset _U_, 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 T_transformPrecodingEnabled_sequence[] = { - { &hf_nr_rrc_nPUSCH_Identity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1007 }, - { &hf_nr_rrc_disableSequenceGroupHopping, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_disableSequenceGroupHopping }, - { &hf_nr_rrc_sequenceHoppingEnabled, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_sequenceHoppingEnabled }, + +static int +dissect_nr_rrc_T_nas_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *nas_5gs_tvb = NULL; + proto_tree *subtree; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, &nas_5gs_tvb); + + if (nas_5gs_tvb && nas_5gs_handle) { + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_nas_Container); + nr_rrc_call_dissector(nas_5gs_handle, nas_5gs_tvb, actx->pinfo, subtree); + } + + + return offset; +} + + +static const per_sequence_t MasterKeyUpdate_sequence[] = { + { &hf_nr_rrc_keySetChangeIndicator, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_nextHopChainingCount, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NextHopChainingCount }, + { &hf_nr_rrc_nas_Container, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_nas_Container }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_transformPrecodingEnabled(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MasterKeyUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_transformPrecodingEnabled, T_transformPrecodingEnabled_sequence); + ett_nr_rrc_MasterKeyUpdate, MasterKeyUpdate_sequence); return offset; } -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_transformPrecodingDisabled, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecodingDisabled }, - { &hf_nr_rrc_transformPrecodingEnabled, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecodingEnabled }, + +static int +dissect_nr_rrc_T_dedicatedSIB1_Delivery(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_SIB1_PDU); + + return offset; +} + + + +static int +dissect_nr_rrc_T_dedicatedSystemInformationDelivery(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_SystemInformation_PDU); + + return offset; +} + + +static const value_string nr_rrc_T_delayBudgetReportingProhibitTimer_vals[] = { + { 0, "s0" }, + { 1, "s0dot4" }, + { 2, "s0dot8" }, + { 3, "s1dot6" }, + { 4, "s3" }, + { 5, "s6" }, + { 6, "s12" }, + { 7, "s30" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_delayBudgetReportingProhibitTimer(tvbuff_t *tvb _U_, int offset _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_setup_sequence[] = { + { &hf_nr_rrc_delayBudgetReportingProhibitTimer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_delayBudgetReportingProhibitTimer }, { 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_) { +dissect_nr_rrc_T_setup(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_DMRS_UplinkConfig, DMRS_UplinkConfig_sequence); + ett_nr_rrc_T_setup, T_setup_sequence); return offset; } -static const value_string nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA_vals[] = { +static const value_string nr_rrc_T_delayBudgetReportingConfig_vals[] = { { 0, "release" }, { 1, "setup" }, { 0, NULL } }; -static const per_choice_t T_dmrs_UplinkForPUSCH_MappingTypeA_choice[] = { +static const per_choice_t T_delayBudgetReportingConfig_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_DMRS_UplinkConfig }, + { 1, &hf_nr_rrc_setup_49 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_setup }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_delayBudgetReportingConfig(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_MappingTypeA, T_dmrs_UplinkForPUSCH_MappingTypeA_choice, + ett_nr_rrc_T_delayBudgetReportingConfig, T_delayBudgetReportingConfig_choice, NULL); return offset; } -static const value_string nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeB_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const per_sequence_t OtherConfig_sequence[] = { + { &hf_nr_rrc_delayBudgetReportingConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_delayBudgetReportingConfig }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_OtherConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_OtherConfig, OtherConfig_sequence); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_16_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_16, T_nonCriticalExtension_16_sequence); + + return offset; +} + + +static const per_sequence_t RRCReconfiguration_v1530_IEs_sequence[] = { + { &hf_nr_rrc_masterCellGroup, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_masterCellGroup }, + { &hf_nr_rrc_fullConfig , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_fullConfig }, + { &hf_nr_rrc_dedicatedNAS_MessageList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DedicatedNAS_Message }, + { &hf_nr_rrc_masterKeyUpdate, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MasterKeyUpdate }, + { &hf_nr_rrc_dedicatedSIB1_Delivery, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dedicatedSIB1_Delivery }, + { &hf_nr_rrc_dedicatedSystemInformationDelivery, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dedicatedSystemInformationDelivery }, + { &hf_nr_rrc_otherConfig , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OtherConfig }, + { &hf_nr_rrc_nonCriticalExtension_17, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_16 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReconfiguration_v1530_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_v1530_IEs, RRCReconfiguration_v1530_IEs_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_16, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RRCReconfiguration_v1530_IEs }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReconfiguration_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReconfiguration_IEs, RRCReconfiguration_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_15_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_15, T_criticalExtensionsFuture_15_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_15_vals[] = { + { 0, "rrcReconfiguration" }, + { 1, "criticalExtensionsFuture" }, { 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_37 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DMRS_UplinkConfig }, +static const per_choice_t T_criticalExtensions_15_choice[] = { + { 0, &hf_nr_rrc_rrcReconfiguration_02, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfiguration_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_15, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_15 }, { 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_) { +dissect_nr_rrc_T_criticalExtensions_15(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, + ett_nr_rrc_T_criticalExtensions_15, T_criticalExtensions_15_choice, NULL); return offset; } -static const value_string nr_rrc_T_tpc_Accumulation_vals[] = { - { 0, "disabled" }, +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_15, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_15 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReconfiguration, RRCReconfiguration_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_T_masterCellGroup_01(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 const value_string nr_rrc_T_fullConfig_01_vals[] = { + { 0, "true" }, { 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_) { +dissect_nr_rrc_T_fullConfig_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); @@ -11551,170 +16087,327 @@ dissect_nr_rrc_T_tpc_Accumulation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const per_sequence_t T_nonCriticalExtension_20_sequence[] = { + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_T_nonCriticalExtension_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_20, T_nonCriticalExtension_20_sequence); 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 }, +static const per_sequence_t RRCResume_IEs_sequence[] = { + { &hf_nr_rrc_radioBearerConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RadioBearerConfig }, + { &hf_nr_rrc_masterCellGroup_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_masterCellGroup_01 }, + { &hf_nr_rrc_measConfig , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasConfig }, + { &hf_nr_rrc_fullConfig_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_fullConfig_01 }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_22, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_20 }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_RRCResume_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_P0_PUSCH_AlphaSet, P0_PUSCH_AlphaSet_sequence); + ett_nr_rrc_RRCResume_IEs, RRCResume_IEs_sequence); return offset; } -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 const per_sequence_t T_criticalExtensionsFuture_19_sequence[] = { + { NULL, 0, 0, NULL } }; static int -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_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet, SEQUENCE_SIZE_1_maxNrofP0_PUSCH_AlphaSets_OF_P0_PUSCH_AlphaSet_sequence_of, - 1, maxNrofP0_PUSCH_AlphaSets, FALSE); +dissect_nr_rrc_T_criticalExtensionsFuture_19(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_19, T_criticalExtensionsFuture_19_sequence); return offset; } +static const value_string nr_rrc_T_criticalExtensions_19_vals[] = { + { 0, "rrcResume" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_19_choice[] = { + { 0, &hf_nr_rrc_rrcResume_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCResume_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_19, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_19 }, + { 0, NULL, 0, NULL } +}; static int -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, maxNrofPUSCH_PathlossReferenceRSs_1, NULL, FALSE); +dissect_nr_rrc_T_criticalExtensions_19(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_19, T_criticalExtensions_19_choice, + NULL); return offset; } -static const value_string nr_rrc_T_referenceSignal_02_vals[] = { - { 0, "ssb-Index" }, - { 1, "csi-RS-Index" }, +static const per_sequence_t RRCResume_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_19, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_19 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCResume(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 Resume"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCResume, RRCResume_sequence); + + return offset; +} + + +static const per_sequence_t CarrierInfoNR_sequence[] = { + { &hf_nr_rrc_carrierFreq , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_ssbSubcarrierSpacing, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SubcarrierSpacing }, + { &hf_nr_rrc_smtc , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SSB_MTC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CarrierInfoNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CarrierInfoNR, CarrierInfoNR_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_cnType_r15_vals[] = { + { 0, "epc" }, + { 1, "fiveGC" }, { 0, NULL } }; -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 }, + +static int +dissect_nr_rrc_T_cnType_r15(tvbuff_t *tvb _U_, int offset _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 RedirectedCarrierInfo_EUTRA_sequence[] = { + { &hf_nr_rrc_eutraFrequency, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueEUTRA }, + { &hf_nr_rrc_cnType_r15 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_cnType_r15 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RedirectedCarrierInfo_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_RedirectedCarrierInfo_EUTRA, RedirectedCarrierInfo_EUTRA_sequence); + + return offset; +} + + +static const value_string nr_rrc_RedirectedCarrierInfo_vals[] = { + { 0, "nr" }, + { 1, "eutra" }, + { 0, NULL } +}; + +static const per_choice_t RedirectedCarrierInfo_choice[] = { + { 0, &hf_nr_rrc_nr , ASN1_EXTENSION_ROOT , dissect_nr_rrc_CarrierInfoNR }, + { 1, &hf_nr_rrc_eutra , ASN1_EXTENSION_ROOT , dissect_nr_rrc_RedirectedCarrierInfo_EUTRA }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_RedirectedCarrierInfo(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_02, T_referenceSignal_02_choice, + ett_nr_rrc_RedirectedCarrierInfo, RedirectedCarrierInfo_choice, NULL); return offset; } -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 }, +static const per_sequence_t FreqPriorityEUTRA_sequence[] = { + { &hf_nr_rrc_carrierFreq_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueEUTRA }, + { &hf_nr_rrc_cellReselectionPriority, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellReselectionPriority }, + { &hf_nr_rrc_cellReselectionSubPriority, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellReselectionSubPriority }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_FreqPriorityEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_PathlossReferenceRS, PUSCH_PathlossReferenceRS_sequence); + ett_nr_rrc_FreqPriorityEUTRA, FreqPriorityEUTRA_sequence); return offset; } -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 const per_sequence_t FreqPriorityListEUTRA_sequence_of[1] = { + { &hf_nr_rrc_FreqPriorityListEUTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqPriorityEUTRA }, }; 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_) { +dissect_nr_rrc_FreqPriorityListEUTRA(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); + ett_nr_rrc_FreqPriorityListEUTRA, FreqPriorityListEUTRA_sequence_of, + 1, maxFreq, 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 const per_sequence_t FreqPriorityNR_sequence[] = { + { &hf_nr_rrc_carrierFreq , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueNR }, + { &hf_nr_rrc_cellReselectionPriority, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellReselectionPriority }, + { &hf_nr_rrc_cellReselectionSubPriority, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellReselectionSubPriority }, + { NULL, 0, 0, NULL } }; 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_) { +dissect_nr_rrc_FreqPriorityNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_FreqPriorityNR, FreqPriorityNR_sequence); + + return offset; +} + + +static const per_sequence_t FreqPriorityListNR_sequence_of[1] = { + { &hf_nr_rrc_FreqPriorityListNR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqPriorityNR }, +}; + +static int +dissect_nr_rrc_FreqPriorityListNR(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); + ett_nr_rrc_FreqPriorityListNR, FreqPriorityListNR_sequence_of, + 1, maxFreq, FALSE); return offset; } -static const value_string nr_rrc_T_twoPUSCH_PC_AdjustmentStates_vals[] = { - { 0, "twoStates" }, +static const value_string nr_rrc_T_t320_vals[] = { + { 0, "min5" }, + { 1, "min10" }, + { 2, "min20" }, + { 3, "min30" }, + { 4, "min60" }, + { 5, "min120" }, + { 6, "min180" }, + { 7, "spare1" }, { 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_) { +dissect_nr_rrc_T_t320(tvbuff_t *tvb _U_, int offset _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_deltaMCS_vals[] = { - { 0, "enabled" }, +static const per_sequence_t CellReselectionPriorities_sequence[] = { + { &hf_nr_rrc_freqPriorityListEUTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_FreqPriorityListEUTRA }, + { &hf_nr_rrc_freqPriorityListNR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_FreqPriorityListNR }, + { &hf_nr_rrc_t320 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_t320 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CellReselectionPriorities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CellReselectionPriorities, CellReselectionPriorities_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_I_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_bit_string(tvb, offset, actx, tree, hf_index, + 40, 40, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_nr_rrc_ShortI_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_bit_string(tvb, offset, actx, tree, hf_index, + 24, 24, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_PeriodicRNAU_TimerValue_vals[] = { + { 0, "min5" }, + { 1, "min10" }, + { 2, "min20" }, + { 3, "min30" }, + { 4, "min60" }, + { 5, "min120" }, + { 6, "min360" }, + { 7, "min720" }, { 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_) { +dissect_nr_rrc_PeriodicRNAU_TimerValue(tvbuff_t *tvb _U_, int offset _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 per_sequence_t SuspendConfig_sequence[] = { + { &hf_nr_rrc_fullI_RNTI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_I_RNTI_Value }, + { &hf_nr_rrc_shortI_RNTI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ShortI_RNTI_Value }, + { &hf_nr_rrc_ran_PagingCycle, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PagingCycle }, + { &hf_nr_rrc_ran_NotificationAreaInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RAN_NotificationAreaInfo }, + { &hf_nr_rrc_t380 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PeriodicRNAU_TimerValue }, + { &hf_nr_rrc_nextHopChainingCount, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NextHopChainingCount }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_SuspendConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SuspendConfig, SuspendConfig_sequence); return offset; } -static const value_string nr_rrc_T_sri_PUSCH_ClosedLoopIndex_vals[] = { - { 0, "i0" }, - { 1, "i1" }, +static const value_string nr_rrc_T_deprioritisationType_vals[] = { + { 0, "frequency" }, + { 1, "nr" }, { 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_) { +dissect_nr_rrc_T_deprioritisationType(tvbuff_t *tvb _U_, int offset _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); @@ -11722,831 +16415,1997 @@ dissect_nr_rrc_T_sri_PUSCH_ClosedLoopIndex(tvbuff_t *tvb _U_, int offset _U_, as } -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 }, +static const value_string nr_rrc_T_deprioritisationTimer_vals[] = { + { 0, "min5" }, + { 1, "min10" }, + { 2, "min15" }, + { 3, "min30" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_deprioritisationTimer(tvbuff_t *tvb _U_, int offset _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_deprioritisationReq_sequence[] = { + { &hf_nr_rrc_deprioritisationType, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_deprioritisationType }, + { &hf_nr_rrc_deprioritisationTimer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_deprioritisationTimer }, { 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_) { +dissect_nr_rrc_T_deprioritisationReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); + ett_nr_rrc_T_deprioritisationReq, T_deprioritisationReq_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 const per_sequence_t T_nonCriticalExtension_19_sequence[] = { + { NULL, 0, 0, NULL } }; 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); +dissect_nr_rrc_T_nonCriticalExtension_19(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_19, T_nonCriticalExtension_19_sequence); 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 const per_sequence_t RRCRelease_IEs_sequence[] = { + { &hf_nr_rrc_redirectedCarrierInfo, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RedirectedCarrierInfo }, + { &hf_nr_rrc_cellReselectionPriorities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CellReselectionPriorities }, + { &hf_nr_rrc_suspendConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SuspendConfig }, + { &hf_nr_rrc_deprioritisationReq, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_deprioritisationReq }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_21, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_19 }, + { NULL, 0, 0, NULL } }; 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); +dissect_nr_rrc_RRCRelease_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_RRCRelease_IEs, RRCRelease_IEs_sequence); 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 }, +static const per_sequence_t T_criticalExtensionsFuture_18_sequence[] = { { 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_) { +dissect_nr_rrc_T_criticalExtensionsFuture_18(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); + ett_nr_rrc_T_criticalExtensionsFuture_18, T_criticalExtensionsFuture_18_sequence); return offset; } -static const value_string nr_rrc_T_frequencyHopping_01_vals[] = { - { 0, "mode1" }, - { 1, "mode2" }, +static const value_string nr_rrc_T_criticalExtensions_18_vals[] = { + { 0, "rrcRelease" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_18_choice[] = { + { 0, &hf_nr_rrc_rrcRelease_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCRelease_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_18, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_18 }, + { 0, NULL, 0, NULL } +}; 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); +dissect_nr_rrc_T_criticalExtensions_18(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_18, T_criticalExtensions_18_choice, + NULL); return offset; } +static const per_sequence_t RRCRelease_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_18, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_18 }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_RRCRelease(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 Release"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCRelease, RRCRelease_sequence); 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 const per_sequence_t T_nonCriticalExtension_14_sequence[] = { + { NULL, 0, 0, NULL } }; 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); +dissect_nr_rrc_T_nonCriticalExtension_14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_14, T_nonCriticalExtension_14_sequence); return offset; } -static const value_string nr_rrc_T_resourceAllocation_02_vals[] = { - { 0, "resourceAllocationType0" }, - { 1, "resourceAllocationType1" }, - { 2, "dynamicSwitch" }, - { 0, NULL } +static const per_sequence_t RRCReestablishment_IEs_sequence[] = { + { &hf_nr_rrc_nextHopChainingCount, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NextHopChainingCount }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_14, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_14 }, + { NULL, 0, 0, NULL } }; +static int +dissect_nr_rrc_RRCReestablishment_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_RRCReestablishment_IEs, RRCReestablishment_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_13_sequence[] = { + { NULL, 0, 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); +dissect_nr_rrc_T_criticalExtensionsFuture_13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_13, T_criticalExtensionsFuture_13_sequence); return offset; } -static const value_string nr_rrc_T_pusch_TimeDomainAllocationList_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const value_string nr_rrc_T_criticalExtensions_13_vals[] = { + { 0, "rrcReestablishment" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_pusch_TimeDomainAllocationList_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_PUSCH_TimeDomainResourceAllocationList }, +static const per_choice_t T_criticalExtensions_13_choice[] = { + { 0, &hf_nr_rrc_rrcReestablishment_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReestablishment_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_13, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_13 }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_pusch_TimeDomainAllocationList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensions_13(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_TimeDomainAllocationList, T_pusch_TimeDomainAllocationList_choice, + ett_nr_rrc_T_criticalExtensions_13, T_criticalExtensions_13_choice, NULL); return offset; } -static const value_string nr_rrc_T_pusch_AggregationFactor_vals[] = { - { 0, "n2" }, - { 1, "n4" }, - { 2, "n8" }, - { 0, NULL } +static const per_sequence_t RRCReestablishment_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_13, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_13 }, + { NULL, 0, 0, NULL } }; +static int +dissect_nr_rrc_RRCReestablishment(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 Reestablishment"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReestablishment, RRCReestablishment_sequence); + + return offset; +} + + +static const per_sequence_t SecurityConfigSMC_sequence[] = { + { &hf_nr_rrc_securityAlgorithmConfig, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SecurityAlgorithmConfig }, + { NULL, 0, 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); +dissect_nr_rrc_SecurityConfigSMC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SecurityConfigSMC, SecurityConfigSMC_sequence); return offset; } -static const value_string nr_rrc_T_mcs_Table_02_vals[] = { - { 0, "qam256" }, - { 1, "spare1" }, - { 0, NULL } +static const per_sequence_t T_nonCriticalExtension_24_sequence[] = { + { NULL, 0, 0, NULL } }; +static int +dissect_nr_rrc_T_nonCriticalExtension_24(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_24, T_nonCriticalExtension_24_sequence); + + return offset; +} + + +static const per_sequence_t SecurityModeCommand_IEs_sequence[] = { + { &hf_nr_rrc_securityConfigSMC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SecurityConfigSMC }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_26, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_24 }, + { NULL, 0, 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, - 2, NULL, FALSE, 0, NULL); +dissect_nr_rrc_SecurityModeCommand_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_SecurityModeCommand_IEs, SecurityModeCommand_IEs_sequence); return offset; } -static const value_string nr_rrc_T_mcs_TableTransformPrecoder_01_vals[] = { - { 0, "qam256" }, - { 1, "spare1" }, +static const per_sequence_t T_criticalExtensionsFuture_24_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_24(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_24, T_criticalExtensionsFuture_24_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_24_vals[] = { + { 0, "securityModeCommand" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_24_choice[] = { + { 0, &hf_nr_rrc_securityModeCommand_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SecurityModeCommand_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_24, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_24 }, + { 0, NULL, 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, - 2, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_criticalExtensions_24(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_24, T_criticalExtensions_24_choice, + NULL); return offset; } -static const value_string nr_rrc_T_transformPrecoder_01_vals[] = { - { 0, "enabled" }, - { 1, "disabled" }, - { 0, NULL } +static const per_sequence_t SecurityModeCommand_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_24, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_24 }, + { NULL, 0, 0, NULL } }; +static int +dissect_nr_rrc_SecurityModeCommand(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, "Security Mode Command"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SecurityModeCommand, SecurityModeCommand_sequence); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_09_sequence[] = { + { NULL, 0, 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); +dissect_nr_rrc_T_nonCriticalExtension_09(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_09, T_nonCriticalExtension_09_sequence); return offset; } -static const value_string nr_rrc_T_codebookSubset_vals[] = { - { 0, "fullyAndPartialAndNonCoherent" }, - { 1, "partialAndNonCoherent" }, - { 2, "nonCoherent" }, +static const per_sequence_t DLInformationTransfer_IEs_sequence[] = { + { &hf_nr_rrc_dedicatedNAS_Message, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_DedicatedNAS_Message }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_09, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_09 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_DLInformationTransfer_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_DLInformationTransfer_IEs, DLInformationTransfer_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_09_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_09(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_09, T_criticalExtensionsFuture_09_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_09_vals[] = { + { 0, "dlInformationTransfer" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_09_choice[] = { + { 0, &hf_nr_rrc_dlInformationTransfer_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_DLInformationTransfer_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_09, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_09 }, + { 0, NULL, 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); +dissect_nr_rrc_T_criticalExtensions_09(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensions_09, T_criticalExtensions_09_choice, + NULL); return offset; } -static const value_string nr_rrc_T_rbg_Size_02_vals[] = { - { 0, "config2" }, +static const per_sequence_t DLInformationTransfer_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_09, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_09 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_DLInformationTransfer(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, "DL Information Transfer"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_DLInformationTransfer, DLInformationTransfer_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_T_capabilityRequestFilter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *cap_req_filter_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, &cap_req_filter_tvb); + + + + if (cap_req_filter_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + + subtree = proto_item_add_subtree(actx->created_item, ett_nr_rrc_capabilityRequestFilter); + switch(nr_priv->rat_type){ + case RAT_Type_nr: + dissect_UE_CapabilityRequestFilterNR_PDU(cap_req_filter_tvb, actx->pinfo, subtree, NULL); + break; + default: + break; + } + } + + return offset; +} + + +static const per_sequence_t UE_CapabilityRAT_Request_sequence[] = { + { &hf_nr_rrc_rat_Type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RAT_Type }, + { &hf_nr_rrc_capabilityRequestFilter, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_capabilityRequestFilter }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UE_CapabilityRAT_Request(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + /* Initialise to invalid value */ + nr_priv->rat_type = 0xFF; + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UE_CapabilityRAT_Request, UE_CapabilityRAT_Request_sequence); + + + + return offset; +} + + +static const per_sequence_t UE_CapabilityRAT_RequestList_sequence_of[1] = { + { &hf_nr_rrc_UE_CapabilityRAT_RequestList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UE_CapabilityRAT_Request }, +}; + +static int +dissect_nr_rrc_UE_CapabilityRAT_RequestList(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_RequestList, UE_CapabilityRAT_RequestList_sequence_of, + 1, maxRAT_CapabilityContainers, FALSE); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_30_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_30(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_30, T_nonCriticalExtension_30_sequence); + + return offset; +} + + +static const per_sequence_t UECapabilityEnquiry_IEs_sequence[] = { + { &hf_nr_rrc_ue_CapabilityRAT_RequestList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UE_CapabilityRAT_RequestList }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_32, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_30 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UECapabilityEnquiry_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_UECapabilityEnquiry_IEs, UECapabilityEnquiry_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_29_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_29(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_29, T_criticalExtensionsFuture_29_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_29_vals[] = { + { 0, "ueCapabilityEnquiry" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_29_choice[] = { + { 0, &hf_nr_rrc_ueCapabilityEnquiry_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_UECapabilityEnquiry_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_29, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_29 }, + { 0, NULL, 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); +dissect_nr_rrc_T_criticalExtensions_29(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_29, T_criticalExtensions_29_choice, + 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 }, +static const per_sequence_t UECapabilityEnquiry_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_29, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_29 }, { 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_UECapabilityEnquiry(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, "UE Capability Enquiry"); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_BetaOffsets, BetaOffsets_sequence); + ett_nr_rrc_UECapabilityEnquiry, UECapabilityEnquiry_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_INTEGER_0_33554431(tvbuff_t *tvb _U_, int offset _U_, 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, 33554431U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t DRB_CountMSB_Info_sequence[] = { + { &hf_nr_rrc_drb_Identity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_Identity }, + { &hf_nr_rrc_countMSB_Uplink, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_33554431 }, + { &hf_nr_rrc_countMSB_Downlink, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_33554431 }, + { NULL, 0, 0, NULL } }; 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_) { +dissect_nr_rrc_DRB_CountMSB_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_DRB_CountMSB_Info, DRB_CountMSB_Info_sequence); + + return offset; +} + + +static const per_sequence_t DRB_CountMSB_InfoList_sequence_of[1] = { + { &hf_nr_rrc_DRB_CountMSB_InfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_CountMSB_Info }, +}; + +static int +dissect_nr_rrc_DRB_CountMSB_InfoList(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); + ett_nr_rrc_DRB_CountMSB_InfoList, DRB_CountMSB_InfoList_sequence_of, + 1, maxDRB, FALSE); return offset; } -static const value_string nr_rrc_T_betaOffsets_vals[] = { - { 0, "dynamic" }, - { 1, "semiStatic" }, +static const per_sequence_t T_nonCriticalExtension_07_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_nonCriticalExtension_07, T_nonCriticalExtension_07_sequence); + + return offset; +} + + +static const per_sequence_t CounterCheck_IEs_sequence[] = { + { &hf_nr_rrc_drb_CountMSB_InfoList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_CountMSB_InfoList }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_07, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_07 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CounterCheck_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_CounterCheck_IEs, CounterCheck_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_07_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensionsFuture_07, T_criticalExtensionsFuture_07_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_07_vals[] = { + { 0, "counterCheck" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_betaOffsets_choice[] = { - { 0, &hf_nr_rrc_dynamic_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SEQUENCE_SIZE_4_OF_BetaOffsets }, - { 1, &hf_nr_rrc_semiStatic , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BetaOffsets }, +static const per_choice_t T_criticalExtensions_07_choice[] = { + { 0, &hf_nr_rrc_counterCheck_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_CounterCheck_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_07, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_07 }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_criticalExtensions_07(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_betaOffsets, T_betaOffsets_choice, + ett_nr_rrc_T_criticalExtensions_07, T_criticalExtensions_07_choice, NULL); return offset; } -static const value_string nr_rrc_T_scaling_vals[] = { - { 0, "f0p5" }, - { 1, "f0p65" }, - { 2, "f0p8" }, - { 3, "f1" }, +static const per_sequence_t CounterCheck_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_07, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_07 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CounterCheck(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, "Counter Check"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CounterCheck, CounterCheck_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_targetRAT_Type_vals[] = { + { T_targetRAT_Type_eutra, "eutra" }, + { T_targetRAT_Type_spare3, "spare3" }, + { T_targetRAT_Type_spare2, "spare2" }, + { T_targetRAT_Type_spare1, "spare1" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_targetRAT_Type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + guint32 target_rat_type; + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 4, NULL, FALSE, 0, NULL); + 4, &target_rat_type, TRUE, 0, NULL); + + nr_priv->target_rat_type = (guint8)target_rat_type; + return offset; } -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 }, + +static int +dissect_nr_rrc_T_targetRAT_MessageContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + tvbuff_t *target_rat_msg_cont_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, &target_rat_msg_cont_tvb); + + if (target_rat_msg_cont_tvb) { + nr_rrc_private_data_t *nr_priv = nr_rrc_get_private_data(actx); + proto_tree *subtree; + subtree = proto_item_add_subtree(actx->created_item, ett_rr_rrc_targetRAT_MessageContainer); + switch (nr_priv->target_rat_type) { + case T_targetRAT_Type_eutra: + /* eutra */ + if (lte_rrc_conn_reconf_handle) + nr_rrc_call_dissector(lte_rrc_conn_reconf_handle, target_rat_msg_cont_tvb, actx->pinfo, subtree); + break; + default: + break; + } + } + + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_12_sequence[] = { { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_nonCriticalExtension_12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_UCI_OnPUSCH, UCI_OnPUSCH_sequence); + ett_nr_rrc_T_nonCriticalExtension_12, T_nonCriticalExtension_12_sequence); return offset; } -static const value_string nr_rrc_T_uci_OnPUSCH_01_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const per_sequence_t MobilityFromNRCommand_IEs_sequence[] = { + { &hf_nr_rrc_targetRAT_Type, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_targetRAT_Type }, + { &hf_nr_rrc_targetRAT_MessageContainer, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_targetRAT_MessageContainer }, + { &hf_nr_rrc_nas_SecurityParamFromNR, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_12, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_12 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MobilityFromNRCommand_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_MobilityFromNRCommand_IEs, MobilityFromNRCommand_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_12_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensionsFuture_12, T_criticalExtensionsFuture_12_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_12_vals[] = { + { 0, "mobilityFromNRCommand" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -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_39 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_UCI_OnPUSCH }, +static const per_choice_t T_criticalExtensions_12_choice[] = { + { 0, &hf_nr_rrc_mobilityFromNRCommand_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MobilityFromNRCommand_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_12, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_12 }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_criticalExtensions_12(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_01, T_uci_OnPUSCH_01_choice, + ett_nr_rrc_T_criticalExtensions_12, T_criticalExtensions_12_choice, NULL); return offset; } -static const value_string nr_rrc_T_tp_pi2BPSK_vals[] = { - { 0, "enabled" }, +static const per_sequence_t MobilityFromNRCommand_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_12, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_12 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MobilityFromNRCommand(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, "Mobility From NR Command"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MobilityFromNRCommand, MobilityFromNRCommand_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_c1_09_vals[] = { + { 0, "rrcReconfiguration" }, + { 1, "rrcResume" }, + { 2, "rrcRelease" }, + { 3, "rrcReestablishment" }, + { 4, "securityModeCommand" }, + { 5, "dlInformationTransfer" }, + { 6, "ueCapabilityEnquiry" }, + { 7, "counterCheck" }, + { 8, "mobilityFromNRCommand" }, + { 9, "spare7" }, + { 10, "spare6" }, + { 11, "spare5" }, + { 12, "spare4" }, + { 13, "spare3" }, + { 14, "spare2" }, + { 15, "spare1" }, { 0, NULL } }; +static const per_choice_t T_c1_09_choice[] = { + { 0, &hf_nr_rrc_rrcReconfiguration_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfiguration }, + { 1, &hf_nr_rrc_rrcResume , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCResume }, + { 2, &hf_nr_rrc_rrcRelease , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCRelease }, + { 3, &hf_nr_rrc_rrcReestablishment, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReestablishment }, + { 4, &hf_nr_rrc_securityModeCommand, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SecurityModeCommand }, + { 5, &hf_nr_rrc_dlInformationTransfer, ASN1_NO_EXTENSIONS , dissect_nr_rrc_DLInformationTransfer }, + { 6, &hf_nr_rrc_ueCapabilityEnquiry, ASN1_NO_EXTENSIONS , dissect_nr_rrc_UECapabilityEnquiry }, + { 7, &hf_nr_rrc_counterCheck , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CounterCheck }, + { 8, &hf_nr_rrc_mobilityFromNRCommand, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MobilityFromNRCommand }, + { 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_tp_pi2BPSK(tvbuff_t *tvb _U_, int offset _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_c1_09(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_c1_09, T_c1_09_choice, + NULL); return offset; } -static const per_sequence_t PUSCH_Config_sequence[] = { - { &hf_nr_rrc_dataScramblingIdentityPUSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1023 }, - { &hf_nr_rrc_txConfig , ASN1_EXTENSION_ROOT , ASN1_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_TimeDomainAllocationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_TimeDomainAllocationList }, - { &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_OPTIONAL , dissect_nr_rrc_T_codebookSubset }, - { &hf_nr_rrc_maxRank , ASN1_EXTENSION_ROOT , ASN1_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_tp_pi2BPSK , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tp_pi2BPSK }, +static const per_sequence_t T_messageClassExtension_03_sequence[] = { { 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_messageClassExtension_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_PUSCH_Config, PUSCH_Config_sequence); + ett_nr_rrc_T_messageClassExtension_03, T_messageClassExtension_03_sequence); return offset; } -static const value_string nr_rrc_T_pusch_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 T_pusch_Config_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_PUSCH_Config }, +static const per_choice_t DL_DCCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1_09 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_09 }, + { 1, &hf_nr_rrc_messageClassExtension_03, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_03 }, { 0, NULL, 0, NULL } }; static int -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_) { +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_T_pusch_Config, T_pusch_Config_choice, + ett_nr_rrc_DL_DCCH_MessageType, DL_DCCH_MessageType_choice, NULL); return offset; } -static const value_string nr_rrc_T_frequencyHopping_vals[] = { - { 0, "mode1" }, - { 1, "mode2" }, +static const per_sequence_t DL_DCCH_Message_sequence[] = { + { &hf_nr_rrc_message_03 , 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 int +dissect_nr_rrc_NG_5G_S_TMSI(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 const value_string nr_rrc_PagingUE_Identity_vals[] = { + { 0, "ng-5G-S-TMSI" }, + { 1, "i-RNTI" }, { 0, NULL } }; +static const per_choice_t PagingUE_Identity_choice[] = { + { 0, &hf_nr_rrc_ng_5G_S_TMSI , ASN1_EXTENSION_ROOT , dissect_nr_rrc_NG_5G_S_TMSI }, + { 1, &hf_nr_rrc_i_RNTI , ASN1_EXTENSION_ROOT , dissect_nr_rrc_I_RNTI_Value }, + { 0, NULL, 0, NULL } +}; static int -dissect_nr_rrc_T_frequencyHopping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 2, NULL, FALSE, 0, NULL); +dissect_nr_rrc_PagingUE_Identity(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_PagingUE_Identity, PagingUE_Identity_choice, + NULL); return offset; } -static const value_string nr_rrc_T_mcs_Table_vals[] = { - { 0, "qam256" }, - { 1, "spare1" }, +static const value_string nr_rrc_T_accessType_vals[] = { + { 0, "non3GPP" }, { 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_) { +dissect_nr_rrc_T_accessType(tvbuff_t *tvb _U_, int offset _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_TableTransformPrecoder_vals[] = { - { 0, "qam256" }, +static const per_sequence_t PagingRecord_sequence[] = { + { &hf_nr_rrc_ue_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PagingUE_Identity }, + { &hf_nr_rrc_accessType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_accessType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PagingRecord(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PagingRecord, PagingRecord_sequence); + + return offset; +} + + +static const per_sequence_t PagingRecordList_sequence_of[1] = { + { &hf_nr_rrc_PagingRecordList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PagingRecord }, +}; + +static int +dissect_nr_rrc_PagingRecordList(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_PagingRecordList, PagingRecordList_sequence_of, + 1, maxNrofPageRec, FALSE); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_13_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_13, T_nonCriticalExtension_13_sequence); + + return offset; +} + + +static const per_sequence_t Paging_sequence[] = { + { &hf_nr_rrc_pagingRecordList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PagingRecordList }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_13, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_13 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_Paging(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, "Paging"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_Paging, Paging_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_c1_10_vals[] = { + { 0, "paging" }, { 1, "spare1" }, { 0, NULL } }; +static const per_choice_t T_c1_10_choice[] = { + { 0, &hf_nr_rrc_paging , ASN1_NO_EXTENSIONS , dissect_nr_rrc_Paging }, + { 1, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; static int -dissect_nr_rrc_T_mcs_TableTransformPrecoder(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 2, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_c1_10(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_10, T_c1_10_choice, + NULL); 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 T_messageClassExtension_04_sequence[] = { + { 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_) { - 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); +dissect_nr_rrc_T_messageClassExtension_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_messageClassExtension_04, T_messageClassExtension_04_sequence); return offset; } -static const value_string nr_rrc_CG_UCI_OnPUSCH_vals[] = { - { 0, "dynamic" }, - { 1, "semiStatic" }, +static const value_string nr_rrc_PCCH_MessageType_vals[] = { + { 0, "c1" }, + { 1, "messageClassExtension" }, { 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 }, +static const per_choice_t PCCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1_10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_10 }, + { 1, &hf_nr_rrc_messageClassExtension_04, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_04 }, { 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_) { +dissect_nr_rrc_PCCH_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_CG_UCI_OnPUSCH, CG_UCI_OnPUSCH_choice, + ett_nr_rrc_PCCH_MessageType, PCCH_MessageType_choice, NULL); return offset; } -static const value_string nr_rrc_T_uci_OnPUSCH_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const per_sequence_t PCCH_Message_sequence[] = { + { &hf_nr_rrc_message_04 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PCCH_MessageType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PCCH_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + proto_item *ti; + + col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "NR RRC"); + col_clear(actx->pinfo->cinfo, COL_INFO); + + ti = proto_tree_add_item(tree, proto_nr_rrc, tvb, 0, -1, ENC_NA); + tree = proto_item_add_subtree(ti, ett_nr_rrc); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PCCH_Message, PCCH_Message_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_39(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, + 39, 39, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_InitialUE_Identity_vals[] = { + { 0, "ng-5G-S-TMSI-Part1" }, + { 1, "randomValue" }, { 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_16 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CG_UCI_OnPUSCH }, +static const per_choice_t InitialUE_Identity_choice[] = { + { 0, &hf_nr_rrc_ng_5G_S_TMSI_Part1, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_39 }, + { 1, &hf_nr_rrc_randomValue , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_39 }, { 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_) { +dissect_nr_rrc_InitialUE_Identity(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, + ett_nr_rrc_InitialUE_Identity, InitialUE_Identity_choice, NULL); return offset; } -static const value_string nr_rrc_T_resourceAllocation_vals[] = { - { 0, "resourceAllocationType0" }, - { 1, "resourceAllocationType1" }, - { 2, "dynamicSwitch" }, +static const value_string nr_rrc_EstablishmentCause_vals[] = { + { 0, "emergency" }, + { 1, "highPriorityAccess" }, + { 2, "mt-Access" }, + { 3, "mo-Signalling" }, + { 4, "mo-Data" }, + { 5, "mo-VoiceCall" }, + { 6, "mo-VideoCall" }, + { 7, "mo-SMS" }, + { 8, "mps-PriorityAccess" }, + { 9, "mcs-PriorityAccess" }, + { 10, "spare6" }, + { 11, "spare5" }, + { 12, "spare4" }, + { 13, "spare3" }, + { 14, "spare2" }, + { 15, "spare1" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_EstablishmentCause(tvbuff_t *tvb _U_, int offset _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_rbg_Size_vals[] = { - { 0, "config2" }, +static const per_sequence_t RRCSetupRequest_IEs_sequence[] = { + { &hf_nr_rrc_ue_Identity_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_InitialUE_Identity }, + { &hf_nr_rrc_establishmentCause, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EstablishmentCause }, + { &hf_nr_rrc_spare , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCSetupRequest_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_RRCSetupRequest_IEs, RRCSetupRequest_IEs_sequence); + + return offset; +} + + +static const per_sequence_t RRCSetupRequest_sequence[] = { + { &hf_nr_rrc_rrcSetupRequest_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRCSetupRequest_IEs }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCSetupRequest(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 Setup Request"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCSetupRequest, RRCSetupRequest_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_ResumeCause_vals[] = { + { 0, "emergency" }, + { 1, "highPriorityAccess" }, + { 2, "mt-Access" }, + { 3, "mo-Signalling" }, + { 4, "mo-Data" }, + { 5, "mo-VoiceCall" }, + { 6, "mo-VideoCall" }, + { 7, "mo-SMS" }, + { 8, "rna-Update" }, + { 9, "mps-PriorityAccess" }, + { 10, "mcs-PriorityAccess" }, + { 11, "spare1" }, + { 12, "spare2" }, + { 13, "spare3" }, + { 14, "spare4" }, + { 15, "spare5" }, { 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_ResumeCause(tvbuff_t *tvb _U_, int offset _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); + 16, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_powerControlLoopToUse_vals[] = { - { 0, "n0" }, - { 1, "n1" }, +static const per_sequence_t RRCResumeRequest_IEs_sequence[] = { + { &hf_nr_rrc_resumeIdentity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ShortI_RNTI_Value }, + { &hf_nr_rrc_resumeMAC_I , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { &hf_nr_rrc_resumeCause , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ResumeCause }, + { &hf_nr_rrc_spare , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCResumeRequest_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_RRCResumeRequest_IEs, RRCResumeRequest_IEs_sequence); + + return offset; +} + + +static const per_sequence_t RRCResumeRequest_sequence[] = { + { &hf_nr_rrc_rrcResumeRequest_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRCResumeRequest_IEs }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCResumeRequest(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 Resume Request"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCResumeRequest, RRCResumeRequest_sequence); + + 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 per_sequence_t ReestabUE_Identity_sequence[] = { + { &hf_nr_rrc_c_RNTI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RNTI_Value }, + { &hf_nr_rrc_physCellId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_shortMAC_I , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ShortMAC_I }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ReestabUE_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_ReestabUE_Identity, ReestabUE_Identity_sequence); + + return offset; +} + + +static const value_string nr_rrc_ReestablishmentCause_vals[] = { + { 0, "reconfigurationFailure" }, + { 1, "handoverFailure" }, + { 2, "otherFailure" }, + { 3, "spare1" }, { 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_) { +dissect_nr_rrc_ReestablishmentCause(tvbuff_t *tvb _U_, int offset _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); + 4, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_transformPrecoder_vals[] = { - { 0, "enabled" }, +static const per_sequence_t RRCReestablishmentRequest_IEs_sequence[] = { + { &hf_nr_rrc_ue_Identity_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReestabUE_Identity }, + { &hf_nr_rrc_reestablishmentCause, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReestablishmentCause }, + { &hf_nr_rrc_spare , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReestablishmentRequest_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_RRCReestablishmentRequest_IEs, RRCReestablishmentRequest_IEs_sequence); + + return offset; +} + + +static const per_sequence_t RRCReestablishmentRequest_sequence[] = { + { &hf_nr_rrc_rrcReestablishmentRequest_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRCReestablishmentRequest_IEs }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReestablishmentRequest(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 Reestablishment Request"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReestablishmentRequest, RRCReestablishmentRequest_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_BIT_STRING_SIZE_maxSI_Message(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, + maxSI_Message, maxSI_Message, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t RRCSystemInfoRequest_r15_IEs_sequence[] = { + { &hf_nr_rrc_requested_SI_List, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_maxSI_Message }, + { &hf_nr_rrc_spare_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_12 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCSystemInfoRequest_r15_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_RRCSystemInfoRequest_r15_IEs, RRCSystemInfoRequest_r15_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_23_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_23(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_23, T_criticalExtensionsFuture_23_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_23_vals[] = { + { 0, "rrcSystemInfoRequest-r15" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_23_choice[] = { + { 0, &hf_nr_rrc_rrcSystemInfoRequest_r15, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCSystemInfoRequest_r15_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_23, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_23 }, + { 0, NULL, 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); +dissect_nr_rrc_T_criticalExtensions_23(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_23, T_criticalExtensions_23_choice, + NULL); return offset; } -static const value_string nr_rrc_T_repK_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 2, "n4" }, - { 3, "n8" }, +static const per_sequence_t RRCSystemInfoRequest_sequence[] = { + { &hf_nr_rrc_criticalExtensions_23, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_23 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCSystemInfoRequest(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 System Info Request"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCSystemInfoRequest, RRCSystemInfoRequest_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_c1_11_vals[] = { + { 0, "rrcSetupRequest" }, + { 1, "rrcResumeRequest" }, + { 2, "rrcReestablishmentRequest" }, + { 3, "rrcSystemInfoRequest" }, { 0, NULL } }; +static const per_choice_t T_c1_11_choice[] = { + { 0, &hf_nr_rrc_rrcSetupRequest, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCSetupRequest }, + { 1, &hf_nr_rrc_rrcResumeRequest, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCResumeRequest }, + { 2, &hf_nr_rrc_rrcReestablishmentRequest, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReestablishmentRequest }, + { 3, &hf_nr_rrc_rrcSystemInfoRequest, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCSystemInfoRequest }, + { 0, NULL, 0, NULL } +}; static int -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); +dissect_nr_rrc_T_c1_11(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_11, T_c1_11_choice, + NULL); return offset; } -static const value_string nr_rrc_T_repK_RV_vals[] = { - { 0, "s1-0231" }, - { 1, "s2-0303" }, - { 2, "s3-0000" }, +static const per_sequence_t T_messageClassExtension_05_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_messageClassExtension_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_messageClassExtension_05, T_messageClassExtension_05_sequence); + + return offset; +} + + +static const value_string nr_rrc_UL_CCCH_MessageType_vals[] = { + { 0, "c1" }, + { 1, "messageClassExtension" }, { 0, NULL } }; +static const per_choice_t UL_CCCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1_11 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_11 }, + { 1, &hf_nr_rrc_messageClassExtension_05, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_05 }, + { 0, NULL, 0, NULL } +}; static int -dissect_nr_rrc_T_repK_RV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 3, NULL, FALSE, 0, NULL); +dissect_nr_rrc_UL_CCCH_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_CCCH_MessageType, UL_CCCH_MessageType_choice, + NULL); return offset; } -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" }, +static const per_sequence_t UL_CCCH_Message_sequence[] = { + { &hf_nr_rrc_message_05 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UL_CCCH_MessageType }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UL_CCCH_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_CCCH_Message, UL_CCCH_Message_sequence); + + return offset; +} + + +static const per_sequence_t RRCResumeRequest1_IEs_sequence[] = { + { &hf_nr_rrc_resumeIdentity_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_I_RNTI_Value }, + { &hf_nr_rrc_resumeMAC_I , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { &hf_nr_rrc_resumeCause , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ResumeCause }, + { &hf_nr_rrc_spare , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCResumeRequest1_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_RRCResumeRequest1_IEs, RRCResumeRequest1_IEs_sequence); + + return offset; +} + + +static const per_sequence_t RRCResumeRequest1_sequence[] = { + { &hf_nr_rrc_rrcResumeRequest1_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRCResumeRequest1_IEs }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCResumeRequest1(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 Resume Request 1"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCResumeRequest1, RRCResumeRequest1_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_c1_12_vals[] = { + { 0, "rrcResumeRequest1" }, + { 1, "spare3" }, + { 2, "spare2" }, + { 3, "spare1" }, { 0, NULL } }; -static value_string_ext nr_rrc_T_periodicity_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_periodicity_vals); +static const per_choice_t T_c1_12_choice[] = { + { 0, &hf_nr_rrc_rrcResumeRequest1, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCResumeRequest1 }, + { 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 }, + { 0, NULL, 0, NULL } +}; +static int +dissect_nr_rrc_T_c1_12(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_12, T_c1_12_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_messageClassExtension_06_sequence[] = { + { NULL, 0, 0, NULL } +}; static int -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, - 45, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_messageClassExtension_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_messageClassExtension_06, T_messageClassExtension_06_sequence); return offset; } +static const value_string nr_rrc_UL_CCCH1_MessageType_vals[] = { + { 0, "c1" }, + { 1, "messageClassExtension" }, + { 0, NULL } +}; + +static const per_choice_t UL_CCCH1_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1_12 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_12 }, + { 1, &hf_nr_rrc_messageClassExtension_06, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_06 }, + { 0, NULL, 0, NULL } +}; static int -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, - 18, 18, FALSE, NULL, NULL); +dissect_nr_rrc_UL_CCCH1_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_CCCH1_MessageType, UL_CCCH1_MessageType_choice, + NULL); return offset; } +static const per_sequence_t UL_CCCH1_Message_sequence[] = { + { &hf_nr_rrc_message_06 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UL_CCCH1_MessageType }, + { NULL, 0, 0, NULL } +}; static int -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); +dissect_nr_rrc_UL_CCCH1_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_CCCH1_Message, UL_CCCH1_Message_sequence); 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_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 }, +static const per_sequence_t MeasResultServMO_sequence[] = { + { &hf_nr_rrc_servCellId , 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_OPTIONAL , dissect_nr_rrc_MeasResultNR }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_MeasResultServMO(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); + ett_nr_rrc_MeasResultServMO, MeasResultServMO_sequence); return offset; } -static const per_sequence_t ConfiguredGrantConfig_sequence[] = { - { &hf_nr_rrc_frequencyHopping, ASN1_NO_EXTENSIONS , ASN1_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_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_INTEGER_1_64 }, - { &hf_nr_rrc_rrc_ConfiguredUplinkGrant, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_rrc_ConfiguredUplinkGrant }, +static const per_sequence_t MeasResultServMOList_sequence_of[1] = { + { &hf_nr_rrc_MeasResultServMOList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultServMO }, +}; + +static int +dissect_nr_rrc_MeasResultServMOList(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_MeasResultServMOList, MeasResultServMOList_sequence_of, + 1, maxNrofServingCells, FALSE); + + return offset; +} + + +static const per_sequence_t MeasQuantityResultsEUTRA_sequence[] = { + { &hf_nr_rrc_rsrp_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRP_RangeEUTRA }, + { &hf_nr_rrc_rsrq_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RSRQ_RangeEUTRA }, + { &hf_nr_rrc_sinr_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SINR_RangeEUTRA }, { 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_) { +dissect_nr_rrc_MeasQuantityResultsEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); + ett_nr_rrc_MeasQuantityResultsEUTRA, MeasQuantityResultsEUTRA_sequence); return offset; } -static const value_string nr_rrc_T_configuredGrantConfig_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const per_sequence_t PLMN_IdentityList_EUTRA_EPC_sequence_of[1] = { + { &hf_nr_rrc_PLMN_IdentityList_EUTRA_EPC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PLMN_Identity }, +}; + +static int +dissect_nr_rrc_PLMN_IdentityList_EUTRA_EPC(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_PLMN_IdentityList_EUTRA_EPC, PLMN_IdentityList_EUTRA_EPC_sequence_of, + 1, maxPLMN, FALSE); + + 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 per_sequence_t CellAccessRelatedInfo_EUTRA_EPC_sequence[] = { + { &hf_nr_rrc_plmn_IdentityList_eutra_epc, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PLMN_IdentityList_EUTRA_EPC }, + { &hf_nr_rrc_trackingAreaCode_eutra_epc, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_16 }, + { &hf_nr_rrc_cellIdentity_eutra_epc, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BIT_STRING_SIZE_28 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CellAccessRelatedInfo_EUTRA_EPC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CellAccessRelatedInfo_EUTRA_EPC, CellAccessRelatedInfo_EUTRA_EPC_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC_sequence_of[1] = { + { &hf_nr_rrc_cgi_info_EPC_list_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellAccessRelatedInfo_EUTRA_EPC }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC(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_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC, SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC_sequence_of, + 1, maxPLMN, FALSE); + + return offset; +} + + +static const per_sequence_t T_cgi_info_EPC_sequence[] = { + { &hf_nr_rrc_cgi_info_EPC_legacy, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellAccessRelatedInfo_EUTRA_EPC }, + { &hf_nr_rrc_cgi_info_EPC_list, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_cgi_info_EPC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_cgi_info_EPC, T_cgi_info_EPC_sequence); + + return offset; +} + + +static const value_string nr_rrc_PLMN_Identity_EUTRA_5GC_vals[] = { + { 0, "plmn-Identity-EUTRA-5GC" }, + { 1, "plmn-index" }, { 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_06 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_ConfiguredGrantConfig }, +static const per_choice_t PLMN_Identity_EUTRA_5GC_choice[] = { + { 0, &hf_nr_rrc_plmn_Identity_EUTRA_5GC, ASN1_NO_EXTENSIONS , dissect_nr_rrc_PLMN_Identity }, + { 1, &hf_nr_rrc_plmn_index , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_1_maxPLMN }, { 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_) { +dissect_nr_rrc_PLMN_Identity_EUTRA_5GC(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, + ett_nr_rrc_PLMN_Identity_EUTRA_5GC, PLMN_Identity_EUTRA_5GC_choice, NULL); return offset; } +static const per_sequence_t PLMN_IdentityList_EUTRA_5GC_sequence_of[1] = { + { &hf_nr_rrc_PLMN_IdentityList_EUTRA_5GC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PLMN_Identity_EUTRA_5GC }, +}; 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_PLMN_IdentityList_EUTRA_5GC(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_PLMN_IdentityList_EUTRA_5GC, PLMN_IdentityList_EUTRA_5GC_sequence_of, + 1, maxPLMN, FALSE); return offset; } -static const per_sequence_t SEQUENCE_SIZE_1_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_CellIdentity_EUTRA_5GC_vals[] = { + { 0, "cellIdentity-EUTRA" }, + { 1, "cellId-index" }, + { 0, NULL } +}; + +static const per_choice_t CellIdentity_EUTRA_5GC_choice[] = { + { 0, &hf_nr_rrc_cellIdentity_EUTRA, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_28 }, + { 1, &hf_nr_rrc_cellId_index , ASN1_NO_EXTENSIONS , dissect_nr_rrc_INTEGER_1_maxPLMN }, + { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_SEQUENCE_SIZE_1_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_) { +dissect_nr_rrc_CellIdentity_EUTRA_5GC(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_CellIdentity_EUTRA_5GC, CellIdentity_EUTRA_5GC_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CellAccessRelatedInfo_EUTRA_5GC_sequence[] = { + { &hf_nr_rrc_plmn_IdentityList_eutra_5gc, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PLMN_IdentityList_EUTRA_5GC }, + { &hf_nr_rrc_trackingAreaCode_eutra_5gc, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TrackingAreaCode }, + { &hf_nr_rrc_ranac_5gc , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RAN_AreaCode }, + { &hf_nr_rrc_cellIdentity_eutra_5gc, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellIdentity_EUTRA_5GC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CellAccessRelatedInfo_EUTRA_5GC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CellAccessRelatedInfo_EUTRA_5GC, CellAccessRelatedInfo_EUTRA_5GC_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC_sequence_of[1] = { + { &hf_nr_rrc_cgi_info_5GC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellAccessRelatedInfo_EUTRA_5GC }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC(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_ResourceSets_OF_SRS_ResourceSetId, SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId_sequence_of, - 1, maxNrofSRS_ResourceSets, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC, SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC_sequence_of, + 1, maxPLMN, 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 const per_sequence_t MultiBandInfoListEUTRA_sequence_of[1] = { + { &hf_nr_rrc_MultiBandInfoListEUTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorEUTRA }, }; 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_) { +dissect_nr_rrc_MultiBandInfoListEUTRA(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); + ett_nr_rrc_MultiBandInfoListEUTRA, MultiBandInfoListEUTRA_sequence_of, + 1, maxMultiBands, FALSE); return offset; } +static const value_string nr_rrc_T_freqBandIndicatorPriority_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + static int -dissect_nr_rrc_INTEGER_1_maxNrofSRS_TriggerStates_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_freqBandIndicatorPriority(tvbuff_t *tvb _U_, int offset _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_cgi_Info_sequence[] = { + { &hf_nr_rrc_cgi_info_EPC , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_cgi_info_EPC }, + { &hf_nr_rrc_cgi_info_5GC , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC }, + { &hf_nr_rrc_freqBandIndicator, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorEUTRA }, + { &hf_nr_rrc_multiBandInfoList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MultiBandInfoListEUTRA }, + { &hf_nr_rrc_freqBandIndicatorPriority, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_freqBandIndicatorPriority }, + { NULL, 0, 0, NULL } +}; + +static int +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_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_cgi_Info, T_cgi_Info_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultEUTRA_sequence[] = { + { &hf_nr_rrc_physCellId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysCellId }, + { &hf_nr_rrc_measResult_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasQuantityResultsEUTRA }, + { &hf_nr_rrc_cgi_Info_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_cgi_Info }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasResultEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasResultEUTRA, MeasResultEUTRA_sequence); + + return offset; +} + + +static const per_sequence_t MeasResultListEUTRA_sequence_of[1] = { + { &hf_nr_rrc_MeasResultListEUTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultEUTRA }, +}; + +static int +dissect_nr_rrc_MeasResultListEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasResultListEUTRA, MeasResultListEUTRA_sequence_of, + 1, maxCellReport, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_measResultNeighCells_vals[] = { + { 0, "measResultListNR" }, + { 1, "measResultListEUTRA" }, + { 0, NULL } +}; + +static const per_choice_t T_measResultNeighCells_choice[] = { + { 0, &hf_nr_rrc_measResultListNR, ASN1_EXTENSION_ROOT , dissect_nr_rrc_MeasResultListNR }, + { 1, &hf_nr_rrc_measResultListEUTRA, ASN1_NOT_EXTENSION_ROOT, dissect_nr_rrc_MeasResultListEUTRA }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_measResultNeighCells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_measResultNeighCells, T_measResultNeighCells_choice, + NULL); + + return offset; +} + + +static const per_sequence_t MeasResults_sequence[] = { + { &hf_nr_rrc_measId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasId }, + { &hf_nr_rrc_measResultServingMOList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResultServMOList }, + { &hf_nr_rrc_measResultNeighCells, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_measResultNeighCells }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasResults, MeasResults_sequence); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_11_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_11(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_nonCriticalExtension_11, T_nonCriticalExtension_11_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_11, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_11 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasurementReport_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasurementReport_IEs, MeasurementReport_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_11_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_11(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensionsFuture_11, T_criticalExtensionsFuture_11_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_11_vals[] = { + { 0, "measurementReport" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_11_choice[] = { + { 0, &hf_nr_rrc_measurementReport_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasurementReport_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_11, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_11 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensions_11(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_11, T_criticalExtensions_11_choice, + NULL); + + return offset; +} + + +static const per_sequence_t MeasurementReport_sequence[] = { + { &hf_nr_rrc_criticalExtensions_11, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_11 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Measurement Report"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasurementReport, MeasurementReport_sequence); + + return offset; +} + + + +static 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, - 1U, maxNrofSRS_TriggerStates_1, NULL, FALSE); + 0U, maxNrofBWPs, NULL, FALSE); return offset; } @@ -12554,662 +18413,1393 @@ dissect_nr_rrc_INTEGER_1_maxNrofSRS_TriggerStates_1(tvbuff_t *tvb _U_, int offse 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_INTEGER_0_3301(tvbuff_t *tvb _U_, int offset _U_, 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); + 0U, 3301U, 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_1_maxNrofSRS_TriggerStates_1 }, - { &hf_nr_rrc_csi_RS_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, - { &hf_nr_rrc_slotOffset , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_32 }, +static const per_sequence_t UplinkTxDirectCurrentBWP_sequence[] = { + { &hf_nr_rrc_bwp_Id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Id }, + { &hf_nr_rrc_shift7dot5kHz, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_txDirectCurrentLocation, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_3301 }, { 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_UplinkTxDirectCurrentBWP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_UplinkTxDirectCurrentBWP, UplinkTxDirectCurrentBWP_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 }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP_sequence_of[1] = { + { &hf_nr_rrc_uplinkDirectCurrentBWP_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UplinkTxDirectCurrentBWP }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP(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_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP, SEQUENCE_SIZE_1_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP_sequence_of, + 1, maxNrofBWPs, FALSE); + + return offset; +} + + +static const per_sequence_t UplinkTxDirectCurrentCell_sequence[] = { + { &hf_nr_rrc_servCellIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_uplinkDirectCurrentBWP, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP }, { 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_UplinkTxDirectCurrentCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_UplinkTxDirectCurrentCell, UplinkTxDirectCurrentCell_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 }, +static const per_sequence_t UplinkTxDirectCurrentList_sequence_of[1] = { + { &hf_nr_rrc_UplinkTxDirectCurrentList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_UplinkTxDirectCurrentCell }, +}; + +static int +dissect_nr_rrc_UplinkTxDirectCurrentList(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_UplinkTxDirectCurrentList, UplinkTxDirectCurrentList_sequence_of, + 1, maxNrofServingCells, FALSE); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_17_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_periodic_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_T_nonCriticalExtension_17, T_nonCriticalExtension_17_sequence); return offset; } -static const value_string nr_rrc_T_resourceType_01_vals[] = { - { 0, "aperiodic" }, - { 1, "semi-persistent" }, - { 2, "periodic" }, +static const per_sequence_t RRCReconfigurationComplete_v1530_IEs_sequence[] = { + { &hf_nr_rrc_uplinkTxDirectCurrentList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UplinkTxDirectCurrentList }, + { &hf_nr_rrc_nonCriticalExtension_19, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_17 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReconfigurationComplete_v1530_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReconfigurationComplete_v1530_IEs, RRCReconfigurationComplete_v1530_IEs_sequence); + + return offset; +} + + +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_18, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RRCReconfigurationComplete_v1530_IEs }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReconfigurationComplete_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReconfigurationComplete_IEs, RRCReconfigurationComplete_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_16_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_16, T_criticalExtensionsFuture_16_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_16_vals[] = { + { 0, "rrcReconfigurationComplete" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -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 }, +static const per_choice_t T_criticalExtensions_16_choice[] = { + { 0, &hf_nr_rrc_rrcReconfigurationComplete_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfigurationComplete_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_16, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_16 }, { 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_criticalExtensions_16(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_criticalExtensions_16, T_criticalExtensions_16_choice, NULL); return offset; } -static const value_string nr_rrc_T_usage_vals[] = { - { 0, "beamManagement" }, - { 1, "codebook" }, - { 2, "nonCodebook" }, - { 3, "antennaSwitching" }, +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_16, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_16 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRC Reconfiguration Complete"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCReconfigurationComplete, RRCReconfigurationComplete_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_AMF_Identifier(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 per_sequence_t RegisteredAMF_sequence[] = { + { &hf_nr_rrc_plmn_Identity, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PLMN_Identity }, + { &hf_nr_rrc_amf_Identifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_AMF_Identifier }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RegisteredAMF(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RegisteredAMF, RegisteredAMF_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_guami_Type_vals[] = { + { 0, "native" }, + { 1, "mapped" }, { 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_) { +dissect_nr_rrc_T_guami_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); + 2, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_pathlossReferenceRS_vals[] = { - { 0, "ssb-Index" }, - { 1, "csi-RS-Index" }, + +static int +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_S_NSSAI_vals[] = { + { 0, "sst" }, + { 1, "sst-SD" }, { 0, NULL } }; -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 }, +static const per_choice_t S_NSSAI_choice[] = { + { 0, &hf_nr_rrc_sst , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { 1, &hf_nr_rrc_sst_SD , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_32 }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_S_NSSAI(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_pathlossReferenceRS, T_pathlossReferenceRS_choice, + ett_nr_rrc_S_NSSAI, S_NSSAI_choice, NULL); return offset; } -static const value_string nr_rrc_T_srs_PowerControlAdjustmentStates_vals[] = { - { 0, "sameAsFci2" }, - { 1, "separateClosedLoop" }, +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofS_NSSAI_OF_S_NSSAI_sequence_of[1] = { + { &hf_nr_rrc_s_nssai_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_S_NSSAI }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofS_NSSAI_OF_S_NSSAI(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_maxNrofS_NSSAI_OF_S_NSSAI, SEQUENCE_SIZE_1_maxNrofS_NSSAI_OF_S_NSSAI_sequence_of, + 1, maxNrofS_NSSAI, FALSE); + + return offset; +} + + + +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 const value_string nr_rrc_T_ng_5G_S_TMSI_Value_vals[] = { + { 0, "ng-5G-S-TMSI" }, + { 1, "ng-5G-S-TMSI-Part2" }, { 0, NULL } }; +static const per_choice_t T_ng_5G_S_TMSI_Value_choice[] = { + { 0, &hf_nr_rrc_ng_5G_S_TMSI , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NG_5G_S_TMSI }, + { 1, &hf_nr_rrc_ng_5G_S_TMSI_Part2, ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_9 }, + { 0, NULL, 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); +dissect_nr_rrc_T_ng_5G_S_TMSI_Value(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_5G_S_TMSI_Value, T_ng_5G_S_TMSI_Value_choice, + 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 }, +static const per_sequence_t T_nonCriticalExtension_23_sequence[] = { { 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_T_nonCriticalExtension_23(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_T_nonCriticalExtension_23, T_nonCriticalExtension_23_sequence); return offset; } -static const per_sequence_t SEQUENCE_SIZE_1_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 RRCSetupComplete_IEs_sequence[] = { + { &hf_nr_rrc_selectedPLMN_Identity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxPLMN }, + { &hf_nr_rrc_registeredAMF, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RegisteredAMF }, + { &hf_nr_rrc_guami_Type , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_guami_Type }, + { &hf_nr_rrc_s_nssai_List , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofS_NSSAI_OF_S_NSSAI }, + { &hf_nr_rrc_dedicatedNAS_Message, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DedicatedNAS_Message }, + { &hf_nr_rrc_ng_5G_S_TMSI_Value, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ng_5G_S_TMSI_Value }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_25, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_23 }, + { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_SEQUENCE_SIZE_1_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_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet, SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet_sequence_of, - 1, maxNrofSRS_ResourceSets, FALSE); +dissect_nr_rrc_RRCSetupComplete_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_RRCSetupComplete_IEs, RRCSetupComplete_IEs_sequence); 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 T_criticalExtensionsFuture_22_sequence[] = { + { NULL, 0, 0, NULL } }; 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); +dissect_nr_rrc_T_criticalExtensionsFuture_22(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_22, T_criticalExtensionsFuture_22_sequence); return offset; } -static const value_string nr_rrc_T_nrofSRS_Ports_vals[] = { - { 0, "port1" }, - { 1, "ports2" }, - { 2, "ports4" }, +static const value_string nr_rrc_T_criticalExtensions_22_vals[] = { + { 0, "rrcSetupComplete" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_22_choice[] = { + { 0, &hf_nr_rrc_rrcSetupComplete_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCSetupComplete_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_22, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_22 }, + { 0, NULL, 0, NULL } +}; static int -dissect_nr_rrc_T_nrofSRS_Ports(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 3, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_criticalExtensions_22(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_22, T_criticalExtensions_22_choice, + NULL); return offset; } -static const value_string nr_rrc_T_ptrs_PortIndex_vals[] = { - { 0, "n0" }, - { 1, "n1" }, +static const per_sequence_t RRCSetupComplete_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_22, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_22 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCSetupComplete(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 Setup Complete"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCSetupComplete, RRCSetupComplete_sequence); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_15_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_15, T_nonCriticalExtension_15_sequence); + + return offset; +} + + +static const per_sequence_t RRCReestablishmentComplete_IEs_sequence[] = { + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_15 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCReestablishmentComplete_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_RRCReestablishmentComplete_IEs, RRCReestablishmentComplete_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_14_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_14, T_criticalExtensionsFuture_14_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_14_vals[] = { + { 0, "rrcReestablishmentComplete" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_14_choice[] = { + { 0, &hf_nr_rrc_rrcReestablishmentComplete_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReestablishmentComplete_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_14, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_14 }, + { 0, NULL, 0, NULL } +}; static int -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); +dissect_nr_rrc_T_criticalExtensions_14(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_14, T_criticalExtensions_14_choice, + NULL); return offset; } -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 }, +static const per_sequence_t RRCReestablishmentComplete_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_14, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_14 }, { 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_) { +dissect_nr_rrc_RRCReestablishmentComplete(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 Reestablishment Complete"); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_n2, T_n2_sequence); + ett_nr_rrc_RRCReestablishmentComplete, RRCReestablishmentComplete_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 }, +static const per_sequence_t T_nonCriticalExtension_21_sequence[] = { { 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_) { +dissect_nr_rrc_T_nonCriticalExtension_21(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); + ett_nr_rrc_T_nonCriticalExtension_21, T_nonCriticalExtension_21_sequence); return offset; } -static const value_string nr_rrc_T_transmissionComb_vals[] = { - { 0, "n2" }, - { 1, "n4" }, +static const per_sequence_t RRCResumeComplete_IEs_sequence[] = { + { &hf_nr_rrc_dedicatedNAS_Message, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_DedicatedNAS_Message }, + { &hf_nr_rrc_selectedPLMN_Identity, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxPLMN }, + { &hf_nr_rrc_uplinkTxDirectCurrentList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UplinkTxDirectCurrentList }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_23, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_21 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RRCResumeComplete_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_RRCResumeComplete_IEs, RRCResumeComplete_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_20_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_20, T_criticalExtensionsFuture_20_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_20_vals[] = { + { 0, "rrcResumeComplete" }, + { 1, "criticalExtensionsFuture" }, { 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 }, +static const per_choice_t T_criticalExtensions_20_choice[] = { + { 0, &hf_nr_rrc_rrcResumeComplete_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCResumeComplete_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_20, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_20 }, { 0, NULL, 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_criticalExtensions_20(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, + ett_nr_rrc_T_criticalExtensions_20, T_criticalExtensions_20_choice, NULL); return offset; } +static const per_sequence_t RRCResumeComplete_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_20, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_20 }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_RRCResumeComplete(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 Resume Complete"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_RRCResumeComplete, RRCResumeComplete_sequence); return offset; } -static const value_string nr_rrc_T_nrofSymbols_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 2, "n4" }, +static const per_sequence_t T_nonCriticalExtension_25_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_25(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_25, T_nonCriticalExtension_25_sequence); + + return offset; +} + + +static const per_sequence_t SecurityModeComplete_IEs_sequence[] = { + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_27, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_25 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SecurityModeComplete_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_SecurityModeComplete_IEs, SecurityModeComplete_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_25_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_25(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_25, T_criticalExtensionsFuture_25_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_25_vals[] = { + { 0, "securityModeComplete" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_25_choice[] = { + { 0, &hf_nr_rrc_securityModeComplete_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SecurityModeComplete_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_25, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_25 }, + { 0, NULL, 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); +dissect_nr_rrc_T_criticalExtensions_25(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_25, T_criticalExtensions_25_choice, + NULL); return offset; } -static const value_string nr_rrc_T_repetitionFactor_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 2, "n4" }, +static const per_sequence_t SecurityModeComplete_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_25, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_25 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SecurityModeComplete(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, "Security Mode Complete"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SecurityModeComplete, SecurityModeComplete_sequence); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_26_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_26(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_26, T_nonCriticalExtension_26_sequence); + + return offset; +} + + +static const per_sequence_t SecurityModeFailure_IEs_sequence[] = { + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_28, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_26 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SecurityModeFailure_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_SecurityModeFailure_IEs, SecurityModeFailure_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_26_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_26(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_26, T_criticalExtensionsFuture_26_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_26_vals[] = { + { 0, "securityModeFailure" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_26_choice[] = { + { 0, &hf_nr_rrc_securityModeFailure_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SecurityModeFailure_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_26, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_26 }, + { 0, NULL, 0, NULL } +}; static int -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, - 3, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_criticalExtensions_26(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_26, T_criticalExtensions_26_choice, + 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 }, +static const per_sequence_t SecurityModeFailure_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_26, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_26 }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_SecurityModeFailure(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, "Security Mode Failure"); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_resourceMapping, T_resourceMapping_sequence); + ett_nr_rrc_SecurityModeFailure, SecurityModeFailure_sequence); return offset; } +static const per_sequence_t T_nonCriticalExtension_32_sequence[] = { + { NULL, 0, 0, NULL } +}; static int -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); +dissect_nr_rrc_T_nonCriticalExtension_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_32, T_nonCriticalExtension_32_sequence); return offset; } +static const per_sequence_t ULInformationTransfer_IEs_sequence[] = { + { &hf_nr_rrc_dedicatedNAS_Message, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_DedicatedNAS_Message }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_34, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_32 }, + { NULL, 0, 0, NULL } +}; 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); +dissect_nr_rrc_ULInformationTransfer_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_ULInformationTransfer_IEs, ULInformationTransfer_IEs_sequence); 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 }, +static const per_sequence_t T_criticalExtensionsFuture_31_sequence[] = { { 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_) { +dissect_nr_rrc_T_criticalExtensionsFuture_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); + ett_nr_rrc_T_criticalExtensionsFuture_31, T_criticalExtensionsFuture_31_sequence); return offset; } -static const value_string nr_rrc_T_groupOrSequenceHopping_vals[] = { - { 0, "neither" }, - { 1, "groupHopping" }, - { 2, "sequenceHopping" }, +static const value_string nr_rrc_T_criticalExtensions_31_vals[] = { + { 0, "ulInformationTransfer" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_31_choice[] = { + { 0, &hf_nr_rrc_ulInformationTransfer_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_ULInformationTransfer_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_31, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_31 }, + { 0, NULL, 0, NULL } +}; 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); +dissect_nr_rrc_T_criticalExtensions_31(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_31, T_criticalExtensions_31_choice, + NULL); return offset; } -static const per_sequence_t T_aperiodic_02_sequence[] = { - { NULL, ASN1_EXTENSION_ROOT, 0, NULL } +static const per_sequence_t ULInformationTransfer_sequence[] = { + { &hf_nr_rrc_criticalExtensions_31, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_31 }, + { NULL, 0, 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_) { +dissect_nr_rrc_ULInformationTransfer(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, "UL Information Transfer"); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_aperiodic_02, T_aperiodic_02_sequence); + ett_nr_rrc_ULInformationTransfer, ULInformationTransfer_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" }, +static const per_sequence_t EUTRA_RSTD_Info_sequence[] = { + { &hf_nr_rrc_carrierFreq_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_ARFCN_ValueEUTRA }, + { &hf_nr_rrc_measPRS_Offset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_39 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_EUTRA_RSTD_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_EUTRA_RSTD_Info, EUTRA_RSTD_Info_sequence); + + return offset; +} + + +static const per_sequence_t EUTRA_RSTD_InfoList_sequence_of[1] = { + { &hf_nr_rrc_EUTRA_RSTD_InfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_RSTD_Info }, +}; + +static int +dissect_nr_rrc_EUTRA_RSTD_InfoList(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_RSTD_InfoList, EUTRA_RSTD_InfoList_sequence_of, + 1, maxInterRAT_RSTD_Freq, FALSE); + + return offset; +} + + +static const value_string nr_rrc_LocationMeasurementInfo_vals[] = { + { 0, "eutra-RSTD" }, { 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 LocationMeasurementInfo_choice[] = { + { 0, &hf_nr_rrc_eutra_RSTD , ASN1_EXTENSION_ROOT , dissect_nr_rrc_EUTRA_RSTD_InfoList }, + { 0, NULL, 0, NULL } +}; -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 }, +static int +dissect_nr_rrc_LocationMeasurementInfo(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_LocationMeasurementInfo, LocationMeasurementInfo_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_measurementIndication_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_measurementIndication_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_LocationMeasurementInfo }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_measurementIndication(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_SRS_PeriodicityAndOffset, SRS_PeriodicityAndOffset_choice, + ett_nr_rrc_T_measurementIndication, T_measurementIndication_choice, NULL); return offset; } -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 }, +static const per_sequence_t T_nonCriticalExtension_10_sequence[] = { { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_nonCriticalExtension_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_semi_persistent_01, T_semi_persistent_01_sequence); + ett_nr_rrc_T_nonCriticalExtension_10, T_nonCriticalExtension_10_sequence); return offset; } -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 }, +static const per_sequence_t LocationMeasurementIndication_IEs_sequence[] = { + { &hf_nr_rrc_measurementIndication, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_measurementIndication }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_10, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_10 }, { 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_) { +dissect_nr_rrc_LocationMeasurementIndication_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_T_periodic_02, T_periodic_02_sequence); + ett_nr_rrc_LocationMeasurementIndication_IEs, LocationMeasurementIndication_IEs_sequence); return offset; } -static const value_string nr_rrc_T_resourceType_02_vals[] = { - { 0, "aperiodic" }, - { 1, "semi-persistent" }, - { 2, "periodic" }, +static const per_sequence_t T_criticalExtensionsFuture_10_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensionsFuture_10, T_criticalExtensionsFuture_10_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_10_vals[] = { + { 0, "locationMeasurementIndication" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -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 }, +static const per_choice_t T_criticalExtensions_10_choice[] = { + { 0, &hf_nr_rrc_locationMeasurementIndication_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_LocationMeasurementIndication_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_10, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_10 }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_criticalExtensions_10(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_02, T_resourceType_02_choice, + ett_nr_rrc_T_criticalExtensions_10, T_criticalExtensions_10_choice, NULL); return offset; } +static const per_sequence_t LocationMeasurementIndication_sequence[] = { + { &hf_nr_rrc_criticalExtensions_10, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_10 }, + { NULL, 0, 0, NULL } +}; static int -dissect_nr_rrc_BIT_STRING_SIZE_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, - 10, 10, FALSE, NULL, NULL); +dissect_nr_rrc_LocationMeasurementIndication(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, "Location Measurement Indication"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_LocationMeasurementIndication, LocationMeasurementIndication_sequence); return offset; } -static const per_sequence_t T_srs_01_sequence[] = { - { &hf_nr_rrc_resourceId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceId }, - { &hf_nr_rrc_uplinkBWP , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Id }, +static const per_sequence_t T_nonCriticalExtension_31_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_srs_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_nonCriticalExtension_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_srs_01, T_srs_01_sequence); + ett_nr_rrc_T_nonCriticalExtension_31, T_nonCriticalExtension_31_sequence); return offset; } -static const value_string nr_rrc_T_referenceSignal_03_vals[] = { - { 0, "ssb-Index" }, - { 1, "csi-RS-Index" }, - { 2, "srs" }, +static const per_sequence_t UECapabilityInformation_IEs_sequence[] = { + { &hf_nr_rrc_ue_CapabilityRAT_ContainerList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_CapabilityRAT_ContainerList }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_33, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_31 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UECapabilityInformation_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_UECapabilityInformation_IEs, UECapabilityInformation_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_30_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_30(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_30, T_criticalExtensionsFuture_30_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_30_vals[] = { + { 0, "ueCapabilityInformation" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_referenceSignal_03_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_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_srs_01 }, +static const per_choice_t T_criticalExtensions_30_choice[] = { + { 0, &hf_nr_rrc_ueCapabilityInformation_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_UECapabilityInformation_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_30, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_30 }, { 0, NULL, 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_criticalExtensions_30(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, + ett_nr_rrc_T_criticalExtensions_30, T_criticalExtensions_30_choice, NULL); return offset; } -static const per_sequence_t SRS_SpatialRelationInfo_sequence[] = { - { &hf_nr_rrc_servingCellId, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, - { &hf_nr_rrc_referenceSignal_03, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_referenceSignal_03 }, +static const per_sequence_t UECapabilityInformation_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_30, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_30 }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_SRS_SpatialRelationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_UECapabilityInformation(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, "UE Capability Information"); + + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Counter Check Response"); + + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UE Assistance Information"); + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_SRS_SpatialRelationInfo, SRS_SpatialRelationInfo_sequence); + ett_nr_rrc_UECapabilityInformation, UECapabilityInformation_sequence); 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_SRS_SpatialRelationInfo }, + +static int +dissect_nr_rrc_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, 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, 4294967295U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t DRB_CountInfo_sequence[] = { + { &hf_nr_rrc_drb_Identity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_Identity }, + { &hf_nr_rrc_count_Uplink , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_4294967295 }, + { &hf_nr_rrc_count_Downlink, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_4294967295 }, { 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_DRB_CountInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_DRB_CountInfo, DRB_CountInfo_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 const per_sequence_t DRB_CountInfoList_sequence_of[1] = { + { &hf_nr_rrc_DRB_CountInfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_CountInfo }, }; 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_) { +dissect_nr_rrc_DRB_CountInfoList(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); + ett_nr_rrc_DRB_CountInfoList, DRB_CountInfoList_sequence_of, + 0, maxDRB, FALSE); return offset; } -static const value_string nr_rrc_T_tpc_Accumulation_01_vals[] = { - { 0, "disabled" }, +static const per_sequence_t T_nonCriticalExtension_08_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension_08(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_nonCriticalExtension_08, T_nonCriticalExtension_08_sequence); + + return offset; +} + + +static const per_sequence_t CounterCheckResponse_IEs_sequence[] = { + { &hf_nr_rrc_drb_CountInfoList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DRB_CountInfoList }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_08, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_08 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CounterCheckResponse_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_CounterCheckResponse_IEs, CounterCheckResponse_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_08_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_08(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensionsFuture_08, T_criticalExtensionsFuture_08_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_08_vals[] = { + { 0, "counterCheckResponse" }, + { 1, "criticalExtensionsFuture" }, { 0, NULL } }; +static const per_choice_t T_criticalExtensions_08_choice[] = { + { 0, &hf_nr_rrc_counterCheckResponse_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_CounterCheckResponse_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_08, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_08 }, + { 0, NULL, 0, NULL } +}; static int -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_) { +dissect_nr_rrc_T_criticalExtensions_08(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_08, T_criticalExtensions_08_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CounterCheckResponse_sequence[] = { + { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, + { &hf_nr_rrc_criticalExtensions_08, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_08 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CounterCheckResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_CounterCheckResponse, CounterCheckResponse_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_type1_vals[] = { + { 0, "msMinus1280" }, + { 1, "msMinus640" }, + { 2, "msMinus320" }, + { 3, "msMinus160" }, + { 4, "msMinus80" }, + { 5, "msMinus60" }, + { 6, "msMinus40" }, + { 7, "msMinus20" }, + { 8, "ms0" }, + { 9, "ms20" }, + { 10, "ms40" }, + { 11, "ms60" }, + { 12, "ms80" }, + { 13, "ms160" }, + { 14, "ms320" }, + { 15, "ms640" }, + { 16, "ms1280" }, + { 0, NULL } +}; + +static value_string_ext nr_rrc_T_type1_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_type1_vals); + + +static int +dissect_nr_rrc_T_type1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 1, NULL, FALSE, 0, NULL); + 17, 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_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId }, - { &hf_nr_rrc_srs_ResourceSetToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_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 }, +static const value_string nr_rrc_DelayBudgetReport_vals[] = { + { 0, "type1" }, + { 0, NULL } +}; + +static const per_choice_t DelayBudgetReport_choice[] = { + { 0, &hf_nr_rrc_type1 , ASN1_EXTENSION_ROOT , dissect_nr_rrc_T_type1 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_DelayBudgetReport(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_DelayBudgetReport, DelayBudgetReport_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_29_sequence[] = { { 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_T_nonCriticalExtension_29(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_T_nonCriticalExtension_29, T_nonCriticalExtension_29_sequence); return offset; } -static const value_string nr_rrc_T_srs_Config_vals[] = { - { 0, "release" }, - { 1, "setup" }, +static const per_sequence_t UEAssistanceInformation_IEs_sequence[] = { + { &hf_nr_rrc_delayBudgetReport, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_DelayBudgetReport }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_31, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_29 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UEAssistanceInformation_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_UEAssistanceInformation_IEs, UEAssistanceInformation_IEs_sequence); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_28_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture_28(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_28, T_criticalExtensionsFuture_28_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_28_vals[] = { + { 0, "ueAssistanceInformation" }, + { 1, "criticalExtensionsFuture" }, { 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_07 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SRS_Config }, +static const per_choice_t T_criticalExtensions_28_choice[] = { + { 0, &hf_nr_rrc_ueAssistanceInformation_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_UEAssistanceInformation_IEs }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_28, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_28 }, { 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_) { +dissect_nr_rrc_T_criticalExtensions_28(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, + ett_nr_rrc_T_criticalExtensions_28, T_criticalExtensions_28_choice, + NULL); + + return offset; +} + + +static const per_sequence_t UEAssistanceInformation_sequence[] = { + { &hf_nr_rrc_criticalExtensions_28, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_28 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_UEAssistanceInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UEAssistanceInformation, UEAssistanceInformation_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_c1_13_vals[] = { + { 0, "measurementReport" }, + { 1, "rrcReconfigurationComplete" }, + { 2, "rrcSetupComplete" }, + { 3, "rrcReestablishmentComplete" }, + { 4, "rrcResumeComplete" }, + { 5, "securityModeComplete" }, + { 6, "securityModeFailure" }, + { 7, "ulInformationTransfer" }, + { 8, "locationMeasurementIndication" }, + { 9, "ueCapabilityInformation" }, + { 10, "counterCheckResponse" }, + { 11, "ueAssistanceInformation" }, + { 12, "spare4" }, + { 13, "spare3" }, + { 14, "spare2" }, + { 15, "spare1" }, + { 0, NULL } +}; + +static const per_choice_t T_c1_13_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_rrcSetupComplete, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCSetupComplete }, + { 3, &hf_nr_rrc_rrcReestablishmentComplete, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReestablishmentComplete }, + { 4, &hf_nr_rrc_rrcResumeComplete, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCResumeComplete }, + { 5, &hf_nr_rrc_securityModeComplete, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SecurityModeComplete }, + { 6, &hf_nr_rrc_securityModeFailure, ASN1_NO_EXTENSIONS , dissect_nr_rrc_SecurityModeFailure }, + { 7, &hf_nr_rrc_ulInformationTransfer, ASN1_NO_EXTENSIONS , dissect_nr_rrc_ULInformationTransfer }, + { 8, &hf_nr_rrc_locationMeasurementIndication, ASN1_NO_EXTENSIONS , dissect_nr_rrc_LocationMeasurementIndication }, + { 9, &hf_nr_rrc_ueCapabilityInformation, ASN1_NO_EXTENSIONS , dissect_nr_rrc_UECapabilityInformation }, + { 10, &hf_nr_rrc_counterCheckResponse, ASN1_NO_EXTENSIONS , dissect_nr_rrc_CounterCheckResponse }, + { 11, &hf_nr_rrc_ueAssistanceInformation, ASN1_NO_EXTENSIONS , dissect_nr_rrc_UEAssistanceInformation }, + { 12, &hf_nr_rrc_spare4 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 13, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 14, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 15, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_c1_13(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_13, T_c1_13_choice, NULL); return offset; } +static const per_sequence_t T_messageClassExtension_07_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_messageClassExtension_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_messageClassExtension_07, T_messageClassExtension_07_sequence); + + return offset; +} + + +static const value_string nr_rrc_UL_DCCH_MessageType_vals[] = { + { 0, "c1" }, + { 1, "messageClassExtension" }, + { 0, NULL } +}; + +static const per_choice_t UL_DCCH_MessageType_choice[] = { + { 0, &hf_nr_rrc_c1_13 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_13 }, + { 1, &hf_nr_rrc_messageClassExtension_07, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_07 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_UL_DCCH_MessageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_UL_DCCH_MessageType, UL_DCCH_MessageType_choice, + NULL); + + return offset; +} + + +static const per_sequence_t UL_DCCH_Message_sequence[] = { + { &hf_nr_rrc_message_07 , 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_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_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 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 }, @@ -13227,6 +19817,16 @@ dissect_nr_rrc_BFR_SSB_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a 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_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, maxRA_Occasions_1, NULL, FALSE); @@ -13396,6 +19996,19 @@ dissect_nr_rrc_T_beamFailureRecoveryTimer(tvbuff_t *tvb _U_, int offset _U_, asn } +static const per_sequence_t BeamFailureRecoveryConfig_eag_1_sequence[] = { + { &hf_nr_rrc_msg1_SubcarrierSpacing_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SubcarrierSpacing }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_BeamFailureRecoveryConfig_eag_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_eag(tvb, offset, actx, tree, BeamFailureRecoveryConfig_eag_1_sequence); + + 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 }, @@ -13406,6 +20019,7 @@ static const per_sequence_t BeamFailureRecoveryConfig_sequence[] = { { &hf_nr_rrc_recoverySearchSpaceId, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SearchSpaceId }, { &hf_nr_rrc_ra_Prioritization, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RA_Prioritization }, { &hf_nr_rrc_beamFailureRecoveryTimer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_beamFailureRecoveryTimer }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_BeamFailureRecoveryConfig_eag_1 }, { NULL, 0, 0, NULL } }; @@ -13418,177 +20032,99 @@ dissect_nr_rrc_BeamFailureRecoveryConfig(tvbuff_t *tvb _U_, int offset _U_, asn1 } -static const value_string nr_rrc_T_beamFailureRecoveryConfig_vals[] = { - { 0, "release" }, - { 1, "setup" }, - { 0, NULL } -}; - -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_08 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BeamFailureRecoveryConfig }, - { 0, NULL, 0, NULL } -}; - -static int -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_beamFailureRecoveryConfig, T_beamFailureRecoveryConfig_choice, - NULL); - - return offset; -} - - -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" }, +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_choice_t T_pdcch_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_PDCCH_ConfigCommon }, - { 0, NULL, 0, NULL } -}; static int -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); +dissect_nr_rrc_T_periodicBSR_Timer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 16, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_mappingType_vals[] = { - { 0, "typeA" }, - { 1, "typeB" }, +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_mappingType(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); - - return offset; -} - - -static const per_sequence_t PDSCH_TimeDomainResourceAllocation_sequence[] = { - { &hf_nr_rrc_k0 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_32 }, - { &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_INTEGER_0_127 }, - { 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 PDSCH_TimeDomainResourceAllocationList_sequence_of[1] = { - { &hf_nr_rrc_PDSCH_TimeDomainResourceAllocationList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PDSCH_TimeDomainResourceAllocation }, -}; - -static int -dissect_nr_rrc_PDSCH_TimeDomainResourceAllocationList(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_PDSCH_TimeDomainResourceAllocationList, PDSCH_TimeDomainResourceAllocationList_sequence_of, - 1, maxNrofDL_Allocations, FALSE); - - return offset; -} - - -static const per_sequence_t PDSCH_ConfigCommon_sequence[] = { - { &hf_nr_rrc_pdsch_TimeDomainAllocationList_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PDSCH_TimeDomainResourceAllocationList }, - { 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); + 16, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_pdsch_ConfigCommon_vals[] = { - { 0, "release" }, - { 1, "setup" }, +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 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_10 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_ConfigCommon }, - { 0, NULL, 0, NULL } -}; static int -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); +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 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 }, +static const per_sequence_t BSR_Config_sequence[] = { + { &hf_nr_rrc_periodicBSR_Timer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicBSR_Timer }, + { &hf_nr_rrc_retxBSR_Timer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_retxBSR_Timer }, + { &hf_nr_rrc_logicalChannelSR_DelayTimer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_logicalChannelSR_DelayTimer }, { NULL, 0, 0, NULL } }; static int -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_) { +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_BWP_DownlinkCommon, BWP_DownlinkCommon_sequence); + ett_nr_rrc_BSR_Config, BSR_Config_sequence); return offset; } @@ -13650,16 +20186,6 @@ dissect_nr_rrc_SEQUENCE_SIZE_1_10_OF_SearchSpaceId(tvbuff_t *tvb _U_, int 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" }, @@ -13750,7 +20276,7 @@ static const value_string nr_rrc_T_downlinkPreemption_vals[] = { 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 }, + { 1, &hf_nr_rrc_setup_28 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DownlinkPreemption }, { 0, NULL, 0, NULL } }; @@ -13798,7 +20324,7 @@ static const value_string nr_rrc_T_tpc_PUSCH_vals[] = { 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_27 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_TPC_CommandConfig }, + { 1, &hf_nr_rrc_setup_29 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_TPC_CommandConfig }, { 0, NULL, 0, NULL } }; @@ -13835,7 +20361,7 @@ static const value_string nr_rrc_T_tpc_PUCCH_vals[] = { 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_28 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_TPC_CommandConfig }, + { 1, &hf_nr_rrc_setup_30 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_TPC_CommandConfig }, { 0, NULL, 0, NULL } }; @@ -13859,9 +20385,23 @@ dissect_nr_rrc_INTEGER_1_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } +static const per_sequence_t SRS_TPC_CommandConfig_eag_1_sequence[] = { + { &hf_nr_rrc_startingBitOfFormat2_3SUL_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_31 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SRS_TPC_CommandConfig_eag_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_eag(tvb, offset, actx, tree, SRS_TPC_CommandConfig_eag_1_sequence); + + return offset; +} + + static const per_sequence_t SRS_TPC_CommandConfig_sequence[] = { { &hf_nr_rrc_startingBitOfFormat2_3, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_31 }, { &hf_nr_rrc_fieldTypeFormat2_3, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_TPC_CommandConfig_eag_1 }, { NULL, 0, 0, NULL } }; @@ -13882,7 +20422,7 @@ static const value_string nr_rrc_T_tpc_SRS_vals[] = { static const per_choice_t T_tpc_SRS_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_SRS_TPC_CommandConfig }, + { 1, &hf_nr_rrc_setup_31 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SRS_TPC_CommandConfig }, { 0, NULL, 0, NULL } }; @@ -13925,7 +20465,7 @@ static const value_string nr_rrc_T_pdcch_Config_vals[] = { 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_11 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDCCH_Config }, + { 1, &hf_nr_rrc_setup_04 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDCCH_Config }, { 0, NULL, 0, NULL } }; @@ -13986,6 +20526,16 @@ dissect_nr_rrc_T_maxLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } + +static int +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, + 1U, 276U, NULL, FALSE); + + return offset; +} + + 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 }, }; @@ -14000,6 +20550,16 @@ dissect_nr_rrc_T_frequencyDensity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } + +static int +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, 29U, NULL, 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 }, }; @@ -14056,7 +20616,7 @@ static const value_string nr_rrc_T_phaseTrackingRS_vals[] = { 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_19 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PTRS_DownlinkConfig }, + { 1, &hf_nr_rrc_setup_20 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PTRS_DownlinkConfig }, { 0, NULL, 0, NULL } }; @@ -14097,7 +20657,7 @@ static const value_string nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeA_vals[] = { 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_31 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DMRS_DownlinkConfig }, + { 1, &hf_nr_rrc_setup_33 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DMRS_DownlinkConfig }, { 0, NULL, 0, NULL } }; @@ -14119,7 +20679,7 @@ static const value_string nr_rrc_T_dmrs_DownlinkForPDSCH_MappingTypeB_vals[] = { 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_31 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DMRS_DownlinkConfig }, + { 1, &hf_nr_rrc_setup_33 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DMRS_DownlinkConfig }, { 0, NULL, 0, NULL } }; @@ -14275,7 +20835,7 @@ static const value_string nr_rrc_T_pdsch_TimeDomainAllocationList_vals[] = { static const per_choice_t T_pdsch_TimeDomainAllocationList_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_PDSCH_TimeDomainResourceAllocationList }, + { 1, &hf_nr_rrc_setup_34 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_TimeDomainResourceAllocationList }, { 0, NULL, 0, NULL } }; @@ -14326,16 +20886,6 @@ dissect_nr_rrc_BIT_STRING_SIZE_275(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } - -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" }, @@ -14380,6 +20930,16 @@ dissect_nr_rrc_BIT_STRING_SIZE_5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int +dissect_nr_rrc_BIT_STRING_SIZE_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 10, 10, FALSE, NULL, NULL); + + return offset; +} + + + +static 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); @@ -14468,7 +21028,7 @@ dissect_nr_rrc_T_patternType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const value_string nr_rrc_T_mode_vals[] = { +static const value_string nr_rrc_T_dummy_vals[] = { { 0, "dynamic" }, { 1, "semiStatic" }, { 0, NULL } @@ -14476,7 +21036,7 @@ static const value_string nr_rrc_T_mode_vals[] = { 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_) { +dissect_nr_rrc_T_dummy(tvbuff_t *tvb _U_, int offset _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); @@ -14488,7 +21048,7 @@ 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 }, + { &hf_nr_rrc_dummy_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_dummy }, { NULL, 0, 0, NULL } }; @@ -14583,7 +21143,7 @@ dissect_nr_rrc_T_rbg_Size_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static const value_string nr_rrc_T_mcs_Table_01_vals[] = { { 0, "qam256" }, - { 1, "spare1" }, + { 1, "qam64LowSE" }, { 0, NULL } }; @@ -14838,7 +21398,7 @@ static const per_choice_t T_density_01_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 }, + { 3, &hf_nr_rrc_spare_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, { 0, NULL, 0, NULL } }; @@ -15060,7 +21620,7 @@ static const value_string nr_rrc_T_p_ZP_CSI_RS_ResourceSet_vals[] = { static const per_choice_t T_p_ZP_CSI_RS_ResourceSet_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_ZP_CSI_RS_ResourceSet }, + { 1, &hf_nr_rrc_setup_35 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_ZP_CSI_RS_ResourceSet }, { 0, NULL, 0, NULL } }; @@ -15119,7 +21679,7 @@ static const value_string nr_rrc_T_pdsch_Config_vals[] = { 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_12 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_Config }, + { 1, &hf_nr_rrc_setup_05 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_Config }, { 0, NULL, 0, NULL } }; @@ -15165,10 +21725,36 @@ dissect_nr_rrc_T_periodicity_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } + +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 value_string nr_rrc_T_mcs_Table_03_vals[] = { + { 0, "qam64LowSE" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mcs_Table_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 per_sequence_t SPS_Config_sequence[] = { - { &hf_nr_rrc_periodicity_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicity_01 }, - { &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_ResourceId }, + { &hf_nr_rrc_periodicity_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicity_01 }, + { &hf_nr_rrc_nrofHARQ_Processes_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_8 }, + { &hf_nr_rrc_n1PUCCH_AN , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_PUCCH_ResourceId }, + { &hf_nr_rrc_mcs_Table_03 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_mcs_Table_03 }, { NULL, 0, 0, NULL } }; @@ -15189,7 +21775,7 @@ static const value_string nr_rrc_T_sps_Config_vals[] = { 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_13 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SPS_Config }, + { 1, &hf_nr_rrc_setup_06 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SPS_Config }, { 0, NULL, 0, NULL } }; @@ -15365,7 +21951,7 @@ static const value_string nr_rrc_T_radioLinkMonitoringConfig_vals[] = { 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_14 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RadioLinkMonitoringConfig }, + { 1, &hf_nr_rrc_setup_07 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RadioLinkMonitoringConfig }, { 0, NULL, 0, NULL } }; @@ -15398,8 +21984,8 @@ dissect_nr_rrc_BWP_DownlinkDedicated(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx 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 }, + { &hf_nr_rrc_bwp_Common , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_DownlinkCommon }, + { &hf_nr_rrc_bwp_Dedicated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_DownlinkDedicated }, { NULL, 0, 0, NULL } }; @@ -15412,6 +21998,3137 @@ dissect_nr_rrc_BWP_Downlink(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } + +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 const per_sequence_t SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_resourceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_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_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId, SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId_sequence_of, + 1, maxNrofPUCCH_ResourcesPerSet, FALSE); + + return offset; +} + + + +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_resourceList , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_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_PUCCH_ResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PUCCH_ResourceSet, PUCCH_ResourceSet_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_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_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_PUCCH_format0, PUCCH_format0_sequence); + + return offset; +} + + + +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" }, + { 0, NULL } +}; + + +static int +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); + + return offset; +} + + +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_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, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_additionalDMRS_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_additionalDMRS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_PUCCH_MaxCodeRate_vals[] = { + { 0, "zeroDot08" }, + { 1, "zeroDot15" }, + { 2, "zeroDot25" }, + { 3, "zeroDot35" }, + { 4, "zeroDot45" }, + { 5, "zeroDot60" }, + { 6, "zeroDot80" }, + { 0, NULL } +}; + + +static int +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, + 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_pi2BPSK_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pi2BPSK(tvbuff_t *tvb _U_, int offset _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 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_pi2BPSK , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pi2BPSK }, + { &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_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_PUCCH_FormatConfig, PUCCH_FormatConfig_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_format1_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_format1_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_38 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_FormatConfig }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_format1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_format1, T_format1_choice, + NULL); + + return offset; +} + + +static 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_38 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_FormatConfig }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_format2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_format2, T_format2_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_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_38 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_FormatConfig }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_format3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_format3, T_format3_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_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_38 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_FormatConfig }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_format4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_format4, T_format4_choice, + NULL); + + return offset; +} + + + +static 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_vals[] = { + { 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_choice[] = { + { 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 } +}; + +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 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_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_periodicityAndOffset }, + { &hf_nr_rrc_resource_01 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PUCCH_ResourceId }, + { NULL, 0, 0, NULL } +}; + +static int +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_SchedulingRequestResourceConfig, SchedulingRequestResourceConfig_sequence); + + return offset; +} + + +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_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_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig, SEQUENCE_SIZE_1_maxNrofSR_Resources_OF_SchedulingRequestResourceConfig_sequence_of, + 1, maxNrofSR_Resources, FALSE); + + return offset; +} + + +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, + 1, 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_SRS_ResourceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNrofSRS_Resources_1, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_srs_sequence[] = { + { &hf_nr_rrc_resource , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceId }, + { &hf_nr_rrc_uplinkBWP , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Id }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_srs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_srs, T_srs_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_referenceSignal_01_vals[] = { + { 0, "ssb-Index" }, + { 1, "csi-RS-Index" }, + { 2, "srs" }, + { 0, NULL } +}; + +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 }, + { 2, &hf_nr_rrc_srs , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_srs }, + { 0, NULL, 0, NULL } +}; + +static int +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_referenceSignal_01, T_referenceSignal_01_choice, + NULL); + + return offset; +} + + + +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_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 PUCCH_SpatialRelationInfo_sequence[] = { + { &hf_nr_rrc_pucch_SpatialRelationInfoId, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_PUCCH_SpatialRelationInfoId }, + { &hf_nr_rrc_servingCellId, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_referenceSignal_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_referenceSignal_01 }, + { &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_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 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_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_P0_PUCCH, P0_PUCCH_sequence); + + return offset; +} + + +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_vals[] = { + { 0, "ssb-Index" }, + { 1, "csi-RS-Index" }, + { 0, NULL } +}; + +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 }, + { 0, NULL, 0, NULL } +}; + +static int +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_referenceSignal, T_referenceSignal_choice, + NULL); + + return offset; +} + + +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, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_referenceSignal }, + { NULL, 0, 0, NULL } +}; + +static int +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_PUCCH_PathlossReferenceRS, PUCCH_PathlossReferenceRS_sequence); + + return offset; +} + + +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_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, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +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_11 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUCCH_Config }, + { 0, NULL, 0, NULL } +}; + +static int +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_txConfig_vals[] = { + { 0, "codebook" }, + { 1, "nonCodebook" }, + { 0, NULL } +}; + + +static int +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); + + return offset; +} + + +static const value_string nr_rrc_T_dmrs_Type_01_vals[] = { + { 0, "type2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dmrs_Type_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_dmrs_AdditionalPosition_01_vals[] = { + { 0, "pos0" }, + { 1, "pos1" }, + { 2, "pos3" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_dmrs_AdditionalPosition_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + 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_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; +} + + +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_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_maxNrofPorts_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 0, NULL } +}; + + +static int +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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_resourceElementOffset_01_vals[] = { + { 0, "offset01" }, + { 1, "offset10" }, + { 2, "offset11" }, + { 0, NULL } +}; + + +static int +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); + + return offset; +} + + +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_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); + + return offset; +} + + +static const per_sequence_t T_transformPrecoderDisabled_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_transformPrecoderDisabled(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_transformPrecoderDisabled, T_transformPrecoderDisabled_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_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_timeDensityTransformPrecoding_vals[] = { + { 0, "d2" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_timeDensityTransformPrecoding(tvbuff_t *tvb _U_, int offset _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_transformPrecoderEnabled_sequence[] = { + { &hf_nr_rrc_sampleDensity, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sampleDensity }, + { &hf_nr_rrc_timeDensityTransformPrecoding, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_timeDensityTransformPrecoding }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_transformPrecoderEnabled(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_transformPrecoderEnabled, T_transformPrecoderEnabled_sequence); + + return offset; +} + + +static const per_sequence_t PTRS_UplinkConfig_sequence[] = { + { &hf_nr_rrc_transformPrecoderDisabled, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecoderDisabled }, + { &hf_nr_rrc_transformPrecoderEnabled, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecoderEnabled }, + { NULL, 0, 0, NULL } +}; + +static int +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_PTRS_UplinkConfig, PTRS_UplinkConfig_sequence); + + return offset; +} + + +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_21 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PTRS_UplinkConfig }, + { 0, NULL, 0, NULL } +}; + +static int +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 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 const per_sequence_t T_transformPrecodingDisabled_sequence[] = { + { &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 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_transformPrecodingDisabled(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_transformPrecodingDisabled, T_transformPrecodingDisabled_sequence); + + return offset; +} + + + +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_sequenceGroupHopping_vals[] = { + { 0, "disabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sequenceGroupHopping(tvbuff_t *tvb _U_, int offset _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_sequenceHopping_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_sequenceHopping(tvbuff_t *tvb _U_, int offset _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_transformPrecodingEnabled_sequence[] = { + { &hf_nr_rrc_nPUSCH_Identity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1007 }, + { &hf_nr_rrc_sequenceGroupHopping, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_sequenceGroupHopping }, + { &hf_nr_rrc_sequenceHopping, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_sequenceHopping }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_transformPrecodingEnabled(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_transformPrecodingEnabled, T_transformPrecodingEnabled_sequence); + + return offset; +} + + +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_transformPrecodingDisabled, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecodingDisabled }, + { &hf_nr_rrc_transformPrecodingEnabled, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecodingEnabled }, + { 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_dmrs_UplinkForPUSCH_MappingTypeA_choice[] = { + { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 1, &hf_nr_rrc_setup_39 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DMRS_UplinkConfig }, + { 0, NULL, 0, NULL } +}; + +static int +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_dmrs_UplinkForPUSCH_MappingTypeA, T_dmrs_UplinkForPUSCH_MappingTypeA_choice, + NULL); + + return offset; +} + + +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_39 , 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_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_P0_PUSCH_AlphaSet, P0_PUSCH_AlphaSet_sequence); + + return offset; +} + + +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_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_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; +} + + + +static int +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, maxNrofPUSCH_PathlossReferenceRSs_1, NULL, FALSE); + + return offset; +} + + +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_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_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_referenceSignal_02, T_referenceSignal_02_choice, + NULL); + + return offset; +} + + +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_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_PUSCH_PathlossReferenceRS, PUSCH_PathlossReferenceRS_sequence); + + return offset; +} + + +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, "intraSlot" }, + { 1, "interSlot" }, + { 0, NULL } +}; + + +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_TimeDomainAllocationList_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_pusch_TimeDomainAllocationList_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_PUSCH_TimeDomainResourceAllocationList }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_pusch_TimeDomainAllocationList(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_TimeDomainAllocationList, T_pusch_TimeDomainAllocationList_choice, + 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" }, + { 1, "qam64LowSE" }, + { 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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_mcs_TableTransformPrecoder_01_vals[] = { + { 0, "qam256" }, + { 1, "qam64LowSE" }, + { 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, + 2, 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_01 , 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_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_betaOffsets, T_betaOffsets_choice, + NULL); + + return offset; +} + + +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_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 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_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_UCI_OnPUSCH, UCI_OnPUSCH_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_uci_OnPUSCH_01_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +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_41 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_UCI_OnPUSCH }, + { 0, NULL, 0, NULL } +}; + +static int +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_uci_OnPUSCH_01, T_uci_OnPUSCH_01_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_tp_pi2BPSK_vals[] = { + { 0, "enabled" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_tp_pi2BPSK(tvbuff_t *tvb _U_, int offset _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 PUSCH_Config_sequence[] = { + { &hf_nr_rrc_dataScramblingIdentityPUSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_0_1023 }, + { &hf_nr_rrc_txConfig , ASN1_EXTENSION_ROOT , ASN1_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_TimeDomainAllocationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_TimeDomainAllocationList }, + { &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_OPTIONAL , dissect_nr_rrc_T_codebookSubset }, + { &hf_nr_rrc_maxRank , ASN1_EXTENSION_ROOT , ASN1_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_tp_pi2BPSK , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tp_pi2BPSK }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PUSCH_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PUSCH_Config, PUSCH_Config_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_pusch_Config_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, 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_12 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_Config }, + { 0, NULL, 0, NULL } +}; + +static int +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_pusch_Config, T_pusch_Config_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_frequencyHopping_vals[] = { + { 0, "intraSlot" }, + { 1, "interSlot" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_frequencyHopping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_mcs_Table_vals[] = { + { 0, "qam256" }, + { 1, "qam64LowSE" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mcs_Table(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_mcs_TableTransformPrecoder_vals[] = { + { 0, "qam256" }, + { 1, "qam64LowSE" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_mcs_TableTransformPrecoder(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_4_OF_BetaOffsets_sequence_of[1] = { + { &hf_nr_rrc_dynamic_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BetaOffsets }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets, SEQUENCE_SIZE_1_4_OF_BetaOffsets_sequence_of, + 1, 4, FALSE); + + return offset; +} + + +static const value_string nr_rrc_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_17 , 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_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, + 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_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" }, + { 1, "disabled" }, + { 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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_repK_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 3, "n8" }, + { 0, NULL } +}; + + +static int +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); + + return offset; +} + + +static const value_string nr_rrc_T_repK_RV_vals[] = { + { 0, "s1-0231" }, + { 1, "s2-0303" }, + { 2, "s3-0000" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_repK_RV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_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_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, + 45, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +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, + 18, 18, FALSE, NULL, NULL); + + return offset; +} + + + +static int +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_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_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_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_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_frequencyHopping }, + { &hf_nr_rrc_cg_DMRS_Configuration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_DMRS_UplinkConfig }, + { &hf_nr_rrc_mcs_Table , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_mcs_Table }, + { &hf_nr_rrc_mcs_TableTransformPrecoder, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_mcs_TableTransformPrecoder }, + { &hf_nr_rrc_uci_OnPUSCH , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_uci_OnPUSCH }, + { &hf_nr_rrc_resourceAllocation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resourceAllocation }, + { &hf_nr_rrc_rbg_Size , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rbg_Size }, + { &hf_nr_rrc_powerControlLoopToUse, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_powerControlLoopToUse }, + { &hf_nr_rrc_p0_PUSCH_Alpha, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_P0_PUSCH_AlphaSetId }, + { &hf_nr_rrc_transformPrecoder, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_transformPrecoder }, + { &hf_nr_rrc_nrofHARQ_Processes, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_16 }, + { &hf_nr_rrc_repK , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_repK }, + { &hf_nr_rrc_repK_RV , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_repK_RV }, + { &hf_nr_rrc_periodicity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicity }, + { &hf_nr_rrc_configuredGrantTimer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_64 }, + { &hf_nr_rrc_rrc_ConfiguredUplinkGrant, ASN1_EXTENSION_ROOT , 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_13 , 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_1_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_1_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_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId, SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId_sequence_of, + 1, 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_1_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, + 1U, maxNrofSRS_TriggerStates_1, NULL, FALSE); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 32U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t T_aperiodicSRS_ResourceTriggerList_v1530_sequence_of[1] = { + { &hf_nr_rrc_aperiodicSRS_ResourceTriggerList_v1530_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_maxNrofSRS_TriggerStates_1 }, +}; + +static int +dissect_nr_rrc_T_aperiodicSRS_ResourceTriggerList_v1530(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_aperiodicSRS_ResourceTriggerList_v1530, T_aperiodicSRS_ResourceTriggerList_v1530_sequence_of, + 1, maxNrofSRS_TriggerStates_2, FALSE); + + return offset; +} + + +static const per_sequence_t T_eag_1_sequence[] = { + { &hf_nr_rrc_aperiodicSRS_ResourceTriggerList_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_aperiodicSRS_ResourceTriggerList_v1530 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_eag_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_eag(tvb, offset, actx, tree, T_eag_1_sequence); + + 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_1_maxNrofSRS_TriggerStates_1 }, + { &hf_nr_rrc_csi_RS_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_NZP_CSI_RS_ResourceId }, + { &hf_nr_rrc_slotOffset , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_32 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_eag_1 }, + { 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_resourceType_01_vals[] = { + { 0, "aperiodic" }, + { 1, "semi-persistent" }, + { 2, "periodic" }, + { 0, NULL } +}; + +static const per_choice_t T_resourceType_01_choice[] = { + { 0, &hf_nr_rrc_aperiodic_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_resourceType_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_resourceType_01, T_resourceType_01_choice, + NULL); + + return offset; +} + + +static const value_string nr_rrc_T_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_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_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_pathlossReferenceRS, T_pathlossReferenceRS_choice, + NULL); + + return offset; +} + + +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_SRS_ResourceSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SRS_ResourceSet, SRS_ResourceSet_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_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_1_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_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet, SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet_sequence_of, + 1, maxNrofSRS_ResourceSets, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId_sequence_of[1] = { + { &hf_nr_rrc_srs_ResourceToReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceId }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId, SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_ResourceId_sequence_of, + 1, maxNrofSRS_Resources, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_nrofSRS_Ports_vals[] = { + { 0, "port1" }, + { 1, "ports2" }, + { 2, "ports4" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nrofSRS_Ports(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_ptrs_PortIndex_vals[] = { + { 0, "n0" }, + { 1, "n1" }, + { 0, NULL } +}; + + +static int +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); + + return offset; +} + + +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_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); + + return offset; +} + + +static const value_string nr_rrc_T_repetitionFactor_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 0, NULL } +}; + + +static int +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, + 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_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; +} + + + +static int +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 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 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_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_SRS_PeriodicityAndOffset, SRS_PeriodicityAndOffset_choice, + NULL); + + return offset; +} + + +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_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_semi_persistent_01, T_semi_persistent_01_sequence); + + return offset; +} + + +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_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_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_resourceType_02, T_resourceType_02_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_srs_01_sequence[] = { + { &hf_nr_rrc_resourceId , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_ResourceId }, + { &hf_nr_rrc_uplinkBWP , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BWP_Id }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_srs_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_srs_01, T_srs_01_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_referenceSignal_03_vals[] = { + { 0, "ssb-Index" }, + { 1, "csi-RS-Index" }, + { 2, "srs" }, + { 0, NULL } +}; + +static const per_choice_t T_referenceSignal_03_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_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_srs_01 }, + { 0, NULL, 0, NULL } +}; + +static int +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 per_sequence_t SRS_SpatialRelationInfo_sequence[] = { + { &hf_nr_rrc_servingCellId, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_ServCellIndex }, + { &hf_nr_rrc_referenceSignal_03, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_referenceSignal_03 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SRS_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_SRS_SpatialRelationInfo, SRS_SpatialRelationInfo_sequence); + + 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_INTEGER_0_1023 }, + { &hf_nr_rrc_spatialRelationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SRS_SpatialRelationInfo }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SRS_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SRS_Resource, SRS_Resource_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource_sequence_of[1] = { + { &hf_nr_rrc_srs_ResourceToAddModList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SRS_Resource }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource, SEQUENCE_SIZE_1_maxNrofSRS_Resources_OF_SRS_Resource_sequence_of, + 1, maxNrofSRS_Resources, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_tpc_Accumulation_01_vals[] = { + { 0, "disabled" }, + { 0, NULL } +}; + + +static int +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, + 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_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId }, + { &hf_nr_rrc_srs_ResourceSetToAddModList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_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_SRS_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SRS_Config, SRS_Config_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_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_14 , 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 value_string nr_rrc_T_beamFailureRecoveryConfig_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +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_15 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BeamFailureRecoveryConfig }, + { 0, NULL, 0, NULL } +}; + +static int +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_beamFailureRecoveryConfig, T_beamFailureRecoveryConfig_choice, + NULL); + + return offset; +} + + +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_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_UplinkCommon }, + { &hf_nr_rrc_bwp_Dedicated_01, 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_servedRadioBearer_vals[] = { { 0, "srb-Identity" }, { 1, "drb-Identity" }, @@ -16121,6 +25838,28 @@ dissect_nr_rrc_INTEGER_0_maxLCG_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const value_string nr_rrc_T_bitRateQueryProhibitTimer_vals[] = { + { 0, "s0" }, + { 1, "s0dot4" }, + { 2, "s0dot8" }, + { 3, "s1dot6" }, + { 4, "s3" }, + { 5, "s6" }, + { 6, "s12" }, + { 7, "s30" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_bitRateQueryProhibitTimer(tvbuff_t *tvb _U_, int offset _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_ul_SpecificParameters_sequence[] = { { &hf_nr_rrc_priority , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_16 }, { &hf_nr_rrc_prioritisedBitRate, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_prioritisedBitRate }, @@ -16133,6 +25872,7 @@ static const per_sequence_t T_ul_SpecificParameters_sequence[] = { { &hf_nr_rrc_schedulingRequestID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SchedulingRequestId }, { &hf_nr_rrc_logicalChannelSR_Mask, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, { &hf_nr_rrc_logicalChannelSR_DelayTimerApplied, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_bitRateQueryProhibitTimer, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_nr_rrc_T_bitRateQueryProhibitTimer }, { NULL, 0, 0, NULL } }; @@ -16582,7 +26322,7 @@ static const value_string nr_rrc_T_drx_Config_vals[] = { 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_21 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DRX_Config }, + { 1, &hf_nr_rrc_setup_22 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_DRX_Config }, { 0, NULL, 0, NULL } }; @@ -16699,104 +26439,6 @@ dissect_nr_rrc_SchedulingRequestConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_c } -static const value_string nr_rrc_T_periodicBSR_Timer_vals[] = { - { 0, "sf1" }, - { 1, "sf5" }, - { 2, "sf10" }, - { 3, "sf16" }, - { 4, "sf20" }, - { 5, "sf32" }, - { 6, "sf40" }, - { 7, "sf64" }, - { 8, "sf80" }, - { 9, "sf128" }, - { 10, "sf160" }, - { 11, "sf320" }, - { 12, "sf640" }, - { 13, "sf1280" }, - { 14, "sf2560" }, - { 15, "infinity" }, - { 0, NULL } -}; - - -static int -dissect_nr_rrc_T_periodicBSR_Timer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 16, NULL, FALSE, 0, NULL); - - return offset; -} - - -static const value_string nr_rrc_T_retxBSR_Timer_vals[] = { - { 0, "sf10" }, - { 1, "sf20" }, - { 2, "sf40" }, - { 3, "sf80" }, - { 4, "sf160" }, - { 5, "sf320" }, - { 6, "sf640" }, - { 7, "sf1280" }, - { 8, "sf2560" }, - { 9, "sf5120" }, - { 10, "sf10240" }, - { 11, "spare5" }, - { 12, "spare4" }, - { 13, "spare3" }, - { 14, "spare2" }, - { 15, "spare1" }, - { 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, - 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_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_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_periodicBSR_Timer }, - { &hf_nr_rrc_retxBSR_Timer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_retxBSR_Timer }, - { &hf_nr_rrc_logicalChannelSR_DelayTimer, ASN1_EXTENSION_ROOT , 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_) { @@ -16948,7 +26590,7 @@ static const per_sequence_t PHR_Config_sequence[] = { { &hf_nr_rrc_phr_ProhibitTimer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_phr_ProhibitTimer }, { &hf_nr_rrc_phr_Tx_PowerFactorChange, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_phr_Tx_PowerFactorChange }, { &hf_nr_rrc_multiplePHR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_phr_Type2SpCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_dummy , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, { &hf_nr_rrc_phr_Type2OtherCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, { &hf_nr_rrc_phr_ModeOtherCG, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_phr_ModeOtherCG }, { NULL, 0, 0, NULL } @@ -16971,7 +26613,7 @@ static const value_string nr_rrc_T_phr_Config_vals[] = { 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_22 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PHR_Config }, + { 1, &hf_nr_rrc_setup_23 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PHR_Config }, { 0, NULL, 0, NULL } }; @@ -16985,6 +26627,72 @@ dissect_nr_rrc_T_phr_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } +static const value_string nr_rrc_DataInactivityTimer_vals[] = { + { 0, "s1" }, + { 1, "s2" }, + { 2, "s3" }, + { 3, "s5" }, + { 4, "s7" }, + { 5, "s10" }, + { 6, "s15" }, + { 7, "s20" }, + { 8, "s40" }, + { 9, "s50" }, + { 10, "s60" }, + { 11, "s80" }, + { 12, "s100" }, + { 13, "s120" }, + { 14, "s150" }, + { 15, "s180" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_DataInactivityTimer(tvbuff_t *tvb _U_, int offset _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_dataInactivityTimer_v1530_vals[] = { + { 0, "release" }, + { 1, "setup" }, + { 0, NULL } +}; + +static const per_choice_t T_dataInactivityTimer_v1530_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_DataInactivityTimer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_dataInactivityTimer_v1530(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_dataInactivityTimer_v1530, T_dataInactivityTimer_v1530_choice, + NULL); + + return offset; +} + + +static const per_sequence_t MAC_CellGroupConfig_eag_1_sequence[] = { + { &hf_nr_rrc_csi_Mask_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_dataInactivityTimer_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dataInactivityTimer_v1530 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MAC_CellGroupConfig_eag_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_eag(tvb, offset, actx, tree, MAC_CellGroupConfig_eag_1_sequence); + + return offset; +} + + static const per_sequence_t MAC_CellGroupConfig_sequence[] = { { &hf_nr_rrc_drx_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_drx_Config }, { &hf_nr_rrc_schedulingRequestConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SchedulingRequestConfig }, @@ -16992,6 +26700,7 @@ static const per_sequence_t MAC_CellGroupConfig_sequence[] = { { &hf_nr_rrc_tag_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_TAG_Config }, { &hf_nr_rrc_phr_Config , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_phr_Config }, { &hf_nr_rrc_skipUplinkTxDynamic, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_MAC_CellGroupConfig_eag_1 }, { NULL, 0, 0, NULL } }; @@ -17058,7 +26767,7 @@ static const value_string nr_rrc_T_cs_RNTI_vals[] = { 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_35 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RNTI_Value }, + { 1, &hf_nr_rrc_setup_37 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RNTI_Value }, { 0, NULL, 0, NULL } }; @@ -17072,16 +26781,31 @@ dissect_nr_rrc_T_cs_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ } +static const per_sequence_t PhysicalCellGroupConfig_eag_1_sequence[] = { + { &hf_nr_rrc_mcs_C_RNTI , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RNTI_Value }, + { &hf_nr_rrc_p_UE_FR1 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_P_Max }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PhysicalCellGroupConfig_eag_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_eag(tvb, offset, actx, tree, PhysicalCellGroupConfig_eag_1_sequence); + + 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_p_NR_FR1 , 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 }, { &hf_nr_rrc_sp_CSI_RNTI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_RNTI_Value }, { &hf_nr_rrc_cs_RNTI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_cs_RNTI }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_PhysicalCellGroupConfig_eag_1 }, { NULL, 0, 0, NULL } }; @@ -17096,7 +26820,7 @@ dissect_nr_rrc_PhysicalCellGroupConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_c static const per_sequence_t FrequencyInfoDL_sequence[] = { { &hf_nr_rrc_absoluteFrequencySSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_ARFCN_ValueNR }, - { &hf_nr_rrc_frequencyBandList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MultiFrequencyBandListNR }, + { &hf_nr_rrc_frequencyBandList_01, 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 } @@ -17126,6 +26850,56 @@ dissect_nr_rrc_DownlinkConfigCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } +static const value_string nr_rrc_T_frequencyShift7p5khz_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_frequencyShift7p5khz(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t FrequencyInfoUL_sequence[] = { + { &hf_nr_rrc_frequencyBandList_01, 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_SpecificCarrierList, 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_FrequencyInfoUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_FrequencyInfoUL, FrequencyInfoUL_sequence); + + return offset; +} + + +static const per_sequence_t 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 }, + { &hf_nr_rrc_dummy_02 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_TimeAlignmentTimer }, + { NULL, 0, 0, NULL } +}; + +static int +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_UplinkConfigCommon, UplinkConfigCommon_sequence); + + return offset; +} + + static const value_string nr_rrc_T_n_TimingAdvanceOffset_vals[] = { { 0, "n0" }, { 1, "n25600" }, @@ -17143,14 +26917,14 @@ dissect_nr_rrc_T_n_TimingAdvanceOffset(tvbuff_t *tvb _U_, int offset _U_, asn1_c } -static const value_string nr_rrc_T_ssb_PositionsInBurst_01_vals[] = { +static const value_string nr_rrc_T_ssb_PositionsInBurst_vals[] = { { 0, "shortBitmap" }, { 1, "mediumBitmap" }, { 2, "longBitmap" }, { 0, NULL } }; -static const per_choice_t T_ssb_PositionsInBurst_01_choice[] = { +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 }, @@ -17158,9 +26932,9 @@ static const per_choice_t T_ssb_PositionsInBurst_01_choice[] = { }; static int -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_) { +dissect_nr_rrc_T_ssb_PositionsInBurst(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_ssb_PositionsInBurst_01, T_ssb_PositionsInBurst_01_choice, + ett_nr_rrc_T_ssb_PositionsInBurst, T_ssb_PositionsInBurst_choice, NULL); return offset; @@ -17257,54 +27031,44 @@ dissect_nr_rrc_T_radioframeAllocationPeriod(tvbuff_t *tvb _U_, int offset _U_, a } - -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[] = { +static const value_string nr_rrc_T_subframeAllocation1_vals[] = { { 0, "oneFrame" }, { 1, "fourFrames" }, { 0, NULL } }; -static const per_choice_t T_subframeAllocation_choice[] = { +static const per_choice_t T_subframeAllocation1_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_) { +dissect_nr_rrc_T_subframeAllocation1(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, + ett_nr_rrc_T_subframeAllocation1, T_subframeAllocation1_choice, NULL); return offset; } -static const value_string nr_rrc_T_subframeAllocation_v1430_vals[] = { - { 0, "oneFrame-v1430" }, - { 1, "fourFrames-v1430" }, +static const value_string nr_rrc_T_subframeAllocation2_vals[] = { + { 0, "oneFrame" }, + { 1, "fourFrames" }, { 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 }, +static const per_choice_t T_subframeAllocation2_choice[] = { + { 0, &hf_nr_rrc_oneFrame_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_BIT_STRING_SIZE_2 }, + { 1, &hf_nr_rrc_fourFrames_01, 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_) { +dissect_nr_rrc_T_subframeAllocation2(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, + ett_nr_rrc_T_subframeAllocation2, T_subframeAllocation2_choice, NULL); return offset; @@ -17314,8 +27078,8 @@ dissect_nr_rrc_T_subframeAllocation_v1430(tvbuff_t *tvb _U_, int offset _U_, asn 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 }, + { &hf_nr_rrc_subframeAllocation1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_subframeAllocation1 }, + { &hf_nr_rrc_subframeAllocation2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_subframeAllocation2 }, { NULL, 0, 0, NULL } }; @@ -17405,7 +27169,7 @@ static const value_string nr_rrc_T_lte_CRS_ToMatchAround_vals[] = { 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_46 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RateMatchPatternLTE_CRS }, + { 1, &hf_nr_rrc_setup_48 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RateMatchPatternLTE_CRS }, { 0, NULL, 0, NULL } }; @@ -17425,7 +27189,7 @@ static const per_sequence_t ServingCellConfigCommon_sequence[] = { { &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_n_TimingAdvanceOffset, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_n_TimingAdvanceOffset }, - { &hf_nr_rrc_ssb_PositionsInBurst_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_PositionsInBurst_01 }, + { &hf_nr_rrc_ssb_PositionsInBurst, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_PositionsInBurst }, { &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 }, @@ -17630,9 +27394,23 @@ dissect_nr_rrc_T_resources(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } +static const per_sequence_t CFRA_eag_1_sequence[] = { + { &hf_nr_rrc_totalNumberOfRA_Preambles_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_63 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CFRA_eag_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_eag(tvb, offset, actx, tree, CFRA_eag_1_sequence); + + return offset; +} + + static const per_sequence_t CFRA_sequence[] = { { &hf_nr_rrc_occasions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_occasions }, { &hf_nr_rrc_resources , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_resources }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_CFRA_eag_1 }, { NULL, 0, 0, NULL } }; @@ -17668,7 +27446,7 @@ static const value_string nr_rrc_T_rach_ConfigDedicated_vals[] = { 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 }, + { 1, &hf_nr_rrc_supplementaryUplink, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RACH_ConfigDedicated }, { 0, NULL, 0, NULL } }; @@ -17682,11 +27460,25 @@ dissect_nr_rrc_T_rach_ConfigDedicated(tvbuff_t *tvb _U_, int offset _U_, asn1_ct } +static const per_sequence_t ReconfigurationWithSync_eag_1_sequence[] = { + { &hf_nr_rrc_smtc , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SSB_MTC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_ReconfigurationWithSync_eag_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_eag(tvb, offset, actx, tree, ReconfigurationWithSync_eag_1_sequence); + + 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 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_ReconfigurationWithSync_eag_1 }, { NULL, 0, 0, NULL } }; @@ -17766,10 +27558,45 @@ dissect_nr_rrc_T_n311(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p } +static const value_string nr_rrc_T_t311_v1530_vals[] = { + { 0, "ms1000" }, + { 1, "ms3000" }, + { 2, "ms5000" }, + { 3, "ms10000" }, + { 4, "ms15000" }, + { 5, "ms20000" }, + { 6, "ms30000" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_t311_v1530(tvbuff_t *tvb _U_, int offset _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 RLF_TimersAndConstants_eag_1_sequence[] = { + { &hf_nr_rrc_t311_v1530 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_t311_v1530 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_RLF_TimersAndConstants_eag_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_eag(tvb, offset, actx, tree, RLF_TimersAndConstants_eag_1_sequence); + + 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 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_RLF_TimersAndConstants_eag_1 }, { NULL, 0, 0, NULL } }; @@ -17790,7 +27617,7 @@ static const value_string nr_rrc_T_rlf_TimersAndConstants_vals[] = { 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_15 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RLF_TimersAndConstants }, + { 1, &hf_nr_rrc_setup_16 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_RLF_TimersAndConstants }, { 0, NULL, 0, NULL } }; @@ -18065,7 +27892,7 @@ static const value_string nr_rrc_T_codeBlockGroupTransmission_01_vals[] = { 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_40 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_CodeBlockGroupTransmission }, + { 1, &hf_nr_rrc_setup_42 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_CodeBlockGroupTransmission }, { 0, NULL, 0, NULL } }; @@ -18135,7 +27962,7 @@ static const value_string nr_rrc_T_pusch_ServingCellConfig_vals[] = { 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_44 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_ServingCellConfig }, + { 1, &hf_nr_rrc_setup_46 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PUSCH_ServingCellConfig }, { 0, NULL, 0, NULL } }; @@ -18283,7 +28110,7 @@ static const value_string nr_rrc_T_carrierSwitching_vals[] = { 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_45 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SRS_CarrierSwitching }, + { 1, &hf_nr_rrc_setup_47 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SRS_CarrierSwitching }, { 0, NULL, 0, NULL } }; @@ -18460,7 +28287,7 @@ static const value_string nr_rrc_T_slotFormatIndicator_vals[] = { 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_30 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SlotFormatIndicator }, + { 1, &hf_nr_rrc_setup_32 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_SlotFormatIndicator }, { 0, NULL, 0, NULL } }; @@ -18496,7 +28323,7 @@ static const value_string nr_rrc_T_pdcch_ServingCellConfig_vals[] = { static const per_choice_t T_pdcch_ServingCellConfig_choice[] = { { 0, &hf_nr_rrc_release , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, - { 1, &hf_nr_rrc_setup_41 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDCCH_ServingCellConfig }, + { 1, &hf_nr_rrc_setup_43 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDCCH_ServingCellConfig }, { 0, NULL, 0, NULL } }; @@ -18551,7 +28378,7 @@ static const value_string nr_rrc_T_codeBlockGroupTransmission_vals[] = { 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_34 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_CodeBlockGroupTransmission }, + { 1, &hf_nr_rrc_setup_36 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_CodeBlockGroupTransmission }, { 0, NULL, 0, NULL } }; @@ -18627,7 +28454,7 @@ static const value_string nr_rrc_T_pdsch_ServingCellConfig_vals[] = { 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_42 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_ServingCellConfig }, + { 1, &hf_nr_rrc_setup_44 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_PDSCH_ServingCellConfig }, { 0, NULL, 0, NULL } }; @@ -19577,26 +29404,6 @@ dissect_nr_rrc_T_pmi_FormatIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static int -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 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); @@ -19627,9 +29434,9 @@ dissect_nr_rrc_BIT_STRING_SIZE_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t 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_) { +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, - 16, 16, FALSE, NULL, NULL); + 17, 17, FALSE, NULL, NULL); return offset; } @@ -19637,9 +29444,9 @@ dissect_nr_rrc_BIT_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t 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_) { +dissect_nr_rrc_BIT_STRING_SIZE_19(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); + 19, 19, FALSE, NULL, NULL); return offset; } @@ -19662,9 +29469,12 @@ static const value_string nr_rrc_T_csi_ReportingBand_vals[] = { { 13, "subbands16" }, { 14, "subbands17" }, { 15, "subbands18" }, + { 16, "subbands19-v1530" }, { 0, NULL } }; +static value_string_ext nr_rrc_T_csi_ReportingBand_vals_ext = VALUE_STRING_EXT_INIT(nr_rrc_T_csi_ReportingBand_vals); + 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 }, @@ -19682,6 +29492,7 @@ static const per_choice_t T_csi_ReportingBand_choice[] = { { 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 }, + { 16, &hf_nr_rrc_subbands19_v1530, ASN1_NOT_EXTENSION_ROOT, dissect_nr_rrc_BIT_STRING_SIZE_19 }, { 0, NULL, 0, NULL } }; @@ -19779,16 +29590,6 @@ dissect_nr_rrc_BIT_STRING_SIZE_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int -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 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); @@ -19974,16 +29775,16 @@ dissect_nr_rrc_T_subType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ } -static const per_sequence_t T_type1_sequence[] = { +static const per_sequence_t T_type1_01_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_type1(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_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_type1, T_type1_sequence); + ett_nr_rrc_T_type1_01, T_type1_01_sequence); return offset; } @@ -20210,7 +30011,7 @@ static const value_string nr_rrc_T_codebookType_vals[] = { }; static const per_choice_t T_codebookType_choice[] = { - { 0, &hf_nr_rrc_type1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_type1 }, + { 0, &hf_nr_rrc_type1_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_type1_01 }, { 1, &hf_nr_rrc_type2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_type2 }, { 0, NULL, 0, NULL } }; @@ -20312,7 +30113,7 @@ dissect_nr_rrc_T_groupBasedBeamReporting(tvbuff_t *tvb _U_, int offset _U_, asn1 static const value_string nr_rrc_T_cqi_Table_vals[] = { { 0, "table1" }, { 1, "table2" }, - { 2, "spare2" }, + { 2, "table3" }, { 3, "spare1" }, { 0, NULL } }; @@ -20620,12 +30421,56 @@ dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndex } +static const value_string nr_rrc_T_reportSlotConfig_v1530_vals[] = { + { 0, "sl4" }, + { 1, "sl8" }, + { 2, "sl16" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reportSlotConfig_v1530(tvbuff_t *tvb _U_, int offset _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_semiPersistentOnPUSCH_v1530_sequence[] = { + { &hf_nr_rrc_reportSlotConfig_v1530, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_reportSlotConfig_v1530 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_semiPersistentOnPUSCH_v1530(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_semiPersistentOnPUSCH_v1530, T_semiPersistentOnPUSCH_v1530_sequence); + + return offset; +} + + +static const per_sequence_t CSI_ReportConfig_eag_1_sequence[] = { + { &hf_nr_rrc_semiPersistentOnPUSCH_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_semiPersistentOnPUSCH_v1530 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_ReportConfig_eag_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_eag(tvb, offset, actx, tree, CSI_ReportConfig_eag_1_sequence); + + return offset; +} + + 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_csi_IM_ResourcesForInterference_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CSI_ResourceConfigId }, + { &hf_nr_rrc_nzp_CSI_RS_ResourcesForInterference_01, 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_OPTIONAL , dissect_nr_rrc_T_reportFreqConfiguration }, @@ -20637,6 +30482,7 @@ static const per_sequence_t CSI_ReportConfig_sequence[] = { { &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_non_PMI_PortIndication, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_CSI_ReportConfig_eag_1 }, { NULL, 0, 0, NULL } }; @@ -20761,8 +30607,8 @@ dissect_nr_rrc_INTEGER_1_maxNrofCSI_IM_ResourceSetsPerConfig(tvbuff_t *tvb _U_, 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 }, + { &hf_nr_rrc_csi_IM_ResourcesForInterference, 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 } }; @@ -20825,7 +30671,7 @@ static const value_string nr_rrc_T_aperiodicTriggerStateList_vals[] = { 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_17 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_AperiodicTriggerStateList }, + { 1, &hf_nr_rrc_setup_18 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_AperiodicTriggerStateList }, { 0, NULL, 0, NULL } }; @@ -20875,7 +30721,7 @@ static const value_string nr_rrc_T_semiPersistentOnPUSCH_TriggerStateList_vals[] 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_18 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList }, + { 1, &hf_nr_rrc_setup_19 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_SemiPersistentOnPUSCH_TriggerStateList }, { 0, NULL, 0, NULL } }; @@ -20927,7 +30773,7 @@ static const value_string nr_rrc_T_csi_MeasConfig_vals[] = { 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_43 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_MeasConfig }, + { 1, &hf_nr_rrc_setup_45 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_CSI_MeasConfig }, { 0, NULL, 0, NULL } }; @@ -21086,7 +30932,7 @@ static const per_sequence_t ServingCellConfig_sequence[] = { { &hf_nr_rrc_bwp_InactivityTimer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_InactivityTimer }, { &hf_nr_rrc_defaultDownlinkBWP_Id, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BWP_Id }, { &hf_nr_rrc_uplinkConfig , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfig }, - { &hf_nr_rrc_supplementaryUplink_02, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfig }, + { &hf_nr_rrc_supplementaryUplink_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_UplinkConfig }, { &hf_nr_rrc_pdcch_ServingCellConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcch_ServingCellConfig }, { &hf_nr_rrc_pdsch_ServingCellConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_ServingCellConfig }, { &hf_nr_rrc_csi_MeasConfig, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_MeasConfig }, @@ -21136,10 +30982,24 @@ dissect_nr_rrc_SCellIndex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } +static const per_sequence_t SCellConfig_eag_1_sequence[] = { + { &hf_nr_rrc_smtc , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SSB_MTC }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_SCellConfig_eag_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_eag(tvb, offset, actx, tree, SCellConfig_eag_1_sequence); + + 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 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_SCellConfig_eag_1 }, { NULL, 0, 0, NULL } }; @@ -21180,6 +31040,34 @@ dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofSCells_OF_SCellIndex(tvbuff_t *tvb _U_, in } +static const value_string nr_rrc_T_reportUplinkTxDirectCurrent_v1530_vals[] = { + { 0, "true" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_reportUplinkTxDirectCurrent_v1530(tvbuff_t *tvb _U_, int offset _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 CellGroupConfig_eag_1_sequence[] = { + { &hf_nr_rrc_reportUplinkTxDirectCurrent_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_reportUplinkTxDirectCurrent_v1530 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CellGroupConfig_eag_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_eag(tvb, offset, actx, tree, CellGroupConfig_eag_1_sequence); + + return offset; +} + + 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_BearerConfig }, @@ -21189,6 +31077,7 @@ static const per_sequence_t CellGroupConfig_sequence[] = { { &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 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_CellGroupConfig_eag_1 }, { NULL, 0, 0, NULL } }; @@ -21237,16 +31126,6 @@ dissect_nr_rrc_AccessStratumRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } - -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" }, @@ -21339,8 +31218,8 @@ static const value_string nr_rrc_BandParameters_vals[] = { }; static const per_choice_t BandParameters_choice[] = { - { 0, &hf_nr_rrc_eutra , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_eutra }, - { 1, &hf_nr_rrc_nr , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_nr }, + { 0, &hf_nr_rrc_eutra_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_eutra }, + { 1, &hf_nr_rrc_nr_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_nr }, { 0, NULL, 0, NULL } }; @@ -21448,12 +31327,23 @@ dissect_nr_rrc_T_ue_CA_PowerClass_N(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } + +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_ParametersEUTRA_sequence[] = { { &hf_nr_rrc_multipleTimingAdvance, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleTimingAdvance }, { &hf_nr_rrc_simultaneousRx_Tx, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_simultaneousRx_Tx }, { &hf_nr_rrc_supportedNAICS_2CRS_AP, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_1_8 }, { &hf_nr_rrc_additionalRx_Tx_PerformanceReq, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_additionalRx_Tx_PerformanceReq }, { &hf_nr_rrc_ue_CA_PowerClass_N, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ue_CA_PowerClass_N }, + { &hf_nr_rrc_supportedBandwidthCombinationSetEUTRA_v1530, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_1_32 }, { NULL, 0, 0, NULL } }; @@ -21737,11 +31627,16 @@ dissect_nr_rrc_MRDC_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } +static const value_string nr_rrc_T_powerClass_v1530_vals[] = { + { 0, "pc2" }, + { 0, NULL } +}; + 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); +dissect_nr_rrc_T_powerClass_v1530(tvbuff_t *tvb _U_, int offset _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; } @@ -21754,6 +31649,7 @@ static const per_sequence_t BandCombination_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 }, { &hf_nr_rrc_supportedBandwidthCombinationSet, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_1_32 }, + { &hf_nr_rrc_powerClass_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_powerClass_v1530 }, { NULL, 0, 0, NULL } }; @@ -21857,8 +31753,8 @@ static const value_string nr_rrc_FeatureSet_vals[] = { }; static const per_choice_t FeatureSet_choice[] = { - { 0, &hf_nr_rrc_eutra_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_eutra_01 }, - { 1, &hf_nr_rrc_nr_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_nr_01 }, + { 0, &hf_nr_rrc_eutra_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_eutra_01 }, + { 1, &hf_nr_rrc_nr_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_nr_01 }, { 0, NULL, 0, NULL } }; @@ -21958,14 +31854,14 @@ dissect_nr_rrc_T_scalingFactor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -static const value_string nr_rrc_T_crossCarrierSchedulingDL_OtherSCS_vals[] = { +static const value_string nr_rrc_T_crossCarrierScheduling_OtherSCS_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_crossCarrierSchedulingDL_OtherSCS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_crossCarrierScheduling_OtherSCS(tvbuff_t *tvb _U_, int offset _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); @@ -22033,7 +31929,7 @@ dissect_nr_rrc_T_type1_3_CSS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const value_string nr_rrc_T_pdcchMonitoringAnyOccasions_vals[] = { +static const value_string nr_rrc_T_pdcch_MonitoringAnyOccasions_vals[] = { { 0, "withoutDCI-Gap" }, { 1, "withDCI-Gap" }, { 0, NULL } @@ -22041,7 +31937,7 @@ static const value_string nr_rrc_T_pdcchMonitoringAnyOccasions_vals[] = { 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_) { +dissect_nr_rrc_T_pdcch_MonitoringAnyOccasions(tvbuff_t *tvb _U_, int offset _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); @@ -22049,14 +31945,14 @@ dissect_nr_rrc_T_pdcchMonitoringAnyOccasions(tvbuff_t *tvb _U_, int offset _U_, } -static const value_string nr_rrc_T_pdcchMonitoringAnyOccasionsWithSpanGap_vals[] = { +static const value_string nr_rrc_T_pdcch_MonitoringAnyOccasionsWithSpanGap_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_pdcchMonitoringAnyOccasionsWithSpanGap(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_MonitoringAnyOccasionsWithSpanGap(tvbuff_t *tvb _U_, int offset _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); @@ -22744,13 +32640,13 @@ static const per_sequence_t FeatureSetDownlink_sequence[] = { { &hf_nr_rrc_featureSetListPerDownlinkCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetDownlinkPerCC_Id }, { &hf_nr_rrc_intraBandFreqSeparationDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FreqSeparationClass }, { &hf_nr_rrc_scalingFactor, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scalingFactor }, - { &hf_nr_rrc_crossCarrierSchedulingDL_OtherSCS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_crossCarrierSchedulingDL_OtherSCS }, + { &hf_nr_rrc_crossCarrierScheduling_OtherSCS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_crossCarrierScheduling_OtherSCS }, { &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_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_pdcchMonitoringAnyOccasionsWithSpanGap, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcchMonitoringAnyOccasionsWithSpanGap }, + { &hf_nr_rrc_pdcch_MonitoringAnyOccasions, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcch_MonitoringAnyOccasions }, + { &hf_nr_rrc_pdcch_MonitoringAnyOccasionsWithSpanGap, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcch_MonitoringAnyOccasionsWithSpanGap }, { &hf_nr_rrc_ue_SpecificUL_DL_Assignment, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_ue_SpecificUL_DL_Assignment }, { &hf_nr_rrc_searchSpaceSharingCA_DL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_searchSpaceSharingCA_DL }, { &hf_nr_rrc_timeDurationForQCL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_timeDurationForQCL }, @@ -22772,7 +32668,7 @@ dissect_nr_rrc_FeatureSetDownlink(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const value_string nr_rrc_T_fr1_vals[] = { +static const value_string nr_rrc_T_fr1_02_vals[] = { { 0, "mhz5" }, { 1, "mhz10" }, { 2, "mhz15" }, @@ -22789,7 +32685,7 @@ static const value_string nr_rrc_T_fr1_vals[] = { 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_) { +dissect_nr_rrc_T_fr1_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, 11, NULL, FALSE, 0, NULL); @@ -22797,7 +32693,7 @@ dissect_nr_rrc_T_fr1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr } -static const value_string nr_rrc_T_fr2_vals[] = { +static const value_string nr_rrc_T_fr2_02_vals[] = { { 0, "mhz50" }, { 1, "mhz100" }, { 2, "mhz200" }, @@ -22807,7 +32703,7 @@ static const value_string nr_rrc_T_fr2_vals[] = { 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_) { +dissect_nr_rrc_T_fr2_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, NULL, FALSE, 0, NULL); @@ -22822,8 +32718,8 @@ static const value_string nr_rrc_SupportedBandwidth_vals[] = { }; static const per_choice_t SupportedBandwidth_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, &hf_nr_rrc_fr1_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr1_02 }, + { 1, &hf_nr_rrc_fr2_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_fr2_02 }, { 0, NULL, 0, NULL } }; @@ -22907,6 +32803,34 @@ dissect_nr_rrc_FeatureSetDownlinkPerCC(tvbuff_t *tvb _U_, int offset _U_, asn1_c } +static const per_sequence_t SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_sequence_of[1] = { + { &hf_nr_rrc_featureSetsDownlink_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetDownlink }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink(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_maxDownlinkFeatureSets_OF_FeatureSetDownlink, SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_sequence_of, + 1, maxDownlinkFeatureSets, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_sequence_of[1] = { + { &hf_nr_rrc_featureSetsDownlinkPerCC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetDownlinkPerCC }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC(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_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC, SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_sequence_of, + 1, maxPerCC_FeatureSets, FALSE); + + return offset; +} + + static int dissect_nr_rrc_FeatureSetUplinkPerCC_Id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -22948,14 +32872,14 @@ dissect_nr_rrc_T_scalingFactor_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const value_string nr_rrc_T_crossCarrierSchedulingUL_OtherSCS_vals[] = { +static const value_string nr_rrc_T_crossCarrierScheduling_OtherSCS_01_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_crossCarrierSchedulingUL_OtherSCS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_crossCarrierScheduling_OtherSCS_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); @@ -23161,6 +33085,21 @@ dissect_nr_rrc_T_dynamicSwitchSUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const value_string nr_rrc_T_simultaneousTxSUL_NonSUL_v1530_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_simultaneousTxSUL_NonSUL_v1530(tvbuff_t *tvb _U_, int offset _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, "upto4" }, @@ -23276,13 +33215,14 @@ dissect_nr_rrc_CSI_ReportFramework(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static const per_sequence_t FeatureSetUplink_sequence[] = { { &hf_nr_rrc_featureSetListPerUplinkCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetUplinkPerCC_Id }, { &hf_nr_rrc_scalingFactor_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scalingFactor_01 }, - { &hf_nr_rrc_crossCarrierSchedulingUL_OtherSCS, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_crossCarrierSchedulingUL_OtherSCS }, + { &hf_nr_rrc_crossCarrierScheduling_OtherSCS_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_crossCarrierScheduling_OtherSCS_01 }, { &hf_nr_rrc_intraBandFreqSeparationUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FreqSeparationClass }, { &hf_nr_rrc_searchSpaceSharingCA_UL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_searchSpaceSharingCA_UL }, { &hf_nr_rrc_srs_TxSwitch , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SRS_TxSwitch }, { &hf_nr_rrc_supportedSRS_Resources, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SRS_Resources }, { &hf_nr_rrc_twoPUCCH_Group, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPUCCH_Group }, { &hf_nr_rrc_dynamicSwitchSUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicSwitchSUL }, + { &hf_nr_rrc_simultaneousTxSUL_NonSUL_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_simultaneousTxSUL_NonSUL_v1530 }, { &hf_nr_rrc_pusch_DifferentTB_PerSlot, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_DifferentTB_PerSlot }, { &hf_nr_rrc_csi_ReportFramework, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_CSI_ReportFramework }, { NULL, 0, 0, NULL } @@ -23297,6 +33237,20 @@ dissect_nr_rrc_FeatureSetUplink(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } +static const per_sequence_t SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_sequence_of[1] = { + { &hf_nr_rrc_featureSetsUplink_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetUplink }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink(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_maxUplinkFeatureSets_OF_FeatureSetUplink, SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_sequence_of, + 1, maxUplinkFeatureSets, FALSE); + + return offset; +} + + static const value_string nr_rrc_T_channelBW_90mhz_01_vals[] = { { 0, "supported" }, { 0, NULL } @@ -23344,21 +33298,6 @@ dissect_nr_rrc_T_mimo_CB_PUSCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -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 per_sequence_t FeatureSetUplinkPerCC_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_SupportedBandwidth }, @@ -23366,7 +33305,6 @@ static const per_sequence_t FeatureSetUplinkPerCC_sequence[] = { { &hf_nr_rrc_mimo_CB_PUSCH, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_mimo_CB_PUSCH }, { &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_simultaneousTxSUL_NonSUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_simultaneousTxSUL_NonSUL }, { NULL, 0, 0, NULL } }; @@ -23379,48 +33317,6 @@ dissect_nr_rrc_FeatureSetUplinkPerCC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } -static const per_sequence_t SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_sequence_of[1] = { - { &hf_nr_rrc_featureSetsDownlink_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetDownlink }, -}; - -static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink(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_maxDownlinkFeatureSets_OF_FeatureSetDownlink, SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink_sequence_of, - 1, maxDownlinkFeatureSets, FALSE); - - return offset; -} - - -static const per_sequence_t SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_sequence_of[1] = { - { &hf_nr_rrc_featureSetsDownlinkPerCC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetDownlinkPerCC }, -}; - -static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC(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_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC, SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC_sequence_of, - 1, maxPerCC_FeatureSets, FALSE); - - return offset; -} - - -static const per_sequence_t SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_sequence_of[1] = { - { &hf_nr_rrc_featureSetsUplink_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetUplink }, -}; - -static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink(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_maxUplinkFeatureSets_OF_FeatureSetUplink, SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink_sequence_of, - 1, maxUplinkFeatureSets, FALSE); - - return offset; -} - - static const per_sequence_t SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC_sequence_of[1] = { { &hf_nr_rrc_featureSetsUplinkPerCC_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetUplinkPerCC }, }; @@ -23468,7 +33364,7 @@ dissect_nr_rrc_FreqBandInformationEUTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ } -static const value_string nr_rrc_AggregatedBandwith_vals[] = { +static const value_string nr_rrc_AggregatedBandwidth_vals[] = { { 0, "mhz50" }, { 1, "mhz100" }, { 2, "mhz150" }, @@ -23490,7 +33386,7 @@ static const value_string nr_rrc_AggregatedBandwith_vals[] = { static int -dissect_nr_rrc_AggregatedBandwith(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_AggregatedBandwidth(tvbuff_t *tvb _U_, int offset _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); @@ -23510,8 +33406,8 @@ dissect_nr_rrc_INTEGER_1_maxNrofServingCells(tvbuff_t *tvb _U_, int offset _U_, static const per_sequence_t FreqBandInformationNR_sequence[] = { { &hf_nr_rrc_bandNR , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorNR }, - { &hf_nr_rrc_maxBandwidthRequestedDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_AggregatedBandwith }, - { &hf_nr_rrc_maxBandwidthRequestedUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_AggregatedBandwith }, + { &hf_nr_rrc_maxBandwidthRequestedDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_AggregatedBandwidth }, + { &hf_nr_rrc_maxBandwidthRequestedUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_AggregatedBandwidth }, { &hf_nr_rrc_maxCarriersRequestedDL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNrofServingCells }, { &hf_nr_rrc_maxCarriersRequestedUL, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_maxNrofServingCells }, { NULL, 0, 0, NULL } @@ -23562,14 +33458,28 @@ dissect_nr_rrc_FreqBandList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const value_string nr_rrc_T_independentGapConfig_vals[] = { +static const per_sequence_t SEQUENCE_SIZE_1_maxBandsEUTRA_OF_FreqBandIndicatorEUTRA_sequence_of[1] = { + { &hf_nr_rrc_supportedBandListEUTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorEUTRA }, +}; + +static int +dissect_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_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_sequence_of(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_FreqBandIndicatorEUTRA, SEQUENCE_SIZE_1_maxBandsEUTRA_OF_FreqBandIndicatorEUTRA_sequence_of, + 1, maxBandsEUTRA, FALSE); + + return offset; +} + + +static const value_string nr_rrc_T_mfbi_EUTRA_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_mfbi_EUTRA(tvbuff_t *tvb _U_, int offset _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); @@ -23577,28 +33487,61 @@ dissect_nr_rrc_T_independentGapConfig(tvbuff_t *tvb _U_, int offset _U_, asn1_ct } -static const per_sequence_t MeasParametersMRDC_Common_sequence[] = { - { &hf_nr_rrc_independentGapConfig, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_independentGapConfig }, +static const value_string nr_rrc_T_multiNS_Pmax_EUTRA_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_multiNS_Pmax_EUTRA(tvbuff_t *tvb _U_, int offset _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_rs_SINR_MeasEUTRA_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_rs_SINR_MeasEUTRA(tvbuff_t *tvb _U_, int offset _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 EUTRA_ParametersCommon_sequence[] = { + { &hf_nr_rrc_mfbi_EUTRA , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_mfbi_EUTRA }, + { &hf_nr_rrc_modifiedMRP_BehaviorEUTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_32 }, + { &hf_nr_rrc_multiNS_Pmax_EUTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_multiNS_Pmax_EUTRA }, + { &hf_nr_rrc_rs_SINR_MeasEUTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rs_SINR_MeasEUTRA }, { 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_) { +dissect_nr_rrc_EUTRA_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_MeasParametersMRDC_Common, MeasParametersMRDC_Common_sequence); + ett_nr_rrc_EUTRA_ParametersCommon, EUTRA_ParametersCommon_sequence); return offset; } -static const value_string nr_rrc_T_sftd_MeasPSCell_vals[] = { +static const value_string nr_rrc_T_rsrqMeasWidebandEUTRA_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_rsrqMeasWidebandEUTRA(tvbuff_t *tvb _U_, int offset _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); @@ -23606,14 +33549,58 @@ dissect_nr_rrc_T_sftd_MeasPSCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } -static const value_string nr_rrc_T_sftd_MeasNR_Cell_vals[] = { +static const per_sequence_t EUTRA_ParametersXDD_Diff_sequence[] = { + { &hf_nr_rrc_rsrqMeasWidebandEUTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rsrqMeasWidebandEUTRA }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_EUTRA_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_EUTRA_ParametersXDD_Diff, EUTRA_ParametersXDD_Diff_sequence); + + return offset; +} + + +static const per_sequence_t EUTRA_Parameters_sequence[] = { + { &hf_nr_rrc_supportedBandListEUTRA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_FreqBandIndicatorEUTRA }, + { &hf_nr_rrc_eutra_ParametersCommon, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_ParametersCommon }, + { &hf_nr_rrc_eutra_ParametersXDD_Diff, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_ParametersXDD_Diff }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_EUTRA_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_EUTRA_Parameters, EUTRA_Parameters_sequence); + + return offset; +} + + +static const per_sequence_t InterRAT_Parameters_sequence[] = { + { &hf_nr_rrc_eutra_03 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_EUTRA_Parameters }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_InterRAT_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_InterRAT_Parameters, InterRAT_Parameters_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_lcp_Restriction_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_lcp_Restriction(tvbuff_t *tvb _U_, int offset _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); @@ -23621,29 +33608,105 @@ dissect_nr_rrc_T_sftd_MeasNR_Cell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -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 }, +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 value_string nr_rrc_T_lch_ToSCellRestriction_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_lch_ToSCellRestriction(tvbuff_t *tvb _U_, int offset _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_recommendedBitRate_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_recommendedBitRate(tvbuff_t *tvb _U_, int offset _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_recommendedBitRateQuery_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_recommendedBitRateQuery(tvbuff_t *tvb _U_, int offset _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_eag_1_sequence[] = { + { &hf_nr_rrc_recommendedBitRate, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_recommendedBitRate }, + { &hf_nr_rrc_recommendedBitRateQuery, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_recommendedBitRateQuery }, { 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_) { +dissect_nr_rrc_MAC_ParametersCommon_eag_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_eag(tvb, offset, actx, tree, MAC_ParametersCommon_eag_1_sequence); + + return offset; +} + + +static const per_sequence_t MAC_ParametersCommon_sequence[] = { + { &hf_nr_rrc_lcp_Restriction, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_lcp_Restriction }, + { &hf_nr_rrc_pucch_SpatialRelInfoMAC_CE, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_SpatialRelInfoMAC_CE }, + { &hf_nr_rrc_lch_ToSCellRestriction, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_lch_ToSCellRestriction }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_MAC_ParametersCommon_eag_1 }, + { 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_MeasParametersMRDC_XDD_Diff, MeasParametersMRDC_XDD_Diff_sequence); + ett_nr_rrc_MAC_ParametersCommon, MAC_ParametersCommon_sequence); return offset; } -static const value_string nr_rrc_T_simultaneousRxDataSSB_DiffNumerology_vals[] = { +static const value_string nr_rrc_T_skipUplinkTxDynamic_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_) { +dissect_nr_rrc_T_skipUplinkTxDynamic(tvbuff_t *tvb _U_, int offset _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); @@ -23651,59 +33714,256 @@ dissect_nr_rrc_T_simultaneousRxDataSSB_DiffNumerology(tvbuff_t *tvb _U_, int off } -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 }, +static const value_string nr_rrc_T_logicalChannelSR_DelayTimer_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +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); + + return offset; +} + + +static const value_string nr_rrc_T_longDRX_Cycle_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_longDRX_Cycle(tvbuff_t *tvb _U_, int offset _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_shortDRX_Cycle_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_shortDRX_Cycle(tvbuff_t *tvb _U_, int offset _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_multipleSR_Configurations_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +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, + 1, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_multipleConfiguredGrants_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_multipleConfiguredGrants(tvbuff_t *tvb _U_, int offset _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_ParametersXDD_Diff_sequence[] = { + { &hf_nr_rrc_skipUplinkTxDynamic_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_skipUplinkTxDynamic }, + { &hf_nr_rrc_logicalChannelSR_DelayTimer_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_logicalChannelSR_DelayTimer_01 }, + { &hf_nr_rrc_longDRX_Cycle, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_longDRX_Cycle }, + { &hf_nr_rrc_shortDRX_Cycle, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_shortDRX_Cycle }, + { &hf_nr_rrc_multipleSR_Configurations, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleSR_Configurations }, + { &hf_nr_rrc_multipleConfiguredGrants, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleConfiguredGrants }, { 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_) { +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_MeasParametersMRDC_FRX_Diff, MeasParametersMRDC_FRX_Diff_sequence); + ett_nr_rrc_MAC_ParametersXDD_Diff, MAC_ParametersXDD_Diff_sequence); return offset; } -static const per_sequence_t MeasParametersMRDC_sequence[] = { - { &hf_nr_rrc_measParametersMRDC_Common, ASN1_NO_EXTENSIONS , ASN1_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_OPTIONAL , dissect_nr_rrc_MeasParametersMRDC_FRX_Diff }, +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 } }; static int -dissect_nr_rrc_MeasParametersMRDC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MAC_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_MeasParametersMRDC, MeasParametersMRDC_sequence); + ett_nr_rrc_MAC_Parameters, MAC_Parameters_sequence); return offset; } -static const per_sequence_t RF_ParametersMRDC_sequence[] = { - { &hf_nr_rrc_supportedBandCombinationList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList }, - { &hf_nr_rrc_appliedFreqBandListFilter, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FreqBandList }, + +static int +dissect_nr_rrc_BIT_STRING_SIZE_22(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, + 22, 22, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_ssb_RLM_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ssb_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 value_string nr_rrc_T_ssb_AndCSI_RS_RLM_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_ssb_AndCSI_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 value_string nr_rrc_T_eventB_MeasAndReport_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_eventB_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 value_string nr_rrc_T_handoverFDD_TDD_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_handoverFDD_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_eutra_CGI_Reporting_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_eutra_CGI_Reporting(tvbuff_t *tvb _U_, int offset _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_nr_CGI_Reporting_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_nr_CGI_Reporting(tvbuff_t *tvb _U_, int offset _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 MeasAndMobParametersCommon_eag_1_sequence[] = { + { &hf_nr_rrc_eventB_MeasAndReport, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_eventB_MeasAndReport }, + { &hf_nr_rrc_handoverFDD_TDD, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_handoverFDD_TDD }, + { &hf_nr_rrc_eutra_CGI_Reporting, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_eutra_CGI_Reporting }, + { &hf_nr_rrc_nr_CGI_Reporting, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nr_CGI_Reporting }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_MeasAndMobParametersCommon_eag_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_eag(tvb, offset, actx, tree, MeasAndMobParametersCommon_eag_1_sequence); + + return offset; +} + + +static const per_sequence_t MeasAndMobParametersCommon_sequence[] = { + { &hf_nr_rrc_supportedGapPattern, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_22 }, + { &hf_nr_rrc_ssb_RLM , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_RLM }, + { &hf_nr_rrc_ssb_AndCSI_RS_RLM, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ssb_AndCSI_RS_RLM }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasAndMobParametersCommon_eag_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasAndMobParametersCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_ParametersMRDC, RF_ParametersMRDC_sequence); + ett_nr_rrc_MeasAndMobParametersCommon, MeasAndMobParametersCommon_sequence); return offset; } -static const value_string nr_rrc_T_splitSRB_WithOneUL_Path_vals[] = { +static const value_string nr_rrc_T_intraAndInterF_MeasAndReport_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -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_) { +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); @@ -23711,14 +33971,14 @@ dissect_nr_rrc_T_splitSRB_WithOneUL_Path(tvbuff_t *tvb _U_, int offset _U_, asn1 } -static const value_string nr_rrc_T_splitDRB_withUL_Both_MCG_SCG_vals[] = { +static const value_string nr_rrc_T_eventA_MeasAndReport_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_) { +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); @@ -23726,14 +33986,14 @@ dissect_nr_rrc_T_splitDRB_withUL_Both_MCG_SCG(tvbuff_t *tvb _U_, int offset _U_, } -static const value_string nr_rrc_T_srb3_vals[] = { +static const value_string nr_rrc_T_handoverInterF_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_) { +dissect_nr_rrc_T_handoverInterF(tvbuff_t *tvb _U_, int offset _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); @@ -23741,177 +34001,417 @@ dissect_nr_rrc_T_srb3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p } -static const per_sequence_t GeneralParametersMRDC_XDD_Diff_sequence[] = { - { &hf_nr_rrc_splitSRB_WithOneUL_Path, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_splitSRB_WithOneUL_Path }, - { &hf_nr_rrc_splitDRB_withUL_Both_MCG_SCG, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_splitDRB_withUL_Both_MCG_SCG }, - { &hf_nr_rrc_srb3 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_srb3 }, +static const value_string nr_rrc_T_handoverLTE_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_handoverLTE(tvbuff_t *tvb _U_, int offset _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_handover_eLTE_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_handover_eLTE(tvbuff_t *tvb _U_, int offset _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 MeasAndMobParametersXDD_Diff_eag_1_sequence[] = { + { &hf_nr_rrc_handoverInterF, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_handoverInterF }, + { &hf_nr_rrc_handoverLTE , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_handoverLTE }, + { &hf_nr_rrc_handover_eLTE, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_handover_eLTE }, { 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_) { +dissect_nr_rrc_MeasAndMobParametersXDD_Diff_eag_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_eag(tvb, offset, actx, tree, MeasAndMobParametersXDD_Diff_eag_1_sequence); + + return offset; +} + + +static const per_sequence_t MeasAndMobParametersXDD_Diff_sequence[] = { + { &hf_nr_rrc_intraAndInterF_MeasAndReport, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_intraAndInterF_MeasAndReport }, + { &hf_nr_rrc_eventA_MeasAndReport, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_eventA_MeasAndReport }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasAndMobParametersXDD_Diff_eag_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasAndMobParametersXDD_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); + ett_nr_rrc_MeasAndMobParametersXDD_Diff, MeasAndMobParametersXDD_Diff_sequence); return offset; } -static const per_sequence_t UE_MRDC_CapabilityAddXDD_Mode_sequence[] = { - { &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 }, +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 value_string nr_rrc_T_handoverInterF_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_handoverInterF_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_handoverLTE_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_handoverLTE_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_handover_eLTE_01_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_handover_eLTE_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 MeasAndMobParametersFRX_Diff_eag_1_sequence[] = { + { &hf_nr_rrc_handoverInterF_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_handoverInterF_01 }, + { &hf_nr_rrc_handoverLTE_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_handoverLTE_01 }, + { &hf_nr_rrc_handover_eLTE_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_handover_eLTE_01 }, { 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_) { +dissect_nr_rrc_MeasAndMobParametersFRX_Diff_eag_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_eag(tvb, offset, actx, tree, MeasAndMobParametersFRX_Diff_eag_1_sequence); + + return offset; +} + + +static const per_sequence_t MeasAndMobParametersFRX_Diff_sequence[] = { + { &hf_nr_rrc_ss_SINR_Meas , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ss_SINR_Meas }, + { &hf_nr_rrc_csi_RSRP_AndRSRQ_MeasWithSSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithSSB }, + { &hf_nr_rrc_csi_RSRP_AndRSRQ_MeasWithoutSSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithoutSSB }, + { &hf_nr_rrc_csi_SINR_Meas, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_SINR_Meas }, + { &hf_nr_rrc_csi_RS_RLM , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RS_RLM }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasAndMobParametersFRX_Diff_eag_1 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasAndMobParametersFRX_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_UE_MRDC_CapabilityAddXDD_Mode, UE_MRDC_CapabilityAddXDD_Mode_sequence); + ett_nr_rrc_MeasAndMobParametersFRX_Diff, MeasAndMobParametersFRX_Diff_sequence); return offset; } -static const per_sequence_t UE_MRDC_CapabilityAddFRX_Mode_sequence[] = { - { &hf_nr_rrc_measParametersMRDC_FRX_Diff, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasParametersMRDC_FRX_Diff }, +static const per_sequence_t MeasAndMobParameters_sequence[] = { + { &hf_nr_rrc_measAndMobParametersCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParametersCommon }, + { &hf_nr_rrc_measAndMobParametersXDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParametersXDD_Diff }, + { &hf_nr_rrc_measAndMobParametersFRX_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParametersFRX_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_) { +dissect_nr_rrc_MeasAndMobParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); + ett_nr_rrc_MeasAndMobParameters, MeasAndMobParameters_sequence); return offset; } -static const per_sequence_t SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination_sequence_of[1] = { - { &hf_nr_rrc_featureSetCombinations_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetCombination }, +static const value_string nr_rrc_T_independentGapConfig_vals[] = { + { 0, "supported" }, + { 0, NULL } }; + static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination(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_maxFeatureSetCombinations_OF_FeatureSetCombination, SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination_sequence_of, - 1, maxFeatureSetCombinations, FALSE); +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); return offset; } -static const per_sequence_t T_nonCriticalExtension_09_sequence[] = { +static const per_sequence_t MeasAndMobParametersMRDC_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_T_nonCriticalExtension_09(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MeasAndMobParametersMRDC_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_nonCriticalExtension_09, T_nonCriticalExtension_09_sequence); + ett_nr_rrc_MeasAndMobParametersMRDC_Common, MeasAndMobParametersMRDC_Common_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_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_featureSetCombinations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination }, - { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, - { &hf_nr_rrc_nonCriticalExtension_09, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_09 }, +static const value_string nr_rrc_T_sftd_MeasPSCell_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +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); + + return offset; +} + + +static const value_string nr_rrc_T_sftd_MeasNR_Cell_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +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); + + return offset; +} + + +static const per_sequence_t MeasAndMobParametersMRDC_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_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_MeasAndMobParametersMRDC_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_UE_MRDC_Capability, UE_MRDC_Capability_sequence); + ett_nr_rrc_MeasAndMobParametersMRDC_XDD_Diff, MeasAndMobParametersMRDC_XDD_Diff_sequence); return offset; } -static const per_sequence_t T_supportedROHC_Profiles_sequence[] = { - { &hf_nr_rrc_profile0x0000, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0001, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0002, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0003, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0004, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0006, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0101, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0102, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0103, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, - { &hf_nr_rrc_profile0x0104, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, +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 MeasAndMobParametersMRDC_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_T_supportedROHC_Profiles(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_MeasAndMobParametersMRDC_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_T_supportedROHC_Profiles, T_supportedROHC_Profiles_sequence); + ett_nr_rrc_MeasAndMobParametersMRDC_FRX_Diff, MeasAndMobParametersMRDC_FRX_Diff_sequence); return offset; } -static const value_string nr_rrc_T_maxNumberROHC_ContextSessions_vals[] = { - { 0, "cs2" }, - { 1, "cs4" }, - { 2, "cs8" }, - { 3, "cs12" }, - { 4, "cs16" }, - { 5, "cs24" }, - { 6, "cs32" }, - { 7, "cs48" }, - { 8, "cs64" }, - { 9, "cs128" }, - { 10, "cs256" }, - { 11, "cs512" }, - { 12, "cs1024" }, - { 13, "cs16384" }, - { 14, "spare2" }, - { 15, "spare1" }, +static const per_sequence_t MeasAndMobParametersMRDC_sequence[] = { + { &hf_nr_rrc_measAndMobParametersMRDC_Common, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParametersMRDC_Common }, + { &hf_nr_rrc_measAndMobParametersMRDC_XDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParametersMRDC_XDD_Diff }, + { &hf_nr_rrc_measAndMobParametersMRDC_FRX_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParametersMRDC_FRX_Diff }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_MeasAndMobParametersMRDC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_MeasAndMobParametersMRDC, MeasAndMobParametersMRDC_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_maxNumberConfiguredTCIstatesPerCC_vals[] = { + { 0, "n4" }, + { 1, "n8" }, + { 2, "n16" }, + { 3, "n32" }, + { 4, "n64" }, + { 5, "n128" }, { 0, NULL } }; static int -dissect_nr_rrc_T_maxNumberROHC_ContextSessions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_maxNumberConfiguredTCIstatesPerCC(tvbuff_t *tvb _U_, int offset _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); + 6, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_uplinkOnlyROHC_Profiles_vals[] = { - { 0, "supported" }, +static const value_string nr_rrc_T_maxNumberActiveTCI_PerBWP_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 3, "n8" }, { 0, NULL } }; static int -dissect_nr_rrc_T_uplinkOnlyROHC_Profiles(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_maxNumberActiveTCI_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, - 1, NULL, FALSE, 0, NULL); + 4, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_continueROHC_Context_vals[] = { +static const per_sequence_t T_tci_StatePDSCH_sequence[] = { + { &hf_nr_rrc_maxNumberConfiguredTCIstatesPerCC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberConfiguredTCIstatesPerCC }, + { &hf_nr_rrc_maxNumberActiveTCI_PerBWP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberActiveTCI_PerBWP }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_tci_StatePDSCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_tci_StatePDSCH, T_tci_StatePDSCH_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_additionalActiveTCI_StatePDCCH_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_continueROHC_Context(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_additionalActiveTCI_StatePDCCH(tvbuff_t *tvb _U_, int offset _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); @@ -23919,14 +34419,31 @@ dissect_nr_rrc_T_continueROHC_Context(tvbuff_t *tvb _U_, int offset _U_, asn1_ct } -static const value_string nr_rrc_T_outOfOrderDelivery_01_vals[] = { +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_outOfOrderDelivery_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_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); @@ -23934,14 +34451,14 @@ dissect_nr_rrc_T_outOfOrderDelivery_01(tvbuff_t *tvb _U_, int offset _U_, asn1_c } -static const value_string nr_rrc_T_shortSN_vals[] = { +static const value_string nr_rrc_T_periodicBeamReport_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_shortSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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); @@ -23949,33 +34466,29 @@ dissect_nr_rrc_T_shortSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ } -static const per_sequence_t PDCP_Parameters_sequence[] = { - { &hf_nr_rrc_supportedROHC_Profiles, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_supportedROHC_Profiles }, - { &hf_nr_rrc_maxNumberROHC_ContextSessions, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberROHC_ContextSessions }, - { &hf_nr_rrc_uplinkOnlyROHC_Profiles, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_uplinkOnlyROHC_Profiles }, - { &hf_nr_rrc_continueROHC_Context, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_continueROHC_Context }, - { &hf_nr_rrc_outOfOrderDelivery_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_outOfOrderDelivery_01 }, - { &hf_nr_rrc_shortSN , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_shortSN }, - { NULL, 0, 0, NULL } +static const value_string nr_rrc_T_aperiodicBeamReport_vals[] = { + { 0, "supported" }, + { 0, NULL } }; + static int -dissect_nr_rrc_PDCP_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_PDCP_Parameters, PDCP_Parameters_sequence); +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_am_WithShortSN_vals[] = { +static const value_string nr_rrc_T_sp_BeamReportPUCCH_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -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_) { +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); @@ -23983,14 +34496,14 @@ dissect_nr_rrc_T_am_WithShortSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -static const value_string nr_rrc_T_um_WithShortSN_vals[] = { +static const value_string nr_rrc_T_sp_BeamReportPUSCH_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -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_) { +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); @@ -23998,14 +34511,215 @@ dissect_nr_rrc_T_um_WithShortSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -static const value_string nr_rrc_T_um_WIthLongSN_vals[] = { +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_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_BeamManagementSSB_CSI_RS, BeamManagementSSB_CSI_RS_sequence); + + return offset; +} + + + +static int +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_02_vals[] = { + { 0, "n4" }, + { 1, "n7" }, + { 2, "n14" }, + { 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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_scs_30kHz_02_vals[] = { + { 0, "n4" }, + { 1, "n7" }, + { 2, "n14" }, + { 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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_scs_60kHz_03_vals[] = { + { 0, "n4" }, + { 1, "n7" }, + { 2, "n14" }, + { 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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_scs_120kHz_02_vals[] = { + { 0, "n4" }, + { 1, "n7" }, + { 2, "n14" }, + { 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, + 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_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_03 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_03 }, + { &hf_nr_rrc_scs_120kHz_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_120kHz_02 }, + { &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_um_WIthLongSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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); @@ -24013,30 +34727,57 @@ dissect_nr_rrc_T_um_WIthLongSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -static const per_sequence_t RLC_Parameters_sequence[] = { - { &hf_nr_rrc_am_WithShortSN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_am_WithShortSN }, - { &hf_nr_rrc_um_WithShortSN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_um_WithShortSN }, - { &hf_nr_rrc_um_WIthLongSN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_um_WIthLongSN }, +static const value_string nr_rrc_T_maxNumberSRS_ResourcePerSet_BM_vals[] = { + { 0, "n2" }, + { 1, "n4" }, + { 2, "n8" }, + { 3, "n16" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberSRS_ResourcePerSet_BM(tvbuff_t *tvb _U_, int offset _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_uplinkBeamManagement_sequence[] = { + { &hf_nr_rrc_maxNumberSRS_ResourcePerSet_BM, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberSRS_ResourcePerSet_BM }, + { &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_RLC_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_RLC_Parameters, RLC_Parameters_sequence); + ett_nr_rrc_T_uplinkBeamManagement, T_uplinkBeamManagement_sequence); return offset; } -static const value_string nr_rrc_T_lcp_Restriction_vals[] = { + +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_twoPortsPTRS_DL_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_lcp_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_twoPortsPTRS_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); @@ -24044,14 +34785,14 @@ 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[] = { +static const value_string nr_rrc_T_twoPortsPTRS_UL_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_) { +dissect_nr_rrc_T_twoPortsPTRS_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); @@ -24059,29 +34800,201 @@ dissect_nr_rrc_T_pucch_SpatialRelInfoMAC_CE(tvbuff_t *tvb _U_, int offset _U_, a } -static const per_sequence_t MAC_ParametersCommon_sequence[] = { - { &hf_nr_rrc_lcp_Restriction, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_lcp_Restriction }, - { &hf_nr_rrc_pucch_SpatialRelInfoMAC_CE, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pucch_SpatialRelInfoMAC_CE }, +static const value_string nr_rrc_T_scs_15kHz_03_vals[] = { + { 0, "sym2" }, + { 1, "sym4" }, + { 2, "sym8" }, + { 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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_scs_30kHz_03_vals[] = { + { 0, "sym4" }, + { 1, "sym8" }, + { 2, "sym14" }, + { 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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_scs_60kHz_04_vals[] = { + { 0, "sym8" }, + { 1, "sym14" }, + { 2, "sym28" }, + { 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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string nr_rrc_T_scs_120kHz_03_vals[] = { + { 0, "sym14" }, + { 1, "sym28" }, + { 2, "sym56" }, + { 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, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t T_beamReportTiming_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_04 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_04 }, + { &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_MAC_ParametersCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_beamReportTiming(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); + ett_nr_rrc_T_beamReportTiming, T_beamReportTiming_sequence); return offset; } -static const value_string nr_rrc_T_skipUplinkTxDynamic_vals[] = { +static const per_sequence_t PTRS_DensityRecommendationDL_sequence[] = { + { &hf_nr_rrc_frequencyDensity1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, + { &hf_nr_rrc_frequencyDensity2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, + { &hf_nr_rrc_timeDensity1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, + { &hf_nr_rrc_timeDensity2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, + { &hf_nr_rrc_timeDensity3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PTRS_DensityRecommendationDL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PTRS_DensityRecommendationDL, PTRS_DensityRecommendationDL_sequence); + + return offset; +} + + +static const per_sequence_t T_ptrs_DensityRecommendationSetDL_sequence[] = { + { &hf_nr_rrc_scs_15kHz_04 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationDL }, + { &hf_nr_rrc_scs_30kHz_04 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationDL }, + { &hf_nr_rrc_scs_60kHz_05 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationDL }, + { &hf_nr_rrc_scs_120kHz_04, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationDL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ptrs_DensityRecommendationSetDL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_ptrs_DensityRecommendationSetDL, T_ptrs_DensityRecommendationSetDL_sequence); + + return offset; +} + + +static const per_sequence_t PTRS_DensityRecommendationUL_sequence[] = { + { &hf_nr_rrc_frequencyDensity1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, + { &hf_nr_rrc_frequencyDensity2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, + { &hf_nr_rrc_timeDensity1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, + { &hf_nr_rrc_timeDensity2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, + { &hf_nr_rrc_timeDensity3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, + { &hf_nr_rrc_sampleDensity1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, + { &hf_nr_rrc_sampleDensity2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, + { &hf_nr_rrc_sampleDensity3, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, + { &hf_nr_rrc_sampleDensity4, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, + { &hf_nr_rrc_sampleDensity5, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_PTRS_DensityRecommendationUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_PTRS_DensityRecommendationUL, PTRS_DensityRecommendationUL_sequence); + + return offset; +} + + +static const per_sequence_t T_ptrs_DensityRecommendationSetUL_sequence[] = { + { &hf_nr_rrc_scs_15kHz_05 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationUL }, + { &hf_nr_rrc_scs_30kHz_05 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationUL }, + { &hf_nr_rrc_scs_60kHz_06 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationUL }, + { &hf_nr_rrc_scs_120kHz_05, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationUL }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_ptrs_DensityRecommendationSetUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_ptrs_DensityRecommendationSetUL, T_ptrs_DensityRecommendationSetUL_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_INTEGER_1_128(tvbuff_t *tvb _U_, int offset _U_, 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, 128U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t CSI_RS_ForTracking_sequence[] = { + { &hf_nr_rrc_burstLength , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_2 }, + { &hf_nr_rrc_maxSimultaneousResourceSetsPerCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_8 }, + { &hf_nr_rrc_maxConfiguredResourceSetsPerCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_64 }, + { &hf_nr_rrc_maxConfiguredResourceSetsAllCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_128 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_CSI_RS_ForTracking(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_ForTracking, CSI_RS_ForTracking_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_aperiodicTRS_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_skipUplinkTxDynamic(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_aperiodicTRS(tvbuff_t *tvb _U_, int offset _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); @@ -24089,14 +35002,106 @@ dissect_nr_rrc_T_skipUplinkTxDynamic(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } -static const value_string nr_rrc_T_logicalChannelSR_DelayTimer_01_vals[] = { +static const per_sequence_t MIMO_ParametersPerBand_sequence[] = { + { &hf_nr_rrc_tci_StatePDSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tci_StatePDSCH }, + { &hf_nr_rrc_additionalActiveTCI_StatePDCCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_additionalActiveTCI_StatePDCCH }, + { &hf_nr_rrc_pusch_TransCoherence, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_TransCoherence }, + { &hf_nr_rrc_beamCorrespondence, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_beamCorrespondence }, + { &hf_nr_rrc_periodicBeamReport, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_periodicBeamReport }, + { &hf_nr_rrc_aperiodicBeamReport, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_aperiodicBeamReport }, + { &hf_nr_rrc_sp_BeamReportPUCCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_sp_BeamReportPUCCH }, + { &hf_nr_rrc_sp_BeamReportPUSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_sp_BeamReportPUSCH }, + { &hf_nr_rrc_beamManagementSSB_CSI_RS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BeamManagementSSB_CSI_RS }, + { &hf_nr_rrc_maxNumberRxBeam, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_8 }, + { &hf_nr_rrc_maxNumberRxTxBeamSwitchDL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberRxTxBeamSwitchDL }, + { &hf_nr_rrc_maxNumberNonGroupBeamReporting, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberNonGroupBeamReporting }, + { &hf_nr_rrc_groupBeamReporting, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_groupBeamReporting }, + { &hf_nr_rrc_uplinkBeamManagement, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_uplinkBeamManagement }, + { &hf_nr_rrc_maxNumberCSI_RS_BFR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_64 }, + { &hf_nr_rrc_maxNumberSSB_BFR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_64 }, + { &hf_nr_rrc_maxNumberCSI_RS_SSB_BFR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_256 }, + { &hf_nr_rrc_twoPortsPTRS_DL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPortsPTRS_DL }, + { &hf_nr_rrc_twoPortsPTRS_UL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPortsPTRS_UL }, + { &hf_nr_rrc_supportedSRS_Resources, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SRS_Resources }, + { &hf_nr_rrc_maxNumberSimultaneousSRS_PerCC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_4 }, + { &hf_nr_rrc_beamReportTiming, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_beamReportTiming }, + { &hf_nr_rrc_ptrs_DensityRecommendationSetDL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ptrs_DensityRecommendationSetDL }, + { &hf_nr_rrc_ptrs_DensityRecommendationSetUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ptrs_DensityRecommendationSetUL }, + { &hf_nr_rrc_csi_RS_ForTracking, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CSI_RS_ForTracking }, + { &hf_nr_rrc_aperiodicTRS , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_aperiodicTRS }, + { 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 per_sequence_t T_supportedROHC_Profiles_sequence[] = { + { &hf_nr_rrc_profile0x0000, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0001, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0002, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0003, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0004, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0006, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0101, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0102, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0103, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { &hf_nr_rrc_profile0x0104, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BOOLEAN }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_supportedROHC_Profiles(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_supportedROHC_Profiles, T_supportedROHC_Profiles_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_maxNumberROHC_ContextSessions_vals[] = { + { 0, "cs2" }, + { 1, "cs4" }, + { 2, "cs8" }, + { 3, "cs12" }, + { 4, "cs16" }, + { 5, "cs24" }, + { 6, "cs32" }, + { 7, "cs48" }, + { 8, "cs64" }, + { 9, "cs128" }, + { 10, "cs256" }, + { 11, "cs512" }, + { 12, "cs1024" }, + { 13, "cs16384" }, + { 14, "spare2" }, + { 15, "spare1" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_maxNumberROHC_ContextSessions(tvbuff_t *tvb _U_, int offset _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_uplinkOnlyROHC_Profiles_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_uplinkOnlyROHC_Profiles(tvbuff_t *tvb _U_, int offset _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); @@ -24104,14 +35109,14 @@ dissect_nr_rrc_T_logicalChannelSR_DelayTimer_01(tvbuff_t *tvb _U_, int offset _U } -static const value_string nr_rrc_T_longDRX_Cycle_vals[] = { +static const value_string nr_rrc_T_continueROHC_Context_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_longDRX_Cycle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_continueROHC_Context(tvbuff_t *tvb _U_, int offset _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); @@ -24119,14 +35124,14 @@ dissect_nr_rrc_T_longDRX_Cycle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -static const value_string nr_rrc_T_shortDRX_Cycle_vals[] = { +static const value_string nr_rrc_T_outOfOrderDelivery_01_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_shortDRX_Cycle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_outOfOrderDelivery_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); @@ -24134,14 +35139,14 @@ dissect_nr_rrc_T_shortDRX_Cycle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a } -static const value_string nr_rrc_T_multipleSR_Configurations_vals[] = { +static const value_string nr_rrc_T_shortSN_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -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_) { +dissect_nr_rrc_T_shortSN(tvbuff_t *tvb _U_, int offset _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); @@ -24149,14 +35154,14 @@ dissect_nr_rrc_T_multipleSR_Configurations(tvbuff_t *tvb _U_, int offset _U_, as } -static const value_string nr_rrc_T_multipleConfiguredGrants_vals[] = { +static const value_string nr_rrc_T_pdcp_DuplicationSRB3_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_multipleConfiguredGrants(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_DuplicationSRB3(tvbuff_t *tvb _U_, int offset _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); @@ -24164,35 +35169,82 @@ dissect_nr_rrc_T_multipleConfiguredGrants(tvbuff_t *tvb _U_, int offset _U_, asn } -static const per_sequence_t MAC_ParametersXDD_Diff_sequence[] = { - { &hf_nr_rrc_skipUplinkTxDynamic_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_skipUplinkTxDynamic }, - { &hf_nr_rrc_logicalChannelSR_DelayTimer_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_logicalChannelSR_DelayTimer_01 }, - { &hf_nr_rrc_longDRX_Cycle, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_longDRX_Cycle }, - { &hf_nr_rrc_shortDRX_Cycle, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_shortDRX_Cycle }, - { &hf_nr_rrc_multipleSR_Configurations, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleSR_Configurations }, - { &hf_nr_rrc_multipleConfiguredGrants, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleConfiguredGrants }, +static const value_string nr_rrc_T_pdcp_DuplicationMCG_OrSCG_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdcp_DuplicationMCG_OrSCG(tvbuff_t *tvb _U_, int offset _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_supportedROHC_Profiles, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_supportedROHC_Profiles }, + { &hf_nr_rrc_maxNumberROHC_ContextSessions, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_maxNumberROHC_ContextSessions }, + { &hf_nr_rrc_uplinkOnlyROHC_Profiles, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_uplinkOnlyROHC_Profiles }, + { &hf_nr_rrc_continueROHC_Context, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_continueROHC_Context }, + { &hf_nr_rrc_outOfOrderDelivery_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_outOfOrderDelivery_01 }, + { &hf_nr_rrc_shortSN , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_shortSN }, + { &hf_nr_rrc_pdcp_DuplicationSRB3, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcp_DuplicationSRB3 }, + { &hf_nr_rrc_pdcp_DuplicationMCG_OrSCG, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcp_DuplicationMCG_OrSCG }, { 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_) { +dissect_nr_rrc_PDCP_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_MAC_ParametersXDD_Diff, MAC_ParametersXDD_Diff_sequence); + ett_nr_rrc_PDCP_Parameters, PDCP_Parameters_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 }, +static const value_string nr_rrc_T_pdcp_DuplicationSplitSRB_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdcp_DuplicationSplitSRB(tvbuff_t *tvb _U_, int offset _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_pdcp_DuplicationSplitDRB_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_pdcp_DuplicationSplitDRB(tvbuff_t *tvb _U_, int offset _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_ParametersMRDC_sequence[] = { + { &hf_nr_rrc_pdcp_DuplicationSplitSRB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcp_DuplicationSplitSRB }, + { &hf_nr_rrc_pdcp_DuplicationSplitDRB, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcp_DuplicationSplitDRB }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_MAC_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_PDCP_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_MAC_Parameters, MAC_Parameters_sequence); + ett_nr_rrc_PDCP_ParametersMRDC, PDCP_ParametersMRDC_sequence); return offset; } @@ -24709,6 +35761,34 @@ dissect_nr_rrc_T_bwp_SwitchingDelay(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } +static const value_string nr_rrc_T_eutra_RS_SINR_measurement_vals[] = { + { 0, "supported" }, + { 0, NULL } +}; + + +static int +dissect_nr_rrc_T_eutra_RS_SINR_measurement(tvbuff_t *tvb _U_, int offset _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_ParametersCommon_eag_1_sequence[] = { + { &hf_nr_rrc_eutra_RS_SINR_measurement, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_eutra_RS_SINR_measurement }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_Phy_ParametersCommon_eag_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_eag(tvb, offset, actx, tree, Phy_ParametersCommon_eag_1_sequence); + + return offset; +} + + static const per_sequence_t Phy_ParametersCommon_sequence[] = { { &hf_nr_rrc_csi_RS_CFRA_ForHO, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RS_CFRA_ForHO }, { &hf_nr_rrc_dynamicPRB_BundlingDL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_dynamicPRB_BundlingDL }, @@ -24744,6 +35824,7 @@ static const per_sequence_t Phy_ParametersCommon_sequence[] = { { &hf_nr_rrc_rateMatchingResrcSetSemi_Static, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rateMatchingResrcSetSemi_Static }, { &hf_nr_rrc_rateMatchingResrcSetDynamic, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rateMatchingResrcSetDynamic }, { &hf_nr_rrc_bwp_SwitchingDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_SwitchingDelay }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_Phy_ParametersCommon_eag_1 }, { NULL, 0, 0, NULL } }; @@ -24850,7 +35931,7 @@ dissect_nr_rrc_T_dynamicSFI_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static const value_string nr_rrc_T_supportedDMRS_TypeDL_vals[] = { { 0, "type1" }, - { 1, "type2" }, + { 1, "type1And2" }, { 0, NULL } }; @@ -24866,7 +35947,7 @@ dissect_nr_rrc_T_supportedDMRS_TypeDL(tvbuff_t *tvb _U_, int offset _U_, asn1_ct static const value_string nr_rrc_T_supportedDMRS_TypeUL_vals[] = { { 0, "type1" }, - { 1, "type2" }, + { 1, "type1And2" }, { 0, NULL } }; @@ -25105,16 +36186,11 @@ dissect_nr_rrc_T_pusch_LBRM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -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); +dissect_nr_rrc_INTEGER_4_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, + 4U, 16U, NULL, FALSE); return offset; } @@ -25339,7 +36415,7 @@ static const per_sequence_t Phy_ParametersFRX_Diff_sequence[] = { { &hf_nr_rrc_twoPUCCH_AnyOthersInSlot, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPUCCH_AnyOthersInSlot }, { &hf_nr_rrc_intraSlotFreqHopping_PUSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_intraSlotFreqHopping_PUSCH }, { &hf_nr_rrc_pusch_LBRM , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_LBRM }, - { &hf_nr_rrc_pdcch_BlindDetectionCA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcch_BlindDetectionCA }, + { &hf_nr_rrc_pdcch_BlindDetectionCA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_4_16 }, { &hf_nr_rrc_tpc_PUSCH_RNTI_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tpc_PUSCH_RNTI }, { &hf_nr_rrc_tpc_PUCCH_RNTI_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tpc_PUCCH_RNTI }, { &hf_nr_rrc_tpc_SRS_RNTI_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tpc_SRS_RNTI }, @@ -25380,14 +36456,14 @@ dissect_nr_rrc_T_pdcchMonitoringSingleOccasion(tvbuff_t *tvb _U_, int offset _U_ } -static const value_string nr_rrc_T_scs_60kHz_03_vals[] = { +static const value_string nr_rrc_T_scs_60kHz_05_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_) { +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, 1, NULL, FALSE, 0, NULL); @@ -25428,7 +36504,7 @@ dissect_nr_rrc_T_pdsch_RE_MappingFR1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static const per_sequence_t Phy_ParametersFR1_sequence[] = { { &hf_nr_rrc_pdcchMonitoringSingleOccasion, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdcchMonitoringSingleOccasion }, - { &hf_nr_rrc_scs_60kHz_03 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_03 }, + { &hf_nr_rrc_scs_60kHz_07 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_60kHz_05 }, { &hf_nr_rrc_pdsch_256QAM_FR1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_256QAM_FR1 }, { &hf_nr_rrc_pdsch_RE_MappingFR1, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_RE_MappingFR1 }, { NULL, 0, 0, NULL } @@ -25507,98 +36583,97 @@ dissect_nr_rrc_Phy_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -static const value_string nr_rrc_T_maxNumberConfiguredTCIstatesPerCC_vals[] = { - { 0, "n4" }, - { 1, "n8" }, - { 2, "n16" }, - { 3, "n32" }, - { 4, "n64" }, - { 0, NULL } -}; - static int -dissect_nr_rrc_T_maxNumberConfiguredTCIstatesPerCC(tvbuff_t *tvb _U_, int offset _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_INTEGER_1_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, + 1U, 5U, NULL, FALSE); return offset; } -static const value_string nr_rrc_T_maxNumberActiveTCI_PerBWP_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 2, "n4" }, - { 3, "n8" }, +static const value_string nr_rrc_T_numberOfAggregatedPRB_vals[] = { + { 0, "n50" }, + { 1, "n75" }, + { 2, "n100" }, + { 3, "n125" }, + { 4, "n150" }, + { 5, "n175" }, + { 6, "n200" }, + { 7, "n225" }, + { 8, "n250" }, + { 9, "n275" }, + { 10, "n300" }, + { 11, "n350" }, + { 12, "n400" }, + { 13, "n450" }, + { 14, "n500" }, + { 15, "spare" }, { 0, NULL } }; static int -dissect_nr_rrc_T_maxNumberActiveTCI_PerBWP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_numberOfAggregatedPRB(tvbuff_t *tvb _U_, int offset _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); + 16, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t T_tci_StatePDSCH_sequence[] = { - { &hf_nr_rrc_maxNumberConfiguredTCIstatesPerCC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberConfiguredTCIstatesPerCC }, - { &hf_nr_rrc_maxNumberActiveTCI_PerBWP, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberActiveTCI_PerBWP }, +static const per_sequence_t NAICS_Capability_Entry_sequence[] = { + { &hf_nr_rrc_numberOfNAICS_CapableCC, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_5 }, + { &hf_nr_rrc_numberOfAggregatedPRB, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_numberOfAggregatedPRB }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_tci_StatePDSCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_NAICS_Capability_Entry(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_tci_StatePDSCH, T_tci_StatePDSCH_sequence); + ett_nr_rrc_NAICS_Capability_Entry, NAICS_Capability_Entry_sequence); return offset; } -static const value_string nr_rrc_T_additionalActiveTCI_StatePDCCH_vals[] = { - { 0, "supported" }, - { 0, NULL } +static const per_sequence_t SEQUENCE_SIZE_1_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry_sequence_of[1] = { + { &hf_nr_rrc_naics_Capability_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_NAICS_Capability_Entry }, }; - static int -dissect_nr_rrc_T_additionalActiveTCI_StatePDCCH(tvbuff_t *tvb _U_, int offset _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_SEQUENCE_SIZE_1_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry(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_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry, SEQUENCE_SIZE_1_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry_sequence_of, + 1, maxNrofNAICS_Entries, FALSE); return offset; } -static const value_string nr_rrc_T_pusch_TransCoherence_vals[] = { - { 0, "nonCoherent" }, - { 1, "partialNonCoherent" }, - { 2, "fullCoherent" }, - { 0, NULL } +static const per_sequence_t Phy_ParametersMRDC_sequence[] = { + { &hf_nr_rrc_naics_Capability_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry }, + { NULL, 0, 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); +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_Phy_ParametersMRDC, Phy_ParametersMRDC_sequence); return offset; } -static const value_string nr_rrc_T_beamCorrespondence_vals[] = { +static const value_string nr_rrc_T_extendedCP_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_) { +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); @@ -25606,14 +36681,14 @@ dissect_nr_rrc_T_beamCorrespondence(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } -static const value_string nr_rrc_T_periodicBeamReport_vals[] = { +static const value_string nr_rrc_T_multipleTCI_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_) { +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); @@ -25621,14 +36696,14 @@ dissect_nr_rrc_T_periodicBeamReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } -static const value_string nr_rrc_T_aperiodicBeamReport_vals[] = { +static const value_string nr_rrc_T_bwp_WithoutRestriction_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_) { +dissect_nr_rrc_T_bwp_WithoutRestriction(tvbuff_t *tvb _U_, int offset _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); @@ -25636,29 +36711,30 @@ dissect_nr_rrc_T_aperiodicBeamReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } -static const value_string nr_rrc_T_sp_BeamReportPUCCH_vals[] = { - { 0, "supported" }, +static const value_string nr_rrc_T_bwp_SameNumerology_vals[] = { + { 0, "upto2" }, + { 1, "upto4" }, { 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_) { +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, - 1, NULL, FALSE, 0, NULL); + 2, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_sp_BeamReportPUSCH_vals[] = { - { 0, "supported" }, +static const value_string nr_rrc_T_bwp_DiffNumerology_vals[] = { + { 0, "upto4" }, { 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_) { +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); @@ -25666,491 +36742,304 @@ dissect_nr_rrc_T_sp_BeamReportPUSCH(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } -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_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_BeamManagementSSB_CSI_RS, BeamManagementSSB_CSI_RS_sequence); - - return offset; -} - - - -static int -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_02_vals[] = { - { 0, "n4" }, - { 1, "n7" }, - { 2, "n14" }, +static const value_string nr_rrc_T_crossCarrierScheduling_SameSCS_vals[] = { + { 0, "supported" }, { 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_) { +dissect_nr_rrc_T_crossCarrierScheduling_SameSCS(tvbuff_t *tvb _U_, int offset _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 value_string nr_rrc_T_scs_30kHz_02_vals[] = { - { 0, "n4" }, - { 1, "n7" }, - { 2, "n14" }, +static const value_string nr_rrc_T_pdsch_256QAM_FR2_vals[] = { + { 0, "supported" }, { 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_) { +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, - 3, NULL, FALSE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_scs_60kHz_04_vals[] = { - { 0, "n4" }, - { 1, "n7" }, - { 2, "n14" }, +static const value_string nr_rrc_T_pusch_256QAM_vals[] = { + { 0, "supported" }, { 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_) { +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, - 3, NULL, FALSE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_scs_120kHz_02_vals[] = { - { 0, "n4" }, - { 1, "n7" }, - { 2, "n14" }, +static const value_string nr_rrc_T_ue_PowerClass_vals[] = { + { 0, "pc1" }, + { 1, "pc2" }, + { 2, "pc3" }, + { 3, "pc4" }, { 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_) { +dissect_nr_rrc_T_ue_PowerClass(tvbuff_t *tvb _U_, int offset _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); + 4, NULL, FALSE, 0, NULL); return offset; } -static const value_string nr_rrc_T_scs_240kHz_vals[] = { - { 0, "n4" }, - { 1, "n7" }, - { 2, "n14" }, +static const value_string nr_rrc_T_rateMatchingLTE_CRS_vals[] = { + { 0, "supported" }, { 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_) { +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, - 3, NULL, FALSE, 0, NULL); + 1, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t T_maxNumberRxTxBeamSwitchDL_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 }, - { &hf_nr_rrc_scs_240kHz , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scs_240kHz }, +static const per_sequence_t T_fr1_sequence[] = { + { &hf_nr_rrc_scs_15kHz_06 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_10 }, + { &hf_nr_rrc_scs_30kHz_06 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_10 }, + { &hf_nr_rrc_scs_60kHz_08 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_10 }, { 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_) { +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_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_maxNumberRxTxBeamSwitchDL, T_maxNumberRxTxBeamSwitchDL_sequence); + ett_nr_rrc_T_fr1, T_fr1_sequence); return offset; } -static const value_string nr_rrc_T_maxNumberNonGroupBeamReporting_vals[] = { - { 0, "n1" }, - { 1, "n2" }, - { 2, "n4" }, - { 0, NULL } +static const per_sequence_t T_fr2_sequence[] = { + { &hf_nr_rrc_scs_60kHz_09 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_3 }, + { &hf_nr_rrc_scs_120kHz_06, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_3 }, + { NULL, 0, 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); +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_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_fr2, T_fr2_sequence); return offset; } -static const value_string nr_rrc_T_groupBeamReporting_vals[] = { - { 0, "supported" }, +static const value_string nr_rrc_T_channelBWs_DL_v1530_vals[] = { + { 0, "fr1" }, + { 1, "fr2" }, { 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, "n2" }, - { 1, "n4" }, - { 2, "n8" }, - { 3, "n16" }, - { 4, "n32" }, - { 0, NULL } +static const per_choice_t T_channelBWs_DL_v1530_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_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, - 5, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_channelBWs_DL_v1530(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_channelBWs_DL_v1530, T_channelBWs_DL_v1530_choice, + NULL); return offset; } -static const per_sequence_t T_uplinkBeamManagement_sequence[] = { - { &hf_nr_rrc_maxNumberSRS_ResourcePerSet_01, 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 }, +static const per_sequence_t T_fr1_01_sequence[] = { + { &hf_nr_rrc_scs_15kHz_06 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_10 }, + { &hf_nr_rrc_scs_30kHz_06 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_10 }, + { &hf_nr_rrc_scs_60kHz_08 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_10 }, { 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_) { +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_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_twoPortsPTRS_DL_vals[] = { - { 0, "supported" }, - { 0, NULL } -}; - - -static int -dissect_nr_rrc_T_twoPortsPTRS_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_twoPortsPTRS_UL_vals[] = { - { 0, "supported" }, - { 0, NULL } -}; - - -static int -dissect_nr_rrc_T_twoPortsPTRS_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); + ett_nr_rrc_T_fr1_01, T_fr1_01_sequence); return offset; } -static const value_string nr_rrc_T_scs_15kHz_03_vals[] = { - { 0, "sym2" }, - { 1, "sym4" }, - { 2, "sym8" }, - { 0, NULL } +static const per_sequence_t T_fr2_01_sequence[] = { + { &hf_nr_rrc_scs_60kHz_09 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_3 }, + { &hf_nr_rrc_scs_120kHz_06, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_3 }, + { NULL, 0, 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, - 3, NULL, FALSE, 0, NULL); +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_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_fr2_01, T_fr2_01_sequence); return offset; } -static const value_string nr_rrc_T_scs_30kHz_03_vals[] = { - { 0, "sym4" }, - { 1, "sym8" }, - { 2, "sym14" }, +static const value_string nr_rrc_T_channelBWs_UL_v1530_vals[] = { + { 0, "fr1" }, + { 1, "fr2" }, { 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, - 3, NULL, FALSE, 0, NULL); - - return offset; -} - - -static const value_string nr_rrc_T_scs_60kHz_05_vals[] = { - { 0, "sym8" }, - { 1, "sym14" }, - { 2, "sym28" }, - { 0, NULL } +static const per_choice_t T_channelBWs_UL_v1530_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_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, - 3, NULL, FALSE, 0, NULL); +dissect_nr_rrc_T_channelBWs_UL_v1530(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_channelBWs_UL_v1530, T_channelBWs_UL_v1530_choice, + NULL); return offset; } -static const value_string nr_rrc_T_scs_120kHz_03_vals[] = { - { 0, "sym14" }, - { 1, "sym28" }, - { 2, "sym56" }, +static const value_string nr_rrc_T_maxUplinkDutyCycle_vals[] = { + { 0, "n60" }, + { 1, "n70" }, + { 2, "n80" }, + { 3, "n90" }, + { 4, "n100" }, { 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_) { +dissect_nr_rrc_T_maxUplinkDutyCycle(tvbuff_t *tvb _U_, int offset _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_beamReportTiming_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_beamReportTiming(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_beamReportTiming, T_beamReportTiming_sequence); + 5, NULL, FALSE, 0, NULL); return offset; } -static const per_sequence_t PTRS_DensityRecommendationDL_sequence[] = { - { &hf_nr_rrc_frequencyDensity1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, - { &hf_nr_rrc_frequencyDensity2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, - { &hf_nr_rrc_timeDensity1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, - { &hf_nr_rrc_timeDensity2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, - { &hf_nr_rrc_timeDensity3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, +static const per_sequence_t BandNR_eag_1_sequence[] = { + { &hf_nr_rrc_maxUplinkDutyCycle, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_maxUplinkDutyCycle }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_PTRS_DensityRecommendationDL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_PTRS_DensityRecommendationDL, PTRS_DensityRecommendationDL_sequence); +dissect_nr_rrc_BandNR_eag_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_eag(tvb, offset, actx, tree, BandNR_eag_1_sequence); return offset; } -static const per_sequence_t T_ptrs_DensityRecommendationSetDL_sequence[] = { - { &hf_nr_rrc_scs_15kHz_04 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationDL }, - { &hf_nr_rrc_scs_30kHz_04 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationDL }, - { &hf_nr_rrc_scs_60kHz_06 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationDL }, - { &hf_nr_rrc_scs_120kHz_04, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationDL }, +static const per_sequence_t BandNR_sequence[] = { + { &hf_nr_rrc_bandNR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorNR }, + { &hf_nr_rrc_modifiedMPR_Behaviour, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_8 }, + { &hf_nr_rrc_mimo_ParametersPerBand, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_ParametersPerBand }, + { &hf_nr_rrc_extendedCP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_extendedCP }, + { &hf_nr_rrc_multipleTCI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleTCI }, + { &hf_nr_rrc_bwp_WithoutRestriction, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_WithoutRestriction }, + { &hf_nr_rrc_bwp_SameNumerology, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_SameNumerology }, + { &hf_nr_rrc_bwp_DiffNumerology, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_DiffNumerology }, + { &hf_nr_rrc_crossCarrierScheduling_SameSCS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_crossCarrierScheduling_SameSCS }, + { &hf_nr_rrc_pdsch_256QAM_FR2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_256QAM_FR2 }, + { &hf_nr_rrc_pusch_256QAM , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_256QAM }, + { &hf_nr_rrc_ue_PowerClass, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ue_PowerClass }, + { &hf_nr_rrc_rateMatchingLTE_CRS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rateMatchingLTE_CRS }, + { &hf_nr_rrc_channelBWs_DL_v1530, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_channelBWs_DL_v1530 }, + { &hf_nr_rrc_channelBWs_UL_v1530, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_channelBWs_UL_v1530 }, + { &dummy_hf_nr_rrc_eag_field, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandNR_eag_1 }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_ptrs_DensityRecommendationSetDL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_BandNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_ptrs_DensityRecommendationSetDL, T_ptrs_DensityRecommendationSetDL_sequence); + ett_nr_rrc_BandNR, BandNR_sequence); return offset; } -static const per_sequence_t PTRS_DensityRecommendationUL_sequence[] = { - { &hf_nr_rrc_frequencyDensity1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, - { &hf_nr_rrc_frequencyDensity2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, - { &hf_nr_rrc_timeDensity1 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, - { &hf_nr_rrc_timeDensity2 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, - { &hf_nr_rrc_timeDensity3 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_0_29 }, - { &hf_nr_rrc_sampleDensity1, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, - { &hf_nr_rrc_sampleDensity2, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, - { &hf_nr_rrc_sampleDensity3, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, - { &hf_nr_rrc_sampleDensity4, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, - { &hf_nr_rrc_sampleDensity5, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_276 }, - { NULL, 0, 0, NULL } +static const per_sequence_t SEQUENCE_SIZE_1_maxBands_OF_BandNR_sequence_of[1] = { + { &hf_nr_rrc_supportedBandListNR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandNR }, }; static int -dissect_nr_rrc_PTRS_DensityRecommendationUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_PTRS_DensityRecommendationUL, PTRS_DensityRecommendationUL_sequence); +dissect_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR(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_maxBands_OF_BandNR, SEQUENCE_SIZE_1_maxBands_OF_BandNR_sequence_of, + 1, maxBands, FALSE); return offset; } -static const per_sequence_t T_ptrs_DensityRecommendationSetUL_sequence[] = { - { &hf_nr_rrc_scs_15kHz_05 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationUL }, - { &hf_nr_rrc_scs_30kHz_05 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationUL }, - { &hf_nr_rrc_scs_60kHz_07 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationUL }, - { &hf_nr_rrc_scs_120kHz_05, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PTRS_DensityRecommendationUL }, +static const per_sequence_t RF_Parameters_sequence[] = { + { &hf_nr_rrc_supportedBandListNR, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR }, + { &hf_nr_rrc_supportedBandCombinationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList }, + { &hf_nr_rrc_appliedFreqBandListFilter, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_FreqBandList }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_ptrs_DensityRecommendationSetUL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_T_ptrs_DensityRecommendationSetUL, T_ptrs_DensityRecommendationSetUL_sequence); - - return offset; -} - - - -static int -dissect_nr_rrc_INTEGER_1_128(tvbuff_t *tvb _U_, int offset _U_, 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, 128U, NULL, FALSE); + ett_nr_rrc_RF_Parameters, RF_Parameters_sequence); return offset; } -static const per_sequence_t CSI_RS_ForTracking_sequence[] = { - { &hf_nr_rrc_burstLength , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_2 }, - { &hf_nr_rrc_maxSimultaneousResourceSetsPerCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_8 }, - { &hf_nr_rrc_maxConfiguredResourceSetsPerCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_64 }, - { &hf_nr_rrc_maxConfiguredResourceSetsAllCC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_INTEGER_1_128 }, +static const per_sequence_t RF_ParametersMRDC_sequence[] = { + { &hf_nr_rrc_supportedBandCombinationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList }, + { &hf_nr_rrc_appliedFreqBandListFilter, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_FreqBandList }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_CSI_RS_ForTracking(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_CSI_RS_ForTracking, CSI_RS_ForTracking_sequence); + ett_nr_rrc_RF_ParametersMRDC, RF_ParametersMRDC_sequence); return offset; } -static const value_string nr_rrc_T_aperiodicTRS_vals[] = { +static const value_string nr_rrc_T_am_WithShortSN_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_aperiodicTRS(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); @@ -26158,54 +37047,14 @@ dissect_nr_rrc_T_aperiodicTRS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -static const per_sequence_t MIMO_ParametersPerBand_sequence[] = { - { &hf_nr_rrc_tci_StatePDSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_tci_StatePDSCH }, - { &hf_nr_rrc_additionalActiveTCI_StatePDCCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_additionalActiveTCI_StatePDCCH }, - { &hf_nr_rrc_pusch_TransCoherence, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_TransCoherence }, - { &hf_nr_rrc_beamCorrespondence, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_beamCorrespondence }, - { &hf_nr_rrc_periodicBeamReport, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_periodicBeamReport }, - { &hf_nr_rrc_aperiodicBeamReport, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_aperiodicBeamReport }, - { &hf_nr_rrc_sp_BeamReportPUCCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_sp_BeamReportPUCCH }, - { &hf_nr_rrc_sp_BeamReportPUSCH, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_sp_BeamReportPUSCH }, - { &hf_nr_rrc_beamManagementSSB_CSI_RS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BeamManagementSSB_CSI_RS }, - { &hf_nr_rrc_maxNumberRxBeam, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_2_8 }, - { &hf_nr_rrc_maxNumberRxTxBeamSwitchDL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberRxTxBeamSwitchDL }, - { &hf_nr_rrc_maxNumberNonGroupBeamReporting, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_maxNumberNonGroupBeamReporting }, - { &hf_nr_rrc_groupBeamReporting, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_groupBeamReporting }, - { &hf_nr_rrc_uplinkBeamManagement, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_uplinkBeamManagement }, - { &hf_nr_rrc_maxNumberCSI_RS_BFR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_64 }, - { &hf_nr_rrc_maxNumberSSB_BFR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_64 }, - { &hf_nr_rrc_maxNumberCSI_RS_SSB_BFR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_256 }, - { &hf_nr_rrc_twoPortsPTRS_DL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPortsPTRS_DL }, - { &hf_nr_rrc_twoPortsPTRS_UL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_twoPortsPTRS_UL }, - { &hf_nr_rrc_supportedSRS_Resources, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SRS_Resources }, - { &hf_nr_rrc_srs_TxSwitch , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_SRS_TxSwitch }, - { &hf_nr_rrc_maxNumberSimultaneousSRS_PerCC, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_INTEGER_1_4 }, - { &hf_nr_rrc_beamReportTiming, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_beamReportTiming }, - { &hf_nr_rrc_ptrs_DensityRecommendationSetDL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ptrs_DensityRecommendationSetDL }, - { &hf_nr_rrc_ptrs_DensityRecommendationSetUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ptrs_DensityRecommendationSetUL }, - { &hf_nr_rrc_csi_RS_ForTracking, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_CSI_RS_ForTracking }, - { &hf_nr_rrc_aperiodicTRS , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_aperiodicTRS }, - { 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[] = { +static const value_string nr_rrc_T_um_WithShortSN_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_) { +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); @@ -26213,14 +37062,14 @@ dissect_nr_rrc_T_extendedCP(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const value_string nr_rrc_T_multipleTCI_vals[] = { +static const value_string nr_rrc_T_um_WithLongSN_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_) { +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); @@ -26228,60 +37077,58 @@ dissect_nr_rrc_T_multipleTCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const value_string nr_rrc_T_bwp_WithoutRestriction_vals[] = { - { 0, "supported" }, - { 0, NULL } +static const per_sequence_t RLC_Parameters_sequence[] = { + { &hf_nr_rrc_am_WithShortSN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_am_WithShortSN }, + { &hf_nr_rrc_um_WithShortSN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_um_WithShortSN }, + { &hf_nr_rrc_um_WithLongSN, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_um_WithLongSN }, + { NULL, 0, 0, NULL } }; - static int -dissect_nr_rrc_T_bwp_WithoutRestriction(tvbuff_t *tvb _U_, int offset _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_RLC_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_RLC_Parameters, RLC_Parameters_sequence); return offset; } -static const value_string nr_rrc_T_bwp_SameNumerology_vals[] = { - { 0, "upto2" }, - { 1, "upto4" }, - { 0, NULL } +static const per_sequence_t T_nonCriticalExtension_33_sequence[] = { + { NULL, 0, 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); +dissect_nr_rrc_T_nonCriticalExtension_33(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_33, T_nonCriticalExtension_33_sequence); return offset; } -static const value_string nr_rrc_T_bwp_DiffNumerology_vals[] = { - { 0, "upto4" }, - { 0, NULL } +static const per_sequence_t UE_CapabilityRequestFilterNR_sequence[] = { + { &hf_nr_rrc_frequencyBandList_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FreqBandList }, + { &hf_nr_rrc_nonCriticalExtension_35, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_33 }, + { NULL, 0, 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); +dissect_nr_rrc_UE_CapabilityRequestFilterNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_CapabilityRequestFilterNR, UE_CapabilityRequestFilterNR_sequence); return offset; } -static const value_string nr_rrc_T_crossCarrierSchedulingDL_SameSCS_vals[] = { +static const value_string nr_rrc_T_splitSRB_WithOneUL_Path_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_crossCarrierSchedulingDL_SameSCS(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, 1, NULL, FALSE, 0, NULL); @@ -26289,14 +37136,14 @@ dissect_nr_rrc_T_crossCarrierSchedulingDL_SameSCS(tvbuff_t *tvb _U_, int offset } -static const value_string nr_rrc_T_crossCarrierSchedulingUL_SameSCS_vals[] = { +static const value_string nr_rrc_T_splitDRB_withUL_Both_MCG_SCG_vals[] = { { 0, "supported" }, { 0, NULL } }; static int -dissect_nr_rrc_T_crossCarrierSchedulingUL_SameSCS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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); @@ -26304,14 +37151,14 @@ dissect_nr_rrc_T_crossCarrierSchedulingUL_SameSCS(tvbuff_t *tvb _U_, int offset } -static const value_string nr_rrc_T_pdsch_256QAM_FR2_vals[] = { +static const value_string nr_rrc_T_srb3_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_) { +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); @@ -26319,14 +37166,14 @@ dissect_nr_rrc_T_pdsch_256QAM_FR2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const value_string nr_rrc_T_pusch_256QAM_vals[] = { +static const value_string nr_rrc_T_v2x_EUTRA_v1530_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_) { +dissect_nr_rrc_T_v2x_EUTRA_v1530(tvbuff_t *tvb _U_, int offset _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); @@ -26334,201 +37181,157 @@ dissect_nr_rrc_T_pusch_256QAM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -static const value_string nr_rrc_T_ue_PowerClass_vals[] = { - { 0, "pc2" }, - { 1, "pc3" }, - { 0, NULL } +static const per_sequence_t GeneralParametersMRDC_XDD_Diff_sequence[] = { + { &hf_nr_rrc_splitSRB_WithOneUL_Path, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_splitSRB_WithOneUL_Path }, + { &hf_nr_rrc_splitDRB_withUL_Both_MCG_SCG, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_splitDRB_withUL_Both_MCG_SCG }, + { &hf_nr_rrc_srb3 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_srb3 }, + { &hf_nr_rrc_v2x_EUTRA_v1530, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_v2x_EUTRA_v1530 }, + { NULL, 0, 0, NULL } }; - static int -dissect_nr_rrc_T_ue_PowerClass(tvbuff_t *tvb _U_, int offset _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_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 value_string nr_rrc_T_rateMatchingLTE_CRS_vals[] = { - { 0, "supported" }, - { 0, NULL } +static const per_sequence_t UE_MRDC_CapabilityAddXDD_Mode_sequence[] = { + { &hf_nr_rrc_measAndMobParametersMRDC_XDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParametersMRDC_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_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); +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 BandNR_sequence[] = { - { &hf_nr_rrc_bandNR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FreqBandIndicatorNR }, - { &hf_nr_rrc_modifiedMPR_Behaviour, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_8 }, - { &hf_nr_rrc_mimo_ParametersPerBand, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_MIMO_ParametersPerBand }, - { &hf_nr_rrc_extendedCP , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_extendedCP }, - { &hf_nr_rrc_multipleTCI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_multipleTCI }, - { &hf_nr_rrc_bwp_WithoutRestriction, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_WithoutRestriction }, - { &hf_nr_rrc_bwp_SameNumerology, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_SameNumerology }, - { &hf_nr_rrc_bwp_DiffNumerology, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_bwp_DiffNumerology }, - { &hf_nr_rrc_crossCarrierSchedulingDL_SameSCS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_crossCarrierSchedulingDL_SameSCS }, - { &hf_nr_rrc_crossCarrierSchedulingUL_SameSCS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_crossCarrierSchedulingUL_SameSCS }, - { &hf_nr_rrc_pdsch_256QAM_FR2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pdsch_256QAM_FR2 }, - { &hf_nr_rrc_pusch_256QAM , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_pusch_256QAM }, - { &hf_nr_rrc_ue_PowerClass, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ue_PowerClass }, - { &hf_nr_rrc_rateMatchingLTE_CRS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_rateMatchingLTE_CRS }, +static const per_sequence_t UE_MRDC_CapabilityAddFRX_Mode_sequence[] = { + { &hf_nr_rrc_measAndMobParametersMRDC_FRX_Diff, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasAndMobParametersMRDC_FRX_Diff }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_BandNR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_BandNR, BandNR_sequence); + ett_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode, UE_MRDC_CapabilityAddFRX_Mode_sequence); return offset; } -static const per_sequence_t SEQUENCE_SIZE_1_maxBands_OF_BandNR_sequence_of[1] = { - { &hf_nr_rrc_supportedBandListNR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_BandNR }, +static const per_sequence_t SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination_sequence_of[1] = { + { &hf_nr_rrc_featureSetCombinations_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_FeatureSetCombination }, }; static int -dissect_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR(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_maxFeatureSetCombinations_OF_FeatureSetCombination(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_maxBands_OF_BandNR, SEQUENCE_SIZE_1_maxBands_OF_BandNR_sequence_of, - 1, maxBands, FALSE); + ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination, SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination_sequence_of, + 1, maxFeatureSetCombinations, FALSE); return offset; } -static const per_sequence_t RF_Parameters_sequence[] = { - { &hf_nr_rrc_supportedBandListNR, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR }, - { &hf_nr_rrc_supportedBandCombinationList, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_BandCombinationList }, - { &hf_nr_rrc_appliedFreqBandListFilter, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FreqBandList }, +static const per_sequence_t T_nonCriticalExtension_34_sequence[] = { { 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_T_nonCriticalExtension_34(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_T_nonCriticalExtension_34, T_nonCriticalExtension_34_sequence); return offset; } - -static int -dissect_nr_rrc_BIT_STRING_SIZE_22(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, - 22, 22, FALSE, NULL, NULL); - - return offset; -} - - -static const per_sequence_t MeasParametersCommon_sequence[] = { - { &hf_nr_rrc_supportedGapPattern, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_BIT_STRING_SIZE_22 }, +static const per_sequence_t UE_MRDC_Capability_sequence[] = { + { &hf_nr_rrc_measAndMobParametersMRDC, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParametersMRDC }, + { &hf_nr_rrc_phy_ParametersMRDC_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_Phy_ParametersMRDC }, + { &hf_nr_rrc_rf_ParametersMRDC, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RF_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_featureSetCombinations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination }, + { &hf_nr_rrc_pdcp_ParametersMRDC_v1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PDCP_ParametersMRDC }, + { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, + { &hf_nr_rrc_nonCriticalExtension_36, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_34 }, { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_MeasParametersCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +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_MeasParametersCommon, MeasParametersCommon_sequence); - - return offset; -} - - -static const value_string nr_rrc_T_intraAndInterF_MeasAndReport_vals[] = { - { 0, "supported" }, - { 0, NULL } -}; - - -static int -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); - - return offset; -} - - -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); + ett_nr_rrc_UE_MRDC_Capability, UE_MRDC_Capability_sequence); return offset; } -static const per_sequence_t MeasParametersXDD_Diff_sequence[] = { - { &hf_nr_rrc_intraAndInterF_MeasAndReport, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_intraAndInterF_MeasAndReport }, - { &hf_nr_rrc_eventA_MeasAndReport, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_eventA_MeasAndReport }, +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_measAndMobParametersXDD_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParametersXDD_Diff }, { NULL, 0, 0, NULL } }; static int -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_) { +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_MeasParametersXDD_Diff, MeasParametersXDD_Diff_sequence); + ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode, UE_NR_CapabilityAddXDD_Mode_sequence); return offset; } -static const value_string nr_rrc_T_ss_SINR_Meas_vals[] = { - { 0, "supported" }, - { 0, 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_measAndMobParametersFRX_Diff, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParametersFRX_Diff }, + { NULL, 0, 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); +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 value_string nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithSSB_vals[] = { - { 0, "supported" }, - { 0, NULL } +static const per_sequence_t UE_NR_CapabilityAddXDD_Mode_1530_sequence[] = { + { &hf_nr_rrc_eutra_ParametersXDD_Diff, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_EUTRA_ParametersXDD_Diff }, + { NULL, 0, 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); +dissect_nr_rrc_UE_NR_CapabilityAddXDD_Mode_1530(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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_1530, UE_NR_CapabilityAddXDD_Mode_1530_sequence); return offset; } -static const value_string nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithoutSSB_vals[] = { +static const value_string nr_rrc_T_voiceOverMCG_Bearer_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_) { +dissect_nr_rrc_T_voiceOverMCG_Bearer(tvbuff_t *tvb _U_, int offset _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); @@ -26536,14 +37339,14 @@ dissect_nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithoutSSB(tvbuff_t *tvb _U_, int offset _ } -static const value_string nr_rrc_T_csi_SINR_Meas_vals[] = { +static const value_string nr_rrc_T_inactiveState_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_) { +dissect_nr_rrc_T_inactiveState(tvbuff_t *tvb _U_, int offset _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); @@ -26551,14 +37354,14 @@ dissect_nr_rrc_T_csi_SINR_Meas(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -static const value_string nr_rrc_T_csi_RS_RLM_vals[] = { +static const value_string nr_rrc_T_delayBudgetReporting_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_) { +dissect_nr_rrc_T_delayBudgetReporting(tvbuff_t *tvb _U_, int offset _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); @@ -26566,79 +37369,34 @@ dissect_nr_rrc_T_csi_RS_RLM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const per_sequence_t MeasParametersFRX_Diff_sequence[] = { - { &hf_nr_rrc_ss_SINR_Meas , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_ss_SINR_Meas }, - { &hf_nr_rrc_csi_RSRP_AndRSRQ_MeasWithSSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithSSB }, - { &hf_nr_rrc_csi_RSRP_AndRSRQ_MeasWithoutSSB, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RSRP_AndRSRQ_MeasWithoutSSB }, - { &hf_nr_rrc_csi_SINR_Meas, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_SINR_Meas }, - { &hf_nr_rrc_csi_RS_RLM , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nr_rrc_T_csi_RS_RLM }, - { NULL, 0, 0, NULL } -}; - -static int -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_MeasParametersFRX_Diff, MeasParametersFRX_Diff_sequence); - - return offset; -} - - -static const per_sequence_t MeasParameters_sequence[] = { - { &hf_nr_rrc_measParametersCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasParametersCommon }, - { &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 }, +static const per_sequence_t T_nonCriticalExtension_35_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_MeasParameters(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_35(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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, MeasParameters_sequence); + ett_nr_rrc_T_nonCriticalExtension_35, T_nonCriticalExtension_35_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 }, +static const per_sequence_t UE_NR_Capability_1530_sequence[] = { + { &hf_nr_rrc_fdd_Add_UE_NR_Capabilities_1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_NR_CapabilityAddXDD_Mode_1530 }, + { &hf_nr_rrc_tdd_Add_UE_NR_Capabilities_1530, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_NR_CapabilityAddXDD_Mode_1530 }, + { &hf_nr_rrc_voiceOverMCG_Bearer, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_voiceOverMCG_Bearer }, + { &hf_nr_rrc_interRAT_Parameters, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_InterRAT_Parameters }, + { &hf_nr_rrc_inactiveState, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_inactiveState }, + { &hf_nr_rrc_delayBudgetReporting, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_delayBudgetReporting }, + { &hf_nr_rrc_nonCriticalExtension_38, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_35 }, { NULL, 0, 0, NULL } }; static int -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_) { +dissect_nr_rrc_UE_NR_Capability_1530(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_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); - - return offset; -} - - -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_10_sequence[] = { - { NULL, 0, 0, NULL } -}; - -static int -dissect_nr_rrc_T_nonCriticalExtension_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_10, T_nonCriticalExtension_10_sequence); + ett_nr_rrc_UE_NR_Capability_1530, UE_NR_Capability_1530_sequence); return offset; } @@ -26651,7 +37409,7 @@ static const per_sequence_t UE_NR_Capability_sequence[] = { { &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_measAndMobParameters, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasAndMobParameters }, { &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 }, @@ -26659,7 +37417,7 @@ static const per_sequence_t UE_NR_Capability_sequence[] = { { &hf_nr_rrc_featureSets , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FeatureSets }, { &hf_nr_rrc_featureSetCombinations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination }, { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, - { &hf_nr_rrc_nonCriticalExtension_10, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_10 }, + { &hf_nr_rrc_nonCriticalExtension_37, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_NR_Capability_1530 }, { NULL, 0, 0, NULL } }; @@ -26721,6 +37479,22 @@ int dissect_nr_rrc_MeasurementTimingConfiguration_PDU(tvbuff_t *tvb _U_, packet_ offset += 7; offset >>= 3; return offset; } +static int dissect_UERadioPagingInformation_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_UERadioPagingInformation(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_UERadioPagingInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UERadioAccessCapabilityInformation_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_UERadioAccessCapabilityInformation(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_UERadioAccessCapabilityInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_BCCH_BCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -26729,6 +37503,22 @@ static int dissect_BCCH_BCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U offset += 7; offset >>= 3; return offset; } +static int dissect_BCCH_DL_SCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_nr_rrc_BCCH_DL_SCH_Message(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_BCCH_DL_SCH_Message_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DL_CCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_nr_rrc_DL_CCCH_Message(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_DL_CCCH_Message_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -26737,6 +37527,30 @@ static int dissect_DL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_ offset += 7; offset >>= 3; return offset; } +static int dissect_PCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_nr_rrc_PCCH_Message(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_PCCH_Message_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UL_CCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_nr_rrc_UL_CCCH_Message(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_UL_CCCH_Message_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UL_CCCH1_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_nr_rrc_UL_CCCH1_Message(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_UL_CCCH1_Message_PDU); + offset += 7; offset >>= 3; + return offset; +} int dissect_nr_rrc_UL_DCCH_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -26841,6 +37655,14 @@ int dissect_nr_rrc_UE_CapabilityRAT_ContainerList_PDU(tvbuff_t *tvb _U_, packet_ offset += 7; offset >>= 3; return offset; } +static int dissect_UE_CapabilityRequestFilterNR_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_CapabilityRequestFilterNR(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_UE_CapabilityRequestFilterNR_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; @@ -26873,12 +37695,21 @@ static int dissect_MeasResultSCG_Failure_PDU(tvbuff_t *tvb _U_, packet_info *pin offset += 7; offset >>= 3; return offset; } +static int dissect_SystemInformation_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_SystemInformation(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_SystemInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} /*--- End of included file: packet-nr-rrc-fn.c ---*/ -#line 72 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 356 "./asn1/nr-rrc/packet-nr-rrc-template.c" -void proto_register_nr_rrc(void) { +void +proto_register_nr_rrc(void) { /* List of fields */ static hf_register_info hf[] = { @@ -26910,14 +37741,42 @@ void proto_register_nr_rrc(void) { { "MeasurementTimingConfiguration", "nr-rrc.MeasurementTimingConfiguration_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_UERadioPagingInformation_PDU, + { "UERadioPagingInformation", "nr-rrc.UERadioPagingInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_UERadioAccessCapabilityInformation_PDU, + { "UERadioAccessCapabilityInformation", "nr-rrc.UERadioAccessCapabilityInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_BCCH_BCH_Message_PDU, { "BCCH-BCH-Message", "nr-rrc.BCCH_BCH_Message_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_BCCH_DL_SCH_Message_PDU, + { "BCCH-DL-SCH-Message", "nr-rrc.BCCH_DL_SCH_Message_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_DL_CCCH_Message_PDU, + { "DL-CCCH-Message", "nr-rrc.DL_CCCH_Message_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_DL_DCCH_Message_PDU, { "DL-DCCH-Message", "nr-rrc.DL_DCCH_Message_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_PCCH_Message_PDU, + { "PCCH-Message", "nr-rrc.PCCH_Message_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_UL_CCCH_Message_PDU, + { "UL-CCCH-Message", "nr-rrc.UL_CCCH_Message_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_UL_CCCH1_Message_PDU, + { "UL-CCCH1-Message", "nr-rrc.UL_CCCH1_Message_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_nr_rrc_UL_DCCH_Message_PDU, { "UL-DCCH-Message", "nr-rrc.UL_DCCH_Message_element", FT_NONE, BASE_NONE, NULL, 0, @@ -26956,7 +37815,7 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_nr_rrc_P_Max_PDU, { "P-Max", "nr-rrc.P_Max", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, NULL, HFILL }}, { &hf_nr_rrc_nr_rrc_RadioBearerConfig_PDU, { "RadioBearerConfig", "nr-rrc.RadioBearerConfig_element", @@ -26970,6 +37829,10 @@ void proto_register_nr_rrc(void) { { "UE-CapabilityRAT-ContainerList", "nr-rrc.UE_CapabilityRAT_ContainerList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_UE_CapabilityRequestFilterNR_PDU, + { "UE-CapabilityRequestFilterNR", "nr-rrc.UE_CapabilityRequestFilterNR_element", + FT_NONE, BASE_NONE, 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, @@ -26986,6 +37849,10 @@ void proto_register_nr_rrc(void) { { "MeasResultSCG-Failure", "nr-rrc.MeasResultSCG_Failure_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_SystemInformation_PDU, + { "SystemInformation", "nr-rrc.SystemInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_criticalExtensions, { "criticalExtensions", "nr-rrc.criticalExtensions", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_vals), 0, @@ -27043,9 +37910,9 @@ void proto_register_nr_rrc(void) { FT_UINT32, BASE_DEC, NULL, 0, "UE_CapabilityRAT_ContainerList", HFILL }}, { &hf_nr_rrc_sourceConfig, - { "sourceConfig", "nr-rrc.sourceConfig", - FT_BYTES, BASE_NONE, NULL, 0, - NULL, HFILL }}, + { "sourceConfig", "nr-rrc.sourceConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + "AS_Config", HFILL }}, { &hf_nr_rrc_rrm_Config, { "rrm-Config", "nr-rrc.rrm_Config_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27058,33 +37925,41 @@ void proto_register_nr_rrc(void) { { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, "T_nonCriticalExtension_01", HFILL }}, + { &hf_nr_rrc_rrcReconfiguration, + { "rrcReconfiguration", "nr-rrc.rrcReconfiguration", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_reestablishmentInfo, { "reestablishmentInfo", "nr-rrc.reestablishmentInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_configRestrictInfo, + { "configRestrictInfo", "nr-rrc.configRestrictInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + "ConfigRestrictInfoSCG", HFILL }}, + { &hf_nr_rrc_ran_NotificationAreaInfo, + { "ran-NotificationAreaInfo", "nr-rrc.ran_NotificationAreaInfo", + FT_UINT32, BASE_DEC, VALS(nr_rrc_RAN_NotificationAreaInfo_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_sourcePhysCellId, { "sourcePhysCellId", "nr-rrc.sourcePhysCellId", FT_UINT32, BASE_DEC, NULL, 0, "PhysCellId", HFILL }}, { &hf_nr_rrc_targetCellShortMAC_I, { "targetCellShortMAC-I", "nr-rrc.targetCellShortMAC_I", - FT_UINT32, BASE_DEC, VALS(nr_rrc_ShortMAC_I_vals), 0, + FT_BYTES, BASE_NONE, NULL, 0, "ShortMAC_I", HFILL }}, { &hf_nr_rrc_additionalReestabInfoList, { "additionalReestabInfoList", "nr-rrc.additionalReestabInfoList", FT_UINT32, BASE_DEC, NULL, 0, "ReestabNCellInfoList", HFILL }}, - { &hf_nr_rrc_configRestrictInfo, - { "configRestrictInfo", "nr-rrc.configRestrictInfo_element", - FT_NONE, BASE_NONE, NULL, 0, - "ConfigRestrictInfoSCG", HFILL }}, { &hf_nr_rrc_ReestabNCellInfoList_item, { "ReestabNCellInfo", "nr-rrc.ReestabNCellInfo_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_cellIdentity, { "cellIdentity", "nr-rrc.cellIdentity", - FT_UINT32, BASE_DEC, VALS(nr_rrc_CellIdentity_vals), 0, + FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_key_gNodeB_Star, { "key-gNodeB-Star", "nr-rrc.key_gNodeB_Star", @@ -27092,11 +37967,11 @@ void proto_register_nr_rrc(void) { "BIT_STRING_SIZE_256", HFILL }}, { &hf_nr_rrc_shortMAC_I, { "shortMAC-I", "nr-rrc.shortMAC_I", - FT_UINT32, BASE_DEC, VALS(nr_rrc_ShortMAC_I_vals), 0, + FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_ue_InactiveTime, { "ue-InactiveTime", "nr-rrc.ue_InactiveTime", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ue_InactiveTime_vals), 0, + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_ue_InactiveTime_vals_ext, 0, NULL, HFILL }}, { &hf_nr_rrc_candidateCellInfoList, { "candidateCellInfoList", "nr-rrc.candidateCellInfoList", @@ -27143,13 +38018,17 @@ void proto_register_nr_rrc(void) { FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_selectedBandCombinationNR, - { "selectedBandCombinationNR", "nr-rrc.selectedBandCombinationNR", - FT_UINT32, BASE_DEC, NULL, 0, - "BandCombinationIndex", HFILL }}, + { "selectedBandCombinationNR", "nr-rrc.selectedBandCombinationNR_element", + FT_NONE, BASE_NONE, NULL, 0, + "BandCombinationInfoSN", HFILL }}, { &hf_nr_rrc_fr_InfoListSCG, { "fr-InfoListSCG", "nr-rrc.fr_InfoListSCG", FT_UINT32, BASE_DEC, NULL, 0, "FR_InfoList", HFILL }}, + { &hf_nr_rrc_candidateServingFreqListNR, + { "candidateServingFreqListNR", "nr-rrc.candidateServingFreqListNR", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_nonCriticalExtension_02, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27167,13 +38046,21 @@ void proto_register_nr_rrc(void) { FT_UINT32, BASE_DEC, NULL, 0, "ARFCN_ValueNR", HFILL }}, { &hf_nr_rrc_requestedBC_MRDC, - { "requestedBC-MRDC", "nr-rrc.requestedBC_MRDC", - FT_UINT32, BASE_DEC, NULL, 0, - "BandCombinationIndex", HFILL }}, + { "requestedBC-MRDC", "nr-rrc.requestedBC_MRDC_element", + FT_NONE, BASE_NONE, NULL, 0, + "BandCombinationInfoSN", HFILL }}, { &hf_nr_rrc_requestedP_MaxFR1, { "requestedP-MaxFR1", "nr-rrc.requestedP_MaxFR1", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, "P_Max", HFILL }}, + { &hf_nr_rrc_bandCombinationIndex, + { "bandCombinationIndex", "nr-rrc.bandCombinationIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_requestedFeatureSets, + { "requestedFeatureSets", "nr-rrc.requestedFeatureSets", + FT_UINT32, BASE_DEC, NULL, 0, + "FeatureSetEntryIndex", HFILL }}, { &hf_nr_rrc_FR_InfoList_item, { "FR-Info", "nr-rrc.FR_Info_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27186,6 +38073,10 @@ void proto_register_nr_rrc(void) { { "fr-Type", "nr-rrc.fr_Type", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr_Type_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_CandidateServingFreqListNR_item, + { "ARFCN-ValueNR", "nr-rrc.ARFCN_ValueNR", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_criticalExtensions_03, { "criticalExtensions", "nr-rrc.criticalExtensions", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_03_vals), 0, @@ -27250,6 +38141,10 @@ void proto_register_nr_rrc(void) { { "mcg-RB-Config", "nr-rrc.mcg_RB_Config", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_mrdc_AssistanceInfo, + { "mrdc-AssistanceInfo", "nr-rrc.mrdc_AssistanceInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_nonCriticalExtension_03, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27257,18 +38152,22 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_allowedBC_ListMRDC, { "allowedBC-ListMRDC", "nr-rrc.allowedBC_ListMRDC", FT_UINT32, BASE_DEC, NULL, 0, - "BandCombinationIndexList", HFILL }}, + "BandCombinationInfoList", HFILL }}, { &hf_nr_rrc_powerCoordination_FR1, { "powerCoordination-FR1", "nr-rrc.powerCoordination_FR1_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_p_maxNR, - { "p-maxNR", "nr-rrc.p_maxNR", - FT_INT32, BASE_DEC, NULL, 0, + { &hf_nr_rrc_p_maxNR_FR1, + { "p-maxNR-FR1", "nr-rrc.p_maxNR_FR1", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, "P_Max", HFILL }}, { &hf_nr_rrc_p_maxEUTRA, { "p-maxEUTRA", "nr-rrc.p_maxEUTRA", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, + "P_Max", HFILL }}, + { &hf_nr_rrc_p_maxUE_FR1, + { "p-maxUE-FR1", "nr-rrc.p_maxUE_FR1", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, "P_Max", HFILL }}, { &hf_nr_rrc_servCellIndexRangeSCG, { "servCellIndexRangeSCG", "nr-rrc.servCellIndexRangeSCG_element", @@ -27290,8 +38189,16 @@ void proto_register_nr_rrc(void) { { "maxMeasIdentitiesSCG-NR", "nr-rrc.maxMeasIdentitiesSCG_NR", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_1_maxMeasIdentitiesMN", HFILL }}, - { &hf_nr_rrc_BandCombinationIndexList_item, - { "BandCombinationIndex", "nr-rrc.BandCombinationIndex", + { &hf_nr_rrc_BandCombinationInfoList_item, + { "BandCombinationInfo", "nr-rrc.BandCombinationInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_allowedFeatureSetsList, + { "allowedFeatureSetsList", "nr-rrc.allowedFeatureSetsList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex", HFILL }}, + { &hf_nr_rrc_allowedFeatureSetsList_item, + { "FeatureSetEntryIndex", "nr-rrc.FeatureSetEntryIndex", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_drx_LongCycleStartOffset, @@ -27414,6 +38321,66 @@ void proto_register_nr_rrc(void) { { "gapPurpose", "nr-rrc.gapPurpose", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gapPurpose_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_affectedCarrierFreqCombInfoListMRDC, + { "affectedCarrierFreqCombInfoListMRDC", "nr-rrc.affectedCarrierFreqCombInfoListMRDC", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC", HFILL }}, + { &hf_nr_rrc_affectedCarrierFreqCombInfoListMRDC_item, + { "AffectedCarrierFreqCombInfoMRDC", "nr-rrc.AffectedCarrierFreqCombInfoMRDC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_victimSystemType, + { "victimSystemType", "nr-rrc.victimSystemType_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_interferenceDirectionMRDC, + { "interferenceDirectionMRDC", "nr-rrc.interferenceDirectionMRDC", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_interferenceDirectionMRDC_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_affectedCarrierFreqCombMRDC, + { "affectedCarrierFreqCombMRDC", "nr-rrc.affectedCarrierFreqCombMRDC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_affectedCarrierFreqCombEUTRA, + { "affectedCarrierFreqCombEUTRA", "nr-rrc.affectedCarrierFreqCombEUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_affectedCarrierFreqCombNR, + { "affectedCarrierFreqCombNR", "nr-rrc.affectedCarrierFreqCombNR", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_gps, + { "gps", "nr-rrc.gps", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gps_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_glonass, + { "glonass", "nr-rrc.glonass", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_glonass_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_bds, + { "bds", "nr-rrc.bds", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bds_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_galileo, + { "galileo", "nr-rrc.galileo", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_galileo_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_wlan, + { "wlan", "nr-rrc.wlan", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_wlan_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_bluetooth, + { "bluetooth", "nr-rrc.bluetooth", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bluetooth_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_AffectedCarrierFreqCombEUTRA_item, + { "ARFCN-ValueEUTRA", "nr-rrc.ARFCN_ValueEUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_AffectedCarrierFreqCombNR_item, + { "ARFCN-ValueNR", "nr-rrc.ARFCN_ValueNR", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_criticalExtensions_04, { "criticalExtensions", "nr-rrc.criticalExtensions", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_04_vals), 0, @@ -27450,10 +38417,86 @@ void proto_register_nr_rrc(void) { { "carrierFreq", "nr-rrc.carrierFreq", FT_UINT32, BASE_DEC, NULL, 0, "ARFCN_ValueNR", HFILL }}, + { &hf_nr_rrc_ssbSubcarrierSpacing, + { "ssbSubcarrierSpacing", "nr-rrc.ssbSubcarrierSpacing", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, { &hf_nr_rrc_ssb_MeasurementTimingConfiguration, { "ssb-MeasurementTimingConfiguration", "nr-rrc.ssb_MeasurementTimingConfiguration_element", FT_NONE, BASE_NONE, NULL, 0, "SSB_MTC", 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_criticalExtensions_05, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_05_vals), 0, + "T_criticalExtensions_05", HFILL }}, + { &hf_nr_rrc_c1_05, + { "c1", "nr-rrc.c1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_05_vals), 0, + "T_c1_05", HFILL }}, + { &hf_nr_rrc_ueRadioPagingInformation, + { "ueRadioPagingInformation", "nr-rrc.ueRadioPagingInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + "UERadioPagingInformation_IEs", HFILL }}, + { &hf_nr_rrc_spare7, + { "spare7", "nr-rrc.spare7_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare6, + { "spare6", "nr-rrc.spare6_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare5, + { "spare5", "nr-rrc.spare5_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_spare4, + { "spare4", "nr-rrc.spare4_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_05, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_05", HFILL }}, + { &hf_nr_rrc_supportedBandListNRForPaging, + { "supportedBandListNRForPaging", "nr-rrc.supportedBandListNRForPaging", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicatorNR", HFILL }}, + { &hf_nr_rrc_supportedBandListNRForPaging_item, + { "FreqBandIndicatorNR", "nr-rrc.FreqBandIndicatorNR", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_05, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_05", HFILL }}, + { &hf_nr_rrc_criticalExtensions_06, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_06_vals), 0, + "T_criticalExtensions_06", HFILL }}, + { &hf_nr_rrc_c1_06, + { "c1", "nr-rrc.c1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_06_vals), 0, + "T_c1_06", HFILL }}, + { &hf_nr_rrc_ueRadioAccessCapabilityInformation, + { "ueRadioAccessCapabilityInformation", "nr-rrc.ueRadioAccessCapabilityInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + "UERadioAccessCapabilityInformation_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_06, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_06", HFILL }}, + { &hf_nr_rrc_ue_RadioAccessCapabilityInfo, + { "ue-RadioAccessCapabilityInfo", "nr-rrc.ue_RadioAccessCapabilityInfo", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_06, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_06", HFILL }}, { &hf_nr_rrc_message, { "message", "nr-rrc.message", FT_UINT32, BASE_DEC, VALS(nr_rrc_BCCH_BCH_MessageType_vals), 0, @@ -27468,76 +38511,160 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_message_01, { "message", "nr-rrc.message", + FT_UINT32, BASE_DEC, VALS(nr_rrc_BCCH_DL_SCH_MessageType_vals), 0, + "BCCH_DL_SCH_MessageType", HFILL }}, + { &hf_nr_rrc_c1_07, + { "c1", "nr-rrc.c1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_07_vals), 0, + "T_c1_07", HFILL }}, + { &hf_nr_rrc_systemInformation, + { "systemInformation", "nr-rrc.systemInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_systemInformationBlockType1, + { "systemInformationBlockType1", "nr-rrc.systemInformationBlockType1_element", + FT_NONE, BASE_NONE, NULL, 0, + "SIB1", HFILL }}, + { &hf_nr_rrc_messageClassExtension_01, + { "messageClassExtension", "nr-rrc.messageClassExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_messageClassExtension_01", HFILL }}, + { &hf_nr_rrc_message_02, + { "message", "nr-rrc.message", + FT_UINT32, BASE_DEC, VALS(nr_rrc_DL_CCCH_MessageType_vals), 0, + "DL_CCCH_MessageType", HFILL }}, + { &hf_nr_rrc_c1_08, + { "c1", "nr-rrc.c1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_08_vals), 0, + "T_c1_08", HFILL }}, + { &hf_nr_rrc_rrcReject, + { "rrcReject", "nr-rrc.rrcReject_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rrcSetup, + { "rrcSetup", "nr-rrc.rrcSetup_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_messageClassExtension_02, + { "messageClassExtension", "nr-rrc.messageClassExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_messageClassExtension_02", HFILL }}, + { &hf_nr_rrc_message_03, + { "message", "nr-rrc.message", FT_UINT32, BASE_DEC, VALS(nr_rrc_DL_DCCH_MessageType_vals), 0, "DL_DCCH_MessageType", HFILL }}, - { &hf_nr_rrc_c1_05, + { &hf_nr_rrc_c1_09, { "c1", "nr-rrc.c1", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_05_vals), 0, - "T_c1_05", HFILL }}, - { &hf_nr_rrc_rrcReconfiguration, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_09_vals), 0, + "T_c1_09", HFILL }}, + { &hf_nr_rrc_rrcReconfiguration_01, { "rrcReconfiguration", "nr-rrc.rrcReconfiguration_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare15, - { "spare15", "nr-rrc.spare15_element", + { &hf_nr_rrc_rrcResume, + { "rrcResume", "nr-rrc.rrcResume_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare14, - { "spare14", "nr-rrc.spare14_element", + { &hf_nr_rrc_rrcRelease, + { "rrcRelease", "nr-rrc.rrcRelease_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare13, - { "spare13", "nr-rrc.spare13_element", + { &hf_nr_rrc_rrcReestablishment, + { "rrcReestablishment", "nr-rrc.rrcReestablishment_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare12, - { "spare12", "nr-rrc.spare12_element", + { &hf_nr_rrc_securityModeCommand, + { "securityModeCommand", "nr-rrc.securityModeCommand_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare11, - { "spare11", "nr-rrc.spare11_element", + { &hf_nr_rrc_dlInformationTransfer, + { "dlInformationTransfer", "nr-rrc.dlInformationTransfer_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare10, - { "spare10", "nr-rrc.spare10_element", + { &hf_nr_rrc_ueCapabilityEnquiry, + { "ueCapabilityEnquiry", "nr-rrc.ueCapabilityEnquiry_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare9, - { "spare9", "nr-rrc.spare9_element", + { &hf_nr_rrc_counterCheck, + { "counterCheck", "nr-rrc.counterCheck_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare8, - { "spare8", "nr-rrc.spare8_element", + { &hf_nr_rrc_mobilityFromNRCommand, + { "mobilityFromNRCommand", "nr-rrc.mobilityFromNRCommand_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare7, - { "spare7", "nr-rrc.spare7_element", + { &hf_nr_rrc_messageClassExtension_03, + { "messageClassExtension", "nr-rrc.messageClassExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_messageClassExtension_03", HFILL }}, + { &hf_nr_rrc_message_04, + { "message", "nr-rrc.message", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PCCH_MessageType_vals), 0, + "PCCH_MessageType", HFILL }}, + { &hf_nr_rrc_c1_10, + { "c1", "nr-rrc.c1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_10_vals), 0, + "T_c1_10", HFILL }}, + { &hf_nr_rrc_paging, + { "paging", "nr-rrc.paging_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare6, - { "spare6", "nr-rrc.spare6_element", + { &hf_nr_rrc_messageClassExtension_04, + { "messageClassExtension", "nr-rrc.messageClassExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_messageClassExtension_04", HFILL }}, + { &hf_nr_rrc_message_05, + { "message", "nr-rrc.message", + FT_UINT32, BASE_DEC, VALS(nr_rrc_UL_CCCH_MessageType_vals), 0, + "UL_CCCH_MessageType", HFILL }}, + { &hf_nr_rrc_c1_11, + { "c1", "nr-rrc.c1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_11_vals), 0, + "T_c1_11", HFILL }}, + { &hf_nr_rrc_rrcSetupRequest, + { "rrcSetupRequest", "nr-rrc.rrcSetupRequest_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare5, - { "spare5", "nr-rrc.spare5_element", + { &hf_nr_rrc_rrcResumeRequest, + { "rrcResumeRequest", "nr-rrc.rrcResumeRequest_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare4, - { "spare4", "nr-rrc.spare4_element", + { &hf_nr_rrc_rrcReestablishmentRequest, + { "rrcReestablishmentRequest", "nr-rrc.rrcReestablishmentRequest_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_messageClassExtension_01, + { &hf_nr_rrc_rrcSystemInfoRequest, + { "rrcSystemInfoRequest", "nr-rrc.rrcSystemInfoRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_messageClassExtension_05, { "messageClassExtension", "nr-rrc.messageClassExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_messageClassExtension_01", HFILL }}, - { &hf_nr_rrc_message_02, + "T_messageClassExtension_05", HFILL }}, + { &hf_nr_rrc_message_06, + { "message", "nr-rrc.message", + FT_UINT32, BASE_DEC, VALS(nr_rrc_UL_CCCH1_MessageType_vals), 0, + "UL_CCCH1_MessageType", HFILL }}, + { &hf_nr_rrc_c1_12, + { "c1", "nr-rrc.c1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_12_vals), 0, + "T_c1_12", HFILL }}, + { &hf_nr_rrc_rrcResumeRequest1, + { "rrcResumeRequest1", "nr-rrc.rrcResumeRequest1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_messageClassExtension_06, + { "messageClassExtension", "nr-rrc.messageClassExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_messageClassExtension_06", HFILL }}, + { &hf_nr_rrc_message_07, { "message", "nr-rrc.message", FT_UINT32, BASE_DEC, VALS(nr_rrc_UL_DCCH_MessageType_vals), 0, "UL_DCCH_MessageType", HFILL }}, - { &hf_nr_rrc_c1_06, + { &hf_nr_rrc_c1_13, { "c1", "nr-rrc.c1", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_06_vals), 0, - "T_c1_06", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_13_vals), 0, + "T_c1_13", HFILL }}, { &hf_nr_rrc_measurementReport, { "measurementReport", "nr-rrc.measurementReport_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27546,10 +38673,170 @@ void proto_register_nr_rrc(void) { { "rrcReconfigurationComplete", "nr-rrc.rrcReconfigurationComplete_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_messageClassExtension_02, + { &hf_nr_rrc_rrcSetupComplete, + { "rrcSetupComplete", "nr-rrc.rrcSetupComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rrcReestablishmentComplete, + { "rrcReestablishmentComplete", "nr-rrc.rrcReestablishmentComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rrcResumeComplete, + { "rrcResumeComplete", "nr-rrc.rrcResumeComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_securityModeComplete, + { "securityModeComplete", "nr-rrc.securityModeComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_securityModeFailure, + { "securityModeFailure", "nr-rrc.securityModeFailure_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ulInformationTransfer, + { "ulInformationTransfer", "nr-rrc.ulInformationTransfer_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_locationMeasurementIndication, + { "locationMeasurementIndication", "nr-rrc.locationMeasurementIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ueCapabilityInformation, + { "ueCapabilityInformation", "nr-rrc.ueCapabilityInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_counterCheckResponse, + { "counterCheckResponse", "nr-rrc.counterCheckResponse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ueAssistanceInformation, + { "ueAssistanceInformation", "nr-rrc.ueAssistanceInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_messageClassExtension_07, { "messageClassExtension", "nr-rrc.messageClassExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_messageClassExtension_02", HFILL }}, + "T_messageClassExtension_07", HFILL }}, + { &hf_nr_rrc_rrc_TransactionIdentifier, + { "rrc-TransactionIdentifier", "nr-rrc.rrc_TransactionIdentifier", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_criticalExtensions_07, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_07_vals), 0, + "T_criticalExtensions_07", HFILL }}, + { &hf_nr_rrc_counterCheck_01, + { "counterCheck", "nr-rrc.counterCheck_element", + FT_NONE, BASE_NONE, NULL, 0, + "CounterCheck_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_07, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_07", HFILL }}, + { &hf_nr_rrc_drb_CountMSB_InfoList, + { "drb-CountMSB-InfoList", "nr-rrc.drb_CountMSB_InfoList", + FT_UINT32, BASE_DEC, 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_07, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_07", HFILL }}, + { &hf_nr_rrc_DRB_CountMSB_InfoList_item, + { "DRB-CountMSB-Info", "nr-rrc.DRB_CountMSB_Info_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_countMSB_Uplink, + { "countMSB-Uplink", "nr-rrc.countMSB_Uplink", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_33554431", HFILL }}, + { &hf_nr_rrc_countMSB_Downlink, + { "countMSB-Downlink", "nr-rrc.countMSB_Downlink", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_33554431", HFILL }}, + { &hf_nr_rrc_criticalExtensions_08, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_08_vals), 0, + "T_criticalExtensions_08", HFILL }}, + { &hf_nr_rrc_counterCheckResponse_01, + { "counterCheckResponse", "nr-rrc.counterCheckResponse_element", + FT_NONE, BASE_NONE, NULL, 0, + "CounterCheckResponse_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_08, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_08", HFILL }}, + { &hf_nr_rrc_drb_CountInfoList, + { "drb-CountInfoList", "nr-rrc.drb_CountInfoList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_08, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_08", HFILL }}, + { &hf_nr_rrc_DRB_CountInfoList_item, + { "DRB-CountInfo", "nr-rrc.DRB_CountInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_count_Uplink, + { "count-Uplink", "nr-rrc.count_Uplink", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4294967295", HFILL }}, + { &hf_nr_rrc_count_Downlink, + { "count-Downlink", "nr-rrc.count_Downlink", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4294967295", HFILL }}, + { &hf_nr_rrc_criticalExtensions_09, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_09_vals), 0, + "T_criticalExtensions_09", HFILL }}, + { &hf_nr_rrc_dlInformationTransfer_01, + { "dlInformationTransfer", "nr-rrc.dlInformationTransfer_element", + FT_NONE, BASE_NONE, NULL, 0, + "DLInformationTransfer_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_09, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_09", HFILL }}, + { &hf_nr_rrc_dedicatedNAS_Message, + { "dedicatedNAS-Message", "nr-rrc.dedicatedNAS_Message", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_09, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_09", HFILL }}, + { &hf_nr_rrc_criticalExtensions_10, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_10_vals), 0, + "T_criticalExtensions_10", HFILL }}, + { &hf_nr_rrc_locationMeasurementIndication_01, + { "locationMeasurementIndication", "nr-rrc.locationMeasurementIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + "LocationMeasurementIndication_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_10, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_10", HFILL }}, + { &hf_nr_rrc_measurementIndication, + { "measurementIndication", "nr-rrc.measurementIndication", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_measurementIndication_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_01, + { "setup", "nr-rrc.setup", + FT_UINT32, BASE_DEC, VALS(nr_rrc_LocationMeasurementInfo_vals), 0, + "LocationMeasurementInfo", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_10, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_10", HFILL }}, { &hf_nr_rrc_systemFrameNumber, { "systemFrameNumber", "nr-rrc.systemFrameNumber", FT_BYTES, BASE_NONE, NULL, 0, @@ -27567,9 +38854,9 @@ void proto_register_nr_rrc(void) { FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dmrs_TypeA_Position_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_pdcch_ConfigSIB1, - { "pdcch-ConfigSIB1", "nr-rrc.pdcch_ConfigSIB1", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_255", HFILL }}, + { "pdcch-ConfigSIB1", "nr-rrc.pdcch_ConfigSIB1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_cellBarred, { "cellBarred", "nr-rrc.cellBarred", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cellBarred_vals), 0, @@ -27582,46 +38869,150 @@ void proto_register_nr_rrc(void) { { "spare", "nr-rrc.spare", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_1", HFILL }}, - { &hf_nr_rrc_criticalExtensions_05, + { &hf_nr_rrc_criticalExtensions_11, { "criticalExtensions", "nr-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_05_vals), 0, - "T_criticalExtensions_05", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_11_vals), 0, + "T_criticalExtensions_11", HFILL }}, { &hf_nr_rrc_measurementReport_01, { "measurementReport", "nr-rrc.measurementReport_element", FT_NONE, BASE_NONE, NULL, 0, "MeasurementReport_IEs", HFILL }}, - { &hf_nr_rrc_criticalExtensionsFuture_05, + { &hf_nr_rrc_criticalExtensionsFuture_11, { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_05", HFILL }}, + "T_criticalExtensionsFuture_11", HFILL }}, { &hf_nr_rrc_measResults, { "measResults", "nr-rrc.measResults_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_lateNonCriticalExtension, - { "lateNonCriticalExtension", "nr-rrc.lateNonCriticalExtension", + { &hf_nr_rrc_nonCriticalExtension_11, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_11", HFILL }}, + { &hf_nr_rrc_criticalExtensions_12, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_12_vals), 0, + "T_criticalExtensions_12", HFILL }}, + { &hf_nr_rrc_mobilityFromNRCommand_01, + { "mobilityFromNRCommand", "nr-rrc.mobilityFromNRCommand_element", + FT_NONE, BASE_NONE, NULL, 0, + "MobilityFromNRCommand_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_12, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_12", HFILL }}, + { &hf_nr_rrc_targetRAT_Type, + { "targetRAT-Type", "nr-rrc.targetRAT_Type", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_targetRAT_Type_vals), 0, + "T_targetRAT_Type", HFILL }}, + { &hf_nr_rrc_targetRAT_MessageContainer, + { "targetRAT-MessageContainer", "nr-rrc.targetRAT_MessageContainer", + FT_BYTES, BASE_NONE, NULL, 0, + "T_targetRAT_MessageContainer", HFILL }}, + { &hf_nr_rrc_nas_SecurityParamFromNR, + { "nas-SecurityParamFromNR", "nr-rrc.nas_SecurityParamFromNR", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING", HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_05, + { &hf_nr_rrc_nonCriticalExtension_12, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_05", HFILL }}, - { &hf_nr_rrc_rrc_TransactionIdentifier, - { "rrc-TransactionIdentifier", "nr-rrc.rrc_TransactionIdentifier", + "T_nonCriticalExtension_12", HFILL }}, + { &hf_nr_rrc_pagingRecordList, + { "pagingRecordList", "nr-rrc.pagingRecordList", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_criticalExtensions_06, + { &hf_nr_rrc_nonCriticalExtension_13, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_13", HFILL }}, + { &hf_nr_rrc_PagingRecordList_item, + { "PagingRecord", "nr-rrc.PagingRecord_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ue_Identity, + { "ue-Identity", "nr-rrc.ue_Identity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PagingUE_Identity_vals), 0, + "PagingUE_Identity", HFILL }}, + { &hf_nr_rrc_accessType, + { "accessType", "nr-rrc.accessType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_accessType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ng_5G_S_TMSI, + { "ng-5G-S-TMSI", "nr-rrc.ng_5G_S_TMSI", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_i_RNTI, + { "i-RNTI", "nr-rrc.i_RNTI", + FT_BYTES, BASE_NONE, NULL, 0, + "I_RNTI_Value", HFILL }}, + { &hf_nr_rrc_criticalExtensions_13, { "criticalExtensions", "nr-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_06_vals), 0, - "T_criticalExtensions_06", HFILL }}, - { &hf_nr_rrc_rrcReconfiguration_01, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_13_vals), 0, + "T_criticalExtensions_13", HFILL }}, + { &hf_nr_rrc_rrcReestablishment_01, + { "rrcReestablishment", "nr-rrc.rrcReestablishment_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCReestablishment_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_13, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_13", HFILL }}, + { &hf_nr_rrc_nextHopChainingCount, + { "nextHopChainingCount", "nr-rrc.nextHopChainingCount", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_14, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_14", HFILL }}, + { &hf_nr_rrc_criticalExtensions_14, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_14_vals), 0, + "T_criticalExtensions_14", HFILL }}, + { &hf_nr_rrc_rrcReestablishmentComplete_01, + { "rrcReestablishmentComplete", "nr-rrc.rrcReestablishmentComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCReestablishmentComplete_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_14, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_14", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_15, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_15", HFILL }}, + { &hf_nr_rrc_rrcReestablishmentRequest_01, + { "rrcReestablishmentRequest", "nr-rrc.rrcReestablishmentRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCReestablishmentRequest_IEs", HFILL }}, + { &hf_nr_rrc_ue_Identity_01, + { "ue-Identity", "nr-rrc.ue_Identity_element", + FT_NONE, BASE_NONE, NULL, 0, + "ReestabUE_Identity", HFILL }}, + { &hf_nr_rrc_reestablishmentCause, + { "reestablishmentCause", "nr-rrc.reestablishmentCause", + FT_UINT32, BASE_DEC, VALS(nr_rrc_ReestablishmentCause_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_c_RNTI, + { "c-RNTI", "nr-rrc.c_RNTI", + FT_UINT32, BASE_DEC, NULL, 0, + "RNTI_Value", HFILL }}, + { &hf_nr_rrc_physCellId, + { "physCellId", "nr-rrc.physCellId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_criticalExtensions_15, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_15_vals), 0, + "T_criticalExtensions_15", HFILL }}, + { &hf_nr_rrc_rrcReconfiguration_02, { "rrcReconfiguration", "nr-rrc.rrcReconfiguration_element", FT_NONE, BASE_NONE, NULL, 0, "RRCReconfiguration_IEs", HFILL }}, - { &hf_nr_rrc_criticalExtensionsFuture_06, + { &hf_nr_rrc_criticalExtensionsFuture_15, { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_06", HFILL }}, + "T_criticalExtensionsFuture_15", HFILL }}, { &hf_nr_rrc_radioBearerConfig, { "radioBearerConfig", "nr-rrc.radioBearerConfig_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27634,226 +39025,1054 @@ void proto_register_nr_rrc(void) { { "measConfig", "nr-rrc.measConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_06, + { &hf_nr_rrc_nonCriticalExtension_16, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_06", HFILL }}, - { &hf_nr_rrc_criticalExtensions_07, + "RRCReconfiguration_v1530_IEs", HFILL }}, + { &hf_nr_rrc_masterCellGroup, + { "masterCellGroup", "nr-rrc.masterCellGroup", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_fullConfig, + { "fullConfig", "nr-rrc.fullConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fullConfig_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_dedicatedNAS_MessageList, + { "dedicatedNAS-MessageList", "nr-rrc.dedicatedNAS_MessageList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxDRB_OF_DedicatedNAS_Message", HFILL }}, + { &hf_nr_rrc_dedicatedNAS_MessageList_item, + { "DedicatedNAS-Message", "nr-rrc.DedicatedNAS_Message", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_masterKeyUpdate, + { "masterKeyUpdate", "nr-rrc.masterKeyUpdate_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dedicatedSIB1_Delivery, + { "dedicatedSIB1-Delivery", "nr-rrc.dedicatedSIB1_Delivery", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dedicatedSystemInformationDelivery, + { "dedicatedSystemInformationDelivery", "nr-rrc.dedicatedSystemInformationDelivery", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_otherConfig, + { "otherConfig", "nr-rrc.otherConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_17, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_16", HFILL }}, + { &hf_nr_rrc_keySetChangeIndicator, + { "keySetChangeIndicator", "nr-rrc.keySetChangeIndicator", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_nas_Container, + { "nas-Container", "nr-rrc.nas_Container", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_criticalExtensions_16, { "criticalExtensions", "nr-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_07_vals), 0, - "T_criticalExtensions_07", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_16_vals), 0, + "T_criticalExtensions_16", HFILL }}, { &hf_nr_rrc_rrcReconfigurationComplete_01, { "rrcReconfigurationComplete", "nr-rrc.rrcReconfigurationComplete_element", FT_NONE, BASE_NONE, NULL, 0, "RRCReconfigurationComplete_IEs", HFILL }}, - { &hf_nr_rrc_criticalExtensionsFuture_07, + { &hf_nr_rrc_criticalExtensionsFuture_16, { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_07", HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_07, + "T_criticalExtensionsFuture_16", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_18, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_07", HFILL }}, - { &hf_nr_rrc_frequencyOffsetSSB, - { "frequencyOffsetSSB", "nr-rrc.frequencyOffsetSSB", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyOffsetSSB_vals), 0, + "RRCReconfigurationComplete_v1530_IEs", HFILL }}, + { &hf_nr_rrc_uplinkTxDirectCurrentList, + { "uplinkTxDirectCurrentList", "nr-rrc.uplinkTxDirectCurrentList", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_ssb_PositionsInBurst, - { "ssb-PositionsInBurst", "nr-rrc.ssb_PositionsInBurst_element", + { &hf_nr_rrc_nonCriticalExtension_19, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_17", HFILL }}, + { &hf_nr_rrc_criticalExtensions_17, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_17_vals), 0, + "T_criticalExtensions_17", HFILL }}, + { &hf_nr_rrc_rrcReject_01, + { "rrcReject", "nr-rrc.rrcReject_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCReject_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_17, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_17", HFILL }}, + { &hf_nr_rrc_waitTime, + { "waitTime", "nr-rrc.waitTime", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0, + "RejectWaitTime", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_20, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_18", HFILL }}, + { &hf_nr_rrc_criticalExtensions_18, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_18_vals), 0, + "T_criticalExtensions_18", HFILL }}, + { &hf_nr_rrc_rrcRelease_01, + { "rrcRelease", "nr-rrc.rrcRelease_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCRelease_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_18, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_18", HFILL }}, + { &hf_nr_rrc_redirectedCarrierInfo, + { "redirectedCarrierInfo", "nr-rrc.redirectedCarrierInfo", + FT_UINT32, BASE_DEC, VALS(nr_rrc_RedirectedCarrierInfo_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_inOneGroup, - { "inOneGroup", "nr-rrc.inOneGroup", + { &hf_nr_rrc_cellReselectionPriorities, + { "cellReselectionPriorities", "nr-rrc.cellReselectionPriorities_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_suspendConfig, + { "suspendConfig", "nr-rrc.suspendConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_deprioritisationReq, + { "deprioritisationReq", "nr-rrc.deprioritisationReq_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_deprioritisationType, + { "deprioritisationType", "nr-rrc.deprioritisationType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_deprioritisationType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_deprioritisationTimer, + { "deprioritisationTimer", "nr-rrc.deprioritisationTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_deprioritisationTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_21, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_19", HFILL }}, + { &hf_nr_rrc_nr, + { "nr", "nr-rrc.nr_element", + FT_NONE, BASE_NONE, NULL, 0, + "CarrierInfoNR", HFILL }}, + { &hf_nr_rrc_eutra, + { "eutra", "nr-rrc.eutra_element", + FT_NONE, BASE_NONE, NULL, 0, + "RedirectedCarrierInfo_EUTRA", HFILL }}, + { &hf_nr_rrc_eutraFrequency, + { "eutraFrequency", "nr-rrc.eutraFrequency", + FT_UINT32, BASE_DEC, NULL, 0, + "ARFCN_ValueEUTRA", HFILL }}, + { &hf_nr_rrc_cnType_r15, + { "cnType-r15", "nr-rrc.cnType_r15", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cnType_r15_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_smtc, + { "smtc", "nr-rrc.smtc_element", + FT_NONE, BASE_NONE, NULL, 0, + "SSB_MTC", HFILL }}, + { &hf_nr_rrc_fullI_RNTI, + { "fullI-RNTI", "nr-rrc.fullI_RNTI", FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_8", HFILL }}, - { &hf_nr_rrc_groupPresence, - { "groupPresence", "nr-rrc.groupPresence", + "I_RNTI_Value", HFILL }}, + { &hf_nr_rrc_shortI_RNTI, + { "shortI-RNTI", "nr-rrc.shortI_RNTI", 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, + "ShortI_RNTI_Value", HFILL }}, + { &hf_nr_rrc_ran_PagingCycle, + { "ran-PagingCycle", "nr-rrc.ran_PagingCycle", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PagingCycle_vals), 0, + "PagingCycle", HFILL }}, + { &hf_nr_rrc_t380, + { "t380", "nr-rrc.t380", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PeriodicRNAU_TimerValue_vals), 0, + "PeriodicRNAU_TimerValue", HFILL }}, + { &hf_nr_rrc_freqPriorityListEUTRA, + { "freqPriorityListEUTRA", "nr-rrc.freqPriorityListEUTRA", + FT_UINT32, BASE_DEC, NULL, 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", + { &hf_nr_rrc_freqPriorityListNR, + { "freqPriorityListNR", "nr-rrc.freqPriorityListNR", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_t320, + { "t320", "nr-rrc.t320", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t320_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_FreqPriorityListEUTRA_item, + { "FreqPriorityEUTRA", "nr-rrc.FreqPriorityEUTRA_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_supplementaryUplink, - { "supplementaryUplink", "nr-rrc.supplementaryUplink_element", + { &hf_nr_rrc_FreqPriorityListNR_item, + { "FreqPriorityNR", "nr-rrc.FreqPriorityNR_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", + { &hf_nr_rrc_carrierFreq_01, + { "carrierFreq", "nr-rrc.carrierFreq", + FT_UINT32, BASE_DEC, NULL, 0, + "ARFCN_ValueEUTRA", HFILL }}, + { &hf_nr_rrc_cellReselectionPriority, + { "cellReselectionPriority", "nr-rrc.cellReselectionPriority", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellReselectionSubPriority, + { "cellReselectionSubPriority", "nr-rrc.cellReselectionSubPriority", + FT_UINT32, BASE_DEC, VALS(nr_rrc_CellReselectionSubPriority_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellList, + { "cellList", "nr-rrc.cellList", + FT_UINT32, BASE_DEC, NULL, 0, + "PLMN_RAN_AreaCellList", HFILL }}, + { &hf_nr_rrc_ran_AreaConfigList, + { "ran-AreaConfigList", "nr-rrc.ran_AreaConfigList", + FT_UINT32, BASE_DEC, NULL, 0, + "PLMN_RAN_AreaConfigList", HFILL }}, + { &hf_nr_rrc_PLMN_RAN_AreaCellList_item, + { "PLMN-RAN-AreaCell", "nr-rrc.PLMN_RAN_AreaCell_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", + NULL, HFILL }}, + { &hf_nr_rrc_plmn_Identity, + { "plmn-Identity", "nr-rrc.plmn_Identity_element", FT_NONE, BASE_NONE, NULL, 0, - "TDD_UL_DL_ConfigCommon", HFILL }}, - { &hf_nr_rrc_pdcch_ConfigCommon, - { "pdcch-ConfigCommon", "nr-rrc.pdcch_ConfigCommon_element", + NULL, HFILL }}, + { &hf_nr_rrc_ran_AreaCells, + { "ran-AreaCells", "nr-rrc.ran_AreaCells", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_32_OF_CellIdentity", HFILL }}, + { &hf_nr_rrc_ran_AreaCells_item, + { "CellIdentity", "nr-rrc.CellIdentity", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_PLMN_RAN_AreaConfigList_item, + { "PLMN-RAN-AreaConfig", "nr-rrc.PLMN_RAN_AreaConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_pucch_ConfigCommon, - { "pucch-ConfigCommon", "nr-rrc.pucch_ConfigCommon_element", + { &hf_nr_rrc_ran_Area, + { "ran-Area", "nr-rrc.ran_Area", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig", HFILL }}, + { &hf_nr_rrc_ran_Area_item, + { "RAN-AreaConfig", "nr-rrc.RAN_AreaConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_08, + { &hf_nr_rrc_trackingAreaCode, + { "trackingAreaCode", "nr-rrc.trackingAreaCode", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ran_AreaCodeList, + { "ran-AreaCodeList", "nr-rrc.ran_AreaCodeList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_32_OF_RAN_AreaCode", HFILL }}, + { &hf_nr_rrc_ran_AreaCodeList_item, + { "RAN-AreaCode", "nr-rrc.RAN_AreaCode", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_criticalExtensions_19, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_19_vals), 0, + "T_criticalExtensions_19", HFILL }}, + { &hf_nr_rrc_rrcResume_01, + { "rrcResume", "nr-rrc.rrcResume_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCResume_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_19, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_19", HFILL }}, + { &hf_nr_rrc_masterCellGroup_01, + { "masterCellGroup", "nr-rrc.masterCellGroup", + FT_BYTES, BASE_NONE, NULL, 0, + "T_masterCellGroup_01", HFILL }}, + { &hf_nr_rrc_fullConfig_01, + { "fullConfig", "nr-rrc.fullConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fullConfig_01_vals), 0, + "T_fullConfig_01", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_22, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_08", HFILL }}, - { &hf_nr_rrc_locationAndBandwidth, - { "locationAndBandwidth", "nr-rrc.locationAndBandwidth", + "T_nonCriticalExtension_20", HFILL }}, + { &hf_nr_rrc_criticalExtensions_20, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_20_vals), 0, + "T_criticalExtensions_20", HFILL }}, + { &hf_nr_rrc_rrcResumeComplete_01, + { "rrcResumeComplete", "nr-rrc.rrcResumeComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCResumeComplete_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_20, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_20", HFILL }}, + { &hf_nr_rrc_selectedPLMN_Identity, + { "selectedPLMN-Identity", "nr-rrc.selectedPLMN_Identity", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_37949", HFILL }}, - { &hf_nr_rrc_subcarrierSpacing, - { "subcarrierSpacing", "nr-rrc.subcarrierSpacing", - FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "INTEGER_1_maxPLMN", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_23, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_21", HFILL }}, + { &hf_nr_rrc_rrcResumeRequest_01, + { "rrcResumeRequest", "nr-rrc.rrcResumeRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCResumeRequest_IEs", HFILL }}, + { &hf_nr_rrc_resumeIdentity, + { "resumeIdentity", "nr-rrc.resumeIdentity", + FT_BYTES, BASE_NONE, NULL, 0, + "ShortI_RNTI_Value", HFILL }}, + { &hf_nr_rrc_resumeMAC_I, + { "resumeMAC-I", "nr-rrc.resumeMAC_I", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_resumeCause, + { "resumeCause", "nr-rrc.resumeCause", + FT_UINT32, BASE_DEC, VALS(nr_rrc_ResumeCause_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_cyclicPrefix, - { "cyclicPrefix", "nr-rrc.cyclicPrefix", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cyclicPrefix_vals), 0, + { &hf_nr_rrc_rrcResumeRequest1_01, + { "rrcResumeRequest1", "nr-rrc.rrcResumeRequest1_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCResumeRequest1_IEs", HFILL }}, + { &hf_nr_rrc_resumeIdentity_01, + { "resumeIdentity", "nr-rrc.resumeIdentity", + FT_BYTES, BASE_NONE, NULL, 0, + "I_RNTI_Value", HFILL }}, + { &hf_nr_rrc_criticalExtensions_21, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_21_vals), 0, + "T_criticalExtensions_21", HFILL }}, + { &hf_nr_rrc_rrcSetup_01, + { "rrcSetup", "nr-rrc.rrcSetup_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCSetup_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_21, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_21", HFILL }}, + { &hf_nr_rrc_masterCellGroup_02, + { "masterCellGroup", "nr-rrc.masterCellGroup", + FT_BYTES, BASE_NONE, NULL, 0, + "T_masterCellGroup_02", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_24, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_22", HFILL }}, + { &hf_nr_rrc_criticalExtensions_22, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_22_vals), 0, + "T_criticalExtensions_22", HFILL }}, + { &hf_nr_rrc_rrcSetupComplete_01, + { "rrcSetupComplete", "nr-rrc.rrcSetupComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCSetupComplete_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_22, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_22", HFILL }}, + { &hf_nr_rrc_registeredAMF, + { "registeredAMF", "nr-rrc.registeredAMF_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_bwp_Id, - { "bwp-Id", "nr-rrc.bwp_Id", + { &hf_nr_rrc_guami_Type, + { "guami-Type", "nr-rrc.guami_Type", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_guami_Type_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_s_nssai_List, + { "s-nssai-List", "nr-rrc.s_nssai_List", FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofS_NSSAI_OF_S_NSSAI", HFILL }}, + { &hf_nr_rrc_s_nssai_List_item, + { "S-NSSAI", "nr-rrc.S_NSSAI", + FT_UINT32, BASE_DEC, VALS(nr_rrc_S_NSSAI_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_bwp_Common, - { "bwp-Common", "nr-rrc.bwp_Common_element", + { &hf_nr_rrc_ng_5G_S_TMSI_Value, + { "ng-5G-S-TMSI-Value", "nr-rrc.ng_5G_S_TMSI_Value", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ng_5G_S_TMSI_Value_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ng_5G_S_TMSI_Part2, + { "ng-5G-S-TMSI-Part2", "nr-rrc.ng_5G_S_TMSI_Part2", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_9", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_25, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "BWP_UplinkCommon", HFILL }}, - { &hf_nr_rrc_bwp_Dedicated, - { "bwp-Dedicated", "nr-rrc.bwp_Dedicated_element", + "T_nonCriticalExtension_23", HFILL }}, + { &hf_nr_rrc_amf_Identifier, + { "amf-Identifier", "nr-rrc.amf_Identifier", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rrcSetupRequest_01, + { "rrcSetupRequest", "nr-rrc.rrcSetupRequest_element", FT_NONE, BASE_NONE, NULL, 0, - "BWP_UplinkDedicated", HFILL }}, - { &hf_nr_rrc_genericParameters, - { "genericParameters", "nr-rrc.genericParameters_element", + "RRCSetupRequest_IEs", HFILL }}, + { &hf_nr_rrc_ue_Identity_02, + { "ue-Identity", "nr-rrc.ue_Identity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_InitialUE_Identity_vals), 0, + "InitialUE_Identity", HFILL }}, + { &hf_nr_rrc_establishmentCause, + { "establishmentCause", "nr-rrc.establishmentCause", + FT_UINT32, BASE_DEC, VALS(nr_rrc_EstablishmentCause_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ng_5G_S_TMSI_Part1, + { "ng-5G-S-TMSI-Part1", "nr-rrc.ng_5G_S_TMSI_Part1", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_39", HFILL }}, + { &hf_nr_rrc_randomValue, + { "randomValue", "nr-rrc.randomValue", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_39", HFILL }}, + { &hf_nr_rrc_criticalExtensions_23, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_23_vals), 0, + "T_criticalExtensions_23", HFILL }}, + { &hf_nr_rrc_rrcSystemInfoRequest_r15, + { "rrcSystemInfoRequest-r15", "nr-rrc.rrcSystemInfoRequest_r15_element", + FT_NONE, BASE_NONE, NULL, 0, + "RRCSystemInfoRequest_r15_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_23, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_23", HFILL }}, + { &hf_nr_rrc_requested_SI_List, + { "requested-SI-List", "nr-rrc.requested_SI_List", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_maxSI_Message", HFILL }}, + { &hf_nr_rrc_spare_01, + { "spare", "nr-rrc.spare", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_12", HFILL }}, + { &hf_nr_rrc_criticalExtensions_24, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_24_vals), 0, + "T_criticalExtensions_24", HFILL }}, + { &hf_nr_rrc_securityModeCommand_01, + { "securityModeCommand", "nr-rrc.securityModeCommand_element", + FT_NONE, BASE_NONE, NULL, 0, + "SecurityModeCommand_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_24, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_24", HFILL }}, + { &hf_nr_rrc_securityConfigSMC, + { "securityConfigSMC", "nr-rrc.securityConfigSMC_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_setup_01, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_nonCriticalExtension_26, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_24", HFILL }}, + { &hf_nr_rrc_securityAlgorithmConfig, + { "securityAlgorithmConfig", "nr-rrc.securityAlgorithmConfig_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_02, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_criticalExtensions_25, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_25_vals), 0, + "T_criticalExtensions_25", HFILL }}, + { &hf_nr_rrc_securityModeComplete_01, + { "securityModeComplete", "nr-rrc.securityModeComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + "SecurityModeComplete_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_25, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_25", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_27, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_25", HFILL }}, + { &hf_nr_rrc_criticalExtensions_26, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_26_vals), 0, + "T_criticalExtensions_26", HFILL }}, + { &hf_nr_rrc_securityModeFailure_01, + { "securityModeFailure", "nr-rrc.securityModeFailure_element", + FT_NONE, BASE_NONE, NULL, 0, + "SecurityModeFailure_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_26, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_26", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_28, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_26", HFILL }}, + { &hf_nr_rrc_cellSelectionInfo, + { "cellSelectionInfo", "nr-rrc.cellSelectionInfo_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_03, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_q_RxLevMin, + { "q-RxLevMin", "nr-rrc.q_RxLevMin", + FT_INT32, BASE_CUSTOM, CF_FUNC(nr_rrc_Q_RxLevMin_fmt), 0, + NULL, HFILL }}, + { &hf_nr_rrc_q_RxLevMinOffset, + { "q-RxLevMinOffset", "nr-rrc.q_RxLevMinOffset", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_q_RxLevMin_fmt), 0, + "INTEGER_1_8", HFILL }}, + { &hf_nr_rrc_q_RxLevMinSUL, + { "q-RxLevMinSUL", "nr-rrc.q_RxLevMinSUL", + FT_INT32, BASE_CUSTOM, CF_FUNC(nr_rrc_Q_RxLevMin_fmt), 0, + "Q_RxLevMin", HFILL }}, + { &hf_nr_rrc_q_QualMin, + { "q-QualMin", "nr-rrc.q_QualMin", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, + NULL, HFILL }}, + { &hf_nr_rrc_q_QualMinOffset, + { "q-QualMinOffset", "nr-rrc.q_QualMinOffset", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, + "INTEGER_1_8", HFILL }}, + { &hf_nr_rrc_cellAccessRelatedInfo, + { "cellAccessRelatedInfo", "nr-rrc.cellAccessRelatedInfo_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_04, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_connEstFailureControl, + { "connEstFailureControl", "nr-rrc.connEstFailureControl_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_05, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_si_SchedulingInfo, + { "si-SchedulingInfo", "nr-rrc.si_SchedulingInfo_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_06, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_servingCellConfigCommon, + { "servingCellConfigCommon", "nr-rrc.servingCellConfigCommon_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, + "ServingCellConfigCommonSIB", HFILL }}, + { &hf_nr_rrc_ims_EmergencySupport, + { "ims-EmergencySupport", "nr-rrc.ims_EmergencySupport", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ims_EmergencySupport_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_07, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_eCallOverIMS_Support, + { "eCallOverIMS-Support", "nr-rrc.eCallOverIMS_Support", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_eCallOverIMS_Support_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ue_TimersAndConstants, + { "ue-TimersAndConstants", "nr-rrc.ue_TimersAndConstants_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_08, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_uac_BarringInfo, + { "uac-BarringInfo", "nr-rrc.uac_BarringInfo_element", FT_NONE, BASE_NONE, NULL, 0, - "BeamFailureRecoveryConfig", HFILL }}, - { &hf_nr_rrc_bwp_Common_01, - { "bwp-Common", "nr-rrc.bwp_Common_element", + NULL, HFILL }}, + { &hf_nr_rrc_uac_BarringForCommon, + { "uac-BarringForCommon", "nr-rrc.uac_BarringForCommon", + FT_UINT32, BASE_DEC, NULL, 0, + "UAC_BarringPerCatList", HFILL }}, + { &hf_nr_rrc_uac_BarringPerPLMN_List, + { "uac-BarringPerPLMN-List", "nr-rrc.uac_BarringPerPLMN_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_uac_BarringInfoSetList, + { "uac-BarringInfoSetList", "nr-rrc.uac_BarringInfoSetList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_uac_AccessCategory1_SelectionAssistanceInfo, + { "uac-AccessCategory1-SelectionAssistanceInfo", "nr-rrc.uac_AccessCategory1_SelectionAssistanceInfo", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uac_AccessCategory1_SelectionAssistanceInfo_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_plmnCommon, + { "plmnCommon", "nr-rrc.plmnCommon", + FT_UINT32, BASE_DEC, VALS(nr_rrc_UAC_AccessCategory1_SelectionAssistanceInfo_vals), 0, + "UAC_AccessCategory1_SelectionAssistanceInfo", HFILL }}, + { &hf_nr_rrc_individualPLMNList, + { "individualPLMNList", "nr-rrc.individualPLMNList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo", HFILL }}, + { &hf_nr_rrc_individualPLMNList_item, + { "UAC-AccessCategory1-SelectionAssistanceInfo", "nr-rrc.UAC_AccessCategory1_SelectionAssistanceInfo", + FT_UINT32, BASE_DEC, VALS(nr_rrc_UAC_AccessCategory1_SelectionAssistanceInfo_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_useFullResumeID, + { "useFullResumeID", "nr-rrc.useFullResumeID", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_useFullResumeID_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_29, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "BWP_DownlinkCommon", HFILL }}, - { &hf_nr_rrc_bwp_Dedicated_01, - { "bwp-Dedicated", "nr-rrc.bwp_Dedicated_element", + "T_nonCriticalExtension_27", HFILL }}, + { &hf_nr_rrc_criticalExtensions_27, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_27_vals), 0, + "T_criticalExtensions_27", HFILL }}, + { &hf_nr_rrc_systemInformation_r15, + { "systemInformation-r15", "nr-rrc.systemInformation_r15_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, + "SystemInformation_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_27, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_27", HFILL }}, + { &hf_nr_rrc_sib_TypeAndInfo, + { "sib-TypeAndInfo", "nr-rrc.sib_TypeAndInfo", + FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_09, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_sib_TypeAndInfo_item, + { "sib-TypeAndInfo item", "nr-rrc.sib_TypeAndInfo_item", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sib_TypeAndInfo_item_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib2, + { "sib2", "nr-rrc.sib2_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_10, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_sib3, + { "sib3", "nr-rrc.sib3_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_11, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_sib4, + { "sib4", "nr-rrc.sib4_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_12, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_sib5, + { "sib5", "nr-rrc.sib5_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_13, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_sib6, + { "sib6", "nr-rrc.sib6_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_14, - { "setup", "nr-rrc.setup_element", + { &hf_nr_rrc_sib7, + { "sib7", "nr-rrc.sib7_element", FT_NONE, BASE_NONE, NULL, 0, - "RadioLinkMonitoringConfig", HFILL }}, + NULL, HFILL }}, + { &hf_nr_rrc_sib8, + { "sib8", "nr-rrc.sib8_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib9, + { "sib9", "nr-rrc.sib9_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_30, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_28", HFILL }}, + { &hf_nr_rrc_criticalExtensions_28, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_28_vals), 0, + "T_criticalExtensions_28", HFILL }}, + { &hf_nr_rrc_ueAssistanceInformation_01, + { "ueAssistanceInformation", "nr-rrc.ueAssistanceInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + "UEAssistanceInformation_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_28, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_28", HFILL }}, + { &hf_nr_rrc_delayBudgetReport, + { "delayBudgetReport", "nr-rrc.delayBudgetReport", + FT_UINT32, BASE_DEC, VALS(nr_rrc_DelayBudgetReport_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_31, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_29", HFILL }}, + { &hf_nr_rrc_type1, + { "type1", "nr-rrc.type1", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_type1_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_criticalExtensions_29, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_29_vals), 0, + "T_criticalExtensions_29", HFILL }}, + { &hf_nr_rrc_ueCapabilityEnquiry_01, + { "ueCapabilityEnquiry", "nr-rrc.ueCapabilityEnquiry_element", + FT_NONE, BASE_NONE, NULL, 0, + "UECapabilityEnquiry_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_29, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_29", HFILL }}, + { &hf_nr_rrc_ue_CapabilityRAT_RequestList, + { "ue-CapabilityRAT-RequestList", "nr-rrc.ue_CapabilityRAT_RequestList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_32, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_30", HFILL }}, + { &hf_nr_rrc_criticalExtensions_30, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_30_vals), 0, + "T_criticalExtensions_30", HFILL }}, + { &hf_nr_rrc_ueCapabilityInformation_01, + { "ueCapabilityInformation", "nr-rrc.ueCapabilityInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + "UECapabilityInformation_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_30, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_30", HFILL }}, + { &hf_nr_rrc_ue_CapabilityRAT_ContainerList, + { "ue-CapabilityRAT-ContainerList", "nr-rrc.ue_CapabilityRAT_ContainerList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_33, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_31", HFILL }}, + { &hf_nr_rrc_criticalExtensions_31, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_31_vals), 0, + "T_criticalExtensions_31", HFILL }}, + { &hf_nr_rrc_ulInformationTransfer_01, + { "ulInformationTransfer", "nr-rrc.ulInformationTransfer_element", + FT_NONE, BASE_NONE, NULL, 0, + "ULInformationTransfer_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_31, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_31", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_34, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_32", HFILL }}, + { &hf_nr_rrc_cellReselectionInfoCommon, + { "cellReselectionInfoCommon", "nr-rrc.cellReselectionInfoCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nrofSS_BlocksToAverage, + { "nrofSS-BlocksToAverage", "nr-rrc.nrofSS_BlocksToAverage", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_2_maxNrofSS_BlocksToAverage", HFILL }}, + { &hf_nr_rrc_absThreshSS_BlocksConsolidation, + { "absThreshSS-BlocksConsolidation", "nr-rrc.absThreshSS_BlocksConsolidation_element", + FT_NONE, BASE_NONE, NULL, 0, + "ThresholdNR", HFILL }}, + { &hf_nr_rrc_rangeToBestCell, + { "rangeToBestCell", "nr-rrc.rangeToBestCell", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_q_Hyst, + { "q-Hyst", "nr-rrc.q_Hyst", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_q_Hyst_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_speedStateReselectionPars, + { "speedStateReselectionPars", "nr-rrc.speedStateReselectionPars_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_mobilityStateParameters, + { "mobilityStateParameters", "nr-rrc.mobilityStateParameters_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_q_HystSF, + { "q-HystSF", "nr-rrc.q_HystSF_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sf_Medium, + { "sf-Medium", "nr-rrc.sf_Medium", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sf_Medium_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sf_High, + { "sf-High", "nr-rrc.sf_High", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sf_High_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellReselectionServingFreqInfo, + { "cellReselectionServingFreqInfo", "nr-rrc.cellReselectionServingFreqInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_s_NonIntraSearchP, + { "s-NonIntraSearchP", "nr-rrc.s_NonIntraSearchP", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_ReselectionThreshold_fmt), 0, + "ReselectionThreshold", HFILL }}, + { &hf_nr_rrc_s_NonIntraSearchQ, + { "s-NonIntraSearchQ", "nr-rrc.s_NonIntraSearchQ", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, + "ReselectionThresholdQ", HFILL }}, + { &hf_nr_rrc_threshServingLowP, + { "threshServingLowP", "nr-rrc.threshServingLowP", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_ReselectionThreshold_fmt), 0, + "ReselectionThreshold", HFILL }}, + { &hf_nr_rrc_threshServingLowQ, + { "threshServingLowQ", "nr-rrc.threshServingLowQ", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, + "ReselectionThresholdQ", HFILL }}, + { &hf_nr_rrc_intraFreqCellReselectionInfo, + { "intraFreqCellReselectionInfo", "nr-rrc.intraFreqCellReselectionInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_s_IntraSearchP, + { "s-IntraSearchP", "nr-rrc.s_IntraSearchP", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_ReselectionThreshold_fmt), 0, + "ReselectionThreshold", HFILL }}, + { &hf_nr_rrc_s_IntraSearchQ, + { "s-IntraSearchQ", "nr-rrc.s_IntraSearchQ", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, + "ReselectionThresholdQ", HFILL }}, + { &hf_nr_rrc_t_ReselectionNR, + { "t-ReselectionNR", "nr-rrc.t_ReselectionNR", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0, + "T_Reselection", HFILL }}, + { &hf_nr_rrc_frequencyBandList, + { "frequencyBandList", "nr-rrc.frequencyBandList", + FT_UINT32, BASE_DEC, NULL, 0, + "MultiFrequencyBandListNR_SIB", HFILL }}, + { &hf_nr_rrc_frequencyBandListSUL, + { "frequencyBandListSUL", "nr-rrc.frequencyBandListSUL", + FT_UINT32, BASE_DEC, NULL, 0, + "MultiFrequencyBandListNR_SIB", HFILL }}, + { &hf_nr_rrc_p_Max, + { "p-Max", "nr-rrc.p_Max", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ssb_ToMeasure, + { "ssb-ToMeasure", "nr-rrc.ssb_ToMeasure", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SSB_ToMeasure_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_deriveSSB_IndexFromCell, + { "deriveSSB-IndexFromCell", "nr-rrc.deriveSSB_IndexFromCell", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_intraFreqNeighCellList, + { "intraFreqNeighCellList", "nr-rrc.intraFreqNeighCellList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_intraFreqBlackCellList, + { "intraFreqBlackCellList", "nr-rrc.intraFreqBlackCellList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_IntraFreqNeighCellList_item, + { "IntraFreqNeighCellInfo", "nr-rrc.IntraFreqNeighCellInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_q_OffsetCell, + { "q-OffsetCell", "nr-rrc.q_OffsetCell", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, + "Q_OffsetRange", HFILL }}, + { &hf_nr_rrc_q_RxLevMinOffsetCell, + { "q-RxLevMinOffsetCell", "nr-rrc.q_RxLevMinOffsetCell", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_q_RxLevMin_fmt), 0, + "INTEGER_1_8", HFILL }}, + { &hf_nr_rrc_q_RxLevMinOffsetCellSUL, + { "q-RxLevMinOffsetCellSUL", "nr-rrc.q_RxLevMinOffsetCellSUL", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_q_RxLevMin_fmt), 0, + "INTEGER_1_8", HFILL }}, + { &hf_nr_rrc_q_QualMinOffsetCell, + { "q-QualMinOffsetCell", "nr-rrc.q_QualMinOffsetCell", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, + "INTEGER_1_8", HFILL }}, + { &hf_nr_rrc_IntraFreqBlackCellList_item, + { "PCI-Range", "nr-rrc.PCI_Range_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_interFreqCarrierFreqList, + { "interFreqCarrierFreqList", "nr-rrc.interFreqCarrierFreqList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_InterFreqCarrierFreqList_item, + { "InterFreqCarrierFreqInfo", "nr-rrc.InterFreqCarrierFreqInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dl_CarrierFreq, + { "dl-CarrierFreq", "nr-rrc.dl_CarrierFreq", + FT_UINT32, BASE_DEC, NULL, 0, + "ARFCN_ValueNR", HFILL }}, + { &hf_nr_rrc_t_ReselectionNR_SF, + { "t-ReselectionNR-SF", "nr-rrc.t_ReselectionNR_SF_element", + FT_NONE, BASE_NONE, NULL, 0, + "SpeedStateScaleFactors", HFILL }}, + { &hf_nr_rrc_threshX_HighP, + { "threshX-HighP", "nr-rrc.threshX_HighP", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_ReselectionThreshold_fmt), 0, + "ReselectionThreshold", HFILL }}, + { &hf_nr_rrc_threshX_LowP, + { "threshX-LowP", "nr-rrc.threshX_LowP", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_ReselectionThreshold_fmt), 0, + "ReselectionThreshold", HFILL }}, + { &hf_nr_rrc_threshX_Q, + { "threshX-Q", "nr-rrc.threshX_Q_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_threshX_HighQ, + { "threshX-HighQ", "nr-rrc.threshX_HighQ", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, + "ReselectionThresholdQ", HFILL }}, + { &hf_nr_rrc_threshX_LowQ, + { "threshX-LowQ", "nr-rrc.threshX_LowQ", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, + "ReselectionThresholdQ", HFILL }}, + { &hf_nr_rrc_q_OffsetFreq, + { "q-OffsetFreq", "nr-rrc.q_OffsetFreq", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, + "Q_OffsetRange", HFILL }}, + { &hf_nr_rrc_interFreqNeighCellList, + { "interFreqNeighCellList", "nr-rrc.interFreqNeighCellList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_interFreqBlackCellList, + { "interFreqBlackCellList", "nr-rrc.interFreqBlackCellList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_InterFreqNeighCellList_item, + { "InterFreqNeighCellInfo", "nr-rrc.InterFreqNeighCellInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_InterFreqBlackCellList_item, + { "PCI-Range", "nr-rrc.PCI_Range_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_carrierFreqListEUTRA, + { "carrierFreqListEUTRA", "nr-rrc.carrierFreqListEUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_t_ReselectionEUTRA, + { "t-ReselectionEUTRA", "nr-rrc.t_ReselectionEUTRA", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0, + "T_Reselection", HFILL }}, + { &hf_nr_rrc_t_ReselectionEUTRA_SF, + { "t-ReselectionEUTRA-SF", "nr-rrc.t_ReselectionEUTRA_SF_element", + FT_NONE, BASE_NONE, NULL, 0, + "SpeedStateScaleFactors", HFILL }}, + { &hf_nr_rrc_CarrierFreqListEUTRA_item, + { "CarrierFreqEUTRA", "nr-rrc.CarrierFreqEUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_eutra_multiBandInfoList, + { "eutra-multiBandInfoList", "nr-rrc.eutra_multiBandInfoList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_eutra_FreqNeighCellList, + { "eutra-FreqNeighCellList", "nr-rrc.eutra_FreqNeighCellList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_eutra_BlackCellList, + { "eutra-BlackCellList", "nr-rrc.eutra_BlackCellList", + FT_UINT32, BASE_DEC, NULL, 0, + "EUTRA_FreqBlackCellList", HFILL }}, + { &hf_nr_rrc_allowedMeasBandwidth, + { "allowedMeasBandwidth", "nr-rrc.allowedMeasBandwidth", + FT_UINT32, BASE_DEC, VALS(nr_rrc_EUTRA_AllowedMeasBandwidth_vals), 0, + "EUTRA_AllowedMeasBandwidth", HFILL }}, + { &hf_nr_rrc_presenceAntennaPort1, + { "presenceAntennaPort1", "nr-rrc.presenceAntennaPort1", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "EUTRA_PresenceAntennaPort1", HFILL }}, + { &hf_nr_rrc_threshX_High, + { "threshX-High", "nr-rrc.threshX_High", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_ReselectionThreshold_fmt), 0, + "ReselectionThreshold", HFILL }}, + { &hf_nr_rrc_threshX_Low, + { "threshX-Low", "nr-rrc.threshX_Low", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_ReselectionThreshold_fmt), 0, + "ReselectionThreshold", HFILL }}, + { &hf_nr_rrc_q_RxLevMin_01, + { "q-RxLevMin", "nr-rrc.q_RxLevMin", + FT_INT32, BASE_CUSTOM, CF_FUNC(nr_rrc_q_RxLevMin_fmt), 0, + "INTEGER_M70_M22", HFILL }}, + { &hf_nr_rrc_q_QualMin_01, + { "q-QualMin", "nr-rrc.q_QualMin", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, + "INTEGER_M34_M3", HFILL }}, + { &hf_nr_rrc_p_MaxEUTRA, + { "p-MaxEUTRA", "nr-rrc.p_MaxEUTRA", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, + "INTEGER_M30_33", HFILL }}, + { &hf_nr_rrc_threshX_Q_01, + { "threshX-Q", "nr-rrc.threshX_Q_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_threshX_Q_01", HFILL }}, + { &hf_nr_rrc_EUTRA_FreqBlackCellList_item, + { "EUTRA-PhysCellIdRange", "nr-rrc.EUTRA_PhysCellIdRange_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_EUTRA_FreqNeighCellList_item, + { "EUTRA-FreqNeighCellInfo", "nr-rrc.EUTRA_FreqNeighCellInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_physCellId_01, + { "physCellId", "nr-rrc.physCellId", + FT_UINT32, BASE_DEC, NULL, 0, + "EUTRA_PhysCellId", HFILL }}, + { &hf_nr_rrc_q_OffsetCell_01, + { "q-OffsetCell", "nr-rrc.q_OffsetCell", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_EUTRA_Q_OffsetRange_vals_ext, 0, + "EUTRA_Q_OffsetRange", HFILL }}, + { &hf_nr_rrc_messageIdentifier, + { "messageIdentifier", "nr-rrc.messageIdentifier", + FT_UINT16, BASE_DEC|BASE_EXT_STRING, <e_rrc_messageIdentifier_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_serialNumber, + { "serialNumber", "nr-rrc.serialNumber", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_warningType, + { "warningType", "nr-rrc.warningType", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_messageIdentifier_01, + { "messageIdentifier", "nr-rrc.messageIdentifier", + FT_UINT16, BASE_DEC|BASE_EXT_STRING, <e_rrc_messageIdentifier_vals_ext, 0, + "T_messageIdentifier_01", HFILL }}, + { &hf_nr_rrc_serialNumber_01, + { "serialNumber", "nr-rrc.serialNumber", + FT_BYTES, BASE_NONE, NULL, 0, + "T_serialNumber_01", HFILL }}, + { &hf_nr_rrc_warningMessageSegmentType, + { "warningMessageSegmentType", "nr-rrc.warningMessageSegmentType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_warningMessageSegmentType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_warningMessageSegmentNumber, + { "warningMessageSegmentNumber", "nr-rrc.warningMessageSegmentNumber", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_warningMessageSegment, + { "warningMessageSegment", "nr-rrc.warningMessageSegment", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dataCodingScheme, + { "dataCodingScheme", "nr-rrc.dataCodingScheme", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_messageIdentifier_02, + { "messageIdentifier", "nr-rrc.messageIdentifier", + FT_UINT16, BASE_DEC|BASE_EXT_STRING, <e_rrc_messageIdentifier_vals_ext, 0, + "T_messageIdentifier_02", HFILL }}, + { &hf_nr_rrc_serialNumber_02, + { "serialNumber", "nr-rrc.serialNumber", + FT_BYTES, BASE_NONE, NULL, 0, + "T_serialNumber_02", HFILL }}, + { &hf_nr_rrc_warningMessageSegmentType_01, + { "warningMessageSegmentType", "nr-rrc.warningMessageSegmentType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_warningMessageSegmentType_01_vals), 0, + "T_warningMessageSegmentType_01", HFILL }}, + { &hf_nr_rrc_warningMessageSegmentNumber_01, + { "warningMessageSegmentNumber", "nr-rrc.warningMessageSegmentNumber", + FT_UINT32, BASE_DEC, NULL, 0, + "T_warningMessageSegmentNumber_01", HFILL }}, + { &hf_nr_rrc_warningMessageSegment_01, + { "warningMessageSegment", "nr-rrc.warningMessageSegment", + FT_BYTES, BASE_NONE, NULL, 0, + "T_warningMessageSegment_01", HFILL }}, + { &hf_nr_rrc_dataCodingScheme_01, + { "dataCodingScheme", "nr-rrc.dataCodingScheme", + FT_BYTES, BASE_NONE, NULL, 0, + "T_dataCodingScheme_01", HFILL }}, + { &hf_nr_rrc_warningAreaCoordinatesSegment, + { "warningAreaCoordinatesSegment", "nr-rrc.warningAreaCoordinatesSegment", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING", HFILL }}, + { &hf_nr_rrc_timeInfo, + { "timeInfo", "nr-rrc.timeInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_timeInfoUTC, + { "timeInfoUTC", "nr-rrc.timeInfoUTC", + FT_UINT64, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_dayLightSavingTime, + { "dayLightSavingTime", "nr-rrc.dayLightSavingTime", + FT_UINT8, BASE_DEC, VALS(nr_rrc_daylightSavingTime_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_leapSeconds, + { "leapSeconds", "nr-rrc.leapSeconds", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_seconds, 0, + "INTEGER_M127_128", HFILL }}, + { &hf_nr_rrc_localTimeOffset, + { "localTimeOffset", "nr-rrc.localTimeOffset", + FT_INT32, BASE_CUSTOM, CF_FUNC(nr_rrc_localTimeOffset_fmt), 0, + "INTEGER_M63_64", HFILL }}, { &hf_nr_rrc_rootSequenceIndex_BFR, { "rootSequenceIndex-BFR", "nr-rrc.rootSequenceIndex_BFR", FT_UINT32, BASE_DEC, NULL, 0, @@ -27864,7 +40083,7 @@ void proto_register_nr_rrc(void) { "RACH_ConfigGeneric", HFILL }}, { &hf_nr_rrc_rsrp_ThresholdSSB, { "rsrp-ThresholdSSB", "nr-rrc.rsrp_ThresholdSSB", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRP_Range_fmt), 0, "RSRP_Range", HFILL }}, { &hf_nr_rrc_candidateBeamRSList, { "candidateBeamRSList", "nr-rrc.candidateBeamRSList", @@ -27894,6 +40113,10 @@ void proto_register_nr_rrc(void) { { "beamFailureRecoveryTimer", "nr-rrc.beamFailureRecoveryTimer", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_beamFailureRecoveryTimer_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_msg1_SubcarrierSpacing_v1530, + { "msg1-SubcarrierSpacing-v1530", "nr-rrc.msg1_SubcarrierSpacing_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, + "SubcarrierSpacing", HFILL }}, { &hf_nr_rrc_ssb, { "ssb", "nr-rrc.ssb_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27922,6 +40145,226 @@ void proto_register_nr_rrc(void) { { "ra-OccasionList item", "nr-rrc.ra_OccasionList_item", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_maxRA_Occasions_1", HFILL }}, + { &hf_nr_rrc_periodicBSR_Timer, + { "periodicBSR-Timer", "nr-rrc.periodicBSR_Timer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicBSR_Timer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_retxBSR_Timer, + { "retxBSR-Timer", "nr-rrc.retxBSR_Timer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_retxBSR_Timer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_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_locationAndBandwidth, + { "locationAndBandwidth", "nr-rrc.locationAndBandwidth", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_37949", HFILL }}, + { &hf_nr_rrc_subcarrierSpacing, + { "subcarrierSpacing", "nr-rrc.subcarrierSpacing", + 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_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_DownlinkCommon", HFILL }}, + { &hf_nr_rrc_bwp_Dedicated, + { "bwp-Dedicated", "nr-rrc.bwp_Dedicated_element", + FT_NONE, BASE_NONE, NULL, 0, + "BWP_DownlinkDedicated", HFILL }}, + { &hf_nr_rrc_genericParameters, + { "genericParameters", "nr-rrc.genericParameters_element", + FT_NONE, BASE_NONE, NULL, 0, + "BWP", HFILL }}, + { &hf_nr_rrc_pdcch_ConfigCommon, + { "pdcch-ConfigCommon", "nr-rrc.pdcch_ConfigCommon", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcch_ConfigCommon_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_02, + { "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_03, + { "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_04, + { "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_05, + { "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_06, + { "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_07, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "RadioLinkMonitoringConfig", HFILL }}, + { &hf_nr_rrc_bwp_Common_01, + { "bwp-Common", "nr-rrc.bwp_Common_element", + FT_NONE, BASE_NONE, NULL, 0, + "BWP_UplinkCommon", HFILL }}, + { &hf_nr_rrc_bwp_Dedicated_01, + { "bwp-Dedicated", "nr-rrc.bwp_Dedicated_element", + FT_NONE, BASE_NONE, NULL, 0, + "BWP_UplinkDedicated", 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_setup_08, + { "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_09, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "PUSCH_ConfigCommon", HFILL }}, + { &hf_nr_rrc_pucch_ConfigCommon, + { "pucch-ConfigCommon", "nr-rrc.pucch_ConfigCommon", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pucch_ConfigCommon_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_setup_10, + { "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_11, + { "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_12, + { "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_13, + { "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_14, + { "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_15, + { "setup", "nr-rrc.setup_element", + FT_NONE, BASE_NONE, NULL, 0, + "BeamFailureRecoveryConfig", HFILL }}, + { &hf_nr_rrc_plmn_IdentityList, + { "plmn-IdentityList", "nr-rrc.plmn_IdentityList", + FT_UINT32, BASE_DEC, NULL, 0, + "PLMN_IdentityInfoList", HFILL }}, + { &hf_nr_rrc_cellReservedForOtherUse, + { "cellReservedForOtherUse", "nr-rrc.cellReservedForOtherUse", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cellReservedForOtherUse_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_plmn_IdentityList_eutra_5gc, + { "plmn-IdentityList-eutra-5gc", "nr-rrc.plmn_IdentityList_eutra_5gc", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_trackingAreaCode_eutra_5gc, + { "trackingAreaCode-eutra-5gc", "nr-rrc.trackingAreaCode_eutra_5gc", + FT_BYTES, BASE_NONE, NULL, 0, + "TrackingAreaCode", HFILL }}, + { &hf_nr_rrc_ranac_5gc, + { "ranac-5gc", "nr-rrc.ranac_5gc", + FT_UINT32, BASE_DEC, NULL, 0, + "RAN_AreaCode", HFILL }}, + { &hf_nr_rrc_cellIdentity_eutra_5gc, + { "cellIdentity-eutra-5gc", "nr-rrc.cellIdentity_eutra_5gc", + FT_UINT32, BASE_DEC, VALS(nr_rrc_CellIdentity_EUTRA_5GC_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_PLMN_IdentityList_EUTRA_5GC_item, + { "PLMN-Identity-EUTRA-5GC", "nr-rrc.PLMN_Identity_EUTRA_5GC", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PLMN_Identity_EUTRA_5GC_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_plmn_Identity_EUTRA_5GC, + { "plmn-Identity-EUTRA-5GC", "nr-rrc.plmn_Identity_EUTRA_5GC_element", + FT_NONE, BASE_NONE, NULL, 0, + "PLMN_Identity", HFILL }}, + { &hf_nr_rrc_plmn_index, + { "plmn-index", "nr-rrc.plmn_index", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxPLMN", HFILL }}, + { &hf_nr_rrc_cellIdentity_EUTRA, + { "cellIdentity-EUTRA", "nr-rrc.cellIdentity_EUTRA", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_28", HFILL }}, + { &hf_nr_rrc_cellId_index, + { "cellId-index", "nr-rrc.cellId_index", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxPLMN", HFILL }}, + { &hf_nr_rrc_plmn_IdentityList_eutra_epc, + { "plmn-IdentityList-eutra-epc", "nr-rrc.plmn_IdentityList_eutra_epc", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_trackingAreaCode_eutra_epc, + { "trackingAreaCode-eutra-epc", "nr-rrc.trackingAreaCode_eutra_epc", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_16", HFILL }}, + { &hf_nr_rrc_cellIdentity_eutra_epc, + { "cellIdentity-eutra-epc", "nr-rrc.cellIdentity_eutra_epc", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_28", HFILL }}, + { &hf_nr_rrc_PLMN_IdentityList_EUTRA_EPC_item, + { "PLMN-Identity", "nr-rrc.PLMN_Identity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_cellGroupId, { "cellGroupId", "nr-rrc.cellGroupId", FT_UINT32, BASE_DEC, NULL, 0, @@ -27970,6 +40413,10 @@ void proto_register_nr_rrc(void) { { "SCellIndex", "nr-rrc.SCellIndex", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_reportUplinkTxDirectCurrent_v1530, + { "reportUplinkTxDirectCurrent-v1530", "nr-rrc.reportUplinkTxDirectCurrent_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportUplinkTxDirectCurrent_v1530_vals), 0, + "T_reportUplinkTxDirectCurrent_v1530", HFILL }}, { &hf_nr_rrc_reconfigurationWithSync, { "reconfigurationWithSync", "nr-rrc.reconfigurationWithSync_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27978,7 +40425,7 @@ void proto_register_nr_rrc(void) { { "rlf-TimersAndConstants", "nr-rrc.rlf_TimersAndConstants", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rlf_TimersAndConstants_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_15, + { &hf_nr_rrc_setup_16, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "RLF_TimersAndConstants", HFILL }}, @@ -28010,7 +40457,7 @@ void proto_register_nr_rrc(void) { { "uplink", "nr-rrc.uplink_element", FT_NONE, BASE_NONE, NULL, 0, "RACH_ConfigDedicated", HFILL }}, - { &hf_nr_rrc_supplementaryUplink_01, + { &hf_nr_rrc_supplementaryUplink, { "supplementaryUplink", "nr-rrc.supplementaryUplink_element", FT_NONE, BASE_NONE, NULL, 0, "RACH_ConfigDedicated", HFILL }}, @@ -28026,14 +40473,26 @@ void proto_register_nr_rrc(void) { { "sCellConfigDedicated", "nr-rrc.sCellConfigDedicated_element", FT_NONE, BASE_NONE, NULL, 0, "ServingCellConfig", HFILL }}, + { &hf_nr_rrc_plmn_IdentityInfoList, + { "plmn-IdentityInfoList", "nr-rrc.plmn_IdentityInfoList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_frequencyBandList_01, + { "frequencyBandList", "nr-rrc.frequencyBandList", + FT_UINT32, BASE_DEC, NULL, 0, + "MultiFrequencyBandListNR", HFILL }}, + { &hf_nr_rrc_noSIB1, + { "noSIB1", "nr-rrc.noSIB1_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, NULL, HFILL }}, - { &hf_nr_rrc_type1, + { &hf_nr_rrc_type1_01, { "type1", "nr-rrc.type1_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, + "T_type1_01", HFILL }}, { &hf_nr_rrc_subType, { "subType", "nr-rrc.subType", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subType_vals), 0, @@ -28286,7 +40745,7 @@ void proto_register_nr_rrc(void) { { "uci-OnPUSCH", "nr-rrc.uci_OnPUSCH", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uci_OnPUSCH_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_16, + { &hf_nr_rrc_setup_17, { "setup", "nr-rrc.setup", FT_UINT32, BASE_DEC, VALS(nr_rrc_CG_UCI_OnPUSCH_vals), 0, "CG_UCI_OnPUSCH", HFILL }}, @@ -28328,7 +40787,7 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_configuredGrantTimer, { "configuredGrantTimer", "nr-rrc.configuredGrantTimer", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_periodicities, 0, "INTEGER_1_64", HFILL }}, { &hf_nr_rrc_rrc_ConfiguredUplinkGrant, { "rrc-ConfiguredUplinkGrant", "nr-rrc.rrc_ConfiguredUplinkGrant_element", @@ -28386,6 +40845,18 @@ void proto_register_nr_rrc(void) { { "semiStatic", "nr-rrc.semiStatic_element", FT_NONE, BASE_NONE, NULL, 0, "BetaOffsets", HFILL }}, + { &hf_nr_rrc_connEstFailCount, + { "connEstFailCount", "nr-rrc.connEstFailCount", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_connEstFailCount_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_connEstFailOffsetValidity, + { "connEstFailOffsetValidity", "nr-rrc.connEstFailOffsetValidity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_connEstFailOffsetValidity_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_connEstFailOffset, + { "connEstFailOffset", "nr-rrc.connEstFailOffset", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, + "INTEGER_0_15", HFILL }}, { &hf_nr_rrc_controlResourceSetId, { "controlResourceSetId", "nr-rrc.controlResourceSetId", FT_UINT32, BASE_DEC, NULL, 0, @@ -28514,12 +40985,12 @@ void proto_register_nr_rrc(void) { { "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", + { &hf_nr_rrc_csi_IM_ResourcesForInterference, + { "csi-IM-ResourcesForInterference", "nr-rrc.csi_IM_ResourcesForInterference", 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", + { &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, @@ -28702,7 +41173,7 @@ void proto_register_nr_rrc(void) { { "aperiodicTriggerStateList", "nr-rrc.aperiodicTriggerStateList", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aperiodicTriggerStateList_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_17, + { &hf_nr_rrc_setup_18, { "setup", "nr-rrc.setup", FT_UINT32, BASE_DEC, NULL, 0, "CSI_AperiodicTriggerStateList", HFILL }}, @@ -28710,7 +41181,7 @@ void proto_register_nr_rrc(void) { { "semiPersistentOnPUSCH-TriggerStateList", "nr-rrc.semiPersistentOnPUSCH_TriggerStateList", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_semiPersistentOnPUSCH_TriggerStateList_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_18, + { &hf_nr_rrc_setup_19, { "setup", "nr-rrc.setup", FT_UINT32, BASE_DEC, NULL, 0, "CSI_SemiPersistentOnPUSCH_TriggerStateList", HFILL }}, @@ -28722,11 +41193,11 @@ void proto_register_nr_rrc(void) { { "resourcesForChannelMeasurement", "nr-rrc.resourcesForChannelMeasurement", FT_UINT32, BASE_DEC, NULL, 0, "CSI_ResourceConfigId", HFILL }}, - { &hf_nr_rrc_csi_IM_ResourcesForInterference, + { &hf_nr_rrc_csi_IM_ResourcesForInterference_01, { "csi-IM-ResourcesForInterference", "nr-rrc.csi_IM_ResourcesForInterference", FT_UINT32, BASE_DEC, NULL, 0, "CSI_ResourceConfigId", HFILL }}, - { &hf_nr_rrc_nzp_CSI_RS_ResourcesForInterference, + { &hf_nr_rrc_nzp_CSI_RS_ResourcesForInterference_01, { "nzp-CSI-RS-ResourcesForInterference", "nr-rrc.nzp_CSI_RS_ResourcesForInterference", FT_UINT32, BASE_DEC, NULL, 0, "CSI_ResourceConfigId", HFILL }}, @@ -28836,7 +41307,7 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_csi_ReportingBand, { "csi-ReportingBand", "nr-rrc.csi_ReportingBand", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_ReportingBand_vals), 0, + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_csi_ReportingBand_vals_ext, 0, NULL, HFILL }}, { &hf_nr_rrc_subbands3, { "subbands3", "nr-rrc.subbands3", @@ -28902,6 +41373,10 @@ void proto_register_nr_rrc(void) { { "subbands18", "nr-rrc.subbands18", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_18", HFILL }}, + { &hf_nr_rrc_subbands19_v1530, + { "subbands19-v1530", "nr-rrc.subbands19_v1530", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_19", HFILL }}, { &hf_nr_rrc_timeRestrictionForChannelMeasurements, { "timeRestrictionForChannelMeasurements", "nr-rrc.timeRestrictionForChannelMeasurements", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_timeRestrictionForChannelMeasurements_vals), 0, @@ -28950,6 +41425,14 @@ void proto_register_nr_rrc(void) { { "PortIndexFor8Ranks", "nr-rrc.PortIndexFor8Ranks", FT_UINT32, BASE_DEC, VALS(nr_rrc_PortIndexFor8Ranks_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_semiPersistentOnPUSCH_v1530, + { "semiPersistentOnPUSCH-v1530", "nr-rrc.semiPersistentOnPUSCH_v1530_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportSlotConfig_v1530, + { "reportSlotConfig-v1530", "nr-rrc.reportSlotConfig_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportSlotConfig_v1530_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_slots4, { "slots4", "nr-rrc.slots4", FT_UINT32, BASE_DEC, NULL, 0, @@ -29174,6 +41657,10 @@ void proto_register_nr_rrc(void) { { "CSI-RS-CellMobility", "nr-rrc.CSI_RS_CellMobility_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_refServCellIndex_v1530, + { "refServCellIndex-v1530", "nr-rrc.refServCellIndex_v1530", + FT_UINT32, BASE_DEC, NULL, 0, + "ServCellIndex", HFILL }}, { &hf_nr_rrc_cellId, { "cellId", "nr-rrc.cellId", FT_UINT32, BASE_DEC, NULL, 0, @@ -29302,7 +41789,7 @@ void proto_register_nr_rrc(void) { { "three", "nr-rrc.three_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_spare_01, + { &hf_nr_rrc_spare_02, { "spare", "nr-rrc.spare_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, @@ -29350,7 +41837,7 @@ void proto_register_nr_rrc(void) { { "phaseTrackingRS", "nr-rrc.phaseTrackingRS", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phaseTrackingRS_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_19, + { &hf_nr_rrc_setup_20, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PTRS_DownlinkConfig", HFILL }}, @@ -29366,7 +41853,7 @@ void proto_register_nr_rrc(void) { { "phaseTrackingRS", "nr-rrc.phaseTrackingRS", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phaseTrackingRS_01_vals), 0, "T_phaseTrackingRS_01", HFILL }}, - { &hf_nr_rrc_setup_20, + { &hf_nr_rrc_setup_21, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PTRS_UplinkConfig", HFILL }}, @@ -29386,13 +41873,13 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_sequenceGroupHopping, + { "sequenceGroupHopping", "nr-rrc.sequenceGroupHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sequenceGroupHopping_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_sequenceHoppingEnabled, - { "sequenceHoppingEnabled", "nr-rrc.sequenceHoppingEnabled", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sequenceHoppingEnabled_vals), 0, + { &hf_nr_rrc_sequenceHopping, + { "sequenceHopping", "nr-rrc.sequenceHopping", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sequenceHopping_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_frequencyInfoDL, { "frequencyInfoDL", "nr-rrc.frequencyInfoDL_element", @@ -29402,6 +41889,122 @@ void proto_register_nr_rrc(void) { { "initialDownlinkBWP", "nr-rrc.initialDownlinkBWP_element", FT_NONE, BASE_NONE, NULL, 0, "BWP_DownlinkCommon", HFILL }}, + { &hf_nr_rrc_frequencyInfoDL_01, + { "frequencyInfoDL", "nr-rrc.frequencyInfoDL_element", + FT_NONE, BASE_NONE, NULL, 0, + "FrequencyInfoDL_SIB", HFILL }}, + { &hf_nr_rrc_bcch_Config, + { "bcch-Config", "nr-rrc.bcch_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pcch_Config, + { "pcch-Config", "nr-rrc.pcch_Config_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_modificationPeriodCoeff, + { "modificationPeriodCoeff", "nr-rrc.modificationPeriodCoeff", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_modificationPeriodCoeff_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_defaultPagingCycle, + { "defaultPagingCycle", "nr-rrc.defaultPagingCycle", + FT_UINT32, BASE_DEC, VALS(nr_rrc_PagingCycle_vals), 0, + "PagingCycle", HFILL }}, + { &hf_nr_rrc_nAndPagingFrameOffset, + { "nAndPagingFrameOffset", "nr-rrc.nAndPagingFrameOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nAndPagingFrameOffset_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_oneT, + { "oneT", "nr-rrc.oneT_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_halfT, + { "halfT", "nr-rrc.halfT", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1", HFILL }}, + { &hf_nr_rrc_quarterT, + { "quarterT", "nr-rrc.quarterT", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3", HFILL }}, + { &hf_nr_rrc_oneEighthT, + { "oneEighthT", "nr-rrc.oneEighthT", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_nr_rrc_oneSixteenthT, + { "oneSixteenthT", "nr-rrc.oneSixteenthT", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_nr_rrc_ns, + { "ns", "nr-rrc.ns", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ns_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_firstPDCCH_MonitoringOccasionOfPO, + { "firstPDCCH-MonitoringOccasionOfPO", "nr-rrc.firstPDCCH_MonitoringOccasionOfPO", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sCS15KHZoneT, + { "sCS15KHZoneT", "nr-rrc.sCS15KHZoneT", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sCS15KHZoneT_item, + { "sCS15KHZoneT item", "nr-rrc.sCS15KHZoneT_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_139", HFILL }}, + { &hf_nr_rrc_sCS30KHZoneT_SCS15KHZhalfT, + { "sCS30KHZoneT-SCS15KHZhalfT", "nr-rrc.sCS30KHZoneT_SCS15KHZhalfT", + FT_UINT32, BASE_DEC, NULL, 0, + "T_sCS30KHZoneT_SCS15KHZhalfT", HFILL }}, + { &hf_nr_rrc_sCS30KHZoneT_SCS15KHZhalfT_item, + { "sCS30KHZoneT-SCS15KHZhalfT item", "nr-rrc.sCS30KHZoneT_SCS15KHZhalfT_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_279", HFILL }}, + { &hf_nr_rrc_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, + { "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT", "nr-rrc.sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT", + FT_UINT32, BASE_DEC, NULL, 0, + "T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT", HFILL }}, + { &hf_nr_rrc_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_item, + { "sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT item", "nr-rrc.sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_559", HFILL }}, + { &hf_nr_rrc_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, + { "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT", "nr-rrc.sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT", + FT_UINT32, BASE_DEC, NULL, 0, + "T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT", HFILL }}, + { &hf_nr_rrc_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_item, + { "sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT item", "nr-rrc.sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1119", HFILL }}, + { &hf_nr_rrc_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, + { "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT", "nr-rrc.sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT", + FT_UINT32, BASE_DEC, NULL, 0, + "T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT", HFILL }}, + { &hf_nr_rrc_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_item, + { "sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT item", "nr-rrc.sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_2239", HFILL }}, + { &hf_nr_rrc_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, + { "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT", "nr-rrc.sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT", + FT_UINT32, BASE_DEC, NULL, 0, + "T_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT", HFILL }}, + { &hf_nr_rrc_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_item, + { "sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT item", "nr-rrc.sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4479", HFILL }}, + { &hf_nr_rrc_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, + { "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT", "nr-rrc.sCS120KHZoneEighthT_SCS60KHZoneSixteenthT", + FT_UINT32, BASE_DEC, NULL, 0, + "T_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT", HFILL }}, + { &hf_nr_rrc_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_item, + { "sCS120KHZoneEighthT-SCS60KHZoneSixteenthT item", "nr-rrc.sCS120KHZoneEighthT_SCS60KHZoneSixteenthT_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_8959", HFILL }}, + { &hf_nr_rrc_sCS120KHZoneSixteenthT, + { "sCS120KHZoneSixteenthT", "nr-rrc.sCS120KHZoneSixteenthT", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sCS120KHZoneSixteenthT_item, + { "sCS120KHZoneSixteenthT item", "nr-rrc.sCS120KHZoneSixteenthT_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_17919", HFILL }}, { &hf_nr_rrc_int_RNTI, { "int-RNTI", "nr-rrc.int_RNTI", FT_UINT32, BASE_DEC, NULL, 0, @@ -29430,50 +42033,58 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_drx_onDurationTimer, + { "drx-onDurationTimer", "nr-rrc.drx_onDurationTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_drx_onDurationTimer_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_radioframeAllocationPeriod, - { "radioframeAllocationPeriod", "nr-rrc.radioframeAllocationPeriod", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_radioframeAllocationPeriod_vals), 0, + { &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_radioframeAllocationOffset, - { "radioframeAllocationOffset", "nr-rrc.radioframeAllocationOffset", + { &hf_nr_rrc_drx_InactivityTimer, + { "drx-InactivityTimer", "nr-rrc.drx_InactivityTimer", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_InactivityTimer_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_drx_HARQ_RTT_TimerDL, + { "drx-HARQ-RTT-TimerDL", "nr-rrc.drx_HARQ_RTT_TimerDL", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_7", HFILL }}, - { &hf_nr_rrc_subframeAllocation, - { "subframeAllocation", "nr-rrc.subframeAllocation", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subframeAllocation_vals), 0, + "INTEGER_0_56", HFILL }}, + { &hf_nr_rrc_drx_HARQ_RTT_TimerUL, + { "drx-HARQ-RTT-TimerUL", "nr-rrc.drx_HARQ_RTT_TimerUL", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_56", HFILL }}, + { &hf_nr_rrc_drx_RetransmissionTimerDL, + { "drx-RetransmissionTimerDL", "nr-rrc.drx_RetransmissionTimerDL", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_RetransmissionTimerDL_vals_ext, 0, NULL, HFILL }}, - { &hf_nr_rrc_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, + { &hf_nr_rrc_drx_RetransmissionTimerUL, + { "drx-RetransmissionTimerUL", "nr-rrc.drx_RetransmissionTimerUL", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_RetransmissionTimerUL_vals_ext, 0, NULL, HFILL }}, - { &hf_nr_rrc_oneFrame_v1430, - { "oneFrame-v1430", "nr-rrc.oneFrame_v1430", - FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_2", HFILL }}, - { &hf_nr_rrc_fourFrames_v1430, - { "fourFrames-v1430", "nr-rrc.fourFrames_v1430", - FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_drx_LongCycleStartOffset_01, + { "drx-LongCycleStartOffset", "nr-rrc.drx_LongCycleStartOffset", + 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, + "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_01_vals_ext, 0, + "T_drx_ShortCycle_01", HFILL }}, + { &hf_nr_rrc_drx_SlotOffset, + { "drx-SlotOffset", "nr-rrc.drx_SlotOffset", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_drx_SlotOffset_fmt), 0, + "INTEGER_0_31", HFILL }}, { &hf_nr_rrc_absoluteFrequencySSB, { "absoluteFrequencySSB", "nr-rrc.absoluteFrequencySSB", FT_UINT32, BASE_DEC, NULL, 0, "ARFCN_ValueNR", 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, @@ -29486,18 +42097,34 @@ void proto_register_nr_rrc(void) { { "SCS-SpecificCarrier", "nr-rrc.SCS_SpecificCarrier_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_offsetToPointA, + { "offsetToPointA", "nr-rrc.offsetToPointA", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_prbs, 0, + "INTEGER_0_2199", HFILL }}, { &hf_nr_rrc_additionalSpectrumEmission, { "additionalSpectrumEmission", "nr-rrc.additionalSpectrumEmission", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_p_Max, - { "p-Max", "nr-rrc.p_Max", - FT_INT32, BASE_DEC, NULL, 0, - NULL, HFILL }}, { &hf_nr_rrc_frequencyShift7p5khz, { "frequencyShift7p5khz", "nr-rrc.frequencyShift7p5khz", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyShift7p5khz_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_frequencyShift7p5khz_01, + { "frequencyShift7p5khz", "nr-rrc.frequencyShift7p5khz", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyShift7p5khz_01_vals), 0, + "T_frequencyShift7p5khz_01", HFILL }}, + { &hf_nr_rrc_eutra_RSTD, + { "eutra-RSTD", "nr-rrc.eutra_RSTD", + FT_UINT32, BASE_DEC, NULL, 0, + "EUTRA_RSTD_InfoList", HFILL }}, + { &hf_nr_rrc_EUTRA_RSTD_InfoList_item, + { "EUTRA-RSTD-Info", "nr-rrc.EUTRA_RSTD_Info_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measPRS_Offset, + { "measPRS-Offset", "nr-rrc.measPRS_Offset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_39", HFILL }}, { &hf_nr_rrc_ul_SpecificParameters, { "ul-SpecificParameters", "nr-rrc.ul_SpecificParameters_element", FT_NONE, BASE_NONE, NULL, 0, @@ -29554,11 +42181,15 @@ void proto_register_nr_rrc(void) { { "logicalChannelSR-DelayTimerApplied", "nr-rrc.logicalChannelSR_DelayTimerApplied", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, + { &hf_nr_rrc_bitRateQueryProhibitTimer, + { "bitRateQueryProhibitTimer", "nr-rrc.bitRateQueryProhibitTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bitRateQueryProhibitTimer_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_drx_Config, { "drx-Config", "nr-rrc.drx_Config", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_drx_Config_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_21, + { &hf_nr_rrc_setup_22, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "DRX_Config", HFILL }}, @@ -29578,7 +42209,7 @@ void proto_register_nr_rrc(void) { { "phr-Config", "nr-rrc.phr_Config", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_Config_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_22, + { &hf_nr_rrc_setup_23, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PHR_Config", HFILL }}, @@ -29586,118 +42217,18 @@ void proto_register_nr_rrc(void) { { "skipUplinkTxDynamic", "nr-rrc.skipUplinkTxDynamic", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, - { &hf_nr_rrc_drx_onDurationTimer, - { "drx-onDurationTimer", "nr-rrc.drx_onDurationTimer", - 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", - FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_InactivityTimer_vals_ext, 0, - NULL, HFILL }}, - { &hf_nr_rrc_drx_HARQ_RTT_TimerDL, - { "drx-HARQ-RTT-TimerDL", "nr-rrc.drx_HARQ_RTT_TimerDL", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_56", HFILL }}, - { &hf_nr_rrc_drx_HARQ_RTT_TimerUL, - { "drx-HARQ-RTT-TimerUL", "nr-rrc.drx_HARQ_RTT_TimerUL", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_56", HFILL }}, - { &hf_nr_rrc_drx_RetransmissionTimerDL, - { "drx-RetransmissionTimerDL", "nr-rrc.drx_RetransmissionTimerDL", - FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_RetransmissionTimerDL_vals_ext, 0, - NULL, HFILL }}, - { &hf_nr_rrc_drx_RetransmissionTimerUL, - { "drx-RetransmissionTimerUL", "nr-rrc.drx_RetransmissionTimerUL", - FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_T_drx_RetransmissionTimerUL_vals_ext, 0, - NULL, HFILL }}, - { &hf_nr_rrc_drx_LongCycleStartOffset_01, - { "drx-LongCycleStartOffset", "nr-rrc.drx_LongCycleStartOffset", - 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, - "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_01_vals_ext, 0, - "T_drx_ShortCycle_01", HFILL }}, - { &hf_nr_rrc_drx_SlotOffset, - { "drx-SlotOffset", "nr-rrc.drx_SlotOffset", - FT_UINT32, BASE_DEC, 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, - NULL, HFILL }}, - { &hf_nr_rrc_phr_ProhibitTimer, - { "phr-ProhibitTimer", "nr-rrc.phr_ProhibitTimer", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_ProhibitTimer_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_phr_Tx_PowerFactorChange, - { "phr-Tx-PowerFactorChange", "nr-rrc.phr_Tx_PowerFactorChange", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_Tx_PowerFactorChange_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_multiplePHR, - { "multiplePHR", "nr-rrc.multiplePHR", - FT_BOOLEAN, BASE_NONE, NULL, 0, - "BOOLEAN", HFILL }}, - { &hf_nr_rrc_phr_Type2SpCell, - { "phr-Type2SpCell", "nr-rrc.phr_Type2SpCell", + { &hf_nr_rrc_csi_Mask_v1530, + { "csi-Mask-v1530", "nr-rrc.csi_Mask_v1530", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, - { &hf_nr_rrc_phr_Type2OtherCell, - { "phr-Type2OtherCell", "nr-rrc.phr_Type2OtherCell", - FT_BOOLEAN, BASE_NONE, NULL, 0, - "BOOLEAN", HFILL }}, - { &hf_nr_rrc_phr_ModeOtherCG, - { "phr-ModeOtherCG", "nr-rrc.phr_ModeOtherCG", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_ModeOtherCG_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_tag_ToReleaseList, - { "tag-ToReleaseList", "nr-rrc.tag_ToReleaseList", - FT_UINT32, BASE_DEC, NULL, 0, - "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, - "SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG", HFILL }}, - { &hf_nr_rrc_tag_ToAddModList_item, - { "TAG", "nr-rrc.TAG_element", - FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_tag_Id, - { "tag-Id", "nr-rrc.tag_Id", - FT_UINT32, BASE_DEC, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_timeAlignmentTimer, - { "timeAlignmentTimer", "nr-rrc.timeAlignmentTimer", - FT_UINT32, BASE_DEC, VALS(nr_rrc_TimeAlignmentTimer_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_periodicBSR_Timer, - { "periodicBSR-Timer", "nr-rrc.periodicBSR_Timer", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicBSR_Timer_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_retxBSR_Timer, - { "retxBSR-Timer", "nr-rrc.retxBSR_Timer", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_retxBSR_Timer_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_logicalChannelSR_DelayTimer, - { "logicalChannelSR-DelayTimer", "nr-rrc.logicalChannelSR_DelayTimer", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_logicalChannelSR_DelayTimer_vals), 0, + { &hf_nr_rrc_dataInactivityTimer_v1530, + { "dataInactivityTimer-v1530", "nr-rrc.dataInactivityTimer_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dataInactivityTimer_v1530_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_setup_24, + { "setup", "nr-rrc.setup", + FT_UINT32, BASE_DEC, VALS(nr_rrc_DataInactivityTimer_vals), 0, + "DataInactivityTimer", HFILL }}, { &hf_nr_rrc_measObjectToRemoveList, { "measObjectToRemoveList", "nr-rrc.measObjectToRemoveList", FT_UINT32, BASE_DEC, NULL, 0, @@ -29728,11 +42259,11 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_ssb_RSRP, { "ssb-RSRP", "nr-rrc.ssb_RSRP", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRP_Range_fmt), 0, "RSRP_Range", HFILL }}, { &hf_nr_rrc_csi_RSRP, { "csi-RSRP", "nr-rrc.csi_RSRP", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRP_Range_fmt), 0, "RSRP_Range", HFILL }}, { &hf_nr_rrc_quantityConfig, { "quantityConfig", "nr-rrc.quantityConfig_element", @@ -29762,6 +42293,14 @@ void proto_register_nr_rrc(void) { { "gapFR2", "nr-rrc.gapFR2", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gapFR2_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_gapFR1, + { "gapFR1", "nr-rrc.gapFR1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gapFR1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_gapUE, + { "gapUE", "nr-rrc.gapUE", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gapUE_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_gapOffset, { "gapOffset", "nr-rrc.gapOffset", FT_UINT32, BASE_DEC, NULL, 0, @@ -29782,10 +42321,18 @@ void proto_register_nr_rrc(void) { { "gapSharingFR2", "nr-rrc.gapSharingFR2", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gapSharingFR2_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_23, + { &hf_nr_rrc_setup_25, { "setup", "nr-rrc.setup", FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasGapSharingScheme_vals), 0, "MeasGapSharingScheme", HFILL }}, + { &hf_nr_rrc_gapSharingFR1, + { "gapSharingFR1", "nr-rrc.gapSharingFR1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gapSharingFR1_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_gapSharingUE, + { "gapSharingUE", "nr-rrc.gapSharingUE", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gapSharingUE_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_MeasIdToAddModList_item, { "MeasIdToAddMod", "nr-rrc.MeasIdToAddMod_element", FT_NONE, BASE_NONE, NULL, 0, @@ -29802,14 +42349,62 @@ void proto_register_nr_rrc(void) { { "reportConfigId", "nr-rrc.reportConfigId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_cellsToRemoveListEUTRAN, + { "cellsToRemoveListEUTRAN", "nr-rrc.cellsToRemoveListEUTRAN", + FT_UINT32, BASE_DEC, NULL, 0, + "EUTRA_CellIndexList", HFILL }}, + { &hf_nr_rrc_cellsToAddModListEUTRAN, + { "cellsToAddModListEUTRAN", "nr-rrc.cellsToAddModListEUTRAN", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_Cell", HFILL }}, + { &hf_nr_rrc_cellsToAddModListEUTRAN_item, + { "EUTRA-Cell", "nr-rrc.EUTRA_Cell_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_blackCellsToRemoveListEUTRAN, + { "blackCellsToRemoveListEUTRAN", "nr-rrc.blackCellsToRemoveListEUTRAN", + FT_UINT32, BASE_DEC, NULL, 0, + "EUTRA_CellIndexList", HFILL }}, + { &hf_nr_rrc_blackCellsToAddModListEUTRAN, + { "blackCellsToAddModListEUTRAN", "nr-rrc.blackCellsToAddModListEUTRAN", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_BlackCell", HFILL }}, + { &hf_nr_rrc_blackCellsToAddModListEUTRAN_item, + { "EUTRA-BlackCell", "nr-rrc.EUTRA_BlackCell_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_eutra_PresenceAntennaPort1, + { "eutra-PresenceAntennaPort1", "nr-rrc.eutra_PresenceAntennaPort1", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_eutra_Q_OffsetRange, + { "eutra-Q-OffsetRange", "nr-rrc.eutra_Q_OffsetRange", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_EUTRA_Q_OffsetRange_vals_ext, 0, + NULL, HFILL }}, + { &hf_nr_rrc_widebandRSRQ_Meas, + { "widebandRSRQ-Meas", "nr-rrc.widebandRSRQ_Meas", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_EUTRA_CellIndexList_item, + { "EUTRA-CellIndex", "nr-rrc.EUTRA_CellIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellIndexEUTRA, + { "cellIndexEUTRA", "nr-rrc.cellIndexEUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "EUTRA_CellIndex", HFILL }}, + { &hf_nr_rrc_cellIndividualOffset, + { "cellIndividualOffset", "nr-rrc.cellIndividualOffset", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_EUTRA_Q_OffsetRange_vals_ext, 0, + "EUTRA_Q_OffsetRange", HFILL }}, + { &hf_nr_rrc_physCellIdRange, + { "physCellIdRange", "nr-rrc.physCellIdRange_element", + FT_NONE, BASE_NONE, NULL, 0, + "EUTRA_PhysCellIdRange", HFILL }}, { &hf_nr_rrc_ssbFrequency, { "ssbFrequency", "nr-rrc.ssbFrequency", FT_UINT32, BASE_DEC, NULL, 0, "ARFCN_ValueNR", HFILL }}, - { &hf_nr_rrc_ssbSubcarrierSpacing, - { "ssbSubcarrierSpacing", "nr-rrc.ssbSubcarrierSpacing", - FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, - "SubcarrierSpacing", HFILL }}, { &hf_nr_rrc_smtc1, { "smtc1", "nr-rrc.smtc1_element", FT_NONE, BASE_NONE, NULL, 0, @@ -29826,18 +42421,10 @@ void proto_register_nr_rrc(void) { { "referenceSignalConfig", "nr-rrc.referenceSignalConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_absThreshSS_BlocksConsolidation, - { "absThreshSS-BlocksConsolidation", "nr-rrc.absThreshSS_BlocksConsolidation_element", - FT_NONE, BASE_NONE, NULL, 0, - "ThresholdNR", HFILL }}, { &hf_nr_rrc_absThreshCSI_RS_Consolidation, { "absThreshCSI-RS-Consolidation", "nr-rrc.absThreshCSI_RS_Consolidation_element", FT_NONE, BASE_NONE, NULL, 0, "ThresholdNR", HFILL }}, - { &hf_nr_rrc_nrofSS_BlocksToAverage, - { "nrofSS-BlocksToAverage", "nr-rrc.nrofSS_BlocksToAverage", - FT_UINT32, BASE_DEC, NULL, 0, - "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, @@ -29882,6 +42469,14 @@ void proto_register_nr_rrc(void) { { "PCI-RangeElement", "nr-rrc.PCI_RangeElement_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_freqBandIndicatorNR_v1530, + { "freqBandIndicatorNR-v1530", "nr-rrc.freqBandIndicatorNR_v1530", + FT_UINT32, BASE_DEC, NULL, 0, + "FreqBandIndicatorNR", HFILL }}, + { &hf_nr_rrc_measCycleSCell_v1530, + { "measCycleSCell-v1530", "nr-rrc.measCycleSCell_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_measCycleSCell_v1530_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_ssb_ConfigMobility, { "ssb-ConfigMobility", "nr-rrc.ssb_ConfigMobility_element", FT_NONE, BASE_NONE, NULL, 0, @@ -29890,26 +42485,18 @@ void proto_register_nr_rrc(void) { { "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_setup_24, + { &hf_nr_rrc_setup_26, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "CSI_RS_ResourceConfigMobility", HFILL }}, - { &hf_nr_rrc_ssb_ToMeasure, + { &hf_nr_rrc_ssb_ToMeasure_01, { "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, + { &hf_nr_rrc_setup_27, { "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, - "BOOLEAN", 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_rsrpOffsetSSB, { "rsrpOffsetSSB", "nr-rrc.rsrpOffsetSSB", FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_Q_OffsetRange_vals_ext, 0, @@ -29934,39 +42521,23 @@ 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_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, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRP_Range_fmt), 0, "RSRP_Range", HFILL }}, { &hf_nr_rrc_thresholdRSRQ, { "thresholdRSRQ", "nr-rrc.thresholdRSRQ", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRQ_Range_fmt), 0, "RSRQ_Range", HFILL }}, { &hf_nr_rrc_thresholdSINR, { "thresholdSINR", "nr-rrc.thresholdSINR", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_SINR_Range_fmt), 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_physCellId, - { "physCellId", "nr-rrc.physCellId", - FT_UINT32, BASE_DEC, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_cellIndividualOffset, + { &hf_nr_rrc_cellIndividualOffset_01, { "cellIndividualOffset", "nr-rrc.cellIndividualOffset_element", FT_NONE, BASE_NONE, NULL, 0, "Q_OffsetRangeList", HFILL }}, @@ -29982,6 +42553,26 @@ 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_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_CUSTOM, CF_FUNC(nr_rrc_RSRP_Range_fmt), 0, + "RSRP_Range", HFILL }}, { &hf_nr_rrc_measResultServingMOList, { "measResultServingMOList", "nr-rrc.measResultServingMOList", FT_UINT32, BASE_DEC, NULL, 0, @@ -29994,6 +42585,10 @@ 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", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_MeasResultServMOList_item, { "MeasResultServMO", "nr-rrc.MeasResultServMO_element", FT_NONE, BASE_NONE, NULL, 0, @@ -30042,18 +42637,86 @@ void proto_register_nr_rrc(void) { { "resultsCSI-RS-Indexes", "nr-rrc.resultsCSI_RS_Indexes", FT_UINT32, BASE_DEC, NULL, 0, "ResultsPerCSI_RS_IndexList", HFILL }}, + { &hf_nr_rrc_cgi_Info, + { "cgi-Info", "nr-rrc.cgi_Info_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_MeasResultListEUTRA_item, + { "MeasResultEUTRA", "nr-rrc.MeasResultEUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measResult_01, + { "measResult", "nr-rrc.measResult_element", + FT_NONE, BASE_NONE, NULL, 0, + "MeasQuantityResultsEUTRA", HFILL }}, + { &hf_nr_rrc_cgi_Info_01, + { "cgi-Info", "nr-rrc.cgi_Info_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cgi_info_EPC, + { "cgi-info-EPC", "nr-rrc.cgi_info_EPC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cgi_info_EPC_legacy, + { "cgi-info-EPC-legacy", "nr-rrc.cgi_info_EPC_legacy_element", + FT_NONE, BASE_NONE, NULL, 0, + "CellAccessRelatedInfo_EUTRA_EPC", HFILL }}, + { &hf_nr_rrc_cgi_info_EPC_list, + { "cgi-info-EPC-list", "nr-rrc.cgi_info_EPC_list", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC", HFILL }}, + { &hf_nr_rrc_cgi_info_EPC_list_item, + { "CellAccessRelatedInfo-EUTRA-EPC", "nr-rrc.CellAccessRelatedInfo_EUTRA_EPC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cgi_info_5GC, + { "cgi-info-5GC", "nr-rrc.cgi_info_5GC", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC", HFILL }}, + { &hf_nr_rrc_cgi_info_5GC_item, + { "CellAccessRelatedInfo-EUTRA-5GC", "nr-rrc.CellAccessRelatedInfo_EUTRA_5GC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_freqBandIndicator, + { "freqBandIndicator", "nr-rrc.freqBandIndicator", + FT_UINT32, BASE_DEC, NULL, 0, + "FreqBandIndicatorEUTRA", HFILL }}, + { &hf_nr_rrc_multiBandInfoList, + { "multiBandInfoList", "nr-rrc.multiBandInfoList", + FT_UINT32, BASE_DEC, NULL, 0, + "MultiBandInfoListEUTRA", HFILL }}, + { &hf_nr_rrc_freqBandIndicatorPriority, + { "freqBandIndicatorPriority", "nr-rrc.freqBandIndicatorPriority", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_freqBandIndicatorPriority_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_MultiBandInfoListEUTRA_item, + { "FreqBandIndicatorEUTRA", "nr-rrc.FreqBandIndicatorEUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_rsrp, { "rsrp", "nr-rrc.rsrp", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRP_Range_fmt), 0, "RSRP_Range", HFILL }}, { &hf_nr_rrc_rsrq, { "rsrq", "nr-rrc.rsrq", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRQ_Range_fmt), 0, "RSRQ_Range", HFILL }}, { &hf_nr_rrc_sinr, { "sinr", "nr-rrc.sinr", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_SINR_Range_fmt), 0, "SINR_Range", HFILL }}, + { &hf_nr_rrc_rsrp_01, + { "rsrp", "nr-rrc.rsrp", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRP_RangeEUTRA_fmt), 0, + "RSRP_RangeEUTRA", HFILL }}, + { &hf_nr_rrc_rsrq_01, + { "rsrq", "nr-rrc.rsrq", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRQ_RangeEUTRA_fmt), 0, + "RSRQ_RangeEUTRA", HFILL }}, + { &hf_nr_rrc_sinr_01, + { "sinr", "nr-rrc.sinr", + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_SINR_RangeEUTRA_fmt), 0, + "SINR_RangeEUTRA", HFILL }}, { &hf_nr_rrc_ResultsPerSSB_IndexList_item, { "ResultsPerSSB-Index", "nr-rrc.ResultsPerSSB_Index_element", FT_NONE, BASE_NONE, NULL, 0, @@ -30082,22 +42745,22 @@ void proto_register_nr_rrc(void) { { "measResultNeighCellListNR", "nr-rrc.measResultNeighCellListNR", FT_UINT32, BASE_DEC, NULL, 0, "MeasResultListNR", HFILL }}, - { &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", + { &hf_nr_rrc_t_Evaluation, + { "t-Evaluation", "nr-rrc.t_Evaluation", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t_Evaluation_vals), 0, + "T_t_Evaluation", HFILL }}, + { &hf_nr_rrc_t_HystNormal, + { "t-HystNormal", "nr-rrc.t_HystNormal", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t_HystNormal_vals), 0, + "T_t_HystNormal", HFILL }}, + { &hf_nr_rrc_n_CellChangeMedium, + { "n-CellChangeMedium", "nr-rrc.n_CellChangeMedium", 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", + "INTEGER_1_16", HFILL }}, + { &hf_nr_rrc_n_CellChangeHigh, + { "n-CellChangeHigh", "nr-rrc.n_CellChangeHigh", FT_UINT32, BASE_DEC, NULL, 0, - "RSRP_Range", HFILL }}, + "INTEGER_1_16", HFILL }}, { &hf_nr_rrc_MultiFrequencyBandListNR_item, { "FreqBandIndicatorNR", "nr-rrc.FreqBandIndicatorNR", FT_UINT32, BASE_DEC, NULL, 0, @@ -30112,7 +42775,7 @@ void proto_register_nr_rrc(void) { "CSI_RS_ResourceMapping", HFILL }}, { &hf_nr_rrc_powerControlOffset, { "powerControlOffset", "nr-rrc.powerControlOffset", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, "INTEGER_M8_15", HFILL }}, { &hf_nr_rrc_powerControlOffsetSS, { "powerControlOffsetSS", "nr-rrc.powerControlOffsetSS", @@ -30210,7 +42873,7 @@ void proto_register_nr_rrc(void) { { "downlinkPreemption", "nr-rrc.downlinkPreemption", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_downlinkPreemption_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_26, + { &hf_nr_rrc_setup_28, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "DownlinkPreemption", HFILL }}, @@ -30218,7 +42881,7 @@ void proto_register_nr_rrc(void) { { "tpc-PUSCH", "nr-rrc.tpc_PUSCH", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpc_PUSCH_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_27, + { &hf_nr_rrc_setup_29, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PUSCH_TPC_CommandConfig", HFILL }}, @@ -30226,7 +42889,7 @@ void proto_register_nr_rrc(void) { { "tpc-PUCCH", "nr-rrc.tpc_PUCCH", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpc_PUCCH_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_28, + { &hf_nr_rrc_setup_30, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PUCCH_TPC_CommandConfig", HFILL }}, @@ -30234,14 +42897,14 @@ void proto_register_nr_rrc(void) { { "tpc-SRS", "nr-rrc.tpc_SRS", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_tpc_SRS_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_29, + { &hf_nr_rrc_setup_31, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "SRS_TPC_CommandConfig", HFILL }}, { &hf_nr_rrc_controlResourceSetZero, { "controlResourceSetZero", "nr-rrc.controlResourceSetZero", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_15", HFILL }}, + NULL, HFILL }}, { &hf_nr_rrc_commonControlResourceSet, { "commonControlResourceSet", "nr-rrc.commonControlResourceSet_element", FT_NONE, BASE_NONE, NULL, 0, @@ -30249,12 +42912,12 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_searchSpaceZero, { "searchSpaceZero", "nr-rrc.searchSpaceZero", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_15", HFILL }}, - { &hf_nr_rrc_commonSearchSpace, - { "commonSearchSpace", "nr-rrc.commonSearchSpace", + NULL, HFILL }}, + { &hf_nr_rrc_commonSearchSpaceList, + { "commonSearchSpaceList", "nr-rrc.commonSearchSpaceList", FT_UINT32, BASE_DEC, NULL, 0, "SEQUENCE_SIZE_1_4_OF_SearchSpace", HFILL }}, - { &hf_nr_rrc_commonSearchSpace_item, + { &hf_nr_rrc_commonSearchSpaceList_item, { "SearchSpace", "nr-rrc.SearchSpace_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, @@ -30278,7 +42941,7 @@ void proto_register_nr_rrc(void) { { "slotFormatIndicator", "nr-rrc.slotFormatIndicator", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_slotFormatIndicator_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_30, + { &hf_nr_rrc_setup_32, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "SlotFormatIndicator", HFILL }}, @@ -30410,6 +43073,10 @@ void proto_register_nr_rrc(void) { { "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_cipheringDisabled, + { "cipheringDisabled", "nr-rrc.cipheringDisabled", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cipheringDisabled_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_dataScramblingIdentityPDSCH, { "dataScramblingIdentityPDSCH", "nr-rrc.dataScramblingIdentityPDSCH", FT_UINT32, BASE_DEC, NULL, 0, @@ -30418,7 +43085,7 @@ void proto_register_nr_rrc(void) { { "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_setup_31, + { &hf_nr_rrc_setup_33, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "DMRS_DownlinkConfig", HFILL }}, @@ -30454,7 +43121,7 @@ void proto_register_nr_rrc(void) { { "pdsch-TimeDomainAllocationList", "nr-rrc.pdsch_TimeDomainAllocationList", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_TimeDomainAllocationList_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_32, + { &hf_nr_rrc_setup_34, { "setup", "nr-rrc.setup", FT_UINT32, BASE_DEC, NULL, 0, "PDSCH_TimeDomainResourceAllocationList", HFILL }}, @@ -30574,7 +43241,7 @@ void proto_register_nr_rrc(void) { { "p-ZP-CSI-RS-ResourceSet", "nr-rrc.p_ZP_CSI_RS_ResourceSet", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_p_ZP_CSI_RS_ResourceSet_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_33, + { &hf_nr_rrc_setup_35, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "ZP_CSI_RS_ResourceSet", HFILL }}, @@ -30598,7 +43265,7 @@ void proto_register_nr_rrc(void) { { "codeBlockGroupTransmission", "nr-rrc.codeBlockGroupTransmission", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codeBlockGroupTransmission_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_34, + { &hf_nr_rrc_setup_36, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PDSCH_CodeBlockGroupTransmission", HFILL }}, @@ -30638,6 +43305,34 @@ void proto_register_nr_rrc(void) { { "startSymbolAndLength", "nr-rrc.startSymbolAndLength", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_127", HFILL }}, + { &hf_nr_rrc_phr_PeriodicTimer, + { "phr-PeriodicTimer", "nr-rrc.phr_PeriodicTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_PeriodicTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_phr_ProhibitTimer, + { "phr-ProhibitTimer", "nr-rrc.phr_ProhibitTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_ProhibitTimer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_phr_Tx_PowerFactorChange, + { "phr-Tx-PowerFactorChange", "nr-rrc.phr_Tx_PowerFactorChange", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_Tx_PowerFactorChange_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_multiplePHR, + { "multiplePHR", "nr-rrc.multiplePHR", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_dummy, + { "dummy", "nr-rrc.dummy", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_phr_Type2OtherCell, + { "phr-Type2OtherCell", "nr-rrc.phr_Type2OtherCell", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_phr_ModeOtherCG, + { "phr-ModeOtherCG", "nr-rrc.phr_ModeOtherCG", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_phr_ModeOtherCG_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_harq_ACK_SpatialBundlingPUCCH, { "harq-ACK-SpatialBundlingPUCCH", "nr-rrc.harq_ACK_SpatialBundlingPUCCH", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_harq_ACK_SpatialBundlingPUCCH_vals), 0, @@ -30646,9 +43341,9 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_p_NR_FR1, + { "p-NR-FR1", "nr-rrc.p_NR_FR1", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, "P_Max", HFILL }}, { &hf_nr_rrc_pdsch_HARQ_ACK_Codebook, { "pdsch-HARQ-ACK-Codebook", "nr-rrc.pdsch_HARQ_ACK_Codebook", @@ -30674,10 +43369,54 @@ void proto_register_nr_rrc(void) { { "cs-RNTI", "nr-rrc.cs_RNTI", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cs_RNTI_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_35, + { &hf_nr_rrc_setup_37, { "setup", "nr-rrc.setup", FT_UINT32, BASE_DEC, NULL, 0, "RNTI_Value", HFILL }}, + { &hf_nr_rrc_mcs_C_RNTI, + { "mcs-C-RNTI", "nr-rrc.mcs_C_RNTI", + FT_UINT32, BASE_DEC, NULL, 0, + "RNTI_Value", HFILL }}, + { &hf_nr_rrc_p_UE_FR1, + { "p-UE-FR1", "nr-rrc.p_UE_FR1", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, + "P_Max", HFILL }}, + { &hf_nr_rrc_mcc, + { "mcc", "nr-rrc.mcc", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_mnc, + { "mnc", "nr-rrc.mnc", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_MCC_item, + { "MCC-MNC-Digit", "nr-rrc.MCC_MNC_Digit", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_MNC_item, + { "MCC-MNC-Digit", "nr-rrc.MCC_MNC_Digit", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_PLMN_IdentityInfoList_item, + { "PLMN-IdentityInfo", "nr-rrc.PLMN_IdentityInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_plmn_IdentityList_01, + { "plmn-IdentityList", "nr-rrc.plmn_IdentityList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_Identity", HFILL }}, + { &hf_nr_rrc_plmn_IdentityList_item, + { "PLMN-Identity", "nr-rrc.PLMN_Identity_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ranac, + { "ranac", "nr-rrc.ranac", + FT_UINT32, BASE_DEC, NULL, 0, + "RAN_AreaCode", HFILL }}, + { &hf_nr_rrc_cellReservedForOperatorUse, + { "cellReservedForOperatorUse", "nr-rrc.cellReservedForOperatorUse", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_cellReservedForOperatorUse_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_frequencyDensity, { "frequencyDensity", "nr-rrc.frequencyDensity", FT_UINT32, BASE_DEC, NULL, 0, @@ -30702,12 +43441,8 @@ void proto_register_nr_rrc(void) { { "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", + { &hf_nr_rrc_transformPrecoderDisabled, + { "transformPrecoderDisabled", "nr-rrc.transformPrecoderDisabled_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_frequencyDensity_01, @@ -30730,10 +43465,10 @@ void proto_register_nr_rrc(void) { { "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", + { &hf_nr_rrc_transformPrecoderEnabled, + { "transformPrecoderEnabled", "nr-rrc.transformPrecoderEnabled_element", FT_NONE, BASE_NONE, NULL, 0, - "T_dft_S_OFDM", HFILL }}, + NULL, HFILL }}, { &hf_nr_rrc_sampleDensity, { "sampleDensity", "nr-rrc.sampleDensity", FT_UINT32, BASE_DEC, NULL, 0, @@ -30782,7 +43517,7 @@ void proto_register_nr_rrc(void) { { "format1", "nr-rrc.format1", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_format1_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_36, + { &hf_nr_rrc_setup_38, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PUCCH_FormatConfig", HFILL }}, @@ -30874,42 +43609,6 @@ void proto_register_nr_rrc(void) { { "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_pucch_SpatialRelationInfoId, - { "pucch-SpatialRelationInfoId", "nr-rrc.pucch_SpatialRelationInfoId", - FT_UINT32, BASE_DEC, NULL, 0, - NULL, HFILL }}, - { &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_element", - FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_resource, - { "resource", "nr-rrc.resource", - FT_UINT32, BASE_DEC, NULL, 0, - "SRS_ResourceId", HFILL }}, - { &hf_nr_rrc_uplinkBWP, - { "uplinkBWP", "nr-rrc.uplinkBWP", - FT_UINT32, BASE_DEC, NULL, 0, - "BWP_Id", 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, @@ -30924,7 +43623,7 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_maxPayloadMinus1, { "maxPayloadMinus1", "nr-rrc.maxPayloadMinus1", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_bit_bits, 0, "INTEGER_4_256", HFILL }}, { &hf_nr_rrc_pucch_ResourceId, { "pucch-ResourceId", "nr-rrc.pucch_ResourceId", @@ -31013,30 +43712,30 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_hoppingId, { "hoppingId", "nr-rrc.hoppingId", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_1024", HFILL }}, + "INTEGER_0_1023", HFILL }}, { &hf_nr_rrc_p0_nominal, { "p0-nominal", "nr-rrc.p0_nominal", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 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, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 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, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 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, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 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, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 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, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, "INTEGER_M16_15", HFILL }}, { &hf_nr_rrc_p0_Set, { "p0-Set", "nr-rrc.p0_Set", @@ -31058,14 +43757,50 @@ void proto_register_nr_rrc(void) { { "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_Id, + { "p0-PUCCH-Id", "nr-rrc.p0_PUCCH_Id", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_p0_PUCCH_Value, { "p0-PUCCH-Value", "nr-rrc.p0_PUCCH_Value", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, "INTEGER_M16_15", 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_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_pucch_SpatialRelationInfoId, + { "pucch-SpatialRelationInfoId", "nr-rrc.pucch_SpatialRelationInfoId", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, 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_srs, + { "srs", "nr-rrc.srs_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_resource, + { "resource", "nr-rrc.resource", + FT_UINT32, BASE_DEC, NULL, 0, + "SRS_ResourceId", HFILL }}, + { &hf_nr_rrc_uplinkBWP, + { "uplinkBWP", "nr-rrc.uplinkBWP", + FT_UINT32, BASE_DEC, NULL, 0, + "BWP_Id", 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_tpc_IndexPCell, { "tpc-IndexPCell", "nr-rrc.tpc_IndexPCell", FT_UINT32, BASE_DEC, NULL, 0, @@ -31086,7 +43821,7 @@ void proto_register_nr_rrc(void) { { "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_37, + { &hf_nr_rrc_setup_39, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "DMRS_UplinkConfig", HFILL }}, @@ -31118,7 +43853,7 @@ void proto_register_nr_rrc(void) { { "pusch-TimeDomainAllocationList", "nr-rrc.pusch_TimeDomainAllocationList", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_TimeDomainAllocationList_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_38, + { &hf_nr_rrc_setup_40, { "setup", "nr-rrc.setup", FT_UINT32, BASE_DEC, NULL, 0, "PUSCH_TimeDomainResourceAllocationList", HFILL }}, @@ -31154,7 +43889,7 @@ void proto_register_nr_rrc(void) { { "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_39, + { &hf_nr_rrc_setup_41, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "UCI_OnPUSCH", HFILL }}, @@ -31184,11 +43919,11 @@ void proto_register_nr_rrc(void) { "PUSCH_TimeDomainResourceAllocationList", HFILL }}, { &hf_nr_rrc_msg3_DeltaPreamble, { "msg3-DeltaPreamble", "nr-rrc.msg3_DeltaPreamble", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_CUSTOM, CF_FUNC(nr_rrc_msg3_DeltaPreamble_fmt), 0, "INTEGER_M1_6", HFILL }}, { &hf_nr_rrc_p0_NominalWithGrant, { "p0-NominalWithGrant", "nr-rrc.p0_NominalWithGrant", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, "INTEGER_M202_24", HFILL }}, { &hf_nr_rrc_tpc_Accumulation, { "tpc-Accumulation", "nr-rrc.tpc_Accumulation", @@ -31200,7 +43935,7 @@ void proto_register_nr_rrc(void) { "Alpha", HFILL }}, { &hf_nr_rrc_p0_NominalWithoutGrant, { "p0-NominalWithoutGrant", "nr-rrc.p0_NominalWithoutGrant", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, "INTEGER_M202_24", HFILL }}, { &hf_nr_rrc_p0_AlphaSets, { "p0-AlphaSets", "nr-rrc.p0_AlphaSets", @@ -31256,7 +43991,7 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_p0, { "p0", "nr-rrc.p0", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, "INTEGER_M16_15", HFILL }}, { &hf_nr_rrc_alpha, { "alpha", "nr-rrc.alpha", @@ -31318,7 +44053,7 @@ void proto_register_nr_rrc(void) { { "codeBlockGroupTransmission", "nr-rrc.codeBlockGroupTransmission", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_codeBlockGroupTransmission_01_vals), 0, "T_codeBlockGroupTransmission_01", HFILL }}, - { &hf_nr_rrc_setup_40, + { &hf_nr_rrc_setup_42, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PUSCH_CodeBlockGroupTransmission", HFILL }}, @@ -31366,6 +44101,10 @@ void proto_register_nr_rrc(void) { { "QuantityConfigNR", "nr-rrc.QuantityConfigNR_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_quantityConfigEUTRA, + { "quantityConfigEUTRA", "nr-rrc.quantityConfigEUTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + "FilterConfig", HFILL }}, { &hf_nr_rrc_quantityConfigCell, { "quantityConfigCell", "nr-rrc.quantityConfigCell_element", FT_NONE, BASE_NONE, NULL, 0, @@ -31460,7 +44199,7 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_rsrp_ThresholdSSB_SUL, { "rsrp-ThresholdSSB-SUL", "nr-rrc.rsrp_ThresholdSSB_SUL", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRP_Range_fmt), 0, "RSRP_Range", HFILL }}, { &hf_nr_rrc_prach_RootSequenceIndex, { "prach-RootSequenceIndex", "nr-rrc.prach_RootSequenceIndex", @@ -31482,41 +44221,9 @@ void proto_register_nr_rrc(void) { { "restrictedSetConfig", "nr-rrc.restrictedSetConfig", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_restrictedSetConfig_vals), 0, NULL, 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_prach_ConfigurationIndex, - { "prach-ConfigurationIndex", "nr-rrc.prach_ConfigurationIndex", - FT_UINT32, BASE_DEC, NULL, 0, - "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, - "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_M202_M60", 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_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, + { &hf_nr_rrc_msg3_transformPrecoder, + { "msg3-transformPrecoder", "nr-rrc.msg3_transformPrecoder", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_msg3_transformPrecoder_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_cfra, { "cfra", "nr-rrc.cfra_element", @@ -31560,8 +44267,12 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_rsrp_ThresholdCSI_RS, { "rsrp-ThresholdCSI-RS", "nr-rrc.rsrp_ThresholdCSI_RS", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_RSRP_Range_fmt), 0, "RSRP_Range", HFILL }}, + { &hf_nr_rrc_totalNumberOfRA_Preambles_v1530, + { "totalNumberOfRA-Preambles-v1530", "nr-rrc.totalNumberOfRA_Preambles_v1530", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_63", HFILL }}, { &hf_nr_rrc_csi_RS_02, { "csi-RS", "nr-rrc.csi_RS", FT_UINT32, BASE_DEC, NULL, 0, @@ -31570,6 +44281,38 @@ void proto_register_nr_rrc(void) { { "ra-OccasionList", "nr-rrc.ra_OccasionList", FT_UINT32, BASE_DEC, NULL, 0, "T_ra_OccasionList_01", HFILL }}, + { &hf_nr_rrc_prach_ConfigurationIndex, + { "prach-ConfigurationIndex", "nr-rrc.prach_ConfigurationIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_nr_rrc_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, + "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|BASE_UNIT_STRING, &units_dbm, 0, + "INTEGER_M202_M60", 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_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_powerRampingStepHighPriority, { "powerRampingStepHighPriority", "nr-rrc.powerRampingStepHighPriority", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_powerRampingStepHighPriority_vals), 0, @@ -31634,10 +44377,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, @@ -31650,10 +44389,6 @@ void proto_register_nr_rrc(void) { { "DRB-Identity", "nr-rrc.DRB_Identity", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_securityAlgorithmConfig, - { "securityAlgorithmConfig", "nr-rrc.securityAlgorithmConfig_element", - FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, { &hf_nr_rrc_keyToUse, { "keyToUse", "nr-rrc.keyToUse", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_keyToUse_vals), 0, @@ -31758,9 +44493,9 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_dummy_01, + { "dummy", "nr-rrc.dummy", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dummy_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_carrierFreqDL, { "carrierFreqDL", "nr-rrc.carrierFreqDL", @@ -31789,35 +44524,111 @@ void proto_register_nr_rrc(void) { { &hf_nr_rrc_periodical, { "periodical", "nr-rrc.periodical_element", FT_NONE, BASE_NONE, NULL, 0, - "PeriodicalReportConfig", HFILL }}, + "PeriodicalReportConfigInterRAT", HFILL }}, { &hf_nr_rrc_eventTriggered, { "eventTriggered", "nr-rrc.eventTriggered_element", FT_NONE, BASE_NONE, NULL, 0, - "EventTriggerConfig", HFILL }}, + "EventTriggerConfigInterRAT", HFILL }}, + { &hf_nr_rrc_reportCGI, + { "reportCGI", "nr-rrc.reportCGI_element", + FT_NONE, BASE_NONE, NULL, 0, + "ReportCGI_EUTRA", HFILL }}, + { &hf_nr_rrc_cellForWhichToReportCGI, + { "cellForWhichToReportCGI", "nr-rrc.cellForWhichToReportCGI", + FT_UINT32, BASE_DEC, NULL, 0, + "EUTRA_PhysCellId", HFILL }}, { &hf_nr_rrc_eventId, { "eventId", "nr-rrc.eventId", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_eventId_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_eventA1, - { "eventA1", "nr-rrc.eventA1_element", + { &hf_nr_rrc_eventB1, + { "eventB1", "nr-rrc.eventB1_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_a1_Threshold, - { "a1-Threshold", "nr-rrc.a1_Threshold", - FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantity_vals), 0, - "MeasTriggerQuantity", HFILL }}, + { &hf_nr_rrc_b1_ThresholdEUTRA, + { "b1-ThresholdEUTRA", "nr-rrc.b1_ThresholdEUTRA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantityEUTRA_vals), 0, + "MeasTriggerQuantityEUTRA", HFILL }}, { &hf_nr_rrc_reportOnLeave, { "reportOnLeave", "nr-rrc.reportOnLeave", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, { &hf_nr_rrc_hysteresis, { "hysteresis", "nr-rrc.hysteresis", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_CUSTOM, CF_FUNC(nr_rrc_Hysteresis_fmt), 0, NULL, HFILL }}, { &hf_nr_rrc_timeToTrigger, { "timeToTrigger", "nr-rrc.timeToTrigger", FT_UINT32, BASE_DEC, VALS(nr_rrc_TimeToTrigger_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_eventB2, + { "eventB2", "nr-rrc.eventB2_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_b2_Threshold1, + { "b2-Threshold1", "nr-rrc.b2_Threshold1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantity_vals), 0, + "MeasTriggerQuantity", HFILL }}, + { &hf_nr_rrc_b2_Threshold2EUTRA, + { "b2-Threshold2EUTRA", "nr-rrc.b2_Threshold2EUTRA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantityEUTRA_vals), 0, + "MeasTriggerQuantityEUTRA", HFILL }}, + { &hf_nr_rrc_rsType, + { "rsType", "nr-rrc.rsType", + 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, + NULL, HFILL }}, + { &hf_nr_rrc_reportAmount, + { "reportAmount", "nr-rrc.reportAmount", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportAmount_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_reportQuantity_01, + { "reportQuantity", "nr-rrc.reportQuantity_element", + FT_NONE, BASE_NONE, NULL, 0, + "MeasReportQuantity", HFILL }}, + { &hf_nr_rrc_maxReportCells, + { "maxReportCells", "nr-rrc.maxReportCells", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxCellReport", HFILL }}, + { &hf_nr_rrc_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_reportType_01, + { "reportType", "nr-rrc.reportType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportType_01_vals), 0, + "T_reportType_01", HFILL }}, + { &hf_nr_rrc_periodical_01, + { "periodical", "nr-rrc.periodical_element", + FT_NONE, BASE_NONE, NULL, 0, + "PeriodicalReportConfig", HFILL }}, + { &hf_nr_rrc_eventTriggered_01, + { "eventTriggered", "nr-rrc.eventTriggered_element", + FT_NONE, BASE_NONE, NULL, 0, + "EventTriggerConfig", HFILL }}, + { &hf_nr_rrc_reportCGI_01, + { "reportCGI", "nr-rrc.reportCGI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_cellForWhichToReportCGI_01, + { "cellForWhichToReportCGI", "nr-rrc.cellForWhichToReportCGI", + FT_UINT32, BASE_DEC, NULL, 0, + "PhysCellId", HFILL }}, + { &hf_nr_rrc_eventId_01, + { "eventId", "nr-rrc.eventId", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_eventId_01_vals), 0, + "T_eventId_01", HFILL }}, + { &hf_nr_rrc_eventA1, + { "eventA1", "nr-rrc.eventA1_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_a1_Threshold, + { "a1-Threshold", "nr-rrc.a1_Threshold", + FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantity_vals), 0, + "MeasTriggerQuantity", HFILL }}, { &hf_nr_rrc_eventA2, { "eventA2", "nr-rrc.eventA2_element", FT_NONE, BASE_NONE, NULL, 0, @@ -31866,26 +44677,14 @@ void proto_register_nr_rrc(void) { { "a6-Offset", "nr-rrc.a6_Offset", FT_UINT32, BASE_DEC, VALS(nr_rrc_MeasTriggerQuantityOffset_vals), 0, "MeasTriggerQuantityOffset", HFILL }}, - { &hf_nr_rrc_rsType, - { "rsType", "nr-rrc.rsType", - FT_UINT32, BASE_DEC, VALS(nr_rrc_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, - NULL, HFILL }}, - { &hf_nr_rrc_reportAmount, + { &hf_nr_rrc_reportAmount_02, { "reportAmount", "nr-rrc.reportAmount", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportAmount_vals), 0, - NULL, HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportAmount_02_vals), 0, + "T_reportAmount_02", HFILL }}, { &hf_nr_rrc_reportQuantityCell, { "reportQuantityCell", "nr-rrc.reportQuantityCell_element", FT_NONE, BASE_NONE, NULL, 0, "MeasReportQuantity", HFILL }}, - { &hf_nr_rrc_maxReportCells, - { "maxReportCells", "nr-rrc.maxReportCells", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_maxCellReport", HFILL }}, { &hf_nr_rrc_reportQuantityRsIndexes, { "reportQuantityRsIndexes", "nr-rrc.reportQuantityRsIndexes_element", FT_NONE, BASE_NONE, NULL, 0, @@ -31902,35 +44701,35 @@ void proto_register_nr_rrc(void) { { "reportAddNeighMeas", "nr-rrc.reportAddNeighMeas", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportAddNeighMeas_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_reportAmount_01, + { &hf_nr_rrc_reportAmount_03, { "reportAmount", "nr-rrc.reportAmount", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportAmount_01_vals), 0, - "T_reportAmount_01", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_reportAmount_03_vals), 0, + "T_reportAmount_03", HFILL }}, { &hf_nr_rrc_maxNrofRsIndexesToReport, { "maxNrofRsIndexesToReport", "nr-rrc.maxNrofRsIndexesToReport", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_1_maxNrofIndexesToReport", HFILL }}, - { &hf_nr_rrc_rsrp_01, + { &hf_nr_rrc_rsrp_02, { "rsrp", "nr-rrc.rsrp", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, "INTEGER_M30_30", HFILL }}, - { &hf_nr_rrc_rsrq_01, + { &hf_nr_rrc_rsrq_02, { "rsrq", "nr-rrc.rsrq", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, "INTEGER_M30_30", HFILL }}, - { &hf_nr_rrc_sinr_01, + { &hf_nr_rrc_sinr_02, { "sinr", "nr-rrc.sinr", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_decibels, 0, "INTEGER_M30_30", HFILL }}, - { &hf_nr_rrc_rsrp_02, + { &hf_nr_rrc_rsrp_03, { "rsrp", "nr-rrc.rsrp", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, - { &hf_nr_rrc_rsrq_02, + { &hf_nr_rrc_rsrq_03, { "rsrq", "nr-rrc.rsrq", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, - { &hf_nr_rrc_sinr_02, + { &hf_nr_rrc_sinr_03, { "sinr", "nr-rrc.sinr", FT_BOOLEAN, BASE_NONE, NULL, 0, "BOOLEAN", HFILL }}, @@ -31946,6 +44745,10 @@ void proto_register_nr_rrc(void) { { "reportConfigNR", "nr-rrc.reportConfigNR_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_reportConfigInterRAT, + { "reportConfigInterRAT", "nr-rrc.reportConfigInterRAT_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_logicalChannelIdentity, { "logicalChannelIdentity", "nr-rrc.logicalChannelIdentity", FT_UINT32, BASE_DEC, NULL, 0, @@ -32042,6 +44845,10 @@ void proto_register_nr_rrc(void) { { "n311", "nr-rrc.n311", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_n311_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_t311_v1530, + { "t311-v1530", "nr-rrc.t311_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t311_v1530_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_schedulingRequestToAddModList, { "schedulingRequestToAddModList", "nr-rrc.schedulingRequestToAddModList", FT_UINT32, BASE_DEC, NULL, 0, @@ -32150,6 +44957,10 @@ void proto_register_nr_rrc(void) { { "carrierBandwidth", "nr-rrc.carrierBandwidth", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_1_maxNrofPhysicalResourceBlocks", HFILL }}, + { &hf_nr_rrc_txDirectCurrentLocation_v1530, + { "txDirectCurrentLocation-v1530", "nr-rrc.txDirectCurrentLocation_v1530", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4095", HFILL }}, { &hf_nr_rrc_pdu_Session, { "pdu-Session", "nr-rrc.pdu_Session", FT_UINT32, BASE_DEC, NULL, 0, @@ -32200,7 +45011,7 @@ void proto_register_nr_rrc(void) { "INTEGER_0_2559", HFILL }}, { &hf_nr_rrc_duration_01, { "duration", "nr-rrc.duration", - FT_UINT32, BASE_DEC, NULL, 0, + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_slots, 0, "INTEGER_2_2559", HFILL }}, { &hf_nr_rrc_monitoringSymbolsWithinSlot, { "monitoringSymbolsWithinSlot", "nr-rrc.monitoringSymbolsWithinSlot", @@ -32282,13 +45093,13 @@ void proto_register_nr_rrc(void) { { "dci-Format2-3", "nr-rrc.dci_Format2_3_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_monitoringPeriodicity, - { "monitoringPeriodicity", "nr-rrc.monitoringPeriodicity", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_monitoringPeriodicity_vals), 0, + { &hf_nr_rrc_dummy1, + { "dummy1", "nr-rrc.dummy1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dummy1_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, + { &hf_nr_rrc_dummy2, + { "dummy2", "nr-rrc.dummy2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dummy2_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_ue_Specific, { "ue-Specific", "nr-rrc.ue_Specific_element", @@ -32346,7 +45157,7 @@ void proto_register_nr_rrc(void) { { "uplinkConfig", "nr-rrc.uplinkConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_supplementaryUplink_02, + { &hf_nr_rrc_supplementaryUplink_01, { "supplementaryUplink", "nr-rrc.supplementaryUplink_element", FT_NONE, BASE_NONE, NULL, 0, "UplinkConfig", HFILL }}, @@ -32354,7 +45165,7 @@ void proto_register_nr_rrc(void) { { "pdcch-ServingCellConfig", "nr-rrc.pdcch_ServingCellConfig", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcch_ServingCellConfig_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_41, + { &hf_nr_rrc_setup_43, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PDCCH_ServingCellConfig", HFILL }}, @@ -32362,7 +45173,7 @@ void proto_register_nr_rrc(void) { { "pdsch-ServingCellConfig", "nr-rrc.pdsch_ServingCellConfig", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_ServingCellConfig_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_42, + { &hf_nr_rrc_setup_44, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PDSCH_ServingCellConfig", HFILL }}, @@ -32370,7 +45181,7 @@ void proto_register_nr_rrc(void) { { "csi-MeasConfig", "nr-rrc.csi_MeasConfig", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_csi_MeasConfig_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_43, + { &hf_nr_rrc_setup_45, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "CSI_MeasConfig", HFILL }}, @@ -32382,6 +45193,10 @@ void proto_register_nr_rrc(void) { { "crossCarrierSchedulingConfig", "nr-rrc.crossCarrierSchedulingConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_tag_Id, + { "tag-Id", "nr-rrc.tag_Id", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_ue_BeamLockFunction, { "ue-BeamLockFunction", "nr-rrc.ue_BeamLockFunction", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ue_BeamLockFunction_vals), 0, @@ -32422,7 +45237,7 @@ void proto_register_nr_rrc(void) { { "pusch-ServingCellConfig", "nr-rrc.pusch_ServingCellConfig", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pusch_ServingCellConfig_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_44, + { &hf_nr_rrc_setup_46, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "PUSCH_ServingCellConfig", HFILL }}, @@ -32430,7 +45245,7 @@ void proto_register_nr_rrc(void) { { "carrierSwitching", "nr-rrc.carrierSwitching", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_carrierSwitching_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_setup_45, + { &hf_nr_rrc_setup_47, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "SRS_CarrierSwitching", HFILL }}, @@ -32438,6 +45253,10 @@ void proto_register_nr_rrc(void) { { "downlinkConfigCommon", "nr-rrc.downlinkConfigCommon_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_uplinkConfigCommon, + { "uplinkConfigCommon", "nr-rrc.uplinkConfigCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_supplementaryUplinkConfig, { "supplementaryUplinkConfig", "nr-rrc.supplementaryUplinkConfig_element", FT_NONE, BASE_NONE, NULL, 0, @@ -32446,10 +45265,22 @@ void proto_register_nr_rrc(void) { { "n-TimingAdvanceOffset", "nr-rrc.n_TimingAdvanceOffset", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_n_TimingAdvanceOffset_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_ssb_PositionsInBurst_01, + { &hf_nr_rrc_ssb_PositionsInBurst, { "ssb-PositionsInBurst", "nr-rrc.ssb_PositionsInBurst", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_PositionsInBurst_01_vals), 0, - "T_ssb_PositionsInBurst_01", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_PositionsInBurst_vals), 0, + NULL, 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_ssb_periodicityServingCell, { "ssb-periodicityServingCell", "nr-rrc.ssb_periodicityServingCell", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_periodicityServingCell_vals), 0, @@ -32462,7 +45293,7 @@ void proto_register_nr_rrc(void) { { "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_46, + { &hf_nr_rrc_setup_48, { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, "RateMatchPatternLTE_CRS", HFILL }}, @@ -32470,6 +45301,126 @@ void proto_register_nr_rrc(void) { { "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_ss_PBCH_BlockPower, + { "ss-PBCH-BlockPower", "nr-rrc.ss_PBCH_BlockPower", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, + "INTEGER_M60_50", HFILL }}, + { &hf_nr_rrc_downlinkConfigCommon_01, + { "downlinkConfigCommon", "nr-rrc.downlinkConfigCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + "DownlinkConfigCommonSIB", HFILL }}, + { &hf_nr_rrc_uplinkConfigCommon_01, + { "uplinkConfigCommon", "nr-rrc.uplinkConfigCommon_element", + FT_NONE, BASE_NONE, NULL, 0, + "UplinkConfigCommonSIB", HFILL }}, + { &hf_nr_rrc_supplementaryUplink_02, + { "supplementaryUplink", "nr-rrc.supplementaryUplink_element", + FT_NONE, BASE_NONE, NULL, 0, + "UplinkConfigCommonSIB", HFILL }}, + { &hf_nr_rrc_n_TimingAdvanceOffset_01, + { "n-TimingAdvanceOffset", "nr-rrc.n_TimingAdvanceOffset", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_n_TimingAdvanceOffset_01_vals), 0, + "T_n_TimingAdvanceOffset_01", HFILL }}, + { &hf_nr_rrc_ssb_PositionsInBurst_01, + { "ssb-PositionsInBurst", "nr-rrc.ssb_PositionsInBurst_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_ssb_PositionsInBurst_01", 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_schedulingInfoList, + { "schedulingInfoList", "nr-rrc.schedulingInfoList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo", HFILL }}, + { &hf_nr_rrc_schedulingInfoList_item, + { "SchedulingInfo", "nr-rrc.SchedulingInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_si_WindowLength, + { "si-WindowLength", "nr-rrc.si_WindowLength", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_si_WindowLength_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_si_RequestConfig, + { "si-RequestConfig", "nr-rrc.si_RequestConfig_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_si_RequestConfigSUL, + { "si-RequestConfigSUL", "nr-rrc.si_RequestConfigSUL_element", + FT_NONE, BASE_NONE, NULL, 0, + "SI_RequestConfig", HFILL }}, + { &hf_nr_rrc_systemInformationAreaID, + { "systemInformationAreaID", "nr-rrc.systemInformationAreaID", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_24", HFILL }}, + { &hf_nr_rrc_si_BroadcastStatus, + { "si-BroadcastStatus", "nr-rrc.si_BroadcastStatus", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_si_BroadcastStatus_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_si_Periodicity, + { "si-Periodicity", "nr-rrc.si_Periodicity", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_si_Periodicity_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib_MappingInfo, + { "sib-MappingInfo", "nr-rrc.sib_MappingInfo", + FT_UINT32, BASE_DEC, NULL, 0, + "SIB_Mapping", HFILL }}, + { &hf_nr_rrc_SIB_Mapping_item, + { "SIB-TypeInfo", "nr-rrc.SIB_TypeInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_type, + { "type", "nr-rrc.type", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_type_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_valueTag, + { "valueTag", "nr-rrc.valueTag", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_areaScope, + { "areaScope", "nr-rrc.areaScope", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_areaScope_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_rach_OccasionsSI, + { "rach-OccasionsSI", "nr-rrc.rach_OccasionsSI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_rach_ConfigSI, + { "rach-ConfigSI", "nr-rrc.rach_ConfigSI_element", + FT_NONE, BASE_NONE, NULL, 0, + "RACH_ConfigGeneric", HFILL }}, + { &hf_nr_rrc_ssb_perRACH_Occasion_02, + { "ssb-perRACH-Occasion", "nr-rrc.ssb_perRACH_Occasion", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_perRACH_Occasion_02_vals), 0, + "T_ssb_perRACH_Occasion_02", HFILL }}, + { &hf_nr_rrc_si_RequestPeriod, + { "si-RequestPeriod", "nr-rrc.si_RequestPeriod", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_si_RequestPeriod_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_si_RequestResources, + { "si-RequestResources", "nr-rrc.si_RequestResources", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxSI_Message_OF_SI_RequestResources", HFILL }}, + { &hf_nr_rrc_si_RequestResources_item, + { "SI-RequestResources", "nr-rrc.SI_RequestResources_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_ra_PreambleStartIndex, + { "ra-PreambleStartIndex", "nr-rrc.ra_PreambleStartIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_nr_rrc_ra_AssociationPeriodIndex, + { "ra-AssociationPeriodIndex", "nr-rrc.ra_AssociationPeriodIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, { &hf_nr_rrc_subcarrierSpacing2, { "subcarrierSpacing2", "nr-rrc.subcarrierSpacing2", FT_UINT32, BASE_DEC, VALS(nr_rrc_SubcarrierSpacing_vals), 0, @@ -32522,6 +45473,22 @@ void proto_register_nr_rrc(void) { { "ServCellIndex", "nr-rrc.ServCellIndex", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_sst, + { "sst", "nr-rrc.sst", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_sst_SD, + { "sst-SD", "nr-rrc.sst_SD", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_32", HFILL }}, + { &hf_nr_rrc_sf_Medium_01, + { "sf-Medium", "nr-rrc.sf_Medium", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sf_Medium_01_vals), 0, + "T_sf_Medium_01", HFILL }}, + { &hf_nr_rrc_sf_High_01, + { "sf-High", "nr-rrc.sf_High", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sf_High_01_vals), 0, + "T_sf_High_01", HFILL }}, { &hf_nr_rrc_measurementSlots, { "measurementSlots", "nr-rrc.measurementSlots", FT_BYTES, BASE_NONE, NULL, 0, @@ -32542,6 +45509,58 @@ void proto_register_nr_rrc(void) { { "n1PUCCH-AN", "nr-rrc.n1PUCCH_AN", FT_UINT32, BASE_DEC, NULL, 0, "PUCCH_ResourceId", HFILL }}, + { &hf_nr_rrc_mcs_Table_03, + { "mcs-Table", "nr-rrc.mcs_Table", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mcs_Table_03_vals), 0, + "T_mcs_Table_03", HFILL }}, + { &hf_nr_rrc_srs_SwitchFromServCellIndex, + { "srs-SwitchFromServCellIndex", "nr-rrc.srs_SwitchFromServCellIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_31", HFILL }}, + { &hf_nr_rrc_srs_SwitchFromCarrier, + { "srs-SwitchFromCarrier", "nr-rrc.srs_SwitchFromCarrier", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srs_SwitchFromCarrier_vals), 0, + NULL, 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_typeB, + { "typeB", "nr-rrc.typeB_element", + FT_NONE, BASE_NONE, NULL, 0, + "SRS_TPC_PDCCH_Config", HFILL }}, + { &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_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_cc_SetIndex, + { "cc-SetIndex", "nr-rrc.cc_SetIndex", + FT_UINT32, BASE_DEC, NULL, 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_srs_ResourceSetToReleaseList, { "srs-ResourceSetToReleaseList", "nr-rrc.srs_ResourceSetToReleaseList", FT_UINT32, BASE_DEC, NULL, 0, @@ -32606,6 +45625,14 @@ void proto_register_nr_rrc(void) { { "slotOffset", "nr-rrc.slotOffset", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_1_32", HFILL }}, + { &hf_nr_rrc_aperiodicSRS_ResourceTriggerList_v1530, + { "aperiodicSRS-ResourceTriggerList-v1530", "nr-rrc.aperiodicSRS_ResourceTriggerList_v1530", + FT_UINT32, BASE_DEC, NULL, 0, + "T_aperiodicSRS_ResourceTriggerList_v1530", HFILL }}, + { &hf_nr_rrc_aperiodicSRS_ResourceTriggerList_v1530_item, + { "aperiodicSRS-ResourceTriggerList-v1530 item", "nr-rrc.aperiodicSRS_ResourceTriggerList_v1530_item", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxNrofSRS_TriggerStates_1", HFILL }}, { &hf_nr_rrc_semi_persistent, { "semi-persistent", "nr-rrc.semi_persistent_element", FT_NONE, BASE_NONE, NULL, 0, @@ -32624,7 +45651,7 @@ void proto_register_nr_rrc(void) { NULL, HFILL }}, { &hf_nr_rrc_p0_01, { "p0", "nr-rrc.p0", - FT_INT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, "INTEGER_M202_24", HFILL }}, { &hf_nr_rrc_pathlossReferenceRS, { "pathlossReferenceRS", "nr-rrc.pathlossReferenceRS", @@ -32744,8 +45771,8 @@ void proto_register_nr_rrc(void) { "SRS_PeriodicityAndOffset", HFILL }}, { &hf_nr_rrc_sequenceId, { "sequenceId", "nr-rrc.sequenceId", - FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_10", HFILL }}, + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1023", HFILL }}, { &hf_nr_rrc_spatialRelationInfo, { "spatialRelationInfo", "nr-rrc.spatialRelationInfo_element", FT_NONE, BASE_NONE, NULL, 0, @@ -32770,54 +45797,6 @@ void proto_register_nr_rrc(void) { { "sl64", "nr-rrc.sl64", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_63", HFILL }}, - { &hf_nr_rrc_srs_SwitchFromServCellIndex, - { "srs-SwitchFromServCellIndex", "nr-rrc.srs_SwitchFromServCellIndex", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_31", HFILL }}, - { &hf_nr_rrc_srs_SwitchFromCarrier, - { "srs-SwitchFromCarrier", "nr-rrc.srs_SwitchFromCarrier", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srs_SwitchFromCarrier_vals), 0, - NULL, 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_typeB, - { "typeB", "nr-rrc.typeB_element", - FT_NONE, BASE_NONE, NULL, 0, - "SRS_TPC_PDCCH_Config", HFILL }}, - { &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_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_cc_SetIndex, - { "cc-SetIndex", "nr-rrc.cc_SetIndex", - FT_UINT32, BASE_DEC, NULL, 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_startingBitOfFormat2_3, { "startingBitOfFormat2-3", "nr-rrc.startingBitOfFormat2_3", FT_UINT32, BASE_DEC, NULL, 0, @@ -32826,6 +45805,10 @@ void proto_register_nr_rrc(void) { { "fieldTypeFormat2-3", "nr-rrc.fieldTypeFormat2_3", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_1", HFILL }}, + { &hf_nr_rrc_startingBitOfFormat2_3SUL_v1530, + { "startingBitOfFormat2-3SUL-v1530", "nr-rrc.startingBitOfFormat2_3SUL_v1530", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_31", HFILL }}, { &hf_nr_rrc_periodicityAndOffset_02, { "periodicityAndOffset", "nr-rrc.periodicityAndOffset", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicityAndOffset_01_vals), 0, @@ -32870,6 +45853,26 @@ void proto_register_nr_rrc(void) { { "periodicity", "nr-rrc.periodicity", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicity_02_vals), 0, "T_periodicity_02", HFILL }}, + { &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, + "SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG", HFILL }}, + { &hf_nr_rrc_tag_ToAddModList_item, + { "TAG", "nr-rrc.TAG_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_timeAlignmentTimer, + { "timeAlignmentTimer", "nr-rrc.timeAlignmentTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_TimeAlignmentTimer_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_tci_StateId, { "tci-StateId", "nr-rrc.tci_StateId", FT_UINT32, BASE_DEC, NULL, 0, @@ -32930,6 +45933,10 @@ void proto_register_nr_rrc(void) { { "nrofUplinkSymbols", "nr-rrc.nrofUplinkSymbols", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_maxNrofSymbols_1", HFILL }}, + { &hf_nr_rrc_dl_UL_TransmissionPeriodicity_v1530, + { "dl-UL-TransmissionPeriodicity-v1530", "nr-rrc.dl_UL_TransmissionPeriodicity_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dl_UL_TransmissionPeriodicity_v1530_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_slotSpecificConfigurationsToAddModList, { "slotSpecificConfigurationsToAddModList", "nr-rrc.slotSpecificConfigurationsToAddModList", FT_UINT32, BASE_DEC, NULL, 0, @@ -32974,6 +45981,86 @@ void proto_register_nr_rrc(void) { { "nrofUplinkSymbols", "nr-rrc.nrofUplinkSymbols", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_1_maxNrofSymbols_1", HFILL }}, + { &hf_nr_rrc_UAC_BarringInfoSetList_item, + { "UAC-BarringInfoSet", "nr-rrc.UAC_BarringInfoSet_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_uac_BarringFactor, + { "uac-BarringFactor", "nr-rrc.uac_BarringFactor", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uac_BarringFactor_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_uac_BarringTime, + { "uac-BarringTime", "nr-rrc.uac_BarringTime", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uac_BarringTime_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_uac_BarringForAccessIdentity, + { "uac-BarringForAccessIdentity", "nr-rrc.uac_BarringForAccessIdentity", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_7", HFILL }}, + { &hf_nr_rrc_UAC_BarringPerCatList_item, + { "UAC-BarringPerCat", "nr-rrc.UAC_BarringPerCat_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_accessCategory, + { "accessCategory", "nr-rrc.accessCategory", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxAccessCat_1", HFILL }}, + { &hf_nr_rrc_uac_barringInfoSetIndex, + { "uac-barringInfoSetIndex", "nr-rrc.uac_barringInfoSetIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_UAC_BarringPerPLMN_List_item, + { "UAC-BarringPerPLMN", "nr-rrc.UAC_BarringPerPLMN_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_plmn_IdentityIndex, + { "plmn-IdentityIndex", "nr-rrc.plmn_IdentityIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_maxPLMN", HFILL }}, + { &hf_nr_rrc_uac_ACBarringListType, + { "uac-ACBarringListType", "nr-rrc.uac_ACBarringListType", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uac_ACBarringListType_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_uac_ImplicitACBarringList, + { "uac-ImplicitACBarringList", "nr-rrc.uac_ImplicitACBarringList", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_maxAccessCat_1_OF_UAC_BarringInfoSetIndex", HFILL }}, + { &hf_nr_rrc_uac_ImplicitACBarringList_item, + { "UAC-BarringInfoSetIndex", "nr-rrc.UAC_BarringInfoSetIndex", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_uac_ExplicitACBarringList, + { "uac-ExplicitACBarringList", "nr-rrc.uac_ExplicitACBarringList", + FT_UINT32, BASE_DEC, NULL, 0, + "UAC_BarringPerCatList", HFILL }}, + { &hf_nr_rrc_t300, + { "t300", "nr-rrc.t300", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t300_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_t301, + { "t301", "nr-rrc.t301", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t301_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_t310_01, + { "t310", "nr-rrc.t310", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t310_01_vals), 0, + "T_t310_01", HFILL }}, + { &hf_nr_rrc_n310_01, + { "n310", "nr-rrc.n310", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_n310_01_vals), 0, + "T_n310_01", HFILL }}, + { &hf_nr_rrc_t311, + { "t311", "nr-rrc.t311", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t311_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_n311_01, + { "n311", "nr-rrc.n311", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_n311_01_vals), 0, + "T_n311_01", HFILL }}, + { &hf_nr_rrc_t319, + { "t319", "nr-rrc.t319", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_t319_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_frequencyInfoUL, { "frequencyInfoUL", "nr-rrc.frequencyInfoUL_element", FT_NONE, BASE_NONE, NULL, 0, @@ -32982,10 +46069,38 @@ void proto_register_nr_rrc(void) { { "initialUplinkBWP", "nr-rrc.initialUplinkBWP_element", FT_NONE, BASE_NONE, NULL, 0, "BWP_UplinkCommon", HFILL }}, + { &hf_nr_rrc_dummy_02, + { "dummy", "nr-rrc.dummy", + FT_UINT32, BASE_DEC, VALS(nr_rrc_TimeAlignmentTimer_vals), 0, + "TimeAlignmentTimer", HFILL }}, + { &hf_nr_rrc_frequencyInfoUL_01, + { "frequencyInfoUL", "nr-rrc.frequencyInfoUL_element", + FT_NONE, BASE_NONE, NULL, 0, + "FrequencyInfoUL_SIB", HFILL }}, { &hf_nr_rrc_timeAlignmentTimerCommon, { "timeAlignmentTimerCommon", "nr-rrc.timeAlignmentTimerCommon", FT_UINT32, BASE_DEC, VALS(nr_rrc_TimeAlignmentTimer_vals), 0, "TimeAlignmentTimer", HFILL }}, + { &hf_nr_rrc_UplinkTxDirectCurrentList_item, + { "UplinkTxDirectCurrentCell", "nr-rrc.UplinkTxDirectCurrentCell_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_uplinkDirectCurrentBWP, + { "uplinkDirectCurrentBWP", "nr-rrc.uplinkDirectCurrentBWP", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP", HFILL }}, + { &hf_nr_rrc_uplinkDirectCurrentBWP_item, + { "UplinkTxDirectCurrentBWP", "nr-rrc.UplinkTxDirectCurrentBWP_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_shift7dot5kHz, + { "shift7dot5kHz", "nr-rrc.shift7dot5kHz", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_txDirectCurrentLocation, + { "txDirectCurrentLocation", "nr-rrc.txDirectCurrentLocation", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3301", HFILL }}, { &hf_nr_rrc_zp_CSI_RS_ResourceId, { "zp-CSI-RS-ResourceId", "nr-rrc.zp_CSI_RS_ResourceId", FT_UINT32, BASE_DEC, NULL, 0, @@ -33034,7 +46149,11 @@ void proto_register_nr_rrc(void) { { "supportedBandwidthCombinationSet", "nr-rrc.supportedBandwidthCombinationSet", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_1_32", HFILL }}, - { &hf_nr_rrc_eutra, + { &hf_nr_rrc_powerClass_v1530, + { "powerClass-v1530", "nr-rrc.powerClass_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_powerClass_v1530_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_eutra_01, { "eutra", "nr-rrc.eutra_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, @@ -33050,7 +46169,7 @@ void proto_register_nr_rrc(void) { { "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_nr, + { &hf_nr_rrc_nr_01, { "nr", "nr-rrc.nr_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, @@ -33066,6 +46185,30 @@ void proto_register_nr_rrc(void) { { "ca-BandwidthClassUL-NR", "nr-rrc.ca_BandwidthClassUL_NR", FT_UINT32, BASE_DEC|BASE_EXT_STRING, &nr_rrc_CA_BandwidthClassNR_vals_ext, 0, "CA_BandwidthClassNR", HFILL }}, + { &hf_nr_rrc_multipleTimingAdvance, + { "multipleTimingAdvance", "nr-rrc.multipleTimingAdvance", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleTimingAdvance_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_simultaneousRx_Tx, + { "simultaneousRx-Tx", "nr-rrc.simultaneousRx_Tx", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousRx_Tx_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedNAICS_2CRS_AP, + { "supportedNAICS-2CRS-AP", "nr-rrc.supportedNAICS_2CRS_AP", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1_8", HFILL }}, + { &hf_nr_rrc_additionalRx_Tx_PerformanceReq, + { "additionalRx-Tx-PerformanceReq", "nr-rrc.additionalRx_Tx_PerformanceReq", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_additionalRx_Tx_PerformanceReq_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_ue_CA_PowerClass_N, + { "ue-CA-PowerClass-N", "nr-rrc.ue_CA_PowerClass_N", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ue_CA_PowerClass_N_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_supportedBandwidthCombinationSetEUTRA_v1530, + { "supportedBandwidthCombinationSetEUTRA-v1530", "nr-rrc.supportedBandwidthCombinationSetEUTRA_v1530", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1_32", HFILL }}, { &hf_nr_rrc_multipleTimingAdvances, { "multipleTimingAdvances", "nr-rrc.multipleTimingAdvances", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleTimingAdvances_vals), 0, @@ -33098,26 +46241,6 @@ void proto_register_nr_rrc(void) { { "supportedNumberTAG", "nr-rrc.supportedNumberTAG", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedNumberTAG_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_multipleTimingAdvance, - { "multipleTimingAdvance", "nr-rrc.multipleTimingAdvance", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleTimingAdvance_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_simultaneousRx_Tx, - { "simultaneousRx-Tx", "nr-rrc.simultaneousRx_Tx", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousRx_Tx_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_supportedNAICS_2CRS_AP, - { "supportedNAICS-2CRS-AP", "nr-rrc.supportedNAICS_2CRS_AP", - FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_1_8", HFILL }}, - { &hf_nr_rrc_additionalRx_Tx_PerformanceReq, - { "additionalRx-Tx-PerformanceReq", "nr-rrc.additionalRx_Tx_PerformanceReq", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_additionalRx_Tx_PerformanceReq_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_ue_CA_PowerClass_N, - { "ue-CA-PowerClass-N", "nr-rrc.ue_CA_PowerClass_N", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ue_CA_PowerClass_N_vals), 0, - NULL, HFILL }}, { &hf_nr_rrc_FeatureSetCombination_item, { "FeatureSetsPerBand", "nr-rrc.FeatureSetsPerBand", FT_UINT32, BASE_DEC, NULL, 0, @@ -33126,7 +46249,7 @@ void proto_register_nr_rrc(void) { { "FeatureSet", "nr-rrc.FeatureSet", FT_UINT32, BASE_DEC, VALS(nr_rrc_FeatureSet_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_eutra_01, + { &hf_nr_rrc_eutra_02, { "eutra", "nr-rrc.eutra_element", FT_NONE, BASE_NONE, NULL, 0, "T_eutra_01", HFILL }}, @@ -33138,7 +46261,7 @@ void proto_register_nr_rrc(void) { { "uplinkSetEUTRA", "nr-rrc.uplinkSetEUTRA", FT_UINT32, BASE_DEC, NULL, 0, "FeatureSetEUTRA_UplinkId", HFILL }}, - { &hf_nr_rrc_nr_01, + { &hf_nr_rrc_nr_02, { "nr", "nr-rrc.nr_element", FT_NONE, BASE_NONE, NULL, 0, "T_nr_01", HFILL }}, @@ -33166,9 +46289,9 @@ void proto_register_nr_rrc(void) { { "scalingFactor", "nr-rrc.scalingFactor", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scalingFactor_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_crossCarrierSchedulingDL_OtherSCS, - { "crossCarrierSchedulingDL-OtherSCS", "nr-rrc.crossCarrierSchedulingDL_OtherSCS", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_crossCarrierSchedulingDL_OtherSCS_vals), 0, + { &hf_nr_rrc_crossCarrierScheduling_OtherSCS, + { "crossCarrierScheduling-OtherSCS", "nr-rrc.crossCarrierScheduling_OtherSCS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_crossCarrierScheduling_OtherSCS_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_scellWithoutSSB, { "scellWithoutSSB", "nr-rrc.scellWithoutSSB", @@ -33186,13 +46309,13 @@ void proto_register_nr_rrc(void) { { "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, + { &hf_nr_rrc_pdcch_MonitoringAnyOccasions, + { "pdcch-MonitoringAnyOccasions", "nr-rrc.pdcch_MonitoringAnyOccasions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcch_MonitoringAnyOccasions_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_pdcchMonitoringAnyOccasionsWithSpanGap, - { "pdcchMonitoringAnyOccasionsWithSpanGap", "nr-rrc.pdcchMonitoringAnyOccasionsWithSpanGap", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcchMonitoringAnyOccasionsWithSpanGap_vals), 0, + { &hf_nr_rrc_pdcch_MonitoringAnyOccasionsWithSpanGap, + { "pdcch-MonitoringAnyOccasionsWithSpanGap", "nr-rrc.pdcch_MonitoringAnyOccasionsWithSpanGap", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcch_MonitoringAnyOccasionsWithSpanGap_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_ue_SpecificUL_DL_Assignment, { "ue-SpecificUL-DL-Assignment", "nr-rrc.ue_SpecificUL_DL_Assignment", @@ -33366,6 +46489,38 @@ void proto_register_nr_rrc(void) { { "supportedModulationOrderDL", "nr-rrc.supportedModulationOrderDL", FT_UINT32, BASE_DEC, VALS(nr_rrc_ModulationOrder_vals), 0, "ModulationOrder", HFILL }}, + { &hf_nr_rrc_featureSetsDownlink, + { "featureSetsDownlink", "nr-rrc.featureSetsDownlink", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink", HFILL }}, + { &hf_nr_rrc_featureSetsDownlink_item, + { "FeatureSetDownlink", "nr-rrc.FeatureSetDownlink_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_featureSetsDownlinkPerCC, + { "featureSetsDownlinkPerCC", "nr-rrc.featureSetsDownlinkPerCC", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC", HFILL }}, + { &hf_nr_rrc_featureSetsDownlinkPerCC_item, + { "FeatureSetDownlinkPerCC", "nr-rrc.FeatureSetDownlinkPerCC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_featureSetsUplink, + { "featureSetsUplink", "nr-rrc.featureSetsUplink", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink", HFILL }}, + { &hf_nr_rrc_featureSetsUplink_item, + { "FeatureSetUplink", "nr-rrc.FeatureSetUplink_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_featureSetsUplinkPerCC, + { "featureSetsUplinkPerCC", "nr-rrc.featureSetsUplinkPerCC", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC", HFILL }}, + { &hf_nr_rrc_featureSetsUplinkPerCC_item, + { "FeatureSetUplinkPerCC", "nr-rrc.FeatureSetUplinkPerCC_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_featureSetListPerUplinkCC, { "featureSetListPerUplinkCC", "nr-rrc.featureSetListPerUplinkCC", FT_UINT32, BASE_DEC, NULL, 0, @@ -33378,10 +46533,10 @@ void proto_register_nr_rrc(void) { { "scalingFactor", "nr-rrc.scalingFactor", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scalingFactor_01_vals), 0, "T_scalingFactor_01", HFILL }}, - { &hf_nr_rrc_crossCarrierSchedulingUL_OtherSCS, - { "crossCarrierSchedulingUL-OtherSCS", "nr-rrc.crossCarrierSchedulingUL_OtherSCS", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_crossCarrierSchedulingUL_OtherSCS_vals), 0, - NULL, HFILL }}, + { &hf_nr_rrc_crossCarrierScheduling_OtherSCS_01, + { "crossCarrierScheduling-OtherSCS", "nr-rrc.crossCarrierScheduling_OtherSCS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_crossCarrierScheduling_OtherSCS_01_vals), 0, + "T_crossCarrierScheduling_OtherSCS_01", HFILL }}, { &hf_nr_rrc_intraBandFreqSeparationUL, { "intraBandFreqSeparationUL", "nr-rrc.intraBandFreqSeparationUL", FT_UINT32, BASE_DEC, VALS(nr_rrc_FreqSeparationClass_vals), 0, @@ -33406,6 +46561,10 @@ void proto_register_nr_rrc(void) { { "dynamicSwitchSUL", "nr-rrc.dynamicSwitchSUL", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicSwitchSUL_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_simultaneousTxSUL_NonSUL_v1530, + { "simultaneousTxSUL-NonSUL-v1530", "nr-rrc.simultaneousTxSUL_NonSUL_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousTxSUL_NonSUL_v1530_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, @@ -33478,42 +46637,6 @@ void proto_register_nr_rrc(void) { { "supportedModulationOrderUL", "nr-rrc.supportedModulationOrderUL", FT_UINT32, BASE_DEC, VALS(nr_rrc_ModulationOrder_vals), 0, "ModulationOrder", 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_featureSetsDownlink, - { "featureSetsDownlink", "nr-rrc.featureSetsDownlink", - FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink", HFILL }}, - { &hf_nr_rrc_featureSetsDownlink_item, - { "FeatureSetDownlink", "nr-rrc.FeatureSetDownlink_element", - FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_featureSetsDownlinkPerCC, - { "featureSetsDownlinkPerCC", "nr-rrc.featureSetsDownlinkPerCC", - FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC", HFILL }}, - { &hf_nr_rrc_featureSetsDownlinkPerCC_item, - { "FeatureSetDownlinkPerCC", "nr-rrc.FeatureSetDownlinkPerCC_element", - FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_featureSetsUplink, - { "featureSetsUplink", "nr-rrc.featureSetsUplink", - FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink", HFILL }}, - { &hf_nr_rrc_featureSetsUplink_item, - { "FeatureSetUplink", "nr-rrc.FeatureSetUplink_element", - FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_featureSetsUplinkPerCC, - { "featureSetsUplinkPerCC", "nr-rrc.featureSetsUplinkPerCC", - FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC", HFILL }}, - { &hf_nr_rrc_featureSetsUplinkPerCC_item, - { "FeatureSetUplinkPerCC", "nr-rrc.FeatureSetUplinkPerCC_element", - FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, { &hf_nr_rrc_FreqBandList_item, { "FreqBandInformation", "nr-rrc.FreqBandInformation", FT_UINT32, BASE_DEC, VALS(nr_rrc_FreqBandInformation_vals), 0, @@ -33528,12 +46651,12 @@ void proto_register_nr_rrc(void) { "FreqBandInformationNR", HFILL }}, { &hf_nr_rrc_maxBandwidthRequestedDL, { "maxBandwidthRequestedDL", "nr-rrc.maxBandwidthRequestedDL", - FT_UINT32, BASE_DEC, VALS(nr_rrc_AggregatedBandwith_vals), 0, - "AggregatedBandwith", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_AggregatedBandwidth_vals), 0, + "AggregatedBandwidth", HFILL }}, { &hf_nr_rrc_maxBandwidthRequestedUL, { "maxBandwidthRequestedUL", "nr-rrc.maxBandwidthRequestedUL", - FT_UINT32, BASE_DEC, VALS(nr_rrc_AggregatedBandwith_vals), 0, - "AggregatedBandwith", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_AggregatedBandwidth_vals), 0, + "AggregatedBandwidth", HFILL }}, { &hf_nr_rrc_maxCarriersRequestedDL, { "maxCarriersRequestedDL", "nr-rrc.maxCarriersRequestedDL", FT_UINT32, BASE_DEC, NULL, 0, @@ -33542,128 +46665,200 @@ void proto_register_nr_rrc(void) { { "maxCarriersRequestedUL", "nr-rrc.maxCarriersRequestedUL", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_1_maxNrofServingCells", 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_dynamicPowerSharing, - { "dynamicPowerSharing", "nr-rrc.dynamicPowerSharing", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicPowerSharing_vals), 0, + { &hf_nr_rrc_eutra_03, + { "eutra", "nr-rrc.eutra_element", + FT_NONE, BASE_NONE, NULL, 0, + "EUTRA_Parameters", HFILL }}, + { &hf_nr_rrc_supportedBandListEUTRA, + { "supportedBandListEUTRA", "nr-rrc.supportedBandListEUTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxBandsEUTRA_OF_FreqBandIndicatorEUTRA", HFILL }}, + { &hf_nr_rrc_supportedBandListEUTRA_item, + { "FreqBandIndicatorEUTRA", "nr-rrc.FreqBandIndicatorEUTRA", + FT_UINT32, BASE_DEC, NULL, 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, + { &hf_nr_rrc_eutra_ParametersCommon, + { "eutra-ParametersCommon", "nr-rrc.eutra_ParametersCommon_element", + FT_NONE, BASE_NONE, NULL, 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, + { &hf_nr_rrc_eutra_ParametersXDD_Diff, + { "eutra-ParametersXDD-Diff", "nr-rrc.eutra_ParametersXDD_Diff_element", + FT_NONE, BASE_NONE, NULL, 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, + { &hf_nr_rrc_mfbi_EUTRA, + { "mfbi-EUTRA", "nr-rrc.mfbi_EUTRA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_mfbi_EUTRA_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_simultaneousRxTxInterBandENDC, - { "simultaneousRxTxInterBandENDC", "nr-rrc.simultaneousRxTxInterBandENDC", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousRxTxInterBandENDC_vals), 0, + { &hf_nr_rrc_modifiedMRP_BehaviorEUTRA, + { "modifiedMRP-BehaviorEUTRA", "nr-rrc.modifiedMRP_BehaviorEUTRA", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_32", HFILL }}, + { &hf_nr_rrc_multiNS_Pmax_EUTRA, + { "multiNS-Pmax-EUTRA", "nr-rrc.multiNS_Pmax_EUTRA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multiNS_Pmax_EUTRA_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_asyncIntraBandENDC, - { "asyncIntraBandENDC", "nr-rrc.asyncIntraBandENDC", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_asyncIntraBandENDC_vals), 0, + { &hf_nr_rrc_rs_SINR_MeasEUTRA, + { "rs-SINR-MeasEUTRA", "nr-rrc.rs_SINR_MeasEUTRA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rs_SINR_MeasEUTRA_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_fr1, - { "fr1", "nr-rrc.fr1", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr1_vals), 0, + { &hf_nr_rrc_rsrqMeasWidebandEUTRA, + { "rsrqMeasWidebandEUTRA", "nr-rrc.rsrqMeasWidebandEUTRA", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rsrqMeasWidebandEUTRA_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_fr2, - { "fr2", "nr-rrc.fr2", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr2_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_UE_CapabilityRAT_ContainerList_item, - { "UE-CapabilityRAT-Container", "nr-rrc.UE_CapabilityRAT_Container_element", + { &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_rat_Type, - { "rat-Type", "nr-rrc.rat_Type", - FT_UINT32, BASE_DEC, VALS(nr_rrc_RAT_Type_vals), 0, + { &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_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, + { &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_rf_ParametersMRDC, - { "rf-ParametersMRDC", "nr-rrc.rf_ParametersMRDC_element", - FT_NONE, BASE_NONE, NULL, 0, + { &hf_nr_rrc_lch_ToSCellRestriction, + { "lch-ToSCellRestriction", "nr-rrc.lch_ToSCellRestriction", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_lch_ToSCellRestriction_vals), 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_featureSetCombinations, - { "featureSetCombinations", "nr-rrc.featureSetCombinations", - FT_UINT32, BASE_DEC, NULL, 0, - "SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination", HFILL }}, - { &hf_nr_rrc_featureSetCombinations_item, - { "FeatureSetCombination", "nr-rrc.FeatureSetCombination", - FT_UINT32, BASE_DEC, NULL, 0, + { &hf_nr_rrc_recommendedBitRate, + { "recommendedBitRate", "nr-rrc.recommendedBitRate", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_recommendedBitRate_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_09, - { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", - FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_09", HFILL }}, - { &hf_nr_rrc_measParametersMRDC_XDD_Diff, - { "measParametersMRDC-XDD-Diff", "nr-rrc.measParametersMRDC_XDD_Diff_element", + { &hf_nr_rrc_recommendedBitRateQuery, + { "recommendedBitRateQuery", "nr-rrc.recommendedBitRateQuery", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_recommendedBitRateQuery_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_01, + { "logicalChannelSR-DelayTimer", "nr-rrc.logicalChannelSR_DelayTimer", + 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, + NULL, HFILL }}, + { &hf_nr_rrc_shortDRX_Cycle, + { "shortDRX-Cycle", "nr-rrc.shortDRX_Cycle", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_shortDRX_Cycle_vals), 0, + NULL, HFILL }}, + { &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_multipleConfiguredGrants, + { "multipleConfiguredGrants", "nr-rrc.multipleConfiguredGrants", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleConfiguredGrants_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_measAndMobParametersCommon, + { "measAndMobParametersCommon", "nr-rrc.measAndMobParametersCommon_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_generalParametersMRDC_XDD_Diff, - { "generalParametersMRDC-XDD-Diff", "nr-rrc.generalParametersMRDC_XDD_Diff_element", + { &hf_nr_rrc_measAndMobParametersXDD_Diff, + { "measAndMobParametersXDD-Diff", "nr-rrc.measAndMobParametersXDD_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", + { &hf_nr_rrc_measAndMobParametersFRX_Diff, + { "measAndMobParametersFRX-Diff", "nr-rrc.measAndMobParametersFRX_Diff_element", FT_NONE, BASE_NONE, NULL, 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, + { &hf_nr_rrc_supportedGapPattern, + { "supportedGapPattern", "nr-rrc.supportedGapPattern", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_22", HFILL }}, + { &hf_nr_rrc_ssb_RLM, + { "ssb-RLM", "nr-rrc.ssb_RLM", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_RLM_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, + { &hf_nr_rrc_ssb_AndCSI_RS_RLM, + { "ssb-AndCSI-RS-RLM", "nr-rrc.ssb_AndCSI_RS_RLM", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_ssb_AndCSI_RS_RLM_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_srb3, - { "srb3", "nr-rrc.srb3", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srb3_vals), 0, + { &hf_nr_rrc_eventB_MeasAndReport, + { "eventB-MeasAndReport", "nr-rrc.eventB_MeasAndReport", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_eventB_MeasAndReport_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_supportedBandCombinationList, - { "supportedBandCombinationList", "nr-rrc.supportedBandCombinationList", - FT_UINT32, BASE_DEC, NULL, 0, - "BandCombinationList", HFILL }}, - { &hf_nr_rrc_appliedFreqBandListFilter, - { "appliedFreqBandListFilter", "nr-rrc.appliedFreqBandListFilter", - FT_UINT32, BASE_DEC, NULL, 0, - "FreqBandList", HFILL }}, - { &hf_nr_rrc_measParametersMRDC_Common, - { "measParametersMRDC-Common", "nr-rrc.measParametersMRDC_Common_element", + { &hf_nr_rrc_handoverFDD_TDD, + { "handoverFDD-TDD", "nr-rrc.handoverFDD_TDD", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_handoverFDD_TDD_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_eutra_CGI_Reporting, + { "eutra-CGI-Reporting", "nr-rrc.eutra_CGI_Reporting", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_eutra_CGI_Reporting_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_nr_CGI_Reporting, + { "nr-CGI-Reporting", "nr-rrc.nr_CGI_Reporting", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_nr_CGI_Reporting_vals), 0, + NULL, HFILL }}, + { &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_handoverInterF, + { "handoverInterF", "nr-rrc.handoverInterF", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_handoverInterF_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_handoverLTE, + { "handoverLTE", "nr-rrc.handoverLTE", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_handoverLTE_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_handover_eLTE, + { "handover-eLTE", "nr-rrc.handover_eLTE", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_handover_eLTE_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 }}, + { &hf_nr_rrc_handoverInterF_01, + { "handoverInterF", "nr-rrc.handoverInterF", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_handoverInterF_01_vals), 0, + "T_handoverInterF_01", HFILL }}, + { &hf_nr_rrc_handoverLTE_01, + { "handoverLTE", "nr-rrc.handoverLTE", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_handoverLTE_01_vals), 0, + "T_handoverLTE_01", HFILL }}, + { &hf_nr_rrc_handover_eLTE_01, + { "handover-eLTE", "nr-rrc.handover_eLTE", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_handover_eLTE_01_vals), 0, + "T_handover_eLTE_01", HFILL }}, + { &hf_nr_rrc_measAndMobParametersMRDC_Common, + { "measAndMobParametersMRDC-Common", "nr-rrc.measAndMobParametersMRDC_Common_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measAndMobParametersMRDC_XDD_Diff, + { "measAndMobParametersMRDC-XDD-Diff", "nr-rrc.measAndMobParametersMRDC_XDD_Diff_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_measAndMobParametersMRDC_FRX_Diff, + { "measAndMobParametersMRDC-FRX-Diff", "nr-rrc.measAndMobParametersMRDC_FRX_Diff_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, { &hf_nr_rrc_independentGapConfig, @@ -33682,82 +46877,378 @@ void proto_register_nr_rrc(void) { { "simultaneousRxDataSSB-DiffNumerology", "nr-rrc.simultaneousRxDataSSB_DiffNumerology", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_simultaneousRxDataSSB_DiffNumerology_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_accessStratumRelease, - { "accessStratumRelease", "nr-rrc.accessStratumRelease", - FT_UINT32, BASE_DEC, VALS(nr_rrc_AccessStratumRelease_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_pdcp_Parameters, - { "pdcp-Parameters", "nr-rrc.pdcp_Parameters_element", + { &hf_nr_rrc_tci_StatePDSCH, + { "tci-StatePDSCH", "nr-rrc.tci_StatePDSCH_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_rlc_Parameters, - { "rlc-Parameters", "nr-rrc.rlc_Parameters_element", + { &hf_nr_rrc_maxNumberConfiguredTCIstatesPerCC, + { "maxNumberConfiguredTCIstatesPerCC", "nr-rrc.maxNumberConfiguredTCIstatesPerCC", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberConfiguredTCIstatesPerCC_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_maxNumberActiveTCI_PerBWP, + { "maxNumberActiveTCI-PerBWP", "nr-rrc.maxNumberActiveTCI_PerBWP", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberActiveTCI_PerBWP_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_additionalActiveTCI_StatePDCCH, + { "additionalActiveTCI-StatePDCCH", "nr-rrc.additionalActiveTCI_StatePDCCH", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_additionalActiveTCI_StatePDCCH_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_mac_Parameters, - { "mac-Parameters", "nr-rrc.mac_Parameters_element", + { &hf_nr_rrc_maxNumberRxBeam, + { "maxNumberRxBeam", "nr-rrc.maxNumberRxBeam", + FT_UINT32, BASE_DEC, 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_phy_Parameters, - { "phy-Parameters", "nr-rrc.phy_Parameters_element", + { &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_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_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_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_rf_Parameters, - { "rf-Parameters", "nr-rrc.rf_Parameters_element", + { &hf_nr_rrc_maxNumberSRS_ResourcePerSet_BM, + { "maxNumberSRS-ResourcePerSet-BM", "nr-rrc.maxNumberSRS_ResourcePerSet_BM", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberSRS_ResourcePerSet_BM_vals), 0, + "T_maxNumberSRS_ResourcePerSet_BM", 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_DL, + { "twoPortsPTRS-DL", "nr-rrc.twoPortsPTRS_DL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPortsPTRS_DL_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_twoPortsPTRS_UL, + { "twoPortsPTRS-UL", "nr-rrc.twoPortsPTRS_UL", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPortsPTRS_UL_vals), 0, + NULL, 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_beamReportTiming, + { "beamReportTiming", "nr-rrc.beamReportTiming_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_measParameters, - { "measParameters", "nr-rrc.measParameters_element", + { &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_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_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_ptrs_DensityRecommendationSetDL, + { "ptrs-DensityRecommendationSetDL", "nr-rrc.ptrs_DensityRecommendationSetDL_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", + { &hf_nr_rrc_scs_15kHz_04, + { "scs-15kHz", "nr-rrc.scs_15kHz_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", + "PTRS_DensityRecommendationDL", HFILL }}, + { &hf_nr_rrc_scs_30kHz_04, + { "scs-30kHz", "nr-rrc.scs_30kHz_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", + "PTRS_DensityRecommendationDL", HFILL }}, + { &hf_nr_rrc_scs_60kHz_05, + { "scs-60kHz", "nr-rrc.scs_60kHz_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", + "PTRS_DensityRecommendationDL", HFILL }}, + { &hf_nr_rrc_scs_120kHz_04, + { "scs-120kHz", "nr-rrc.scs_120kHz_element", FT_NONE, BASE_NONE, NULL, 0, - "UE_NR_CapabilityAddFRX_Mode", HFILL }}, - { &hf_nr_rrc_featureSets, - { "featureSets", "nr-rrc.featureSets_element", + "PTRS_DensityRecommendationDL", HFILL }}, + { &hf_nr_rrc_ptrs_DensityRecommendationSetUL, + { "ptrs-DensityRecommendationSetUL", "nr-rrc.ptrs_DensityRecommendationSetUL_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_10, - { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + { &hf_nr_rrc_scs_15kHz_05, + { "scs-15kHz", "nr-rrc.scs_15kHz_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_10", HFILL }}, - { &hf_nr_rrc_phy_ParametersXDD_Diff, - { "phy-ParametersXDD-Diff", "nr-rrc.phy_ParametersXDD_Diff_element", + "PTRS_DensityRecommendationUL", HFILL }}, + { &hf_nr_rrc_scs_30kHz_05, + { "scs-30kHz", "nr-rrc.scs_30kHz_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_mac_ParametersXDD_Diff, - { "mac-ParametersXDD-Diff", "nr-rrc.mac_ParametersXDD_Diff_element", + "PTRS_DensityRecommendationUL", HFILL }}, + { &hf_nr_rrc_scs_60kHz_06, + { "scs-60kHz", "nr-rrc.scs_60kHz_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_measParametersXDD_Diff, - { "measParametersXDD-Diff", "nr-rrc.measParametersXDD_Diff_element", + "PTRS_DensityRecommendationUL", HFILL }}, + { &hf_nr_rrc_scs_120kHz_05, + { "scs-120kHz", "nr-rrc.scs_120kHz_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, - { &hf_nr_rrc_phy_ParametersFRX_Diff, - { "phy-ParametersFRX-Diff", "nr-rrc.phy_ParametersFRX_Diff_element", + "PTRS_DensityRecommendationUL", HFILL }}, + { &hf_nr_rrc_csi_RS_ForTracking, + { "csi-RS-ForTracking", "nr-rrc.csi_RS_ForTracking_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_measParametersFRX_Diff, - { "measParametersFRX-Diff", "nr-rrc.measParametersFRX_Diff_element", + { &hf_nr_rrc_aperiodicTRS, + { "aperiodicTRS", "nr-rrc.aperiodicTRS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aperiodicTRS_vals), 0, + NULL, 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_burstLength, + { "burstLength", "nr-rrc.burstLength", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_2", HFILL }}, + { &hf_nr_rrc_maxSimultaneousResourceSetsPerCC, + { "maxSimultaneousResourceSetsPerCC", "nr-rrc.maxSimultaneousResourceSetsPerCC", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_8", HFILL }}, + { &hf_nr_rrc_maxConfiguredResourceSetsPerCC, + { "maxConfiguredResourceSetsPerCC", "nr-rrc.maxConfiguredResourceSetsPerCC", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_64", HFILL }}, + { &hf_nr_rrc_maxConfiguredResourceSetsAllCC, + { "maxConfiguredResourceSetsAllCC", "nr-rrc.maxConfiguredResourceSetsAllCC", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_128", HFILL }}, + { &hf_nr_rrc_frequencyDensity1, + { "frequencyDensity1", "nr-rrc.frequencyDensity1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_276", HFILL }}, + { &hf_nr_rrc_frequencyDensity2, + { "frequencyDensity2", "nr-rrc.frequencyDensity2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_276", HFILL }}, + { &hf_nr_rrc_timeDensity1, + { "timeDensity1", "nr-rrc.timeDensity1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_29", HFILL }}, + { &hf_nr_rrc_timeDensity2, + { "timeDensity2", "nr-rrc.timeDensity2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_29", HFILL }}, + { &hf_nr_rrc_timeDensity3, + { "timeDensity3", "nr-rrc.timeDensity3", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_29", HFILL }}, + { &hf_nr_rrc_sampleDensity1, + { "sampleDensity1", "nr-rrc.sampleDensity1", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_276", HFILL }}, + { &hf_nr_rrc_sampleDensity2, + { "sampleDensity2", "nr-rrc.sampleDensity2", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_276", HFILL }}, + { &hf_nr_rrc_sampleDensity3, + { "sampleDensity3", "nr-rrc.sampleDensity3", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_276", HFILL }}, + { &hf_nr_rrc_sampleDensity4, + { "sampleDensity4", "nr-rrc.sampleDensity4", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_276", HFILL }}, + { &hf_nr_rrc_sampleDensity5, + { "sampleDensity5", "nr-rrc.sampleDensity5", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_276", 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_maxNumberPeriodicSRS_PerBWP_PerSlot, + { "maxNumberPeriodicSRS-PerBWP-PerSlot", "nr-rrc.maxNumberPeriodicSRS_PerBWP_PerSlot", + FT_UINT32, BASE_DEC, 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_maxNumberSP_SRS_PerBWP_PerSlot, + { "maxNumberSP-SRS-PerBWP-PerSlot", "nr-rrc.maxNumberSP_SRS_PerBWP_PerSlot", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_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_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_txSwitchImpactToRx, + { "txSwitchImpactToRx", "nr-rrc.txSwitchImpactToRx", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_txSwitchImpactToRx_vals), 0, + NULL, 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_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_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_supportedROHC_Profiles, + { "supportedROHC-Profiles", "nr-rrc.supportedROHC_Profiles_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_profile0x0000, + { "profile0x0000", "nr-rrc.profile0x0000", + FT_BOOLEAN, BASE_NONE, NULL, 0, + "BOOLEAN", HFILL }}, + { &hf_nr_rrc_maxNumberROHC_ContextSessions, + { "maxNumberROHC-ContextSessions", "nr-rrc.maxNumberROHC_ContextSessions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberROHC_ContextSessions_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_uplinkOnlyROHC_Profiles, + { "uplinkOnlyROHC-Profiles", "nr-rrc.uplinkOnlyROHC_Profiles", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uplinkOnlyROHC_Profiles_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_continueROHC_Context, + { "continueROHC-Context", "nr-rrc.continueROHC_Context", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_continueROHC_Context_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_outOfOrderDelivery_01, + { "outOfOrderDelivery", "nr-rrc.outOfOrderDelivery", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_outOfOrderDelivery_01_vals), 0, + "T_outOfOrderDelivery_01", HFILL }}, + { &hf_nr_rrc_shortSN, + { "shortSN", "nr-rrc.shortSN", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_shortSN_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcp_DuplicationSRB3, + { "pdcp-DuplicationSRB3", "nr-rrc.pdcp_DuplicationSRB3", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcp_DuplicationSRB3_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcp_DuplicationMCG_OrSCG, + { "pdcp-DuplicationMCG-OrSCG", "nr-rrc.pdcp_DuplicationMCG_OrSCG", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcp_DuplicationMCG_OrSCG_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcp_DuplicationSplitSRB, + { "pdcp-DuplicationSplitSRB", "nr-rrc.pdcp_DuplicationSplitSRB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcp_DuplicationSplitSRB_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcp_DuplicationSplitDRB, + { "pdcp-DuplicationSplitDRB", "nr-rrc.pdcp_DuplicationSplitDRB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcp_DuplicationSplitDRB_vals), 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_ParametersXDD_Diff, + { "phy-ParametersXDD-Diff", "nr-rrc.phy_ParametersXDD_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_phy_ParametersFR1, { "phy-ParametersFR1", "nr-rrc.phy_ParametersFR1_element", FT_NONE, BASE_NONE, NULL, 0, @@ -33902,6 +47393,10 @@ void proto_register_nr_rrc(void) { { "bwp-SwitchingDelay", "nr-rrc.bwp_SwitchingDelay", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bwp_SwitchingDelay_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_eutra_RS_SINR_measurement, + { "eutra-RS-SINR-measurement", "nr-rrc.eutra_RS_SINR_measurement", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_eutra_RS_SINR_measurement_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_dynamicSFI, { "dynamicSFI", "nr-rrc.dynamicSFI", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_dynamicSFI_vals), 0, @@ -34012,8 +47507,8 @@ void proto_register_nr_rrc(void) { 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 }}, + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_4_16", 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, @@ -34070,10 +47565,10 @@ void proto_register_nr_rrc(void) { { "pdcchMonitoringSingleOccasion", "nr-rrc.pdcchMonitoringSingleOccasion", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdcchMonitoringSingleOccasion_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_scs_60kHz_03, + { &hf_nr_rrc_scs_60kHz_07, { "scs-60kHz", "nr-rrc.scs_60kHz", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_60kHz_03_vals), 0, - "T_scs_60kHz_03", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_60kHz_05_vals), 0, + "T_scs_60kHz_05", 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, @@ -34090,6 +47585,22 @@ void proto_register_nr_rrc(void) { { "pdsch-RE-MappingFR2", "nr-rrc.pdsch_RE_MappingFR2", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_pdsch_RE_MappingFR2_vals), 0, NULL, HFILL }}, + { &hf_nr_rrc_naics_Capability_List, + { "naics-Capability-List", "nr-rrc.naics_Capability_List", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry", HFILL }}, + { &hf_nr_rrc_naics_Capability_List_item, + { "NAICS-Capability-Entry", "nr-rrc.NAICS_Capability_Entry_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_numberOfNAICS_CapableCC, + { "numberOfNAICS-CapableCC", "nr-rrc.numberOfNAICS_CapableCC", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_5", HFILL }}, + { &hf_nr_rrc_numberOfAggregatedPRB, + { "numberOfAggregatedPRB", "nr-rrc.numberOfAggregatedPRB", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_numberOfAggregatedPRB_vals), 0, + NULL, HFILL }}, { &hf_nr_rrc_supportedBandListNR, { "supportedBandListNR", "nr-rrc.supportedBandListNR", FT_UINT32, BASE_DEC, NULL, 0, @@ -34098,6 +47609,14 @@ void proto_register_nr_rrc(void) { { "BandNR", "nr-rrc.BandNR_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_supportedBandCombinationList, + { "supportedBandCombinationList", "nr-rrc.supportedBandCombinationList", + FT_UINT32, BASE_DEC, NULL, 0, + "BandCombinationList", HFILL }}, + { &hf_nr_rrc_appliedFreqBandListFilter, + { "appliedFreqBandListFilter", "nr-rrc.appliedFreqBandListFilter", + FT_UINT32, BASE_DEC, NULL, 0, + "FreqBandList", HFILL }}, { &hf_nr_rrc_modifiedMPR_Behaviour, { "modifiedMPR-Behaviour", "nr-rrc.modifiedMPR_Behaviour", FT_BYTES, BASE_NONE, NULL, 0, @@ -34126,13 +47645,9 @@ void proto_register_nr_rrc(void) { { "bwp-DiffNumerology", "nr-rrc.bwp_DiffNumerology", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_bwp_DiffNumerology_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_crossCarrierSchedulingDL_SameSCS, - { "crossCarrierSchedulingDL-SameSCS", "nr-rrc.crossCarrierSchedulingDL_SameSCS", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_crossCarrierSchedulingDL_SameSCS_vals), 0, - NULL, HFILL }}, - { &hf_nr_rrc_crossCarrierSchedulingUL_SameSCS, - { "crossCarrierSchedulingUL-SameSCS", "nr-rrc.crossCarrierSchedulingUL_SameSCS", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_crossCarrierSchedulingUL_SameSCS_vals), 0, + { &hf_nr_rrc_crossCarrierScheduling_SameSCS, + { "crossCarrierScheduling-SameSCS", "nr-rrc.crossCarrierScheduling_SameSCS", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_crossCarrierScheduling_SameSCS_vals), 0, NULL, HFILL }}, { &hf_nr_rrc_pdsch_256QAM_FR2, { "pdsch-256QAM-FR2", "nr-rrc.pdsch_256QAM_FR2", @@ -34150,410 +47665,482 @@ void proto_register_nr_rrc(void) { { "rateMatchingLTE-CRS", "nr-rrc.rateMatchingLTE_CRS", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_rateMatchingLTE_CRS_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_tci_StatePDSCH, - { "tci-StatePDSCH", "nr-rrc.tci_StatePDSCH_element", + { &hf_nr_rrc_channelBWs_DL_v1530, + { "channelBWs-DL-v1530", "nr-rrc.channelBWs_DL_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_channelBWs_DL_v1530_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_fr1, + { "fr1", "nr-rrc.fr1_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_maxNumberConfiguredTCIstatesPerCC, - { "maxNumberConfiguredTCIstatesPerCC", "nr-rrc.maxNumberConfiguredTCIstatesPerCC", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberConfiguredTCIstatesPerCC_vals), 0, + { &hf_nr_rrc_scs_15kHz_06, + { "scs-15kHz", "nr-rrc.scs_15kHz", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_10", HFILL }}, + { &hf_nr_rrc_scs_30kHz_06, + { "scs-30kHz", "nr-rrc.scs_30kHz", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_10", HFILL }}, + { &hf_nr_rrc_scs_60kHz_08, + { "scs-60kHz", "nr-rrc.scs_60kHz", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_10", HFILL }}, + { &hf_nr_rrc_fr2, + { "fr2", "nr-rrc.fr2_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_maxNumberActiveTCI_PerBWP, - { "maxNumberActiveTCI-PerBWP", "nr-rrc.maxNumberActiveTCI_PerBWP", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberActiveTCI_PerBWP_vals), 0, + { &hf_nr_rrc_scs_60kHz_09, + { "scs-60kHz", "nr-rrc.scs_60kHz", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_3", HFILL }}, + { &hf_nr_rrc_scs_120kHz_06, + { "scs-120kHz", "nr-rrc.scs_120kHz", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_3", HFILL }}, + { &hf_nr_rrc_channelBWs_UL_v1530, + { "channelBWs-UL-v1530", "nr-rrc.channelBWs_UL_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_channelBWs_UL_v1530_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_additionalActiveTCI_StatePDCCH, - { "additionalActiveTCI-StatePDCCH", "nr-rrc.additionalActiveTCI_StatePDCCH", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_additionalActiveTCI_StatePDCCH_vals), 0, + { &hf_nr_rrc_fr1_01, + { "fr1", "nr-rrc.fr1_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_fr1_01", HFILL }}, + { &hf_nr_rrc_fr2_01, + { "fr2", "nr-rrc.fr2_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_fr2_01", HFILL }}, + { &hf_nr_rrc_maxUplinkDutyCycle, + { "maxUplinkDutyCycle", "nr-rrc.maxUplinkDutyCycle", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxUplinkDutyCycle_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, + { &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_beamCorrespondence, - { "beamCorrespondence", "nr-rrc.beamCorrespondence", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_beamCorrespondence_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_periodicBeamReport, - { "periodicBeamReport", "nr-rrc.periodicBeamReport", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_periodicBeamReport_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_aperiodicBeamReport, - { "aperiodicBeamReport", "nr-rrc.aperiodicBeamReport", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aperiodicBeamReport_vals), 0, + { &hf_nr_rrc_fr1_02, + { "fr1", "nr-rrc.fr1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr1_02_vals), 0, + "T_fr1_02", HFILL }}, + { &hf_nr_rrc_fr2_02, + { "fr2", "nr-rrc.fr2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_fr2_02_vals), 0, + "T_fr2_02", 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_sp_BeamReportPUCCH, - { "sp-BeamReportPUCCH", "nr-rrc.sp_BeamReportPUCCH", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sp_BeamReportPUCCH_vals), 0, + { &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_sp_BeamReportPUSCH, - { "sp-BeamReportPUSCH", "nr-rrc.sp_BeamReportPUSCH", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_sp_BeamReportPUSCH_vals), 0, + { &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_UE_CapabilityRAT_RequestList_item, + { "UE-CapabilityRAT-Request", "nr-rrc.UE_CapabilityRAT_Request_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_beamManagementSSB_CSI_RS, - { "beamManagementSSB-CSI-RS", "nr-rrc.beamManagementSSB_CSI_RS_element", + { &hf_nr_rrc_capabilityRequestFilter, + { "capabilityRequestFilter", "nr-rrc.capabilityRequestFilter", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_frequencyBandList_02, + { "frequencyBandList", "nr-rrc.frequencyBandList", + FT_UINT32, BASE_DEC, NULL, 0, + "FreqBandList", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_35, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_33", HFILL }}, + { &hf_nr_rrc_measAndMobParametersMRDC, + { "measAndMobParametersMRDC", "nr-rrc.measAndMobParametersMRDC_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_maxNumberRxBeam, - { "maxNumberRxBeam", "nr-rrc.maxNumberRxBeam", + { &hf_nr_rrc_phy_ParametersMRDC_v1530, + { "phy-ParametersMRDC-v1530", "nr-rrc.phy_ParametersMRDC_v1530_element", + FT_NONE, BASE_NONE, NULL, 0, + "Phy_ParametersMRDC", HFILL }}, + { &hf_nr_rrc_rf_ParametersMRDC, + { "rf-ParametersMRDC", "nr-rrc.rf_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_featureSetCombinations, + { "featureSetCombinations", "nr-rrc.featureSetCombinations", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_2_8", HFILL }}, - { &hf_nr_rrc_maxNumberRxTxBeamSwitchDL, - { "maxNumberRxTxBeamSwitchDL", "nr-rrc.maxNumberRxTxBeamSwitchDL_element", + "SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination", HFILL }}, + { &hf_nr_rrc_featureSetCombinations_item, + { "FeatureSetCombination", "nr-rrc.FeatureSetCombination", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcp_ParametersMRDC_v1530, + { "pdcp-ParametersMRDC-v1530", "nr-rrc.pdcp_ParametersMRDC_v1530_element", + FT_NONE, BASE_NONE, NULL, 0, + "PDCP_ParametersMRDC", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_36, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_34", 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_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_scs_240kHz, - { "scs-240kHz", "nr-rrc.scs_240kHz", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_scs_240kHz_vals), 0, + { &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_maxNumberNonGroupBeamReporting, - { "maxNumberNonGroupBeamReporting", "nr-rrc.maxNumberNonGroupBeamReporting", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberNonGroupBeamReporting_vals), 0, + { &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_groupBeamReporting, - { "groupBeamReporting", "nr-rrc.groupBeamReporting", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_groupBeamReporting_vals), 0, + { &hf_nr_rrc_srb3, + { "srb3", "nr-rrc.srb3", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_srb3_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_uplinkBeamManagement, - { "uplinkBeamManagement", "nr-rrc.uplinkBeamManagement_element", + { &hf_nr_rrc_v2x_EUTRA_v1530, + { "v2x-EUTRA-v1530", "nr-rrc.v2x_EUTRA_v1530", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_v2x_EUTRA_v1530_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_accessStratumRelease, + { "accessStratumRelease", "nr-rrc.accessStratumRelease", + FT_UINT32, BASE_DEC, VALS(nr_rrc_AccessStratumRelease_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_pdcp_Parameters, + { "pdcp-Parameters", "nr-rrc.pdcp_Parameters_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_maxNumberSRS_ResourcePerSet_01, - { "maxNumberSRS-ResourcePerSet", "nr-rrc.maxNumberSRS_ResourcePerSet", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberSRS_ResourcePerSet_vals), 0, + { &hf_nr_rrc_rlc_Parameters, + { "rlc-Parameters", "nr-rrc.rlc_Parameters_element", + FT_NONE, BASE_NONE, NULL, 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_DL, - { "twoPortsPTRS-DL", "nr-rrc.twoPortsPTRS_DL", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPortsPTRS_DL_vals), 0, + { &hf_nr_rrc_mac_Parameters, + { "mac-Parameters", "nr-rrc.mac_Parameters_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_twoPortsPTRS_UL, - { "twoPortsPTRS-UL", "nr-rrc.twoPortsPTRS_UL", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_twoPortsPTRS_UL_vals), 0, + { &hf_nr_rrc_phy_Parameters, + { "phy-Parameters", "nr-rrc.phy_Parameters_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, 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_beamReportTiming, - { "beamReportTiming", "nr-rrc.beamReportTiming_element", + { &hf_nr_rrc_rf_Parameters, + { "rf-Parameters", "nr-rrc.rf_Parameters_element", FT_NONE, BASE_NONE, NULL, 0, NULL, 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_ptrs_DensityRecommendationSetDL, - { "ptrs-DensityRecommendationSetDL", "nr-rrc.ptrs_DensityRecommendationSetDL_element", + { &hf_nr_rrc_measAndMobParameters, + { "measAndMobParameters", "nr-rrc.measAndMobParameters_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_scs_15kHz_04, - { "scs-15kHz", "nr-rrc.scs_15kHz_element", + { &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, - "PTRS_DensityRecommendationDL", HFILL }}, - { &hf_nr_rrc_scs_30kHz_04, - { "scs-30kHz", "nr-rrc.scs_30kHz_element", + "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, - "PTRS_DensityRecommendationDL", HFILL }}, - { &hf_nr_rrc_scs_60kHz_06, - { "scs-60kHz", "nr-rrc.scs_60kHz_element", + "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, - "PTRS_DensityRecommendationDL", HFILL }}, - { &hf_nr_rrc_scs_120kHz_04, - { "scs-120kHz", "nr-rrc.scs_120kHz_element", + "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, - "PTRS_DensityRecommendationDL", HFILL }}, - { &hf_nr_rrc_ptrs_DensityRecommendationSetUL, - { "ptrs-DensityRecommendationSetUL", "nr-rrc.ptrs_DensityRecommendationSetUL_element", + "UE_NR_CapabilityAddFRX_Mode", HFILL }}, + { &hf_nr_rrc_featureSets, + { "featureSets", "nr-rrc.featureSets_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_scs_15kHz_05, - { "scs-15kHz", "nr-rrc.scs_15kHz_element", - FT_NONE, BASE_NONE, NULL, 0, - "PTRS_DensityRecommendationUL", HFILL }}, - { &hf_nr_rrc_scs_30kHz_05, - { "scs-30kHz", "nr-rrc.scs_30kHz_element", + { &hf_nr_rrc_nonCriticalExtension_37, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "PTRS_DensityRecommendationUL", HFILL }}, - { &hf_nr_rrc_scs_60kHz_07, - { "scs-60kHz", "nr-rrc.scs_60kHz_element", + "UE_NR_Capability_1530", HFILL }}, + { &hf_nr_rrc_fdd_Add_UE_NR_Capabilities_1530, + { "fdd-Add-UE-NR-Capabilities-1530", "nr-rrc.fdd_Add_UE_NR_Capabilities_1530_element", FT_NONE, BASE_NONE, NULL, 0, - "PTRS_DensityRecommendationUL", HFILL }}, - { &hf_nr_rrc_scs_120kHz_05, - { "scs-120kHz", "nr-rrc.scs_120kHz_element", + "UE_NR_CapabilityAddXDD_Mode_1530", HFILL }}, + { &hf_nr_rrc_tdd_Add_UE_NR_Capabilities_1530, + { "tdd-Add-UE-NR-Capabilities-1530", "nr-rrc.tdd_Add_UE_NR_Capabilities_1530_element", FT_NONE, BASE_NONE, NULL, 0, - "PTRS_DensityRecommendationUL", HFILL }}, - { &hf_nr_rrc_csi_RS_ForTracking, - { "csi-RS-ForTracking", "nr-rrc.csi_RS_ForTracking_element", + "UE_NR_CapabilityAddXDD_Mode_1530", HFILL }}, + { &hf_nr_rrc_voiceOverMCG_Bearer, + { "voiceOverMCG-Bearer", "nr-rrc.voiceOverMCG_Bearer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_voiceOverMCG_Bearer_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_interRAT_Parameters, + { "interRAT-Parameters", "nr-rrc.interRAT_Parameters_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_aperiodicTRS, - { "aperiodicTRS", "nr-rrc.aperiodicTRS", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_aperiodicTRS_vals), 0, + { &hf_nr_rrc_inactiveState, + { "inactiveState", "nr-rrc.inactiveState", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_inactiveState_vals), 0, NULL, 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, + { &hf_nr_rrc_delayBudgetReporting, + { "delayBudgetReporting", "nr-rrc.delayBudgetReporting", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_delayBudgetReporting_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, + { &hf_nr_rrc_nonCriticalExtension_38, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_nonCriticalExtension_35", 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_supportedCSI_RS_Density, - { "supportedCSI-RS-Density", "nr-rrc.supportedCSI_RS_Density", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedCSI_RS_Density_vals), 0, + { &hf_nr_rrc_radioframeAllocationPeriod, + { "radioframeAllocationPeriod", "nr-rrc.radioframeAllocationPeriod", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_radioframeAllocationPeriod_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_burstLength, - { "burstLength", "nr-rrc.burstLength", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_2", HFILL }}, - { &hf_nr_rrc_maxSimultaneousResourceSetsPerCC, - { "maxSimultaneousResourceSetsPerCC", "nr-rrc.maxSimultaneousResourceSetsPerCC", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_8", HFILL }}, - { &hf_nr_rrc_maxConfiguredResourceSetsPerCC, - { "maxConfiguredResourceSetsPerCC", "nr-rrc.maxConfiguredResourceSetsPerCC", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_64", HFILL }}, - { &hf_nr_rrc_maxConfiguredResourceSetsAllCC, - { "maxConfiguredResourceSetsAllCC", "nr-rrc.maxConfiguredResourceSetsAllCC", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_128", HFILL }}, - { &hf_nr_rrc_frequencyDensity1, - { "frequencyDensity1", "nr-rrc.frequencyDensity1", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_276", HFILL }}, - { &hf_nr_rrc_frequencyDensity2, - { "frequencyDensity2", "nr-rrc.frequencyDensity2", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_276", HFILL }}, - { &hf_nr_rrc_timeDensity1, - { "timeDensity1", "nr-rrc.timeDensity1", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_29", HFILL }}, - { &hf_nr_rrc_timeDensity2, - { "timeDensity2", "nr-rrc.timeDensity2", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_29", HFILL }}, - { &hf_nr_rrc_timeDensity3, - { "timeDensity3", "nr-rrc.timeDensity3", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_29", HFILL }}, - { &hf_nr_rrc_sampleDensity1, - { "sampleDensity1", "nr-rrc.sampleDensity1", + { &hf_nr_rrc_radioframeAllocationOffset, + { "radioframeAllocationOffset", "nr-rrc.radioframeAllocationOffset", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_276", HFILL }}, - { &hf_nr_rrc_sampleDensity2, - { "sampleDensity2", "nr-rrc.sampleDensity2", + "INTEGER_0_7", HFILL }}, + { &hf_nr_rrc_subframeAllocation1, + { "subframeAllocation1", "nr-rrc.subframeAllocation1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subframeAllocation1_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_subframeAllocation2, + { "subframeAllocation2", "nr-rrc.subframeAllocation2", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_subframeAllocation2_vals), 0, + NULL, HFILL }}, + { &hf_nr_rrc_oneFrame_01, + { "oneFrame", "nr-rrc.oneFrame", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_2", HFILL }}, + { &hf_nr_rrc_fourFrames_01, + { "fourFrames", "nr-rrc.fourFrames", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_8", HFILL }}, + { &hf_nr_rrc_EUTRA_MultiBandInfoList_item, + { "EUTRA-MultiBandInfo", "nr-rrc.EUTRA_MultiBandInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_eutra_FreqBandIndicator, + { "eutra-FreqBandIndicator", "nr-rrc.eutra_FreqBandIndicator", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_276", HFILL }}, - { &hf_nr_rrc_sampleDensity3, - { "sampleDensity3", "nr-rrc.sampleDensity3", + "FreqBandIndicatorEUTRA", HFILL }}, + { &hf_nr_rrc_eutra_NS_PmaxList, + { "eutra-NS-PmaxList", "nr-rrc.eutra_NS_PmaxList", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_276", HFILL }}, - { &hf_nr_rrc_sampleDensity4, - { "sampleDensity4", "nr-rrc.sampleDensity4", + NULL, HFILL }}, + { &hf_nr_rrc_EUTRA_NS_PmaxList_item, + { "EUTRA-NS-PmaxValue", "nr-rrc.EUTRA_NS_PmaxValue_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_additionalPmax, + { "additionalPmax", "nr-rrc.additionalPmax", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, + "INTEGER_M30_33", HFILL }}, + { &hf_nr_rrc_additionalSpectrumEmission_01, + { "additionalSpectrumEmission", "nr-rrc.additionalSpectrumEmission", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_276", HFILL }}, - { &hf_nr_rrc_sampleDensity5, - { "sampleDensity5", "nr-rrc.sampleDensity5", + "INTEGER_1_288", HFILL }}, + { &hf_nr_rrc_start_01, + { "start", "nr-rrc.start", FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_276", HFILL }}, - { &hf_nr_rrc_maxNumberAperiodicSRS_PerBWP, - { "maxNumberAperiodicSRS-PerBWP", "nr-rrc.maxNumberAperiodicSRS_PerBWP", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberAperiodicSRS_PerBWP_vals), 0, + "EUTRA_PhysCellId", HFILL }}, + { &hf_nr_rrc_range_01, + { "range", "nr-rrc.range", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_range_01_vals), 0, + "T_range_01", HFILL }}, + { &hf_nr_rrc_MultiFrequencyBandListNR_SIB_item, + { "NR-MultiBandInfo", "nr-rrc.NR_MultiBandInfo_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_maxNumberAperiodicSRS_PerBWP_PerSlot, - { "maxNumberAperiodicSRS-PerBWP-PerSlot", "nr-rrc.maxNumberAperiodicSRS_PerBWP_PerSlot", + { &hf_nr_rrc_freqBandIndicatorNR, + { "freqBandIndicatorNR", "nr-rrc.freqBandIndicatorNR", 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_maxNumberPeriodicSRS_PerBWP_PerSlot, - { "maxNumberPeriodicSRS-PerBWP-PerSlot", "nr-rrc.maxNumberPeriodicSRS_PerBWP_PerSlot", + { &hf_nr_rrc_nr_NS_PmaxList, + { "nr-NS-PmaxList", "nr-rrc.nr_NS_PmaxList", FT_UINT32, BASE_DEC, 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_maxNumberSP_SRS_PerBWP_PerSlot, - { "maxNumberSP-SRS-PerBWP-PerSlot", "nr-rrc.maxNumberSP_SRS_PerBWP_PerSlot", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_1_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_supportedSRS_TxPortSwitch, - { "supportedSRS-TxPortSwitch", "nr-rrc.supportedSRS_TxPortSwitch", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_supportedSRS_TxPortSwitch_vals), 0, + { &hf_nr_rrc_NR_NS_PmaxList_item, + { "NR-NS-PmaxValue", "nr-rrc.NR_NS_PmaxValue_element", + FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_txSwitchImpactToRx, - { "txSwitchImpactToRx", "nr-rrc.txSwitchImpactToRx", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_txSwitchImpactToRx_vals), 0, + { &hf_nr_rrc_additionalPmax_01, + { "additionalPmax", "nr-rrc.additionalPmax", + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &units_dbm, 0, + "P_Max", HFILL }}, + { &hf_nr_rrc_delayBudgetReportingConfig, + { "delayBudgetReportingConfig", "nr-rrc.delayBudgetReportingConfig", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_delayBudgetReportingConfig_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_supportedROHC_Profiles, - { "supportedROHC-Profiles", "nr-rrc.supportedROHC_Profiles_element", + { &hf_nr_rrc_setup_49, + { "setup", "nr-rrc.setup_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_profile0x0000, - { "profile0x0000", "nr-rrc.profile0x0000", - FT_BOOLEAN, BASE_NONE, NULL, 0, - "BOOLEAN", HFILL }}, - { &hf_nr_rrc_maxNumberROHC_ContextSessions, - { "maxNumberROHC-ContextSessions", "nr-rrc.maxNumberROHC_ContextSessions", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_maxNumberROHC_ContextSessions_vals), 0, + { &hf_nr_rrc_delayBudgetReportingProhibitTimer, + { "delayBudgetReportingProhibitTimer", "nr-rrc.delayBudgetReportingProhibitTimer", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_delayBudgetReportingProhibitTimer_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_uplinkOnlyROHC_Profiles, - { "uplinkOnlyROHC-Profiles", "nr-rrc.uplinkOnlyROHC_Profiles", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_uplinkOnlyROHC_Profiles_vals), 0, + +/*--- End of included file: packet-nr-rrc-hfarr.c ---*/ +#line 364 "./asn1/nr-rrc/packet-nr-rrc-template.c" + + { &hf_nr_rrc_serialNumber_gs, + { "Geographical Scope", "nr-rrc.serialNumber.gs", + FT_UINT16, BASE_DEC, VALS(nr_rrc_serialNumber_gs_vals), 0xc000, NULL, HFILL }}, - { &hf_nr_rrc_continueROHC_Context, - { "continueROHC-Context", "nr-rrc.continueROHC_Context", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_continueROHC_Context_vals), 0, + { &hf_nr_rrc_serialNumber_msg_code, + { "Message Code", "nr-rrc.serialNumber.msg_code", + FT_UINT16, BASE_DEC, NULL, 0x3ff0, NULL, HFILL }}, - { &hf_nr_rrc_outOfOrderDelivery_01, - { "outOfOrderDelivery", "nr-rrc.outOfOrderDelivery", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_outOfOrderDelivery_01_vals), 0, - "T_outOfOrderDelivery_01", HFILL }}, - { &hf_nr_rrc_shortSN, - { "shortSN", "nr-rrc.shortSN", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_shortSN_vals), 0, + { &hf_nr_rrc_serialNumber_upd_nb, + { "Update Number", "nr-rrc.serialNumber.upd_nb", + FT_UINT16, BASE_DEC, NULL, 0x000f, NULL, HFILL }}, - { &hf_nr_rrc_am_WithShortSN, - { "am-WithShortSN", "nr-rrc.am_WithShortSN", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_am_WithShortSN_vals), 0, + { &hf_nr_rrc_warningType_value, + { "Warning Type Value", "nr-rrc.warningType.value", + FT_UINT16, BASE_DEC, VALS(nr_rrc_warningType_vals), 0xfe00, NULL, HFILL }}, - { &hf_nr_rrc_um_WithShortSN, - { "um-WithShortSN", "nr-rrc.um_WithShortSN", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_um_WithShortSN_vals), 0, + { &hf_nr_rrc_warningType_emergency_user_alert, + { "Emergency User Alert", "nr-rrc.warningType.emergency_user_alert", + FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0100, NULL, HFILL }}, - { &hf_nr_rrc_um_WIthLongSN, - { "um-WIthLongSN", "nr-rrc.um_WIthLongSN", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_um_WIthLongSN_vals), 0, + { &hf_nr_rrc_warningType_popup, + { "Popup", "nr-rrc.warningType.popup", + FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0080, NULL, HFILL }}, - { &hf_nr_rrc_mac_ParametersCommon, - { "mac-ParametersCommon", "nr-rrc.mac_ParametersCommon_element", + { &hf_nr_rrc_warningMessageSegment_nb_pages, + { "Number of Pages", "nr-rrc.warningMessageSegment.nb_pages", + FT_UINT8, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_warningMessageSegment_decoded_page, + { "Decoded Page", "nr-rrc.warningMessageSegment.decoded_page", + FT_STRING, STR_UNICODE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_fragments, + { "Fragments", "nr-rrc.warningMessageSegment.fragments", 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, + { &hf_nr_rrc_sib7_fragment, + { "Fragment", "nr-rrc.warningMessageSegment.fragment", + FT_FRAMENUM, BASE_NONE, NULL, 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, + { &hf_nr_rrc_sib7_fragment_overlap, + { "Fragment Overlap", "nr-rrc.warningMessageSegment.fragment_overlap", + FT_BOOLEAN, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_skipUplinkTxDynamic_01, - { "skipUplinkTxDynamic", "nr-rrc.skipUplinkTxDynamic", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_skipUplinkTxDynamic_vals), 0, + { &hf_nr_rrc_sib7_fragment_overlap_conflict, + { "Fragment Overlap Conflict", "nr-rrc.warningMessageSegment.fragment_overlap_conflict", + FT_BOOLEAN, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_logicalChannelSR_DelayTimer_01, - { "logicalChannelSR-DelayTimer", "nr-rrc.logicalChannelSR_DelayTimer", - 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, + { &hf_nr_rrc_sib7_fragment_multiple_tails, + { "Fragment Multiple Tails", "nr-rrc.warningMessageSegment.fragment_multiple_tails", + FT_BOOLEAN, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_shortDRX_Cycle, - { "shortDRX-Cycle", "nr-rrc.shortDRX_Cycle", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_shortDRX_Cycle_vals), 0, + { &hf_nr_rrc_sib7_fragment_too_long_fragment, + { "Too Long Fragment", "nr-rrc.warningMessageSegment.fragment_too_long_fragment", + FT_BOOLEAN, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_multipleSR_Configurations, - { "multipleSR-Configurations", "nr-rrc.multipleSR_Configurations", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleSR_Configurations_vals), 0, + { &hf_nr_rrc_sib7_fragment_error, + { "Fragment Error", "nr-rrc.warningMessageSegment.fragment_error", + FT_FRAMENUM, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_multipleConfiguredGrants, - { "multipleConfiguredGrants", "nr-rrc.multipleConfiguredGrants", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_multipleConfiguredGrants_vals), 0, + { &hf_nr_rrc_sib7_fragment_count, + { "Fragment Count", "nr-rrc.warningMessageSegment.fragment_count", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_reassembled_in, + { "Reassembled In", "nr-rrc.warningMessageSegment.reassembled_in", + FT_FRAMENUM, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_measParametersCommon, - { "measParametersCommon", "nr-rrc.measParametersCommon_element", + { &hf_nr_rrc_sib7_reassembled_length, + { "Reassembled Length", "nr-rrc.warningMessageSegment.reassembled_length", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib7_reassembled_data, + { "Reassembled Data", "nr-rrc.warningMessageSegment.reassembled_data", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_fragments, + { "Fragments", "nr-rrc.warningMessageSegment.fragments", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_supportedGapPattern, - { "supportedGapPattern", "nr-rrc.supportedGapPattern", - FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_22", HFILL }}, - { &hf_nr_rrc_intraAndInterF_MeasAndReport, - { "intraAndInterF-MeasAndReport", "nr-rrc.intraAndInterF_MeasAndReport", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_intraAndInterF_MeasAndReport_vals), 0, + { &hf_nr_rrc_sib8_fragment, + { "Fragment", "nr-rrc.warningMessageSegment.fragment", + FT_FRAMENUM, BASE_NONE, NULL, 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, + { &hf_nr_rrc_sib8_fragment_overlap, + { "Fragment Overlap", "nr-rrc.warningMessageSegment.fragment_overlap", + FT_BOOLEAN, BASE_NONE, NULL, 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, + { &hf_nr_rrc_sib8_fragment_overlap_conflict, + { "Fragment Overlap Conflict", "nr-rrc.warningMessageSegment.fragment_overlap_conflict", + FT_BOOLEAN, BASE_NONE, NULL, 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, + { &hf_nr_rrc_sib8_fragment_multiple_tails, + { "Fragment Multiple Tails", "nr-rrc.warningMessageSegment.fragment_multiple_tails", + FT_BOOLEAN, BASE_NONE, NULL, 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, + { &hf_nr_rrc_sib8_fragment_too_long_fragment, + { "Too Long Fragment", "nr-rrc.warningMessageSegment.fragment_too_long_fragment", + FT_BOOLEAN, BASE_NONE, NULL, 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, + { &hf_nr_rrc_sib8_fragment_error, + { "Fragment Error", "nr-rrc.warningMessageSegment.fragment_error", + FT_FRAMENUM, BASE_NONE, NULL, 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, + { &hf_nr_rrc_sib8_fragment_count, + { "Fragment Count", "nr-rrc.warningMessageSegment.fragment_count", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_reassembled_in, + { "Reassembled In", "nr-rrc.warningMessageSegment.reassembled_in", + FT_FRAMENUM, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_reassembled_length, + { "Reassembled Length", "nr-rrc.warningMessageSegment.reassembled_length", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_sib8_reassembled_data, + { "Reassembled Data", "nr-rrc.warningMessageSegment.reassembled_data", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_utc_time, + { "UTC time", "nr-rrc.utc_time", + FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL, 0x0, + NULL, HFILL }}, + { &hf_nr_rrc_local_time, + { "Local time", "nr-rrc.local_time", + FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0, NULL, HFILL }}, - -/*--- End of included file: packet-nr-rrc-hfarr.c ---*/ -#line 79 "./asn1/nr-rrc/packet-nr-rrc-template.c" - }; static gint *ett[] = { @@ -34573,8 +48160,9 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_criticalExtensionsFuture_01, &ett_nr_rrc_HandoverPreparationInformation_IEs, &ett_nr_rrc_T_nonCriticalExtension_01, + &ett_nr_rrc_AS_Config, &ett_nr_rrc_AS_Context, - &ett_nr_rrc_T_reestablishmentInfo, + &ett_nr_rrc_ReestablishmentInfo, &ett_nr_rrc_ReestabNCellInfoList, &ett_nr_rrc_ReestabNCellInfo, &ett_nr_rrc_RRM_Config, @@ -34588,8 +48176,10 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsSN_OF_NR_FreqInfo, &ett_nr_rrc_NR_FreqInfo, &ett_nr_rrc_ConfigRestrictModReqSCG, + &ett_nr_rrc_BandCombinationInfoSN, &ett_nr_rrc_FR_InfoList, &ett_nr_rrc_FR_Info, + &ett_nr_rrc_CandidateServingFreqListNR, &ett_nr_rrc_CG_ConfigInfo, &ett_nr_rrc_T_criticalExtensions_03, &ett_nr_rrc_T_c1_03, @@ -34600,13 +48190,22 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_ConfigRestrictInfoSCG, &ett_nr_rrc_T_powerCoordination_FR1, &ett_nr_rrc_T_servCellIndexRangeSCG, - &ett_nr_rrc_BandCombinationIndexList, + &ett_nr_rrc_BandCombinationInfoList, + &ett_nr_rrc_BandCombinationInfo, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetsPerBand_OF_FeatureSetEntryIndex, &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_T_measGapConfig, + &ett_nr_rrc_MRDC_AssistanceInfo, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofCombIDC_OF_AffectedCarrierFreqCombInfoMRDC, + &ett_nr_rrc_AffectedCarrierFreqCombInfoMRDC, + &ett_nr_rrc_T_affectedCarrierFreqCombMRDC, + &ett_nr_rrc_VictimSystemType, + &ett_nr_rrc_AffectedCarrierFreqCombEUTRA, + &ett_nr_rrc_AffectedCarrierFreqCombNR, &ett_nr_rrc_MeasurementTimingConfiguration, &ett_nr_rrc_T_criticalExtensions_04, &ett_nr_rrc_T_c1_04, @@ -34616,38 +48215,277 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_MeasTimingList, &ett_nr_rrc_MeasTiming, &ett_nr_rrc_T_frequencyAndTiming, + &ett_nr_rrc_UERadioPagingInformation, + &ett_nr_rrc_T_criticalExtensions_05, + &ett_nr_rrc_T_c1_05, + &ett_nr_rrc_T_criticalExtensionsFuture_05, + &ett_nr_rrc_UERadioPagingInformation_IEs, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_FreqBandIndicatorNR, + &ett_nr_rrc_T_nonCriticalExtension_05, + &ett_nr_rrc_UERadioAccessCapabilityInformation, + &ett_nr_rrc_T_criticalExtensions_06, + &ett_nr_rrc_T_c1_06, + &ett_nr_rrc_T_criticalExtensionsFuture_06, + &ett_nr_rrc_UERadioAccessCapabilityInformation_IEs, + &ett_nr_rrc_T_nonCriticalExtension_06, &ett_nr_rrc_BCCH_BCH_Message, &ett_nr_rrc_BCCH_BCH_MessageType, &ett_nr_rrc_T_messageClassExtension, + &ett_nr_rrc_BCCH_DL_SCH_Message, + &ett_nr_rrc_BCCH_DL_SCH_MessageType, + &ett_nr_rrc_T_c1_07, + &ett_nr_rrc_T_messageClassExtension_01, + &ett_nr_rrc_DL_CCCH_Message, + &ett_nr_rrc_DL_CCCH_MessageType, + &ett_nr_rrc_T_c1_08, + &ett_nr_rrc_T_messageClassExtension_02, &ett_nr_rrc_DL_DCCH_Message, &ett_nr_rrc_DL_DCCH_MessageType, - &ett_nr_rrc_T_c1_05, - &ett_nr_rrc_T_messageClassExtension_01, + &ett_nr_rrc_T_c1_09, + &ett_nr_rrc_T_messageClassExtension_03, + &ett_nr_rrc_PCCH_Message, + &ett_nr_rrc_PCCH_MessageType, + &ett_nr_rrc_T_c1_10, + &ett_nr_rrc_T_messageClassExtension_04, + &ett_nr_rrc_UL_CCCH_Message, + &ett_nr_rrc_UL_CCCH_MessageType, + &ett_nr_rrc_T_c1_11, + &ett_nr_rrc_T_messageClassExtension_05, + &ett_nr_rrc_UL_CCCH1_Message, + &ett_nr_rrc_UL_CCCH1_MessageType, + &ett_nr_rrc_T_c1_12, + &ett_nr_rrc_T_messageClassExtension_06, &ett_nr_rrc_UL_DCCH_Message, &ett_nr_rrc_UL_DCCH_MessageType, - &ett_nr_rrc_T_c1_06, - &ett_nr_rrc_T_messageClassExtension_02, + &ett_nr_rrc_T_c1_13, + &ett_nr_rrc_T_messageClassExtension_07, + &ett_nr_rrc_CounterCheck, + &ett_nr_rrc_T_criticalExtensions_07, + &ett_nr_rrc_T_criticalExtensionsFuture_07, + &ett_nr_rrc_CounterCheck_IEs, + &ett_nr_rrc_T_nonCriticalExtension_07, + &ett_nr_rrc_DRB_CountMSB_InfoList, + &ett_nr_rrc_DRB_CountMSB_Info, + &ett_nr_rrc_CounterCheckResponse, + &ett_nr_rrc_T_criticalExtensions_08, + &ett_nr_rrc_T_criticalExtensionsFuture_08, + &ett_nr_rrc_CounterCheckResponse_IEs, + &ett_nr_rrc_T_nonCriticalExtension_08, + &ett_nr_rrc_DRB_CountInfoList, + &ett_nr_rrc_DRB_CountInfo, + &ett_nr_rrc_DLInformationTransfer, + &ett_nr_rrc_T_criticalExtensions_09, + &ett_nr_rrc_T_criticalExtensionsFuture_09, + &ett_nr_rrc_DLInformationTransfer_IEs, + &ett_nr_rrc_T_nonCriticalExtension_09, + &ett_nr_rrc_LocationMeasurementIndication, + &ett_nr_rrc_T_criticalExtensions_10, + &ett_nr_rrc_T_criticalExtensionsFuture_10, + &ett_nr_rrc_LocationMeasurementIndication_IEs, + &ett_nr_rrc_T_measurementIndication, + &ett_nr_rrc_T_nonCriticalExtension_10, &ett_nr_rrc_MIB, &ett_nr_rrc_MeasurementReport, - &ett_nr_rrc_T_criticalExtensions_05, - &ett_nr_rrc_T_criticalExtensionsFuture_05, + &ett_nr_rrc_T_criticalExtensions_11, + &ett_nr_rrc_T_criticalExtensionsFuture_11, &ett_nr_rrc_MeasurementReport_IEs, - &ett_nr_rrc_T_nonCriticalExtension_05, + &ett_nr_rrc_T_nonCriticalExtension_11, + &ett_nr_rrc_MobilityFromNRCommand, + &ett_nr_rrc_T_criticalExtensions_12, + &ett_nr_rrc_T_criticalExtensionsFuture_12, + &ett_nr_rrc_MobilityFromNRCommand_IEs, + &ett_nr_rrc_T_nonCriticalExtension_12, + &ett_nr_rrc_Paging, + &ett_nr_rrc_T_nonCriticalExtension_13, + &ett_nr_rrc_PagingRecordList, + &ett_nr_rrc_PagingRecord, + &ett_nr_rrc_PagingUE_Identity, + &ett_nr_rrc_RRCReestablishment, + &ett_nr_rrc_T_criticalExtensions_13, + &ett_nr_rrc_T_criticalExtensionsFuture_13, + &ett_nr_rrc_RRCReestablishment_IEs, + &ett_nr_rrc_T_nonCriticalExtension_14, + &ett_nr_rrc_RRCReestablishmentComplete, + &ett_nr_rrc_T_criticalExtensions_14, + &ett_nr_rrc_T_criticalExtensionsFuture_14, + &ett_nr_rrc_RRCReestablishmentComplete_IEs, + &ett_nr_rrc_T_nonCriticalExtension_15, + &ett_nr_rrc_RRCReestablishmentRequest, + &ett_nr_rrc_RRCReestablishmentRequest_IEs, + &ett_nr_rrc_ReestabUE_Identity, &ett_nr_rrc_RRCReconfiguration, - &ett_nr_rrc_T_criticalExtensions_06, - &ett_nr_rrc_T_criticalExtensionsFuture_06, + &ett_nr_rrc_T_criticalExtensions_15, + &ett_nr_rrc_T_criticalExtensionsFuture_15, &ett_nr_rrc_RRCReconfiguration_IEs, - &ett_nr_rrc_T_nonCriticalExtension_06, + &ett_nr_rrc_RRCReconfiguration_v1530_IEs, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxDRB_OF_DedicatedNAS_Message, + &ett_nr_rrc_T_nonCriticalExtension_16, + &ett_nr_rrc_MasterKeyUpdate, &ett_nr_rrc_RRCReconfigurationComplete, - &ett_nr_rrc_T_criticalExtensions_07, - &ett_nr_rrc_T_criticalExtensionsFuture_07, + &ett_nr_rrc_T_criticalExtensions_16, + &ett_nr_rrc_T_criticalExtensionsFuture_16, &ett_nr_rrc_RRCReconfigurationComplete_IEs, - &ett_nr_rrc_T_nonCriticalExtension_07, + &ett_nr_rrc_RRCReconfigurationComplete_v1530_IEs, + &ett_nr_rrc_T_nonCriticalExtension_17, + &ett_nr_rrc_RRCReject, + &ett_nr_rrc_T_criticalExtensions_17, + &ett_nr_rrc_T_criticalExtensionsFuture_17, + &ett_nr_rrc_RRCReject_IEs, + &ett_nr_rrc_T_nonCriticalExtension_18, + &ett_nr_rrc_RRCRelease, + &ett_nr_rrc_T_criticalExtensions_18, + &ett_nr_rrc_T_criticalExtensionsFuture_18, + &ett_nr_rrc_RRCRelease_IEs, + &ett_nr_rrc_T_deprioritisationReq, + &ett_nr_rrc_T_nonCriticalExtension_19, + &ett_nr_rrc_RedirectedCarrierInfo, + &ett_nr_rrc_RedirectedCarrierInfo_EUTRA, + &ett_nr_rrc_CarrierInfoNR, + &ett_nr_rrc_SuspendConfig, + &ett_nr_rrc_CellReselectionPriorities, + &ett_nr_rrc_FreqPriorityListEUTRA, + &ett_nr_rrc_FreqPriorityListNR, + &ett_nr_rrc_FreqPriorityEUTRA, + &ett_nr_rrc_FreqPriorityNR, + &ett_nr_rrc_RAN_NotificationAreaInfo, + &ett_nr_rrc_PLMN_RAN_AreaCellList, + &ett_nr_rrc_PLMN_RAN_AreaCell, + &ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_CellIdentity, + &ett_nr_rrc_PLMN_RAN_AreaConfigList, + &ett_nr_rrc_PLMN_RAN_AreaConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_16_OF_RAN_AreaConfig, + &ett_nr_rrc_RAN_AreaConfig, + &ett_nr_rrc_SEQUENCE_SIZE_1_32_OF_RAN_AreaCode, + &ett_nr_rrc_RRCResume, + &ett_nr_rrc_T_criticalExtensions_19, + &ett_nr_rrc_T_criticalExtensionsFuture_19, + &ett_nr_rrc_RRCResume_IEs, + &ett_nr_rrc_T_nonCriticalExtension_20, + &ett_nr_rrc_RRCResumeComplete, + &ett_nr_rrc_T_criticalExtensions_20, + &ett_nr_rrc_T_criticalExtensionsFuture_20, + &ett_nr_rrc_RRCResumeComplete_IEs, + &ett_nr_rrc_T_nonCriticalExtension_21, + &ett_nr_rrc_RRCResumeRequest, + &ett_nr_rrc_RRCResumeRequest_IEs, + &ett_nr_rrc_RRCResumeRequest1, + &ett_nr_rrc_RRCResumeRequest1_IEs, + &ett_nr_rrc_RRCSetup, + &ett_nr_rrc_T_criticalExtensions_21, + &ett_nr_rrc_T_criticalExtensionsFuture_21, + &ett_nr_rrc_RRCSetup_IEs, + &ett_nr_rrc_T_nonCriticalExtension_22, + &ett_nr_rrc_RRCSetupComplete, + &ett_nr_rrc_T_criticalExtensions_22, + &ett_nr_rrc_T_criticalExtensionsFuture_22, + &ett_nr_rrc_RRCSetupComplete_IEs, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofS_NSSAI_OF_S_NSSAI, + &ett_nr_rrc_T_ng_5G_S_TMSI_Value, + &ett_nr_rrc_T_nonCriticalExtension_23, + &ett_nr_rrc_RegisteredAMF, + &ett_nr_rrc_RRCSetupRequest, + &ett_nr_rrc_RRCSetupRequest_IEs, + &ett_nr_rrc_InitialUE_Identity, + &ett_nr_rrc_RRCSystemInfoRequest, + &ett_nr_rrc_T_criticalExtensions_23, + &ett_nr_rrc_T_criticalExtensionsFuture_23, + &ett_nr_rrc_RRCSystemInfoRequest_r15_IEs, + &ett_nr_rrc_SecurityModeCommand, + &ett_nr_rrc_T_criticalExtensions_24, + &ett_nr_rrc_T_criticalExtensionsFuture_24, + &ett_nr_rrc_SecurityModeCommand_IEs, + &ett_nr_rrc_T_nonCriticalExtension_24, + &ett_nr_rrc_SecurityConfigSMC, + &ett_nr_rrc_SecurityModeComplete, + &ett_nr_rrc_T_criticalExtensions_25, + &ett_nr_rrc_T_criticalExtensionsFuture_25, + &ett_nr_rrc_SecurityModeComplete_IEs, + &ett_nr_rrc_T_nonCriticalExtension_25, + &ett_nr_rrc_SecurityModeFailure, + &ett_nr_rrc_T_criticalExtensions_26, + &ett_nr_rrc_T_criticalExtensionsFuture_26, + &ett_nr_rrc_SecurityModeFailure_IEs, + &ett_nr_rrc_T_nonCriticalExtension_26, &ett_nr_rrc_SIB1, - &ett_nr_rrc_T_ssb_PositionsInBurst, - &ett_nr_rrc_T_supplementaryUplink, - &ett_nr_rrc_T_nonCriticalExtension_08, + &ett_nr_rrc_T_cellSelectionInfo, + &ett_nr_rrc_T_uac_BarringInfo, + &ett_nr_rrc_T_uac_AccessCategory1_SelectionAssistanceInfo, + &ett_nr_rrc_SEQUENCE_SIZE_2_maxPLMN_OF_UAC_AccessCategory1_SelectionAssistanceInfo, + &ett_nr_rrc_T_nonCriticalExtension_27, + &ett_nr_rrc_SystemInformation, + &ett_nr_rrc_T_criticalExtensions_27, + &ett_nr_rrc_T_criticalExtensionsFuture_27, + &ett_nr_rrc_SystemInformation_IEs, + &ett_nr_rrc_T_sib_TypeAndInfo, + &ett_nr_rrc_T_sib_TypeAndInfo_item, + &ett_nr_rrc_T_nonCriticalExtension_28, + &ett_nr_rrc_UEAssistanceInformation, + &ett_nr_rrc_T_criticalExtensions_28, + &ett_nr_rrc_T_criticalExtensionsFuture_28, + &ett_nr_rrc_UEAssistanceInformation_IEs, + &ett_nr_rrc_T_nonCriticalExtension_29, + &ett_nr_rrc_DelayBudgetReport, + &ett_nr_rrc_UECapabilityEnquiry, + &ett_nr_rrc_T_criticalExtensions_29, + &ett_nr_rrc_T_criticalExtensionsFuture_29, + &ett_nr_rrc_UECapabilityEnquiry_IEs, + &ett_nr_rrc_T_nonCriticalExtension_30, + &ett_nr_rrc_UECapabilityInformation, + &ett_nr_rrc_T_criticalExtensions_30, + &ett_nr_rrc_T_criticalExtensionsFuture_30, + &ett_nr_rrc_UECapabilityInformation_IEs, + &ett_nr_rrc_T_nonCriticalExtension_31, + &ett_nr_rrc_ULInformationTransfer, + &ett_nr_rrc_T_criticalExtensions_31, + &ett_nr_rrc_T_criticalExtensionsFuture_31, + &ett_nr_rrc_ULInformationTransfer_IEs, + &ett_nr_rrc_T_nonCriticalExtension_32, + &ett_nr_rrc_SIB2, + &ett_nr_rrc_T_cellReselectionInfoCommon, + &ett_nr_rrc_T_speedStateReselectionPars, + &ett_nr_rrc_T_q_HystSF, + &ett_nr_rrc_T_cellReselectionServingFreqInfo, + &ett_nr_rrc_T_intraFreqCellReselectionInfo, + &ett_nr_rrc_SIB3, + &ett_nr_rrc_IntraFreqNeighCellList, + &ett_nr_rrc_IntraFreqNeighCellInfo, + &ett_nr_rrc_IntraFreqBlackCellList, + &ett_nr_rrc_SIB4, + &ett_nr_rrc_InterFreqCarrierFreqList, + &ett_nr_rrc_InterFreqCarrierFreqInfo, + &ett_nr_rrc_T_threshX_Q, + &ett_nr_rrc_InterFreqNeighCellList, + &ett_nr_rrc_InterFreqNeighCellInfo, + &ett_nr_rrc_InterFreqBlackCellList, + &ett_nr_rrc_SIB5, + &ett_nr_rrc_CarrierFreqListEUTRA, + &ett_nr_rrc_CarrierFreqEUTRA, + &ett_nr_rrc_T_threshX_Q_01, + &ett_nr_rrc_EUTRA_FreqBlackCellList, + &ett_nr_rrc_EUTRA_FreqNeighCellList, + &ett_nr_rrc_EUTRA_FreqNeighCellInfo, + &ett_nr_rrc_SIB6, + &ett_nr_rrc_SIB7, + &ett_nr_rrc_SIB8, + &ett_nr_rrc_SIB9, + &ett_nr_rrc_T_timeInfo, + &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_T_ra_OccasionList, + &ett_nr_rrc_BSR_Config, &ett_nr_rrc_BWP, + &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_BWP_Uplink, &ett_nr_rrc_BWP_UplinkCommon, &ett_nr_rrc_T_rach_ConfigCommon, @@ -34659,21 +48497,13 @@ void proto_register_nr_rrc(void) { &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_T_ra_OccasionList, + &ett_nr_rrc_CellAccessRelatedInfo, + &ett_nr_rrc_CellAccessRelatedInfo_EUTRA_5GC, + &ett_nr_rrc_PLMN_IdentityList_EUTRA_5GC, + &ett_nr_rrc_PLMN_Identity_EUTRA_5GC, + &ett_nr_rrc_CellIdentity_EUTRA_5GC, + &ett_nr_rrc_CellAccessRelatedInfo_EUTRA_EPC, + &ett_nr_rrc_PLMN_IdentityList_EUTRA_EPC, &ett_nr_rrc_CellGroupConfig, &ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_RLC_BearerConfig, &ett_nr_rrc_SEQUENCE_SIZE_1_maxLC_ID_OF_LogicalChannelIdentity, @@ -34684,9 +48514,11 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_ReconfigurationWithSync, &ett_nr_rrc_T_rach_ConfigDedicated, &ett_nr_rrc_SCellConfig, + &ett_nr_rrc_CGI_Info, + &ett_nr_rrc_T_noSIB1, &ett_nr_rrc_CodebookConfig, &ett_nr_rrc_T_codebookType, - &ett_nr_rrc_T_type1, + &ett_nr_rrc_T_type1_01, &ett_nr_rrc_T_subType, &ett_nr_rrc_T_typeI_SinglePanel, &ett_nr_rrc_T_nrOfAntennaPorts, @@ -34705,6 +48537,7 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_rrc_ConfiguredUplinkGrant, &ett_nr_rrc_CG_UCI_OnPUSCH, &ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_BetaOffsets, + &ett_nr_rrc_ConnEstFailureControl, &ett_nr_rrc_ControlResourceSet, &ett_nr_rrc_T_cce_REG_MappingType, &ett_nr_rrc_T_interleaved, @@ -34760,6 +48593,7 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_groupBasedBeamReporting, &ett_nr_rrc_T_disabled, &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNZP_CSI_RS_ResourcesPerConfig_OF_PortIndexFor8Ranks, + &ett_nr_rrc_T_semiPersistentOnPUSCH_v1530, &ett_nr_rrc_CSI_ReportPeriodicityAndOffset, &ett_nr_rrc_PUCCH_CSI_Resource, &ett_nr_rrc_PortIndexFor8Ranks, @@ -34807,16 +48641,34 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_transformPrecodingDisabled, &ett_nr_rrc_T_transformPrecodingEnabled, &ett_nr_rrc_DownlinkConfigCommon, + &ett_nr_rrc_DownlinkConfigCommonSIB, + &ett_nr_rrc_BCCH_Config, + &ett_nr_rrc_PCCH_Config, + &ett_nr_rrc_T_nAndPagingFrameOffset, + &ett_nr_rrc_T_firstPDCCH_MonitoringOccasionOfPO, + &ett_nr_rrc_T_sCS15KHZoneT, + &ett_nr_rrc_T_sCS30KHZoneT_SCS15KHZhalfT, + &ett_nr_rrc_T_sCS60KHZoneT_SCS30KHZhalfT_SCS15KHZquarterT, + &ett_nr_rrc_T_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT, + &ett_nr_rrc_T_sCS120KHZhalfT_SCS60KHZquarterT_SCS30KHZoneEighthT_SCS15KHZoneSixteenthT, + &ett_nr_rrc_T_sCS120KHZquarterT_SCS60KHZoneEighthT_SCS30KHZoneSixteenthT, + &ett_nr_rrc_T_sCS120KHZoneEighthT_SCS60KHZoneSixteenthT, + &ett_nr_rrc_T_sCS120KHZoneSixteenthT, &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_DRX_Config, + &ett_nr_rrc_T_drx_onDurationTimer, + &ett_nr_rrc_T_drx_LongCycleStartOffset_01, + &ett_nr_rrc_T_shortDRX_01, &ett_nr_rrc_FrequencyInfoDL, &ett_nr_rrc_SEQUENCE_SIZE_1_maxSCSs_OF_SCS_SpecificCarrier, + &ett_nr_rrc_FrequencyInfoDL_SIB, &ett_nr_rrc_FrequencyInfoUL, + &ett_nr_rrc_FrequencyInfoUL_SIB, + &ett_nr_rrc_LocationMeasurementInfo, + &ett_nr_rrc_EUTRA_RSTD_InfoList, + &ett_nr_rrc_EUTRA_RSTD_Info, &ett_nr_rrc_LogicalChannelConfig, &ett_nr_rrc_T_ul_SpecificParameters, &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_1_OF_ServCellIndex, @@ -34824,16 +48676,7 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_MAC_CellGroupConfig, &ett_nr_rrc_T_drx_Config, &ett_nr_rrc_T_phr_Config, - &ett_nr_rrc_DRX_Config, - &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_TAG_Config, - &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id, - &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG, - &ett_nr_rrc_TAG, - &ett_nr_rrc_BSR_Config, + &ett_nr_rrc_T_dataInactivityTimer_v1530, &ett_nr_rrc_MeasConfig, &ett_nr_rrc_T_s_MeasureConfig, &ett_nr_rrc_MeasObjectToRemoveList, @@ -34841,11 +48684,21 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_ReportConfigToRemoveList, &ett_nr_rrc_MeasGapConfig, &ett_nr_rrc_T_gapFR2, + &ett_nr_rrc_T_gapFR1, + &ett_nr_rrc_T_gapUE, &ett_nr_rrc_GapConfig, &ett_nr_rrc_MeasGapSharingConfig, &ett_nr_rrc_T_gapSharingFR2, + &ett_nr_rrc_T_gapSharingFR1, + &ett_nr_rrc_T_gapSharingUE, &ett_nr_rrc_MeasIdToAddModList, &ett_nr_rrc_MeasIdToAddMod, + &ett_nr_rrc_MeasObjectEUTRA, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_Cell, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxCellMeasEUTRA_OF_EUTRA_BlackCell, + &ett_nr_rrc_EUTRA_CellIndexList, + &ett_nr_rrc_EUTRA_Cell, + &ett_nr_rrc_EUTRA_BlackCell, &ett_nr_rrc_MeasObjectNR, &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCI_Ranges_OF_PCI_RangeElement, &ett_nr_rrc_ReferenceSignalConfig, @@ -34853,13 +48706,14 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_SSB_ConfigMobility, &ett_nr_rrc_T_ssb_ToMeasure, &ett_nr_rrc_Q_OffsetRangeList, - &ett_nr_rrc_SSB_ToMeasure, &ett_nr_rrc_ThresholdNR, &ett_nr_rrc_CellsToAddModList, &ett_nr_rrc_CellsToAddMod, &ett_nr_rrc_MeasObjectToAddModList, &ett_nr_rrc_MeasObjectToAddMod, &ett_nr_rrc_T_measObject, + &ett_nr_rrc_MeasResultCellListSFTD, + &ett_nr_rrc_MeasResultCellSFTD, &ett_nr_rrc_MeasResults, &ett_nr_rrc_T_measResultNeighCells, &ett_nr_rrc_MeasResultServMOList, @@ -34869,7 +48723,15 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_measResult, &ett_nr_rrc_T_cellResults, &ett_nr_rrc_T_rsIndexResults, + &ett_nr_rrc_MeasResultListEUTRA, + &ett_nr_rrc_MeasResultEUTRA, + &ett_nr_rrc_T_cgi_Info, + &ett_nr_rrc_T_cgi_info_EPC, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_EPC, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_CellAccessRelatedInfo_EUTRA_5GC, + &ett_nr_rrc_MultiBandInfoListEUTRA, &ett_nr_rrc_MeasQuantityResults, + &ett_nr_rrc_MeasQuantityResultsEUTRA, &ett_nr_rrc_ResultsPerSSB_IndexList, &ett_nr_rrc_ResultsPerSSB_Index, &ett_nr_rrc_ResultsPerCSI_RS_IndexList, @@ -34877,8 +48739,7 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_MeasResultSCG_Failure, &ett_nr_rrc_MeasResultList2NR, &ett_nr_rrc_MeasResult2NR, - &ett_nr_rrc_MeasResultCellListSFTD, - &ett_nr_rrc_MeasResultCellSFTD, + &ett_nr_rrc_MobilityStateParameters, &ett_nr_rrc_MultiFrequencyBandListNR, &ett_nr_rrc_NZP_CSI_RS_Resource, &ett_nr_rrc_NZP_CSI_RS_ResourceSet, @@ -34898,6 +48759,7 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_tpc_SRS, &ett_nr_rrc_PDCCH_ConfigCommon, &ett_nr_rrc_SEQUENCE_SIZE_1_4_OF_SearchSpace, + &ett_nr_rrc_PDCCH_ConfigSIB1, &ett_nr_rrc_PDCCH_ServingCellConfig, &ett_nr_rrc_T_slotFormatIndicator, &ett_nr_rrc_PDCP_Config, @@ -34933,17 +48795,23 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_PDSCH_CodeBlockGroupTransmission, &ett_nr_rrc_PDSCH_TimeDomainResourceAllocationList, &ett_nr_rrc_PDSCH_TimeDomainResourceAllocation, + &ett_nr_rrc_PHR_Config, &ett_nr_rrc_PhysicalCellGroupConfig, &ett_nr_rrc_T_cs_RNTI, + &ett_nr_rrc_PLMN_Identity, + &ett_nr_rrc_MCC, + &ett_nr_rrc_MNC, + &ett_nr_rrc_PLMN_IdentityInfoList, + &ett_nr_rrc_PLMN_IdentityInfo, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxPLMN_OF_PLMN_Identity, &ett_nr_rrc_PTRS_DownlinkConfig, &ett_nr_rrc_T_frequencyDensity, &ett_nr_rrc_T_timeDensity, &ett_nr_rrc_PTRS_UplinkConfig, - &ett_nr_rrc_T_modeSpecificParameters, - &ett_nr_rrc_T_cp_OFDM, + &ett_nr_rrc_T_transformPrecoderDisabled, &ett_nr_rrc_T_frequencyDensity_01, &ett_nr_rrc_T_timeDensity_01, - &ett_nr_rrc_T_dft_S_OFDM, + &ett_nr_rrc_T_transformPrecoderEnabled, &ett_nr_rrc_T_sampleDensity, &ett_nr_rrc_PUCCH_Config, &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourceSets_OF_PUCCH_ResourceSet, @@ -34961,9 +48829,6 @@ void proto_register_nr_rrc(void) { &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_T_srs, &ett_nr_rrc_PUCCH_ResourceSet, &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPUCCH_ResourcesPerSet_OF_PUCCH_ResourceId, &ett_nr_rrc_PUCCH_Resource, @@ -34979,7 +48844,10 @@ void proto_register_nr_rrc(void) { &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, + &ett_nr_rrc_PUCCH_SpatialRelationInfo, &ett_nr_rrc_T_referenceSignal_01, + &ett_nr_rrc_T_srs, &ett_nr_rrc_PUCCH_TPC_CommandConfig, &ett_nr_rrc_PUSCH_Config, &ett_nr_rrc_T_dmrs_UplinkForPUSCH_MappingTypeA, @@ -35017,7 +48885,6 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_ssb_perRACH_OccasionAndCB_PreamblesPerSSB, &ett_nr_rrc_T_groupBconfigured, &ett_nr_rrc_T_prach_RootSequenceIndex, - &ett_nr_rrc_RACH_ConfigGeneric, &ett_nr_rrc_RACH_ConfigDedicated, &ett_nr_rrc_CFRA, &ett_nr_rrc_T_occasions, @@ -35029,6 +48896,7 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_CFRA_SSB_Resource, &ett_nr_rrc_CFRA_CSIRS_Resource, &ett_nr_rrc_T_ra_OccasionList_01, + &ett_nr_rrc_RACH_ConfigGeneric, &ett_nr_rrc_RA_Prioritization, &ett_nr_rrc_RadioBearerConfig, &ett_nr_rrc_SRB_ToAddModList, @@ -35049,10 +48917,20 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_symbolsInResourceBlock, &ett_nr_rrc_T_periodicityAndPattern, &ett_nr_rrc_RateMatchPatternLTE_CRS, - &ett_nr_rrc_ReportConfigNR, + &ett_nr_rrc_ReportConfigInterRAT, &ett_nr_rrc_T_reportType, - &ett_nr_rrc_EventTriggerConfig, + &ett_nr_rrc_ReportCGI_EUTRA, + &ett_nr_rrc_EventTriggerConfigInterRAT, &ett_nr_rrc_T_eventId, + &ett_nr_rrc_T_eventB1, + &ett_nr_rrc_T_eventB2, + &ett_nr_rrc_PeriodicalReportConfigInterRAT, + &ett_nr_rrc_MeasTriggerQuantityEUTRA, + &ett_nr_rrc_ReportConfigNR, + &ett_nr_rrc_T_reportType_01, + &ett_nr_rrc_ReportCGI, + &ett_nr_rrc_EventTriggerConfig, + &ett_nr_rrc_T_eventId_01, &ett_nr_rrc_T_eventA1, &ett_nr_rrc_T_eventA2, &ett_nr_rrc_T_eventA3, @@ -35111,8 +48989,19 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_pusch_ServingCellConfig, &ett_nr_rrc_T_carrierSwitching, &ett_nr_rrc_ServingCellConfigCommon, - &ett_nr_rrc_T_ssb_PositionsInBurst_01, + &ett_nr_rrc_T_ssb_PositionsInBurst, &ett_nr_rrc_T_lte_CRS_ToMatchAround, + &ett_nr_rrc_ServingCellConfigCommonSIB, + &ett_nr_rrc_T_ssb_PositionsInBurst_01, + &ett_nr_rrc_SI_SchedulingInfo, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SchedulingInfo, + &ett_nr_rrc_SchedulingInfo, + &ett_nr_rrc_SIB_Mapping, + &ett_nr_rrc_SIB_TypeInfo, + &ett_nr_rrc_SI_RequestConfig, + &ett_nr_rrc_T_rach_OccasionsSI, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxSI_Message_OF_SI_RequestResources, + &ett_nr_rrc_SI_RequestResources, &ett_nr_rrc_SlotFormatCombinationsPerCell, &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSlotFormatCombinationsPerSet_OF_SlotFormatCombination, &ett_nr_rrc_SlotFormatCombination, @@ -35120,8 +49009,17 @@ void proto_register_nr_rrc(void) { &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_S_NSSAI, + &ett_nr_rrc_SpeedStateScaleFactors, &ett_nr_rrc_SS_RSSI_Measurement, &ett_nr_rrc_SPS_Config, + &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_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_SRS_Config, &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSetId, &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourceSets_OF_SRS_ResourceSet, @@ -35131,6 +49029,7 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofSRS_ResourcesPerSet_OF_SRS_ResourceId, &ett_nr_rrc_T_resourceType_01, &ett_nr_rrc_T_aperiodic_01, + &ett_nr_rrc_T_aperiodicSRS_ResourceTriggerList_v1530, &ett_nr_rrc_T_semi_persistent, &ett_nr_rrc_T_periodic_01, &ett_nr_rrc_T_pathlossReferenceRS, @@ -35148,18 +49047,16 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_referenceSignal_03, &ett_nr_rrc_T_srs_01, &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_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_SRS_TPC_CommandConfig, &ett_nr_rrc_SSB_MTC, &ett_nr_rrc_T_periodicityAndOffset_01, &ett_nr_rrc_SSB_MTC2, &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofPCIsPerSMTC_OF_PhysCellId, + &ett_nr_rrc_SSB_ToMeasure, + &ett_nr_rrc_TAG_Config, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG_Id, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofTAGs_OF_TAG, + &ett_nr_rrc_TAG, &ett_nr_rrc_TCI_State, &ett_nr_rrc_QCL_Info, &ett_nr_rrc_T_referenceSignal_04, @@ -35171,7 +49068,21 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_TDD_UL_DL_SlotConfig, &ett_nr_rrc_T_symbols, &ett_nr_rrc_T_explicit, + &ett_nr_rrc_UAC_BarringInfoSetList, + &ett_nr_rrc_UAC_BarringInfoSet, + &ett_nr_rrc_UAC_BarringPerCatList, + &ett_nr_rrc_UAC_BarringPerCat, + &ett_nr_rrc_UAC_BarringPerPLMN_List, + &ett_nr_rrc_UAC_BarringPerPLMN, + &ett_nr_rrc_T_uac_ACBarringListType, + &ett_nr_rrc_SEQUENCE_SIZE_maxAccessCat_1_OF_UAC_BarringInfoSetIndex, + &ett_nr_rrc_UE_TimersAndConstants, &ett_nr_rrc_UplinkConfigCommon, + &ett_nr_rrc_UplinkConfigCommonSIB, + &ett_nr_rrc_UplinkTxDirectCurrentList, + &ett_nr_rrc_UplinkTxDirectCurrentCell, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofBWPs_OF_UplinkTxDirectCurrentBWP, + &ett_nr_rrc_UplinkTxDirectCurrentBWP, &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, @@ -35181,8 +49092,8 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_BandParameters, &ett_nr_rrc_T_eutra, &ett_nr_rrc_T_nr, - &ett_nr_rrc_CA_ParametersNR, &ett_nr_rrc_CA_ParametersEUTRA, + &ett_nr_rrc_CA_ParametersNR, &ett_nr_rrc_FeatureSetCombination, &ett_nr_rrc_FeatureSetsPerBand, &ett_nr_rrc_FeatureSet, @@ -35202,49 +49113,37 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_TypeII_Codebook, &ett_nr_rrc_TypeII_CodebookPortSelection, &ett_nr_rrc_FeatureSetDownlinkPerCC, + &ett_nr_rrc_FeatureSets, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC, &ett_nr_rrc_FeatureSetUplink, &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofServingCells_OF_FeatureSetUplinkPerCC_Id, &ett_nr_rrc_T_pusch_DifferentTB_PerSlot, &ett_nr_rrc_CSI_ReportFramework, &ett_nr_rrc_FeatureSetUplinkPerCC, &ett_nr_rrc_T_mimo_CB_PUSCH, - &ett_nr_rrc_FeatureSets, - &ett_nr_rrc_SEQUENCE_SIZE_1_maxDownlinkFeatureSets_OF_FeatureSetDownlink, - &ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetDownlinkPerCC, - &ett_nr_rrc_SEQUENCE_SIZE_1_maxUplinkFeatureSets_OF_FeatureSetUplink, - &ett_nr_rrc_SEQUENCE_SIZE_1_maxPerCC_FeatureSets_OF_FeatureSetUplinkPerCC, &ett_nr_rrc_FreqBandList, &ett_nr_rrc_FreqBandInformation, &ett_nr_rrc_FreqBandInformationEUTRA, &ett_nr_rrc_FreqBandInformationNR, - &ett_nr_rrc_MRDC_Parameters, - &ett_nr_rrc_SupportedBandwidth, - &ett_nr_rrc_UE_CapabilityRAT_ContainerList, - &ett_nr_rrc_UE_CapabilityRAT_Container, - &ett_nr_rrc_UE_MRDC_Capability, - &ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination, - &ett_nr_rrc_T_nonCriticalExtension_09, - &ett_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode, - &ett_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode, - &ett_nr_rrc_GeneralParametersMRDC_XDD_Diff, - &ett_nr_rrc_RF_ParametersMRDC, - &ett_nr_rrc_MeasParametersMRDC, - &ett_nr_rrc_MeasParametersMRDC_Common, - &ett_nr_rrc_MeasParametersMRDC_XDD_Diff, - &ett_nr_rrc_MeasParametersMRDC_FRX_Diff, - &ett_nr_rrc_UE_NR_Capability, - &ett_nr_rrc_T_nonCriticalExtension_10, - &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_SEQUENCE_SIZE_1_maxBands_OF_BandNR, - &ett_nr_rrc_BandNR, + &ett_nr_rrc_InterRAT_Parameters, + &ett_nr_rrc_EUTRA_Parameters, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxBandsEUTRA_OF_FreqBandIndicatorEUTRA, + &ett_nr_rrc_EUTRA_ParametersCommon, + &ett_nr_rrc_EUTRA_ParametersXDD_Diff, + &ett_nr_rrc_MAC_Parameters, + &ett_nr_rrc_MAC_ParametersCommon, + &ett_nr_rrc_MAC_ParametersXDD_Diff, + &ett_nr_rrc_MeasAndMobParameters, + &ett_nr_rrc_MeasAndMobParametersCommon, + &ett_nr_rrc_MeasAndMobParametersXDD_Diff, + &ett_nr_rrc_MeasAndMobParametersFRX_Diff, + &ett_nr_rrc_MeasAndMobParametersMRDC, + &ett_nr_rrc_MeasAndMobParametersMRDC_Common, + &ett_nr_rrc_MeasAndMobParametersMRDC_XDD_Diff, + &ett_nr_rrc_MeasAndMobParametersMRDC_FRX_Diff, &ett_nr_rrc_MIMO_ParametersPerBand, &ett_nr_rrc_T_tci_StatePDSCH, &ett_nr_rrc_T_maxNumberRxTxBeamSwitchDL, @@ -35258,35 +49157,111 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_PTRS_DensityRecommendationUL, &ett_nr_rrc_SRS_Resources, &ett_nr_rrc_SRS_TxSwitch, + &ett_nr_rrc_MRDC_Parameters, &ett_nr_rrc_PDCP_Parameters, &ett_nr_rrc_T_supportedROHC_Profiles, + &ett_nr_rrc_PDCP_ParametersMRDC, + &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_Phy_ParametersMRDC, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxNrofNAICS_Entries_OF_NAICS_Capability_Entry, + &ett_nr_rrc_NAICS_Capability_Entry, + &ett_nr_rrc_RF_Parameters, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxBands_OF_BandNR, + &ett_nr_rrc_BandNR, + &ett_nr_rrc_T_channelBWs_DL_v1530, + &ett_nr_rrc_T_fr1, + &ett_nr_rrc_T_fr2, + &ett_nr_rrc_T_channelBWs_UL_v1530, + &ett_nr_rrc_T_fr1_01, + &ett_nr_rrc_T_fr2_01, + &ett_nr_rrc_RF_ParametersMRDC, &ett_nr_rrc_RLC_Parameters, - &ett_nr_rrc_MAC_Parameters, - &ett_nr_rrc_MAC_ParametersCommon, - &ett_nr_rrc_MAC_ParametersXDD_Diff, - &ett_nr_rrc_MeasParameters, - &ett_nr_rrc_MeasParametersCommon, - &ett_nr_rrc_MeasParametersXDD_Diff, - &ett_nr_rrc_MeasParametersFRX_Diff, + &ett_nr_rrc_SupportedBandwidth, + &ett_nr_rrc_UE_CapabilityRAT_ContainerList, + &ett_nr_rrc_UE_CapabilityRAT_Container, + &ett_nr_rrc_UE_CapabilityRAT_RequestList, + &ett_nr_rrc_UE_CapabilityRAT_Request, + &ett_nr_rrc_UE_CapabilityRequestFilterNR, + &ett_nr_rrc_T_nonCriticalExtension_33, + &ett_nr_rrc_UE_MRDC_Capability, + &ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination, + &ett_nr_rrc_T_nonCriticalExtension_34, + &ett_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode, + &ett_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode, + &ett_nr_rrc_GeneralParametersMRDC_XDD_Diff, + &ett_nr_rrc_UE_NR_Capability, + &ett_nr_rrc_UE_NR_Capability_1530, + &ett_nr_rrc_T_nonCriticalExtension_35, + &ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode, + &ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode_1530, + &ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode, + &ett_nr_rrc_EUTRA_MBSFN_SubframeConfigList, + &ett_nr_rrc_EUTRA_MBSFN_SubframeConfig, + &ett_nr_rrc_T_subframeAllocation1, + &ett_nr_rrc_T_subframeAllocation2, + &ett_nr_rrc_EUTRA_MultiBandInfoList, + &ett_nr_rrc_EUTRA_MultiBandInfo, + &ett_nr_rrc_EUTRA_NS_PmaxList, + &ett_nr_rrc_EUTRA_NS_PmaxValue, + &ett_nr_rrc_EUTRA_PhysCellIdRange, + &ett_nr_rrc_MultiFrequencyBandListNR_SIB, + &ett_nr_rrc_NR_MultiBandInfo, + &ett_nr_rrc_NR_NS_PmaxList, + &ett_nr_rrc_NR_NS_PmaxValue, + &ett_nr_rrc_OtherConfig, + &ett_nr_rrc_T_delayBudgetReportingConfig, + &ett_nr_rrc_T_setup, /*--- End of included file: packet-nr-rrc-ettarr.c ---*/ -#line 85 "./asn1/nr-rrc/packet-nr-rrc-template.c" - &ett_nr_rrc_UECapabilityInformation +#line 498 "./asn1/nr-rrc/packet-nr-rrc-template.c" + &ett_nr_rrc_DedicatedNAS_Message, + &ett_rr_rrc_targetRAT_MessageContainer, + &ett_nr_rrc_nas_Container, + &ett_nr_rrc_serialNumber, + &ett_nr_rrc_warningType, + &ett_nr_rrc_dataCodingScheme, + &ett_nr_rrc_sib7_fragment, + &ett_nr_rrc_sib7_fragments, + &ett_nr_rrc_sib8_fragment, + &ett_nr_rrc_sib8_fragments, + &ett_nr_rrc_warningMessageSegment, + &ett_nr_rrc_timeInfo, + &ett_nr_rrc_capabilityRequestFilter }; + static ei_register_info ei[] = { + { &ei_nr_rrc_number_pages_le15, { "nr-rrc.number_pages_le15", PI_MALFORMED, PI_ERROR, "Number of pages should be <=15", EXPFILL }}, + }; + + expert_module_t* expert_nr_rrc; + /* Register protocol */ proto_nr_rrc = proto_register_protocol(PNAME, PSNAME, PFNAME); /* Register fields and subtrees */ proto_register_field_array(proto_nr_rrc, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); + expert_nr_rrc = expert_register_protocol(proto_nr_rrc); + expert_register_field_array(expert_nr_rrc, ei, array_length(ei)); /* Register the dissectors defined in nr-rrc.cnf */ /*--- Included file: packet-nr-rrc-dis-reg.c ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-dis-reg.c" + register_dissector("nr-rrc.ue_radio_paging_info", dissect_UERadioPagingInformation_PDU, proto_nr_rrc); + register_dissector("nr-rrc.ue_radio_access_cap_info", dissect_UERadioAccessCapabilityInformation_PDU, proto_nr_rrc); register_dissector("nr-rrc.bcch.bch", dissect_BCCH_BCH_Message_PDU, proto_nr_rrc); + register_dissector("nr-rrc.bcch.dl.sch", dissect_BCCH_DL_SCH_Message_PDU, proto_nr_rrc); + register_dissector("nr-rrc.dl.ccch", dissect_DL_CCCH_Message_PDU, proto_nr_rrc); register_dissector("nr-rrc.dl.dcch", dissect_DL_DCCH_Message_PDU, proto_nr_rrc); + register_dissector("nr-rrc.pcch", dissect_PCCH_Message_PDU, proto_nr_rrc); + register_dissector("nr-rrc.ul.ccch", dissect_UL_CCCH_Message_PDU, proto_nr_rrc); + register_dissector("nr-rrc.ul.ccch1", dissect_UL_CCCH1_Message_PDU, proto_nr_rrc); register_dissector("nr-rrc.ul.dcch", dissect_nr_rrc_UL_DCCH_Message_PDU, proto_nr_rrc); register_dissector("nr-rrc.rrc_reconf", dissect_nr_rrc_RRCReconfiguration_PDU, proto_nr_rrc); register_dissector("nr-rrc.ue_mrdc_cap", dissect_nr_rrc_UE_MRDC_Capability_PDU, proto_nr_rrc); @@ -35294,10 +49269,20 @@ void proto_register_nr_rrc(void) { /*--- End of included file: packet-nr-rrc-dis-reg.c ---*/ -#line 97 "./asn1/nr-rrc/packet-nr-rrc-template.c" +#line 530 "./asn1/nr-rrc/packet-nr-rrc-template.c" + + nr_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), + g_direct_hash, g_direct_equal); + + reassembly_table_register(&nr_rrc_sib7_reassembly_table, + &addresses_reassembly_table_functions); + reassembly_table_register(&nr_rrc_sib8_reassembly_table, + &addresses_reassembly_table_functions); } void proto_reg_handoff_nr_rrc(void) { + nas_5gs_handle = find_dissector("nas-5gs"); + lte_rrc_conn_reconf_handle = find_dissector("lte-rrc.rrc_conn_reconf"); } |