diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-19 04:14:53 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-09-19 04:14:53 +0000 |
commit | a86c5f7cae7ec9a3398300555a0b644689d946a1 (patch) | |
tree | 39fe4b107c71174fd1e8a8ceb9a4d2aa14116248 /epan/dissectors/asn1/lte-rrc | |
parent | Releasing progress-linux version 4.2.6-1~progress7.99u1. (diff) | |
download | wireshark-a86c5f7cae7ec9a3398300555a0b644689d946a1.tar.xz wireshark-a86c5f7cae7ec9a3398300555a0b644689d946a1.zip |
Merging upstream version 4.4.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1/lte-rrc')
10 files changed, 1599 insertions, 661 deletions
diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn index 1bb4be95..8fa13552 100644 --- a/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn +++ b/epan/dissectors/asn1/lte-rrc/EUTRA-InterNodeDefinitions.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.331 V17.5.0 (2023-06) +-- 3GPP TS 36.331 V18.2.0 (2024-06) EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn index dbb01f78..09ea1843 100644 --- a/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn +++ b/epan/dissectors/asn1/lte-rrc/EUTRA-RRC-Definitions.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.331 V17.5.0 (2023-06) +-- 3GPP TS 36.331 V18.2.0 (2024-06) EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= @@ -690,6 +690,11 @@ LoggedMeasurementConfiguration-v1530-IEs ::= SEQUENCE { LoggedMeasurementConfiguration-v1700-IEs ::= SEQUENCE { loggedEventTriggerConfig-r17 LoggedEventTriggerConfig-r17 OPTIONAL, --Need OR measUncomBarPre-r17 ENUMERATED {true} OPTIONAL, --Need OR + nonCriticalExtension LoggedMeasurementConfiguration-v1800-IEs OPTIONAL +} + +LoggedMeasurementConfiguration-v1800-IEs ::= SEQUENCE { + sigLoggedMeasType-r18 ENUMERATED {true} OPTIONAL, --Need OR nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -723,7 +728,7 @@ MasterInformationBlock ::= SEQUENCE { systemFrameNumber BIT STRING (SIZE (8)), schedulingInfoSIB1-BR-r13 INTEGER (0..31), systemInfoUnchanged-BR-r15 BOOLEAN, - partEARFCN-17 CHOICE { + partEARFCN-r17 CHOICE { spare BIT STRING (SIZE (2)), earfcn-LSB BIT STRING (SIZE (2)) }, @@ -1669,7 +1674,12 @@ RRCConnectionReconfigurationComplete-v1700-IEs ::= SEQUENCE { RRCConnectionReconfigurationComplete-v1710-IEs ::= SEQUENCE { gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, - nonCriticalExtension SEQUENCE {} OPTIONAL + nonCriticalExtension RRCConnectionReconfigurationComplete-v1800-IEs OPTIONAL +} + +RRCConnectionReconfigurationComplete-v1800-IEs ::= SEQUENCE { + gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -1745,7 +1755,12 @@ RRCConnectionReestablishmentComplete-v1530-IEs ::= SEQUENCE { RRCConnectionReestablishmentComplete-v1710-IEs ::= SEQUENCE { gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, - nonCriticalExtension SEQUENCE {} OPTIONAL + nonCriticalExtension RRCConnectionReestablishmentComplete-v1800-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-v1800-IEs ::= SEQUENCE { + gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -2177,12 +2192,12 @@ RRCConnectionResume-r13-IEs ::= SEQUENCE { antennaInfoDedicatedPCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP lateNonCriticalExtension OCTET STRING OPTIONAL, - rrcConnectionResume-v1430-IEs RRCConnectionResume-v1430-IEs OPTIONAL + nonCriticalExtension RRCConnectionResume-v1430-IEs OPTIONAL } RRCConnectionResume-v1430-IEs ::= SEQUENCE { otherConfig-r14 OtherConfig-r9 OPTIONAL, -- Need ON - rrcConnectionResume-v1510-IEs RRCConnectionResume-v1510-IEs OPTIONAL + nonCriticalExtension RRCConnectionResume-v1510-IEs OPTIONAL } RRCConnectionResume-v1510-IEs ::= SEQUENCE { @@ -2258,7 +2273,12 @@ RRCConnectionResumeComplete-v1610-IEs ::= SEQUENCE { RRCConnectionResumeComplete-v1710-IEs ::= SEQUENCE { gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, - nonCriticalExtension SEQUENCE{} OPTIONAL + nonCriticalExtension RRCConnectionResumeComplete-v1800-IEs OPTIONAL +} + +RRCConnectionResumeComplete-v1800-IEs ::= SEQUENCE { + gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL, + nonCriticalExtension SEQUENCE{} OPTIONAL } @@ -2429,7 +2449,12 @@ RRCConnectionSetupComplete-v1690-IEs ::= SEQUENCE { } RRCConnectionSetupComplete-v1710-IEs ::= SEQUENCE { - gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL + gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension RRCConnectionSetupComplete-v1800-IEs OPTIONAL +} + +RRCConnectionSetupComplete-v1800-IEs ::= SEQUENCE { + gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } RegisteredMME ::= SEQUENCE { @@ -2818,7 +2843,8 @@ SystemInformation-r8-IEs ::= SEQUENCE { sib29-v1610 SystemInformationBlockType29-r16, sib30-v1700 SystemInformationBlockType30-r17, sib31-v1700 SystemInformationBlockType31-r17, - sib32-v1700 SystemInformationBlockType32-r17 + sib32-v1700 SystemInformationBlockType32-r17, + sib33-v1800 SystemInformationBlockType33-r18 }, nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL } @@ -2872,6 +2898,17 @@ PosSystemInformation-r15-IEs ::= SEQUENCE { [[ posSib1-9-v1700 SystemInformationBlockPos-r15, posSib1-10-v1700 SystemInformationBlockPos-r15 + ]], + [[ + posSib2-17a-v1770 SystemInformationBlockPos-r15, + posSib2-18a-v1770 SystemInformationBlockPos-r15, + posSib2-20a-v1770 SystemInformationBlockPos-r15 + ]], + [[ + posSib1-11-v1800 SystemInformationBlockPos-r15, + posSib1-12-v1800 SystemInformationBlockPos-r15, + posSib2-26-v1800 SystemInformationBlockPos-r15, + posSib2-27-v1800 SystemInformationBlockPos-r15 ]] }, lateNonCriticalExtension OCTET STRING OPTIONAL, @@ -3078,7 +3115,14 @@ SystemInformationBlockType1-v1700-IEs ::= SEQUENCE { cellBarred-NTN-r17 ENUMERATED {barred, notBarred}, plmn-IdentityList-v1700 PLMN-IdentityList-v1700 OPTIONAL -- Need OR } OPTIONAL, -- Need OR - nonCriticalExtension SEQUENCE {} OPTIONAL + nonCriticalExtension SystemInformationBlockType1-v1800-IEs OPTIONAL +} + +SystemInformationBlockType1-v1800-IEs ::= SEQUENCE { + freqBandIndicatorAerial-r18 FreqBandIndicator-r11 OPTIONAL, -- Need OR + freqBandInfoAerial-r18 NS-PmaxListAerial-r18 OPTIONAL, -- Need OR + multiBandInfoListAerial-r18 MultiBandInfoListAerial-r18 OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL } PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo @@ -3169,7 +3213,7 @@ SIB-Type-v12j0 ::= ENUMERATED { sibType24-v1530, sibType25-v1530, sibType26-v1530, sibType26a-v1610, sibType27-v1610, sibType28-v1610, sibType29-v1610, sibType30-v1700, sibType31-v1700, sibType32-v1700, - spare3, spare2, spare1, ...} + sibType33-v1800, spare2, spare1, ...} SI-Periodicity-r12 ::= ENUMERATED {rf8, rf16, rf32, rf64, rf128, rf256, rf512} @@ -3261,7 +3305,13 @@ PosSIB-Type-r15 ::= SEQUENCE { posSibType4-1-v1610, posSibType5-1-v1610, posSibType1-9-v1700, - posSibType1-10-v1700 + posSibType1-10-v1700, + posSibType2-17a-v1770, + posSibType2-18a-v1770, + posSibType2-20a-v1770, + posSibType1-11-v1800, + posSibType1-12-v1800, + posSibType2-26-v1800, posSibType2-27-v1800 }, ... } @@ -3590,7 +3640,12 @@ UEInformationRequest-v1530-IEs ::= SEQUENCE { UEInformationRequest-v1710-IEs ::= SEQUENCE { coarseLocationReq-r17 ENUMERATED {true} OPTIONAL, -- Need ON - nonCriticalExtension SEQUENCE {} OPTIONAL + nonCriticalExtension UEInformationRequest-v1800-IEs OPTIONAL +} + +UEInformationRequest-v1800-IEs ::= SEQUENCE { + rach-ReportReqNR-r18 ENUMERATED {true} OPTIONAL, -- Need ON + nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -3652,7 +3707,12 @@ UEInformationResponse-v1610-IEs ::= SEQUENCE { } UEInformationResponse-v1710-IEs ::= SEQUENCE { - coarseLocationInfo-r17 OCTET STRING OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL + coarseLocationInfo-r17 OCTET STRING OPTIONAL, nonCriticalExtension UEInformationResponse-v1800-IEs OPTIONAL +} + +UEInformationResponse-v1800-IEs ::= SEQUENCE { + rach-ReportNR-r18 RACH-ReportNR-r18 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } RACH-Report-r16 ::= SEQUENCE { @@ -3665,6 +3725,21 @@ RACH-Report-v1610 ::= SEQUENCE { edt-Fallback-r16 BOOLEAN } +RACH-ReportNR-r18 ::= SEQUENCE { + rach-ReportListNR-r18 OCTET STRING, + cellIdListNR-r18 CellIdListNR-r18 +} + +CellIdListNR-r18 ::= SEQUENCE (SIZE (1..maxCellRAReportNR-r18)) OF CellIdNR-r18 + +CellIdNR-r18 ::= CHOICE { + cellGlobalId-r18 CellGlobalIdNR-r16, + pci-arfcn-r18 SEQUENCE { + physCellId-r18 PhysCellIdNR-r15, + carrierFreq-r18 ARFCN-ValueNR-r15 + } +} + RLF-Report-r9 ::= SEQUENCE { measResultLastServCell-r9 SEQUENCE { rsrpResult-r9 RSRP-Range, @@ -3753,7 +3828,10 @@ RLF-Report-r9 ::= SEQUENCE { [[ measResultListNR-v1640 SEQUENCE { carrierFreqNR-r16 ARFCN-ValueNR-r15 } OPTIONAL, - measResultListExtNR-r16 MeasResultFreqListNR-r16 OPTIONAL + measResultListExtNR-r16 MeasResultFreqListNR-r16 OPTIONAL + ]], + [[ + voiceFallbackHO-r18 ENUMERATED {true} OPTIONAL ]] } @@ -4121,7 +4199,7 @@ SystemInformationBlockType2 ::= SEQUENCE { idleModeMeasurements-r15 ENUMERATED {true} OPTIONAL, -- Need OR reducedCP-LatencyEnabled-r15 ENUMERATED {true} OPTIONAL -- Need OR ]], - [[ mbms-ROM-ServiceIndication-r15 ENUMERATED {true} OPTIONAL -- Need OR + [[ mbms-ROM-ServiceIndication-r15 ENUMERATED {true} OPTIONAL -- Need OR ]], [[ rlos-Enabled-r16 ENUMERATED {true} OPTIONAL, -- Need OR earlySecurityReactivation-r16 ENUMERATED {true} OPTIONAL, -- Need OR @@ -4134,6 +4212,12 @@ SystemInformationBlockType2 ::= SEQUENCE { mpdcch-CQI-Reporting-r16 ENUMERATED {fourBits, both} OPTIONAL, -- Need OR rai-ActivationEnh-r16 ENUMERATED {true} OPTIONAL, -- Need OR idleModeMeasurementsNR-r16 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ gnss-PositionFixDurationReporting-r18 ENUMERATED {true} OPTIONAL, -- Need OR + freqBandIndicatorAerial-r18 FreqBandIndicator-r11 OPTIONAL, -- Need OR + freqInfoAerial-r18 AdditionalSpectrumEmission-r18 OPTIONAL, -- Need OR + multiBandInfoListAerial-r18 SEQUENCE (SIZE (1..maxMultiBands)) OF + AdditionalSpectrumEmission-r18 OPTIONAL -- Need OR ]] } @@ -4320,6 +4404,11 @@ SystemInformationBlockType3 ::= SEQUENCE { [[ cellReselectionServingFreqInfo-v1610 CellReselectionServingFreqInfo-v1610 OPTIONAL -- Need OR ]], [[ t-Service-r17 TimeOffsetUTC-r17 OPTIONAL -- Need OR + ]], + [[ satelliteAssistanceInfoList-r18 + SEQUENCE (SIZE(1..maxSat-r17)) OF SatelliteId-r18 OPTIONAL, -- Need OR + freqBandInfoAerial-r18 NS-PmaxListAerial-r18 OPTIONAL, -- Need OR + multiBandInfoListAerial-r18 MultiBandInfoListAerial-r18 OPTIONAL -- Need OR ]] } @@ -4420,6 +4509,9 @@ SystemInformationBlockType5 ::= SEQUENCE { [[ interFreqCarrierFreqList-v1610 InterFreqCarrierFreqList-v1610 OPTIONAL, -- Need OR interFreqCarrierFreqListExt-v1610 InterFreqCarrierFreqListExt-v1610 OPTIONAL, -- Need OR measIdleConfigSIB-NR-r16 MeasIdleConfigSIB-NR-r16 OPTIONAL -- Need OR + ]], + [[ interFreqCarrierFreqList-v1800 InterFreqCarrierFreqList-v1800 OPTIONAL, -- Need OR + interFreqCarrierFreqListExt-v1800 InterFreqCarrierFreqListExt-v1800 OPTIONAL -- Need OR ]] } @@ -4466,6 +4558,8 @@ InterFreqCarrierFreqList-v1530 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarr InterFreqCarrierFreqList-v1610 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1610 +InterFreqCarrierFreqList-v1800 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1800 + InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-r12 InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 @@ -4480,6 +4574,8 @@ InterFreqCarrierFreqListExt-v1530 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqC InterFreqCarrierFreqListExt-v1610 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1610 +InterFreqCarrierFreqListExt-v1800 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1800 + InterFreqCarrierFreqInfo ::= SEQUENCE { dl-CarrierFreq ARFCN-ValueEUTRA, q-RxLevMin Q-RxLevMin, @@ -4585,6 +4681,15 @@ InterFreqCarrierFreqInfo-v1610 ::= SEQUENCE { interFreqNeighCellList-v1610 InterFreqNeighCellList-v1610 OPTIONAL -- Cond RSS } + +InterFreqCarrierFreqInfo-v1800 ::= SEQUENCE { + satelliteAssistanceInfoList-r18 SEQUENCE (SIZE(1..maxSat-r17)) OF SatelliteId-r18 + OPTIONAL, -- Need OR + freqBandIndicatorAerial-r18 FreqBandIndicator-r11 OPTIONAL, -- Need OR + freqBandInfoAerial-r18 NS-PmaxListAerial-r18 OPTIONAL, -- Need OR + multiBandInfoListAerial-r18 MultiBandInfoListAerial-r18 OPTIONAL -- Need OR +} + InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo InterFreqNeighCellList-v1610 ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo-v1610 @@ -5216,6 +5321,8 @@ SystemInformationBlockType21-r14 ::= SEQUENCE { lateNonCriticalExtension OCTET STRING OPTIONAL, ..., [[ anchorCarrierFreqListNR-r16 SL-NR-AnchorCarrierFreqList-r16 OPTIONAL -- Need OR + ]], + [[ sl-A2X-ConfigCommon-r18 SL-A2X-ConfigCommon-r18 OPTIONAL -- Need OR ]] } @@ -5235,6 +5342,10 @@ SL-V2X-ConfigCommon-r14 ::= SEQUENCE { cbr-CommonTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR } +SL-A2X-ConfigCommon-r18 ::= SEQUENCE { + a2x-CommRxPool-r18 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR + a2x-commTxPool-r18 SL-CommTxPoolListV2X-r14 OPTIONAL -- Need OR +} SystemInformationBlockType24-r15 ::= SEQUENCE { @@ -5248,6 +5359,8 @@ SystemInformationBlockType24-r15 ::= SEQUENCE { [[ carrierFreqListNR-v1700 CarrierFreqListNR-v1700 OPTIONAL -- Need OR ]], [[ carrierFreqListNR-v1720 CarrierFreqListNR-v1720 OPTIONAL -- Need OR + ]], + [[ carrierFreqListNR-v1810 CarrierFreqListNR-v1810 OPTIONAL -- Need OR ]] } @@ -5259,6 +5372,8 @@ CarrierFreqListNR-v1700 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-v1700 CarrierFreqListNR-v1720 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-v1720 +CarrierFreqListNR-v1810 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-v1810 + CarrierFreqNR-r15 ::= SEQUENCE { carrierFreq-r15 ARFCN-ValueNR-r15, multiBandInfoList-r15 MultiFrequencyBandListNR-r15 OPTIONAL, -- Need OR @@ -5286,6 +5401,10 @@ CarrierFreqNR-r15 ::= SEQUENCE { [[ multiBandNsPmaxListNR-v1550 MultiBandNsPmaxListNR-1-v1550 OPTIONAL, -- Need OR multiBandNsPmaxListNR-SUL-v1550 MultiBandNsPmaxListNR-v1550 OPTIONAL, -- Need OR ssb-ToMeasure-r15 SSB-ToMeasure-r15 OPTIONAL -- Need OR + ]], + [[ ns-PmaxListNR-v1760 NS-PmaxListNR-v1760 OPTIONAL, -- Need OR + multiBandNsPmaxListNR-v1760 MultiBandNsPmaxListNR-1-v1760 OPTIONAL, -- Need OR + multiBandNsPmaxListNR-SUL-v1760 MultiBandNsPmaxListNR-v1760 OPTIONAL -- Need OR ]] } @@ -5305,10 +5424,26 @@ CarrierFreqNR-v1720 ::= SEQUENCE { ssb-PositionQCL-CommonNR-r17 SSB-PositionQCL-RelationNR-r17 OPTIONAL -- Cond SharedSpectrum2 } +CarrierFreqNR-v1810 ::= SEQUENCE { + carrierFreq-r18 ARFCN-ValueNR-r15 OPTIONAL, -- Cond LessThan5MHz + multiBandInfoList-r18 MultiFrequencyBandListNR-r15 OPTIONAL, -- Cond LessThan5MHz + multiBandInfoListAerial-r18 MultiFrequencyBandListNR-r15 OPTIONAL, -- Need OR + ns-PmaxListNR-Aerial-r18 NS-PmaxListNR-Aerial-r18 OPTIONAL, -- Need OR + multiBandNsPmaxListNR-Aerial-r18 MultiBandNsPmaxListNR-Aerial-1-r18 OPTIONAL, -- Need OR + mobileIAB-CellList-r18 PhysCellIdRangeNR-r16 OPTIONAL, -- Need OR + mobileIAB-Freq-r18 ENUMERATED {true} OPTIONAL -- Need OR +} + MultiBandNsPmaxListNR-1-v1550 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-1-r15)) OF NS-PmaxListNR-r15 MultiBandNsPmaxListNR-v1550 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-r15)) OF NS-PmaxListNR-r15 +MultiBandNsPmaxListNR-1-v1760 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-1-r15)) OF NS-PmaxListNR-v1760 + +MultiBandNsPmaxListNR-v1760 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-r15)) OF NS-PmaxListNR-v1760 + +MultiBandNsPmaxListNR-Aerial-1-r18 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-1-r15)) OF NS-PmaxListNR-Aerial-r18 + AllowedCellListNR-r16 ::= SEQUENCE (SIZE (1..maxCellAllowedNR-r16)) OF PhysCellIdNR-r15 NR-FreqNeighHSDN-CellList-r17 ::= SEQUENCE (SIZE (1..maxCellNR-r17)) OF PhysCellIdRangeNR-r16 @@ -5455,7 +5590,9 @@ ApplicableDisasterInfo-r17 ::= CHOICE { SystemInformationBlockType31-r17 ::= SEQUENCE { servingSatelliteInfo-r17 ServingSatelliteInfo-r17, lateNonCriticalExtension OCTET STRING OPTIONAL, - ... + ..., + [[ servingSatelliteInfo-v1820 ServingSatelliteInfo-v1820 OPTIONAL -- Need OR + ]] } ServingSatelliteInfo-r17 ::= SEQUENCE { @@ -5463,7 +5600,7 @@ ServingSatelliteInfo-r17 ::= SEQUENCE { stateVectors EphemerisStateVectors-r17, orbitalParameters EphemerisOrbitalParameters-r17 }, - nta-CommonParameters-17 SEQUENCE { + nta-CommonParameters-r17 SEQUENCE { nta-Common-r17 INTEGER (0..8316827) OPTIONAL, -- Need OP nta-CommonDrift-r17 INTEGER (-261935..261935) OPTIONAL, -- Need OP nta-CommonDriftVariation-r17 INTEGER (0..29479) OPTIONAL -- Need OP @@ -5479,15 +5616,28 @@ ServingSatelliteInfo-r17 ::= SEQUENCE { ... } +ServingSatelliteInfo-v1820 ::= SEQUENCE { + satelliteId-r18 SatelliteId-r18 OPTIONAL, -- Need OR + referenceLocation-r18 CHOICE { + fixedReferenceLocation-r18 ReferenceLocation-r18, + movingReferenceLocation-r18 ReferenceLocation-r18 + } OPTIONAL, -- Need OR + distanceThresh-r18 INTEGER(0..65535) OPTIONAL -- Need OR +} + SystemInformationBlockType32-r17 ::= SEQUENCE { satelliteInfoList-r17 SatelliteInfoList-r17 OPTIONAL, -- Need OR lateNonCriticalExtension OCTET STRING OPTIONAL, - ... + ..., + [[ satelliteInfoList-v1800 SatelliteInfoList-v1800 OPTIONAL -- Need OR + ]] } SatelliteInfoList-r17 ::= SEQUENCE (SIZE (1..maxSat-r17)) OF SatelliteInfo-r17 +SatelliteInfoList-v1800 ::= SEQUENCE (SIZE (1..maxSat-r17)) OF CarrierFreqList-v1800 + SatelliteInfo-r17 ::= SEQUENCE { satelliteId-r17 INTEGER (0..255), serviceInfo-r17 SEQUENCE { @@ -5507,6 +5657,39 @@ SatelliteInfo-r17 ::= SEQUENCE { } } +CarrierFreqList-v1800 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA + + +SystemInformationBlockType33-r18 ::= SEQUENCE { + neighSatelliteInfoList-r18 NeighSatelliteInfoList-r18 OPTIONAL, -- Need OR + neighValidityDuration-r18 ENUMERATED {s5, s10, s15, s20, s25, s30, s35, s40, + s45, s50, s55, s60, s120, s180, s240, s900} + OPTIONAL, -- Need OP + lateNonCriticalExtension OCTET STRING OPTIONAL, + ... +} + +NeighSatelliteInfoList-r18 ::= SEQUENCE (SIZE(1..maxSat-r17)) OF NeighSatelliteInfo-r18 + +NeighSatelliteInfo-r18 ::= SEQUENCE { + satelliteId-r18 SatelliteId-r18, + ephemerisInfo-r18 CHOICE { + stateVectors-r18 EphemerisStateVectors-r17, + orbitalParameters-r18 EphemerisOrbitalParameters-r17 + }, + nta-CommonParameters-r18 SEQUENCE { + nta-Common-r18 INTEGER (0..8316827) OPTIONAL, -- Need OP + nta-CommonDrift-r18 INTEGER (-261935..261935) OPTIONAL, -- Need OP + nta-CommonDriftVariation-r18 INTEGER (0..29479) OPTIONAL -- Need OP + }, + epochTime-r18 SEQUENCE { + startSFN-r18 INTEGER (0..1023), + startSubFrame-r18 INTEGER (0..9) + } OPTIONAL, -- Need OP + k-Mac-r18 INTEGER (1..512) OPTIONAL, -- Need OP + t-ServiceStartNeigh-r18 TimeOffsetUTC-r17 OPTIONAL -- Need OR +} + Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1} @@ -6567,6 +6750,9 @@ LogicalChannelConfig ::= SEQUENCE { ]], [[ bitRateMultiplier-r16 ENUMERATED {x40, x70, x100, x200} OPTIONAL -- Need OR + ]], + [[ + allowedHARQ-Mode-r18 ENUMERATED {harqModeA, harqModeB} OPTIONAL -- Need OR ]] } @@ -7107,6 +7293,12 @@ PDSCH-ConfigDedicated-v1700 ::= SEQUENCE { ce-PDSCH-maxTBS-r17 ENUMERATED {enabled} OPTIONAL -- Need OR } +PDSCH-ConfigDedicated-v1800 ::= SEQUENCE { + downlinkHARQ-FeedbackDisabledBitmap-r18 + CHOICE {release NULL, setup DownlinkHARQ-FeedbackDisabledBitmap-r18} OPTIONAL, -- Need ON + downlinkHARQ-FeedbackDisabledDCI-r18 ENUMERATED {true} OPTIONAL -- Need OR +} + PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE { tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR } @@ -7162,6 +7354,8 @@ PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE { ]] } +DownlinkHARQ-FeedbackDisabledBitmap-r18 ::= BIT STRING (SIZE(14)) + PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11) @@ -7319,7 +7513,7 @@ PhysicalConfigDedicated ::= SEQUENCE { cfi-Config-r15 CFI-Config-r15, cfi-PatternConfig-r15 CFI-PatternConfig-r15 } - } OPTIONAL, -- Need ON + } OPTIONAL, -- Need ON blindPDSCH-Repetition-Config-r15 CHOICE{ release NULL, setup SEQUENCE { @@ -7334,7 +7528,7 @@ PhysicalConfigDedicated ::= SEQUENCE { mcs-restrictionSubframePDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL, -- Need ON mcs-restrictionSlotSubslotPDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL -- Need ON } - } OPTIONAL -- Need ON + } OPTIONAL -- Need ON ]], [[ spucch-Config-v1550 SPUCCH-Config-v1550 OPTIONAL -- Need ON ]], @@ -7357,6 +7551,9 @@ PhysicalConfigDedicated ::= SEQUENCE { ]], [[ uplinkSegmentedPrecompensationGap-r17 ENUMERATED {sym1,sl1,sf1} OPTIONAL -- Need OR + ]], + [[ pdsch-ConfigDedicated-v1800 PDSCH-ConfigDedicated-v1800 OPTIONAL, -- Need ON + pusch-ConfigDedicated-v1800 PUSCH-ConfigDedicated-v1800 OPTIONAL -- Need ON ]] } @@ -7501,7 +7698,7 @@ PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { cfi-Config-r15 CFI-Config-r15, cfi-PatternConfig-r15 CFI-PatternConfig-r15 } - } OPTIONAL, -- Need ON + } OPTIONAL, -- Need ON blindPDSCH-Repetition-Config-r15 CHOICE{ release NULL, setup SEQUENCE { @@ -7516,7 +7713,7 @@ PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE { mcs-restrictionSubframePDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL, -- Need ON mcs-restrictionSlotSubslotPDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL -- Need ON } - } OPTIONAL -- Need ON + } OPTIONAL -- Need ON ]], [[ spucch-Config-v1550 SPUCCH-Config-v1550 OPTIONAL -- Need ON ]], @@ -7553,15 +7750,15 @@ PhysicalConfigDedicatedSCell-v1730 ::= SEQUENCE { } CFI-Config-r15 ::= SEQUENCE { - cfi-SubframeNonMBSFN-r15 INTEGER (1..4) OPTIONAL, -- Need ON - cfi-SlotSubslotNonMBSFN-r15 INTEGER (1..3) OPTIONAL, -- Need ON - cfi-SubframeMBSFN-r15 INTEGER (1..2) OPTIONAL, -- Need ON - cfi-SlotSubslotMBSFN-r15 INTEGER (1..2) OPTIONAL -- Need ON + cfi-SubframeNonMBSFN-r15 INTEGER (1..4) OPTIONAL, -- Need ON + cfi-SlotSubslotNonMBSFN-r15 INTEGER (1..3) OPTIONAL, -- Need ON + cfi-SubframeMBSFN-r15 INTEGER (1..2) OPTIONAL, -- Need ON + cfi-SlotSubslotMBSFN-r15 INTEGER (1..2) OPTIONAL -- Need ON } CFI-PatternConfig-r15 ::= SEQUENCE { - cfi-PatternSubframe-r15 SEQUENCE (SIZE(10)) OF INTEGER (1..4) OPTIONAL, -- Need ON - cfi-PatternSlotSubslot-r15 SEQUENCE (SIZE(10)) OF INTEGER (1..3) OPTIONAL -- Need ON + cfi-PatternSubframe-r15 SEQUENCE (SIZE(10)) OF INTEGER (1..4) OPTIONAL, -- Need ON + cfi-PatternSlotSubslot-r15 SEQUENCE (SIZE(10)) OF INTEGER (1..3) OPTIONAL -- Need ON } LAA-SCellConfiguration-r13 ::= SEQUENCE { @@ -8214,6 +8411,10 @@ PUSCH-ConfigDedicated-v1610 ::= SEQUENCE { ce-PUSCH-MultiTB-Config-r16 CHOICE {release NULL, setup CE-PUSCH-MultiTB-Config-r16} } +PUSCH-ConfigDedicated-v1800 ::= SEQUENCE { + uplinkHARQ-Mode-r18 CHOICE {release NULL, setup UplinkHARQ-Mode-r18} +} + PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE { groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR @@ -8240,7 +8441,7 @@ TDD-PUSCH-UpPTS-r14 ::= CHOICE { } } -CE-PUSCH-MultiTB-Config-r16 ::= SEQUENCE { +CE-PUSCH-MultiTB-Config-r16 ::= SEQUENCE { interleaving-r16 ENUMERATED {on} OPTIONAL -- Need OR } @@ -8282,6 +8483,8 @@ UL-ReferenceSignalsPUSCH ::= SEQUENCE { cyclicShift INTEGER (0..7) } +UplinkHARQ-Mode-r18 ::= BIT STRING (SIZE(8)) + RACH-ConfigCommon ::= SEQUENCE { preambleInfo SEQUENCE { @@ -8730,6 +8933,13 @@ RadioResourceConfigDedicated ::= SEQUENCE { OPTIONAL, -- Cond Split-SRB1-SRB3 crs-ChEstMPDCCH-ConfigDedicated-r16 CHOICE {release NULL, setup CRS-ChEstMPDCCH-ConfigDedicated-r16} OPTIONAL, -- Need ON newUE-Identity-r16 C-RNTI OPTIONAL -- Need OP + ]], + [[ harq-FeedbackEnablingforSPSactive-r18 ENUMERATED {enabled} OPTIONAL, -- Need OR + gnss-AutonomousEnabled-r18 ENUMERATED {true} OPTIONAL, -- Need OR + ul-TransmissionExtensionEnabled-r18 ENUMERATED {true} OPTIONAL, -- Need OR + ul-TransmissionExtensionValue-r18 ENUMERATED {sf500, sf750, sf1280, sf1920, + sf2560, sf5120, sf10240, spare1} + OPTIONAL -- Need OR ]] } @@ -10225,9 +10435,15 @@ AdditionalSpectrumEmission ::= INTEGER (1..32) AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288) +AdditionalSpectrumEmission-r18 ::= INTEGER (1..288) + AdditionalSpectrumEmissionNR-r15 ::= INTEGER (0..7) +AdditionalSpectrumEmissionNR-v1760 ::= INTEGER (8..39) + +AdditionalSpectrumEmissionNR-r18 ::= INTEGER (0..39) + ARFCN-ValueCDMA2000 ::= INTEGER (0..2047) @@ -10484,6 +10700,8 @@ MobilityControlInfo ::= SEQUENCE { schedulingInfoSIB1-BR-r14 INTEGER (0..31) OPTIONAL -- Cond HO-SFNsynced ]], [[ daps-Config-r16 DAPS-Config-r16 OPTIONAL -- Cond NotFullConfigHO + ]], + [[ gnss-PositionFixDurationReporting-r18 ENUMERATED {true} OPTIONAL -- Need OR ]] } @@ -10587,6 +10805,13 @@ MultiBandInfo-v9e0 ::= SEQUENCE { freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP } +MultiBandInfoListAerial-r18 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfoAerial-r18 + +MultiBandInfoAerial-r18 ::= SEQUENCE { + freqBandIndicatorAerial-r18 FreqBandIndicator-r11 OPTIONAL, -- Cond NotSIB3 + ns-PmaxListAerial-r18 NS-PmaxListAerial-r18 OPTIONAL -- Need OP +} + MultiFrequencyBandListNR-r15 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-r15)) OF FreqBandIndicatorNR-r15 @@ -10595,6 +10820,8 @@ NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10 NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0 +NS-PmaxListAerial-r18 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValueAerial-r18 + NS-PmaxValue-r10 ::= SEQUENCE { additionalPmax-r10 P-Max OPTIONAL, -- Need OP additionalSpectrumEmission AdditionalSpectrumEmission @@ -10604,6 +10831,11 @@ NS-PmaxValue-v10l0 ::= SEQUENCE { additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP } +NS-PmaxValueAerial-r18 ::= SEQUENCE { + additionalPmax-r18 P-Max OPTIONAL, -- Need OP + additionalSpectrumEmission-r18 AdditionalSpectrumEmission-r18 OPTIONAL -- Need OP +} + NS-PmaxListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-r15 @@ -10612,6 +10844,19 @@ NS-PmaxValueNR-r15 ::= SEQUENCE { additionalSpectrumEmissionNR-r15 AdditionalSpectrumEmissionNR-r15 } +NS-PmaxListNR-v1760 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-v1760 + +NS-PmaxValueNR-v1760 ::= SEQUENCE { + additionalSpectrumEmissionNR-v1760 AdditionalSpectrumEmissionNR-v1760 OPTIONAL -- Need OR +} + +NS-PmaxListNR-Aerial-r18 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-Aerial-r18 + +NS-PmaxValueNR-Aerial-r18 ::= SEQUENCE { + additionalPmaxNR-r18 P-MaxNR-r15 OPTIONAL, -- Need OP + additionalSpectrumEmissionNR-r18 AdditionalSpectrumEmissionNR-r18 OPTIONAL -- Need OP +} + PhysCellId ::= INTEGER (0..503) @@ -10804,6 +11049,9 @@ CSI-RSRP-Range-r12 ::= INTEGER(0..97) Hysteresis ::= INTEGER (0..30) +HysteresisLocation-r18 ::= INTEGER (0..32767) + + LocationInfo-r10 ::= SEQUENCE { locationCoordinates-r10 CHOICE { ellipsoid-Point-r10 OCTET STRING, @@ -10897,11 +11145,14 @@ MeasConfig ::= SEQUENCE { [[ fr1-Gap-r15 BOOLEAN OPTIONAL, -- Need ON mgta-r15 BOOLEAN OPTIONAL -- Need ON ]], - [[ measGapConfigDensePRS-r15 MeasGapConfigDensePRS-r15 OPTIONAL, -- Need ON + [[ measGapConfigDensePRS-r15 MeasGapConfigDensePRS-r15 OPTIONAL, -- Need ON heightThreshRef-r15 CHOICE { release NULL, setup INTEGER (0..31) } OPTIONAL --Need ON + ]], + [[ timeMeasConfig-r18 ENUMERATED {true} OPTIONAL, -- Need OR + locationMeasConfig-r18 ENUMERATED {true} OPTIONAL -- Need OR ]] } @@ -11216,6 +11467,9 @@ MeasObjectEUTRA ::= SEQUENCE { ]], [[ measRSS-DedicatedConfig-r16 CHOICE {release NULL, setup MeasRSS-DedicatedConfig-r16} OPTIONAL -- Need ON + ]], + [[ + cellsToAddModList-v1810 CellsToAddModList-v1810 OPTIONAL -- Need ON ]] } @@ -11231,6 +11485,7 @@ MeasRSS-DedicatedConfig-r16 ::= SEQUENCE { CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod CellsToAddModList-v1610 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod-v1610 +CellsToAddModList-v1810 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod-v1810 CellsToAddMod ::= SEQUENCE { cellIndex INTEGER (1..maxCellMeas), @@ -11242,6 +11497,18 @@ CellsToAddMod-v1610 ::= SEQUENCE { rss-MeasPowerBias-r16 RSS-MeasPowerBias-r16 } +CellsToAddMod-v1810 ::= SEQUENCE { + satelliteId-r18 SatelliteId-r18 OPTIONAL, -- Need OR + ephemerisInfo-r18 CHOICE { + stateVectors-r18 EphemerisStateVectors-r17, + orbitalParameters-r18 EphemerisOrbitalParameters-r17 + } OPTIONAL, -- Need OR + epochTime-r18 SEQUENCE { + startSFN-r18 INTEGER (0..1023), + startSubFrame-r18 INTEGER (0..9) + } OPTIONAL, -- Cond Moving + referenceLocation-r18 ReferenceLocation-r18 OPTIONAL -- Cond Moving +} ExcludedCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF ExcludedCellsToAddMod @@ -12025,6 +12292,9 @@ QuantityConfigWLAN-r13 ::= SEQUENCE { } +ReferenceLocation-r18 ::= OCTET STRING + + ReportConfigEUTRA ::= SEQUENCE { triggerType CHOICE { event SEQUENCE { @@ -12073,6 +12343,20 @@ ReportConfigEUTRA ::= SEQUENCE { eventH2-r15 SEQUENCE { h2-ThresholdOffset-r15 INTEGER (0..300), h2-Hysteresis-r15 INTEGER (1..16) + }, + eventD1-r18 SEQUENCE { + distanceThreshFromReference1-r18 INTEGER(0.. 65535), + distanceThreshFromReference2-r18 INTEGER(0.. 65535), + referenceLocation1-r18 ReferenceLocation-r18, + referenceLocation2-r18 ReferenceLocation-r18, + hysteresisLocation-r18 HysteresisLocation-r18, + reportOnLeave-r18 BOOLEAN + }, + eventD2-r18 SEQUENCE { + distanceThreshFromReference1-r18 INTEGER(0.. 65535), + distanceThreshFromReference2-r18 INTEGER(0.. 65535), + hysteresisLocation-r18 HysteresisLocation-r18, + reportOnLeave-r18 BOOLEAN } }, hysteresis Hysteresis, @@ -12159,7 +12443,32 @@ CondReconfigurationTriggerEUTRA-r16 ::= SEQUENCE { hysteresis-r16 Hysteresis, timeToTrigger-r16 TimeToTrigger }, - ... + ..., + [[ + condEventA4-r18 SEQUENCE { + a4-Threshold-r18 ThresholdEUTRA, + hysteresis-r18 Hysteresis, + timeToTrigger-r18 TimeToTrigger + }, + condEventD1-r18 SEQUENCE { + distanceThreshFromReference1-r18 INTEGER(0.. 65535), + distanceThreshFromReference2-r18 INTEGER(0.. 65535), + referenceLocation1-r18 ReferenceLocation-r18, + referenceLocation2-r18 ReferenceLocation-r18, + hysteresisLocation-r18 HysteresisLocation-r18, + timeToTrigger-r18 TimeToTrigger + }, + condEventD2-r18 SEQUENCE { + distanceThreshFromReference1-r18 INTEGER(0.. 65535), + distanceThreshFromReference2-r18 INTEGER(0.. 65535), + hysteresisLocation-r18 HysteresisLocation-r18, + timeToTrigger-r18 TimeToTrigger + }, + condEventT1-r18 SEQUENCE { + t1-Threshold-r18 TimeOffsetUTC-r17, + duration-r18 INTEGER (1..6000) + } + ]] } } @@ -12523,6 +12832,10 @@ GNSS-ID-r15 ::= SEQUENCE { } +GNSS-PositionFixDuration-r18 ::= ENUMERATED{ + s1, s2, s3, s4, s5, s6, s7, s13, s19, s25, s31} + + GNSS-ValidityDuration-r17 ::= ENUMERATED{ s10, s20, s30, s40, s50, s60, min5, min10, min15, min20, min25, min30, min50, min90, min120, infinity} @@ -12681,6 +12994,9 @@ ResumeIdentity-r13 ::= BIT STRING (SIZE(40)) RRC-TransactionIdentifier ::= INTEGER (0..3) +SatelliteId-r18 ::= INTEGER (0..255) + + SBAS-ID-r15 ::= SEQUENCE { sbas-id-r15 ENUMERATED {waas, egnos, msas, gagan, ...}, ... @@ -12875,7 +13191,7 @@ UE-EUTRA-Capability-v15x0-IEs ::= SEQUENCE { } UE-EUTRA-Capability-v16c0-IEs ::= SEQUENCE { - measParameters-v16c0 MeasParameters-v16c0, + measParameters-v16c0 MeasParameters-v16c0, -- Following field is only to be used for late REL-16 extensions lateNonCriticalExtension OCTET STRING OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL @@ -13241,7 +13557,23 @@ UE-EUTRA-Capability-v1720-IEs ::= SEQUENCE { UE-EUTRA-Capability-v1730-IEs ::= SEQUENCE { phyLayerParameters-v1730 PhyLayerParameters-v1730, - nonCriticalExtension SEQUENCE {} OPTIONAL + nonCriticalExtension UE-EUTRA-Capability-v1770-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1770-IEs ::= SEQUENCE { + measParameters-v1770 MeasParameters-v1770, + nonCriticalExtension UE-EUTRA-Capability-v1800-IEs OPTIONAL +} + +UE-EUTRA-Capability-v1800-IEs ::= SEQUENCE { + measParameters-v1800 MeasParameters-v1800 OPTIONAL, + rf-Parameters-v1800 RF-Parameters-v1800 OPTIONAL, + ntn-Parameters-v1800 NTN-Parameters-v1800 OPTIONAL, + -- A2X capabilities + sl-Parameters-v1800 SL-Parameters-v1800 OPTIONAL, + son-Parameters-v1800 SON-Parameters-v1800, + ue-BasedNetwPerfMeasParameters-v1800 UE-BasedNetwPerfMeasParameters-v1800, + nonCriticalExtension SEQUENCE {} OPTIONAL } UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE { @@ -13349,7 +13681,7 @@ UE-EUTRA-CapabilityAddXDD-Mode-v1630 ::= SEQUENCE { AccessStratumRelease ::= ENUMERATED { rel8, rel9, rel10, rel11, rel12, rel13, - rel14, rel15, ..., rel16, rel17} + rel14, rel15, ..., rel16, rel17, rel18} FeatureSetsEUTRA-r15 ::= SEQUENCE { featureSetsDL-r15 SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetDL-r15 OPTIONAL, @@ -13445,6 +13777,34 @@ NTN-Parameters-v1720 ::= SEQUENCE { ntn-SegmentedPrecompensationGaps-r17 ENUMERATED {sym1,sl1,sf1} OPTIONAL } +NTN-Parameters-v1800 ::= SEQUENCE { + ntn-EventA4BasedCHO-r18 ENUMERATED {supported} OPTIONAL, + ntn-LocationBasedCHO-EFC-r18 ENUMERATED {supported} OPTIONAL, + ntn-LocationBasedCHO-EMC-r18 ENUMERATED {supported} OPTIONAL, + ntn-TimeBasedCHO-r18 ENUMERATED {supported} OPTIONAL, + eventD1-MeasReportTrigger-r18 ENUMERATED {supported} OPTIONAL, + eventD2-MeasReportTrigger-r18 ENUMERATED {supported} OPTIONAL, + ntn-LocationBasedMeasTrigger-EFC-r18 ENUMERATED {supported} OPTIONAL, + ntn-LocationBasedMeasTrigger-EMC-r18 ENUMERATED {supported} OPTIONAL, + ntn-TimeBasedMeasTrigger-r18 ENUMERATED {supported} OPTIONAL, + ntn-RRC-HarqDisableSingleTB-CE-ModeA-r18 ENUMERATED {supported} OPTIONAL, + ntn-RRC-HarqDisableMultiTB-CE-ModeA-r18 ENUMERATED {supported} OPTIONAL, + ntn-RRC-HarqDisableSingleTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL, + ntn-OverriddenHarqDisableSingleTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL, + ntn-DCI-HarqDisableSingleTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL, + ntn-RRC-HarqDisableMultiTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL, + ntn-OverriddenHarqDisableMultiTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL, + ntn-DCI-HarqDisableMultiTB-CE-ModeB-r18 ENUMERATED {supported} OPTIONAL, + ntn-SemiStaticHarqDisableSPS-r18 ENUMERATED {supported} OPTIONAL, + ntn-UplinkHarq-ModeB-SingleTB-r18 ENUMERATED {supported} OPTIONAL, + ntn-UplinkHarq-ModeB-MultiTB-r18 ENUMERATED {supported} OPTIONAL, + ntn-HarqEnhScenarioSupport-r18 ENUMERATED {ngso,gso} OPTIONAL, + ntn-Triggered-GNSS-Fix-r18 ENUMERATED {supported} OPTIONAL, + ntn-Autonomous-GNSS-Fix-r18 ENUMERATED {supported} OPTIONAL, + ntn-UplinkTxExtension-r18 ENUMERATED {supported} OPTIONAL, + ntn-GNSS-EnhScenarioSupport-r18 ENUMERATED {ngso,gso} OPTIONAL +} + ProcessingTimelineSet-r15 ::= ENUMERATED {set1, set2} RLC-Parameters-r12 ::= SEQUENCE { @@ -14049,6 +14409,15 @@ RF-Parameters-v1630 ::= SEQUENCE { supportedBandCombinationReduced-v1630 SupportedBandCombinationReduced-v1630 OPTIONAL } +RF-Parameters-v1800 ::= SEQUENCE { + -- Support handling of aerial-specific Ns and Pmax list broadcasted by the cell + multiNS-PmaxAerial-r18 ENUMERATED {supported} OPTIONAL, + supportedBandListEUTRA-v1800 SupportedBandListEUTRA-v1800 OPTIONAL, + supportedBandCombination-v1800 SupportedBandCombination-v1800 OPTIONAL, + supportedBandCombinationAdd-v1800 SupportedBandCombinationAdd-v1800 OPTIONAL, + supportedBandCombinationReduced-v1800 SupportedBandCombinationReduced-v1800 OPTIONAL +} + SkipSubframeProcessing-r15 ::= SEQUENCE { skipProcessingDL-Slot-r15 INTEGER (0..3) OPTIONAL, skipProcessingDL-SubSlot-r15 INTEGER (0..3) OPTIONAL, @@ -14126,6 +14495,8 @@ SupportedBandCombination-v1610 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandC SupportedBandCombination-v1630 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1630 +SupportedBandCombination-v1800 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1800 + SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11 SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0 @@ -14154,6 +14525,8 @@ SupportedBandCombinationAdd-v1610 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF Ba SupportedBandCombinationAdd-v1630 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1630 +SupportedBandCombinationAdd-v1800 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1800 + SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-r13 SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1320 @@ -14176,6 +14549,8 @@ SupportedBandCombinationReduced-v1610 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) O SupportedBandCombinationReduced-v1630 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1630 +SupportedBandCombinationReduced-v1800 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1800 + BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10 BandCombinationParametersExt-r10 ::= SEQUENCE { @@ -14308,6 +14683,10 @@ BandCombinationParameters-v1630 ::= SEQUENCE { interBandPowerSharingAsyncDAPS-r16 ENUMERATED {supported} OPTIONAL } +BandCombinationParameters-v1800 ::= SEQUENCE { + measGapInfoNR-r18 MeasGapInfoNR-r18 OPTIONAL +} + ScalingFactorSidelink-r16 ::= ENUMERATED {f0p4, f0p75, f0p8, f1} SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10)) @@ -14536,6 +14915,8 @@ SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBand SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1320 +SupportedBandListEUTRA-v1800 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1800 + SupportedBandEUTRA ::= SEQUENCE { bandEUTRA FreqBandIndicator, halfDuplex BOOLEAN @@ -14553,11 +14934,16 @@ SupportedBandEUTRA-v1250 ::= SEQUENCE { SupportedBandEUTRA-v1310 ::= SEQUENCE { ue-PowerClass-5-r13 ENUMERATED {supported} OPTIONAL } + SupportedBandEUTRA-v1320 ::= SEQUENCE { intraFreq-CE-NeedForGaps-r13 ENUMERATED {supported} OPTIONAL, ue-PowerClass-N-r13 ENUMERATED {class1, class2, class4} OPTIONAL } +SupportedBandEUTRA-v1800 ::= SEQUENCE { + lowerMSD-MRDC-r18 SEQUENCE (SIZE (1..maxLowerMSD-r18)) OF LowerMSD-MRDC-r18 OPTIONAL +} + MeasParameters ::= SEQUENCE { bandListEUTRA BandListEUTRA } @@ -14645,6 +15031,14 @@ MeasParameters-v1700 ::= SEQUENCE { sharedSpectrumMeasNR-SA-r17 SEQUENCE (SIZE (1..maxBandsNR-r15)) OF SharedSpectrumMeasNR-r17 OPTIONAL } +MeasParameters-v1770 ::= SEQUENCE { + gaplessMeas-FR2-maxCC-r17 INTEGER (1..32) OPTIONAL +} + +MeasParameters-v1800 ::= SEQUENCE { + bandInfoNR-v1800 SEQUENCE (SIZE (1..maxBands)) OF MeasGapInfoNR-r18 +} + SharedSpectrumMeasNR-r17 ::= SEQUENCE { nr-RSSI-ChannelOccupancyReporting-r17 BOOLEAN } @@ -14654,6 +15048,11 @@ MeasGapInfoNR-r16 ::= SEQUENCE { interRAT-BandListNR-SA-r16 InterRAT-BandListNR-r16 OPTIONAL } +MeasGapInfoNR-r18 ::= SEQUENCE { + interRAT-BandListNR-EN-DC-r18 InterRAT-BandListNR-r18 OPTIONAL, + interRAT-BandListNR-SA-r18 InterRAT-BandListNR-r18 OPTIONAL +} + BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA @@ -14673,6 +15072,8 @@ InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo InterRAT-BandListNR-r16 ::= SEQUENCE (SIZE (1..maxBandsNR-r15)) OF InterRAT-BandInfoNR-r16 +InterRAT-BandListNR-r18 ::= SEQUENCE (SIZE (1..maxBandsNR-r15)) OF InterRAT-BandInfoNR-r18 + InterRAT-BandInfo ::= SEQUENCE { interRAT-NeedForGaps BOOLEAN } @@ -14681,6 +15082,11 @@ InterRAT-BandInfoNR-r16 ::= SEQUENCE { interRAT-NeedForGapsNR-r16 BOOLEAN } +InterRAT-BandInfoNR-r18 ::= SEQUENCE { + interRAT-NeedForInterruptionNR-r18 + ENUMERATED {no-gap-with-interruption, no-gap-no-interruption} OPTIONAL +} + IRAT-ParametersNR-r15 ::= SEQUENCE { en-DC-r15 ENUMERATED {supported} OPTIONAL, eventB2-r15 ENUMERATED {supported} OPTIONAL, @@ -14734,6 +15140,21 @@ IRAT-ParametersNR-v1710 ::= SEQUENCE { extendedBand-n77-2-r17 ENUMERATED {supported} OPTIONAL } +LowerMSD-MRDC-r18 ::= SEQUENCE { + aggressorband1-r18 FreqBandIndicatorNR-r15, + aggressorband2-r18 FreqBandIndicator-r11 OPTIONAL, + msd-Information-r18 SEQUENCE (SIZE (1.. maxLowerMSD-Info-r18)) OF MSD-Information-r18 +} + +MSD-Information-r18 ::= SEQUENCE { + msd-Type-r18 ENUMERATED {harmonic, harmonicMixing, crossBandIsolation, imd2, + imd3, imd4, imd5, all, spare8, spare7, spare6, + spare5,spare4, spare3, spare2, spare1}, + msd-PowerClass-r18 ENUMERATED {pc1dot5, pc2, pc3}, + msd-Class-r18 ENUMERATED {classI, classII, classIII, classIV, classV, classVI, + classVII, classVIII } +} + EUTRA-5GC-Parameters-r15 ::= SEQUENCE { eutra-5GC-r15 ENUMERATED {supported} OPTIONAL, eutra-EPC-HO-EUTRA-5GC-r15 ENUMERATED {supported} OPTIONAL, @@ -14946,6 +15367,10 @@ SON-Parameters-r9 ::= SEQUENCE { rach-Report-r9 ENUMERATED {supported} OPTIONAL } +SON-Parameters-v1800 ::= SEQUENCE { + rach-ReportForNR-r18 ENUMERATED {supported} OPTIONAL +} + PUR-Parameters-r16 ::= SEQUENCE { pur-CP-5GC-CE-ModeA-r16 ENUMERATED {supported} OPTIONAL, pur-CP-5GC-CE-ModeB-r16 ENUMERATED {supported} OPTIONAL, @@ -14994,6 +15419,10 @@ UE-BasedNetwPerfMeasParameters-v1700 ::= SEQUENCE { immMeasUncomBarPre-r17 ENUMERATED {supported} OPTIONAL } +UE-BasedNetwPerfMeasParameters-v1800 ::= SEQUENCE { + sigBasedEUTRA-LoggedMeasOverrideProtect-r18 ENUMERATED {supported} OPTIONAL +} + OTDOA-PositioningCapabilities-r10 ::= SEQUENCE { otdoa-UE-Assisted-r10 ENUMERATED {supported}, interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL @@ -15301,6 +15730,11 @@ SL-Parameters-v1710 ::= SEQUENCE { v2x-SupportedBandCombinationListEUTRA-NR-v1710 V2X-SupportedBandCombinationEUTRA-NR-v1710 OPTIONAL } +SL-Parameters-v1800 ::= SEQUENCE { + sl-A2X-SupportedBandCombinationList-r18 SL-A2X-SupportedBandCombination-r18 OPTIONAL, + sl-A2X-Service-r18 ENUMERATED {brid, daa, bridAndDAA} OPTIONAL +} + UE-CategorySL-r15 ::= SEQUENCE { ue-CategorySL-C-TX-r15 INTEGER(1..5), ue-CategorySL-C-RX-r15 INTEGER(1..4) @@ -15349,6 +15783,24 @@ V2X-BandParametersEUTRA-NR-v1710 ::= SEQUENCE { v2x-BandParametersEUTRA-NR-v1710 OCTET STRING OPTIONAL } +SL-A2X-SupportedBandCombination-r18 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF SL-A2X-BandCombinationParameters-r18 + +SL-A2X-BandCombinationParameters-r18 ::= SEQUENCE (SIZE (1.. maxSimultaneousBands-r10)) OF SL-A2X-BandParameters-r18 + +SL-A2X-BandParameters-r18 ::= SEQUENCE { + a2x-FreqBandEUTRA-r18 FreqBandIndicator-r11, + a2x-BandParametersTxSL-r18 BandParametersTxA2X-r18 OPTIONAL, + a2x-BandParametersRxSL-r18 BandParametersRxA2X-r18 OPTIONAL +} + +BandParametersTxA2X-r18 ::= SEQUENCE { + a2x-BandwidthClassTxSL-r18 V2X-BandwidthClassSL-r14 +} + +BandParametersRxA2X-r18 ::= SEQUENCE { + a2x-BandwidthClassRxSL-r18 V2X-BandwidthClassSL-r14 +} + SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12 SupportedBandInfo-r12 ::= SEQUENCE { @@ -15973,6 +16425,8 @@ SL-CommResourcePoolV2X-r14 ::= SEQUENCE { ..., [[ sl-MinT2ValueList-r15 SL-MinT2ValueList-r15 OPTIONAL, -- Need OR cbr-pssch-TxConfigList-v1530 SL-CBR-PPPP-TxConfigList-v1530 OPTIONAL -- Need OR + ]], + [[ sl-A2X-Service-r18 ENUMERATED {brid, daa, bridAndDAA, spare1} OPTIONAL -- Cond A2X ]] } @@ -16702,6 +17156,8 @@ maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the -- cell lists in a measurement object +maxCellRAReportNR-r18 INTEGER ::= 8 -- Maximum number of unique Cells identities of RA + -- reports included in the NR RA report container maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources maxCellSFTD INTEGER ::= 3 -- Maximum number of cells for SFTD reporting maxCellAllowedNR-r16 INTEGER ::= 16 -- Maximum number of allowlisted NR cells in SIB24 @@ -16765,6 +17221,10 @@ maxIdleMeasCarriers-r16 INTEGER ::= 8 -- Maximum number of neighbouring inter- maxLCG-r13 INTEGER ::= 4 -- Maximum number of logical channel groups maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries -- that can be reported by the UE in one message +maxLowerMSD-r18 INTEGER ::= 256 -- Maximum number of lower MSD capability sets for + -- a victim band +maxLowerMSD-Info-r18 INTEGER ::= 64 -- Maximum number of lower MSD capability sets for + -- a band combination maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with -- different offset maxMBSFN-Area INTEGER ::= 8 diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn index e8f39de8..870ed39b 100644 --- a/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn +++ b/epan/dissectors/asn1/lte-rrc/EUTRA-Sidelink-Preconf.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.331 V17.5.0 (2023-06) +-- 3GPP TS 36.331 V18.2.0 (2024-06) EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::= diff --git a/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn b/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn index 98b92e6b..6d01a7c0 100644 --- a/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn +++ b/epan/dissectors/asn1/lte-rrc/EUTRA-UE-Variables.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.331 V17.5.0 (2023-06) +-- 3GPP TS 36.331 V18.2.0 (2024-06) EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= @@ -74,7 +74,7 @@ FROM EUTRA-RRC-Definitions; VarConditionalReconfiguration ::= SEQUENCE { - -- Conditional reconfigurations list + -- Conditional reconfigurations list condReconfigurationList-r16 CondReconfigurationToAddModList-r16 OPTIONAL } @@ -145,7 +145,8 @@ VarLogMeasReport-r11 ::= SEQUENCE { tce-Id-r10 OCTET STRING (SIZE (1)), plmn-IdentityList-r11 PLMN-IdentityList3-r11, absoluteTimeInfo-r10 AbsoluteTimeInfo-r10, - logMeasInfoList-r10 LogMeasInfoList2-r10 + logMeasInfoList-r10 LogMeasInfoList2-r10, + sigLoggedMeasType-r18 ENUMERATED {true} } LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10 diff --git a/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn b/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn index 85af838c..38a1104c 100644 --- a/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn +++ b/epan/dissectors/asn1/lte-rrc/NBIOT-InterNodeDefinitions.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.331 V17.5.0 (2023-06) +-- 3GPP TS 36.331 V18.2.0 (2024-06) NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::= diff --git a/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn index b68e6a8a..e9259f5c 100644 --- a/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn +++ b/epan/dissectors/asn1/lte-rrc/NBIOT-RRC-Definitions.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.331 V17.5.0 (2023-06) +-- 3GPP TS 36.331 V18.2.0 (2024-06) NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= @@ -17,6 +17,7 @@ IMPORTS C-RNTI, DedicatedInfoNAS, DRB-Identity, + GNSS-PositionFixDuration-r18, GNSS-ValidityDuration-r17, InitialUE-Identity, IntraFreqExcludedCellList, @@ -35,11 +36,13 @@ IMPORTS maxPageRec, maxPLMN-r11, maxSAI-MBMS-r11, + maxSat-r17, maxSIB, maxSIB-1, MBMS-SAI-r11, MBMS-SAI-List-r11, MBMSSessionInfo-r13, + NeighSatelliteInfoList-r18, NextHopChainingCount, NG-5G-S-TMSI-r15, PagingUE-Identity, @@ -61,8 +64,11 @@ IMPORTS RSRP-Range, S-NSSAI-r15, S-TMSI, + SatelliteId-r18, SatelliteInfoList-r17, + SatelliteInfoList-v1800, ServingSatelliteInfo-r17, + ServingSatelliteInfo-v1820, SetupRelease, ShortMAC-I, SystemInformationBlockType16-r11, @@ -243,7 +249,7 @@ MasterInformationBlock-NB ::= SEQUENCE { }, additionalTransmissionSIB1-r15 BOOLEAN, ab-Enabled-5GC-r16 BOOLEAN, - partEARFCN-17 CHOICE { + partEARFCN-r17 CHOICE { spare BIT STRING (SIZE (2)), earfcn-LSB BIT STRING (SIZE (2)) }, @@ -403,7 +409,12 @@ RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE { radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab lateNonCriticalExtension OCTET STRING OPTIONAL, - nonCriticalExtension SEQUENCE {} OPTIONAL + nonCriticalExtension RRCConnectionReconfiguration-NB-v16f0-IEs OPTIONAL +} + +RRCConnectionReconfiguration-NB-v16f0-IEs ::= SEQUENCE { + obtainLocationNB-r16 ENUMERATED {setup} OPTIONAL, -- Need OR + nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -472,9 +483,15 @@ RRCConnectionReestablishmentComplete-NB-v1610-IEs ::= SEQUENCE { RRCConnectionReestablishmentComplete-NB-v1710-IEs ::= SEQUENCE { gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, + nonCriticalExtension RRCConnectionReestablishmentComplete-NB-v1800-IEs OPTIONAL +} + +RRCConnectionReestablishmentComplete-NB-v1800-IEs ::= SEQUENCE { + gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL } + RRCConnectionReestablishmentRequest-NB ::= SEQUENCE { criticalExtensions CHOICE { rrcConnectionReestablishmentRequest-r13 @@ -676,6 +693,11 @@ RRCConnectionResume-NB-r13-IEs ::= SEQUENCE { RRCConnectionResume-NB-v1610-IEs ::= SEQUENCE { fullConfig-r16 ENUMERATED {true} OPTIONAL, -- Cond 5GC + nonCriticalExtension RRCConnectionResume-NB-v16f0-IEs OPTIONAL +} + +RRCConnectionResume-NB-v16f0-IEs ::= SEQUENCE { + obtainLocationNB-r16 ENUMERATED {setup} OPTIONAL, -- Need OR nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -707,7 +729,12 @@ RRCConnectionResumeComplete-NB-v1610-IEs ::= SEQUENCE { } RRCConnectionResumeComplete-NB-v1710-IEs ::= SEQUENCE { - gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL + gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension RRCConnectionResumeComplete-NB-v1800-IEs OPTIONAL +} + +RRCConnectionResumeComplete-NB-v1800-IEs ::= SEQUENCE { + gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -809,7 +836,12 @@ RRCConnectionSetupComplete-NB-v1610-IEs ::= SEQUENCE { } RRCConnectionSetupComplete-NB-v1710-IEs ::= SEQUENCE { - gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL + gnss-ValidityDuration-r17 GNSS-ValidityDuration-r17 OPTIONAL, nonCriticalExtension RRCConnectionSetupComplete-NB-v1800-IEs OPTIONAL +} + +RRCConnectionSetupComplete-NB-v1800-IEs ::= SEQUENCE { + gnss-PositionFixDuration-r18 GNSS-PositionFixDuration-r18 OPTIONAL, + nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -907,7 +939,8 @@ SystemInformation-NB-r13-IEs ::= SEQUENCE { sib23-v1530 SystemInformationBlockType23-NB-r15, sib27-v1610 SystemInformationBlockType27-NB-r16, sib31-v1700 SystemInformationBlockType31-NB-r17, - sib32-v1700 SystemInformationBlockType32-NB-r17 + sib32-v1700 SystemInformationBlockType32-NB-r17, + sib33-v1800 SystemInformationBlockType33-NB-r18 }, lateNonCriticalExtension OCTET STRING OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL @@ -1054,7 +1087,9 @@ SIB-Type-NB-r13 ::= ENUMERATED { SIB-Type-NB-v1530 ::= ENUMERATED { sibType23-NB-r15, sibType27-NB-r16, sibType31-NB-r17, - sibType32-NB-r17, spare4, spare3, spare2, spare1} + sibType32-NB-r17, sibType33-NB-r18, spare3, spare2, + spare1 +} CellSelectionInfo-NB-v1350 ::= SEQUENCE { delta-RxLevMin-v1350 INTEGER (-8..-1) @@ -1201,6 +1236,8 @@ SystemInformationBlockType2-NB-r13 ::= SEQUENCE { cp-PUR-5GC-r16 ENUMERATED {true} OPTIONAL, -- Need OR up-PUR-5GC-r16 ENUMERATED {true} OPTIONAL, -- Need OR rai-ActivationEnh-r16 ENUMERATED {true} OPTIONAL -- Need OR + ]], + [[ gnss-PositionFixDurationReporting-r18 ENUMERATED {true} OPTIONAL -- Need OR ]] } @@ -1240,6 +1277,8 @@ SystemInformationBlockType3-NB-r13 ::= SEQUENCE { ]], [[ connMeasConfig-r17 ConnMeasConfig-NB-r17 OPTIONAL, -- Need OR t-Service-r17 TimeOffsetUTC-r17 OPTIONAL -- Need OR + ]], + [[ satelliteAssistanceInfo-r18 SEQUENCE (SIZE(1..maxSat-r17)) OF SatelliteId-r18 OPTIONAL -- Need OR ]] } @@ -1293,12 +1332,15 @@ SystemInformationBlockType5-NB-r13 ::= SEQUENCE { lateNonCriticalExtension OCTET STRING OPTIONAL, ..., [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP + ]], + [[ interFreqCarrierFreqList-v1820 InterFreqCarrierFreqList-NB-v1820 OPTIONAL -- Need OP ]] } InterFreqCarrierFreqList-NB-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-r13 +InterFreqCarrierFreqList-NB-v1820 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-v1820 InterFreqCarrierFreqInfo-NB-r13 ::= SEQUENCE { dl-CarrierFreq-r13 CarrierFreq-NB-r13, @@ -1323,6 +1365,10 @@ OPTIONAL, -- Need OP ]] } +InterFreqCarrierFreqInfo-NB-v1820 ::= SEQUENCE { + satelliteAssistanceInfo-r18 SEQUENCE (SIZE(1..maxSat-r17)) OF SatelliteId-r18 OPTIONAL -- Need OR +} + InterFreqNeighCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellId InterFreqNeighCellList-NB-v1530 ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo-NB-v1530 @@ -1607,13 +1653,26 @@ CarrierFreqsGERAN-NB-r16 ::= SEQUENCE { SystemInformationBlockType31-NB-r17 ::= SEQUENCE { servingSatelliteInfo-r17 ServingSatelliteInfo-r17, lateNonCriticalExtension OCTET STRING OPTIONAL, - ... + ..., + [[ servingSatelliteInfo-v1820 ServingSatelliteInfo-v1820 OPTIONAL -- Need OR + ]] } SystemInformationBlockType32-NB-r17 ::= SEQUENCE { satelliteInfoList-r17 SatelliteInfoList-r17 OPTIONAL, -- Need OR lateNonCriticalExtension OCTET STRING OPTIONAL, + ..., + [[ satelliteInfoList-v1800 SatelliteInfoList-v1800 OPTIONAL -- Need OR + ]] +} + + +SystemInformationBlockType33-NB-r18 ::= SEQUENCE { + neighSatelliteInfoList-r18 NeighSatelliteInfoList-r18 OPTIONAL, -- Need OR + neighValidityDuration-r18 ENUMERATED {s5, s10, s15, s20, s25, s30, s35, s40, + s45, s50, s55, s60, s120, s180, s240, s900} + OPTIONAL, -- Need OP lateNonCriticalExtension OCTET STRING OPTIONAL, ... } @@ -1872,11 +1931,19 @@ NPDSCH-ConfigDedicated-NB-v1710 ::= SEQUENCE { npdsch-16QAM-Config-r17 CHOICE {release NULL, setup NPDSCH-16QAM-Config-NB-r17} } +NPDSCH-ConfigDedicated-NB-v1800 ::= SEQUENCE { + downlinkHARQ-FeedbackDisabledBitmap-NB-r18 + CHOICE {release NULL, setup DownlinkHARQ-FeedbackDisabledBitmap-NB-r18} OPTIONAL, -- Need ON + downlinkHARQ-FeedbackDisabledDCI-NB-r18 ENUMERATED {true} OPTIONAL -- Need OR +} + NPDSCH-16QAM-Config-NB-r17 ::=SEQUENCE{ nrs-PowerRatio-r17 ENUMERATED {dB-6, dB-4dot77, dB-3, dB-1dot77, dB0, dB1, dB2, dB3} OPTIONAL, -- Need OR nrs-PowerRatioWithCRS-r17 ENUMERATED {dB-6, dB-4dot77, dB-3, dB-1dot77, dB0, dB1, dB2, dB3} OPTIONAL -- Cond InBand } +DownlinkHARQ-FeedbackDisabledBitmap-NB-r18 ::= BIT STRING (SIZE(2)) + NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE { nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7}, @@ -2110,12 +2177,17 @@ NPUSCH-ConfigDedicated-NB-v1700 ::= SEQUENCE { npusch-16QAM-Config-r17 ENUMERATED {true} OPTIONAL -- Need OR } +NPUSCH-ConfigDedicated-NB-v1800 ::= SEQUENCE { + uplinkHARQ-Mode-r18 CHOICE {release NULL, setup UplinkHARQ-Mode-NB-r18} +} + NPUSCH-TxDuration-NB-r17 ::= SEQUENCE { npusch-TxDuration-r17 ENUMERATED {ms2, ms4, ms8, ms16, ms32, ms64, ms128, ms256} } ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128} +UplinkHARQ-Mode-NB-r18 ::= BIT STRING (SIZE(2)) PDCP-Config-NB-r13 ::= SEQUENCE { @@ -2178,6 +2250,9 @@ PhysicalConfigDedicated-NB-r13 ::= SEQUENCE { uplinkSegmentedPrecompensationGap-r17 ENUMERATED {sym1,sl1,sl2} OPTIONAL -- Need OR ]], [[ npusch-ConfigDedicated-v1740 NPUSCH-ConfigDedicated-NB-v1700 OPTIONAL -- Need ON + ]], + [[ npdsch-ConfigDedicated-v1800 NPDSCH-ConfigDedicated-NB-v1800 OPTIONAL, -- Need ON + npusch-ConfigDedicated-v1800 NPUSCH-ConfigDedicated-NB-v1800 OPTIONAL -- Need ON ]] } @@ -2374,6 +2449,12 @@ RadioResourceConfigDedicated-NB-r13 ::= SEQUENCE { [[ schedulingRequestConfig-r15 SchedulingRequestConfig-NB-r15 OPTIONAL -- Need ON ]], [[ newUE-Identity-r16 C-RNTI OPTIONAL -- Need OP + ]], + [[ gnss-AutonomousEnabled-r18 ENUMERATED {true} OPTIONAL, -- Need OR + ul-TransmissionExtensionEnabled-r18 ENUMERATED {true} OPTIONAL, -- Need OR + ul-TransmissionExtensionValue-r18 ENUMERATED {sf500, sf750, sf1280, sf1920, + sf2560, sf5120, sf10240, spare1} + OPTIONAL -- Need OR ]] } @@ -2545,7 +2626,7 @@ SR-NPRACH-Resource-NB-r15 ::= SEQUENCE { p0-SR-r15 INTEGER (-126..24), alpha-r15 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}} -SR-SPS-BSR-Config-NB-r15 ::= CHOICE { +SR-SPS-BSR-Config-NB-r15 ::= CHOICE { release NULL, setup SEQUENCE { semiPersistSchedC-RNTI-r15 C-RNTI, @@ -2759,10 +2840,17 @@ UE-Capability-NB-v1610-IEs ::= SEQUENCE { UE-Capability-NB-v16x0-IEs ::= SEQUENCE { -- Following field is only to be used for late REL-16 extensions - lateNonCriticalExtension OCTET STRING OPTIONAL, + lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v16f0-IEs) OPTIONAL, nonCriticalExtension UE-Capability-NB-v1700-IEs OPTIONAL } +-- Late non-critical extensions +UE-EUTRA-Capability-v16f0-IEs ::= SEQUENCE { + son-Parameters-v16f0 SON-Parameters-NB-v16f0, + nonCriticalExtension SEQUENCE {} OPTIONAL +} + +-- Regular non-critical extensions UE-Capability-NB-v1700-IEs ::= SEQUENCE { coverageBasedPaging-r17 ENUMERATED {supported} OPTIONAL, phyLayerParameters-v1700 PhyLayerParameters-NB-v1700, @@ -2779,6 +2867,11 @@ UE-Capability-NB-v1710-IEs ::= SEQUENCE { UE-Capability-NB-v1720-IEs ::= SEQUENCE { ntn-Parameters-v1720 NTN-Parameters-NB-v1720, + nonCriticalExtension UE-Capability-NB-v1800-IEs OPTIONAL +} + +UE-Capability-NB-v1800-IEs ::= SEQUENCE { + ntn-Parameters-v1800 NTN-Parameters-NB-v1800 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL } @@ -2801,7 +2894,7 @@ TDD-UE-Capability-NB-v1710 ::= SEQUENCE { phyLayerParameters-v1710 PhyLayerParameters-NB-v1700 OPTIONAL } -AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, rel15, rel16, rel17, spare3, spare2, spare1, ...} +AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, rel15, rel16, rel17, rel18, spare2, spare1, ...} PDCP-Parameters-NB-r13 ::= SEQUENCE { supportedROHC-Profiles-r13 SEQUENCE { @@ -2846,6 +2939,25 @@ NTN-Parameters-NB-v1720 ::= SEQUENCE { ntn-SegmentedPrecompensationGaps-r17 ENUMERATED {sym1,sl1,sl2} OPTIONAL } +NTN-Parameters-NB-v1800 ::= SEQUENCE { + ntn-LocationBasedMeasTrigger-EFC-r18 ENUMERATED {supported} OPTIONAL, + ntn-LocationBasedMeasTrigger-EMC-r18 ENUMERATED {supported} OPTIONAL, + ntn-TimeBasedMeasTrigger-r18 ENUMERATED {supported} OPTIONAL, + ntn-RRC-HarqDisableSingleTB-r18 ENUMERATED {supported} OPTIONAL, + ntn-OverriddenHarqDisableSingleTB-r18 ENUMERATED {supported} OPTIONAL, + ntn-DCI-HarqDisableSingleTB-r18 ENUMERATED {supported} OPTIONAL, + ntn-RRC-HarqDisableMultiTB-r18 ENUMERATED {supported} OPTIONAL, + ntn-OverriddenHarqDisableMultiTB-r18 ENUMERATED {supported} OPTIONAL, + ntn-DCI-HarqDisableMultiTB-r18 ENUMERATED {supported} OPTIONAL, + ntn-UplinkHarq-ModeB-SingleTB-r18 ENUMERATED {supported} OPTIONAL, + ntn-UplinkHarq-ModeB-MultiTB-r18 ENUMERATED {supported} OPTIONAL, + ntn-HarqEnhScenarioSupport-r18 ENUMERATED {ngso,gso} OPTIONAL, + ntn-Triggered-GNSS-Fix-r18 ENUMERATED {supported} OPTIONAL, + ntn-Autonomous-GNSS-Fix-r18 ENUMERATED {supported} OPTIONAL, + ntn-UplinkTxExtension-r18 ENUMERATED {supported} OPTIONAL, + ntn-GNSS-EnhScenarioSupport-r18 ENUMERATED {ngso,gso} OPTIONAL +} + MeasParameters-NB-r16 ::= SEQUENCE { dl-ChannelQualityReporting-r16 ENUMERATED {supported} OPTIONAL } @@ -2934,6 +3046,10 @@ SON-Parameters-NB-r16 ::= SEQUENCE { rach-Report-r16 ENUMERATED {supported} OPTIONAL } +SON-Parameters-NB-v16f0 ::= SEQUENCE { + locationInfo-r16 ENUMERATED {supported} OPTIONAL +} + UE-RadioPagingInfo-NB-r13 ::= SEQUENCE { ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL, diff --git a/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn b/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn index 3c081585..df13009a 100644 --- a/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn +++ b/epan/dissectors/asn1/lte-rrc/NBIOT-UE-Variables.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.331 V17.5.0 (2023-06) +-- 3GPP TS 36.331 V18.2.0 (2024-06) NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::= diff --git a/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn b/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn index d7ea3c18..217cae94 100644 --- a/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn +++ b/epan/dissectors/asn1/lte-rrc/PC5-RRC-Definitions.asn @@ -1,4 +1,4 @@ --- 3GPP TS 36.331 V17.5.0 (2023-06) +-- 3GPP TS 36.331 V18.2.0 (2024-06) PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::= diff --git a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf index ba557c45..96c5ba5e 100644 --- a/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf +++ b/epan/dissectors/asn1/lte-rrc/lte-rrc.cnf @@ -1,6 +1,6 @@ # lte-rrc.cnf # lte-rrc conformation file -# Copyright 2008 Vincent Helfre, 2009-2023 Pascal Quantin +# Copyright 2008 Vincent Helfre, 2009-2024 Pascal Quantin #.OPT PER @@ -655,6 +655,7 @@ T-StatusProhibit WLAN-backhaulRate-r12 #.EXPORTS +CellIdListNR-r18_PDU CellsToAddModListNR-r15_PDU DL-CarrierConfigCommon-NB-r14_PDU DL-DCCH-Message_PDU @@ -703,6 +704,7 @@ VisitedCellInfoList-r12_PDU #.END #.PDU +CellIdListNR-r18 CellsToAddModListNR-r15 DL-CarrierConfigCommon-NB-r14 HandoverCommand @@ -851,9 +853,9 @@ SI-OrPSI-GERAN TYPE_PREFIX %(DEFAULT_BODY)s #.FN_BODY RAT-Type VAL_PTR = &rat_type - guint32 rat_type; + uint32_t rat_type; %(DEFAULT_BODY)s - private_data_set_rat_type(actx, (guint8)rat_type); + private_data_set_rat_type(actx, (uint8_t)rat_type); #RAT-Type ::= ENUMERATED { # eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT, @@ -888,10 +890,10 @@ SI-OrPSI-GERAN TYPE_PREFIX #.FN_FTR UE-CapabilityRAT-Container/ueCapabilityRAT-Container if(ue_cap_tvb){ - guint32 length; + uint32_t length; proto_item *item; proto_tree *subtree, *subtree2; - guint8 byte; + uint8_t byte; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_UE_CapabilityRAT_Container); switch(private_data_get_rat_type(actx)){ case RAT_Type_eutra: @@ -907,12 +909,12 @@ if(ue_cap_tvb){ /* Mobile Station Classmark 2 is formatted as TLV with the two first bytes set to 0x33 0x03 */ subtree2 = proto_tree_add_subtree(subtree, ue_cap_tvb, 0, 5, ett_lte_rrc_UE_CapabilityRAT_Container, &item, "Mobile Station Classmark 2"); - byte = tvb_get_guint8(ue_cap_tvb, 0); + byte = tvb_get_uint8(ue_cap_tvb, 0); if (byte != 0x33) { expert_add_info_format(actx->pinfo, item, &ei_lte_rrc_unexpected_type_value, "Unexpected type value (found 0x%02X)", byte); } - byte = tvb_get_guint8(ue_cap_tvb, 1); + byte = tvb_get_uint8(ue_cap_tvb, 1); if (byte != 0x03) { expert_add_info_format(actx->pinfo, item, &ei_lte_rrc_unexpected_length_value, "Unexpected length value (found %d)", byte); @@ -1100,15 +1102,15 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC %(DEFAULT_BODY)s #.FN_BODY Handover/targetRAT-Type VAL_PTR = &target_rat_type - guint32 target_rat_type; + uint32_t target_rat_type; %(DEFAULT_BODY)s - private_data_set_rat_target_type(actx, (guint8)target_rat_type); + private_data_set_rat_target_type(actx, (uint8_t)target_rat_type); #.FN_BODY Handover/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){ - guint8 byte; + uint8_t byte; proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_targetRAT_MessageContainer); switch (private_data_get_rat_target_type(actx)){ @@ -1119,7 +1121,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC break; case T_targetRAT_Type_geran: /* geran */ - byte = tvb_get_guint8(target_rat_msg_cont_tvb, 0); + byte = tvb_get_uint8(target_rat_msg_cont_tvb, 0); if (byte == 0x06) { if (gsm_a_dtap_handle) { lte_rrc_call_dissector(gsm_a_dtap_handle, target_rat_msg_cont_tvb, actx->pinfo, subtree); @@ -1127,7 +1129,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC } else { if (gsm_rlcmac_dl_handle) { tvbuff_t *gsm_rlcmac_dl_tvb = tvb_new_composite(); - guint8 *pd = (guint8 *) wmem_alloc(actx->pinfo->pool, 1); + uint8_t *pd = (uint8_t *) wmem_alloc(actx->pinfo->pool, 1); pd[0] = 0x40; tvb_composite_append(gsm_rlcmac_dl_tvb, tvb_new_child_real_data(tvb, pd, 1, 1)); tvb_composite_append(gsm_rlcmac_dl_tvb, target_rat_msg_cont_tvb); @@ -1160,7 +1162,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC #.FN_BODY Handover/nas-SecurityParamFromEUTRA VAL_PTR = &nas_sec_param_from_eutra_tvb tvbuff_t *nas_sec_param_from_eutra_tvb = NULL; - guint32 length; + uint32_t length; proto_tree *subtree; %(DEFAULT_BODY)s @@ -1175,7 +1177,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC #.FN_BODY SecurityConfigHO/handoverType/interRAT/nas-SecurityParamToEUTRA VAL_PTR = &nas_sec_param_to_eutra_tvb tvbuff_t *nas_sec_param_to_eutra_tvb = NULL; - guint32 length; + uint32_t length; proto_tree *subtree; %(DEFAULT_BODY)s @@ -1204,15 +1206,15 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC } #.FN_BODY SI-OrPSI-GERAN/si - private_data_set_si_or_psi_geran(actx, (guint8)SI_OrPSI_GERAN_si); /* SI message */ + private_data_set_si_or_psi_geran(actx, (uint8_t)SI_OrPSI_GERAN_si); /* SI message */ %(DEFAULT_BODY)s #.FN_BODY SI-OrPSI-GERAN/psi - private_data_set_si_or_psi_geran(actx, (guint8)SI_OrPSI_GERAN_psi); /* PSI message */ + private_data_set_si_or_psi_geran(actx, (uint8_t)SI_OrPSI_GERAN_psi); /* PSI message */ %(DEFAULT_BODY)s #.FN_BODY CellInfoGERAN-r9/systemInformation-r9 - private_data_set_si_or_psi_geran(actx, (guint8)SI_OrPSI_GERAN_si); /* SI message */ + private_data_set_si_or_psi_geran(actx, (uint8_t)SI_OrPSI_GERAN_si); /* SI message */ %(DEFAULT_BODY)s #.FN_BODY SystemInfoListGERAN/_item VAL_PTR = &sys_info_list_tvb @@ -1226,7 +1228,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC /* SI message */ if (gsm_a_dtap_handle) { tvbuff_t *si_tvb = tvb_new_composite(); - guint8 *pd = (guint8 *) wmem_alloc(actx->pinfo->pool, 1); + uint8_t *pd = (uint8_t *) wmem_alloc(actx->pinfo->pool, 1); pd[0] = 0x06; tvb_composite_append(si_tvb, tvb_new_child_real_data(tvb, pd, 1, 1)); tvb_composite_append(si_tvb, sys_info_list_tvb); @@ -1239,7 +1241,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC /* PSI message */ if (gsm_rlcmac_dl_handle) { tvbuff_t *gsm_rlcmac_dl_tvb = tvb_new_composite(); - guint8 *pd = (guint8 *) wmem_alloc(actx->pinfo->pool, 1); + uint8_t *pd = (uint8_t *) wmem_alloc(actx->pinfo->pool, 1); pd[0] = 0x40; tvb_composite_append(gsm_rlcmac_dl_tvb, tvb_new_child_real_data(tvb, pd, 1, 1)); tvb_composite_append(gsm_rlcmac_dl_tvb, sys_info_list_tvb); @@ -1259,7 +1261,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC #.FN_FTR SystemTimeInfoCDMA2000/cdma-SystemTime/asynchronousSystemTime if (async_system_time_tvb) { - guint64 bits; + uint64_t bits; nstime_t ts; proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_timeInfo); @@ -1276,7 +1278,7 @@ MasterInformationBlock/schedulingInfoSIB1-BR-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC #.FN_FTR SystemTimeInfoCDMA2000/cdma-SystemTime/synchronousSystemTime if (sync_system_time_tvb) { - guint64 bits; + uint64_t bits; nstime_t ts; proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_timeInfo); @@ -1323,7 +1325,7 @@ NeighCellConfig TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_neighCellCon #.FN_FTR NeighCellConfig if (neigh_cell_config_tvb) { - guint bitvalue = tvb_get_bits8(neigh_cell_config_tvb, 0, 2); + unsigned bitvalue = tvb_get_bits8(neigh_cell_config_tvb, 0, 2); actx->created_item = proto_tree_add_uint(tree, hf_index, neigh_cell_config_tvb, 0, 1, bitvalue); } @@ -1388,12 +1390,12 @@ NeighCellConfig TYPE=FT_UINT8 DISPLAY=BASE_DEC STRINGS=VALS(lte_rrc_neighCellCon %(DEFAULT_BODY)s if (gnss_tod_msec_tvb) { asn1_ctx_t asn1_ctx; - asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, actx->pinfo); - dissect_per_constrained_integer(gnss_tod_msec_tvb, 0, &asn1_ctx, tree, hf_index, 0U, 3599999U, NULL, FALSE); + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, false, actx->pinfo); + dissect_per_constrained_integer(gnss_tod_msec_tvb, 0, &asn1_ctx, tree, hf_index, 0U, 3599999U, NULL, false); } #.TYPE_ATTR -LocationInfo-r10/gnss-TOD-msec-r10 TYPE=FT_UINT24 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds +LocationInfo-r10/gnss-TOD-msec-r10 TYPE=FT_UINT24 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds) #.FN_BODY LocationInfo-r10/eag_1/verticalVelocityInfo-r15/verticalVelocity-r15 VAL_PTR = &vertical_velocity_tvb tvbuff_t *vertical_velocity_tvb = NULL; @@ -1419,17 +1421,17 @@ LogMeasResultBT-r15/bt-Addr-r15 TYPE=FT_ETHER DISPLAY=BASE_NONE actx->created_item = proto_tree_add_item(tree, hf_index, bt_Addr_tvb, 0, 6, ENC_NA); #.TYPE_ATTR -LogMeasResultBT-r15/rssi-BT-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +LogMeasResultBT-r15/rssi-BT-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.FN_BODY AbsoluteTimeInfo-r10 VAL_PTR = &abs_time_info_tvb tvbuff_t *abs_time_info_tvb = NULL; %(DEFAULT_BODY)s #.FN_FTR AbsoluteTimeInfo-r10 if (abs_time_info_tvb) { - const gchar *str, *hf_str; + const char *str, *hf_str; proto_tree *subtree; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_absTimeInfo); - str = tvb_bcd_dig_to_str(actx->pinfo->pool, abs_time_info_tvb, 0, 6, NULL, FALSE); + str = tvb_bcd_dig_to_str(actx->pinfo->pool, abs_time_info_tvb, 0, 6, NULL, false); hf_str = wmem_strdup_printf(actx->pinfo->pool, "%c%c-%c%c-%c%c %c%c:%c%c:%c%c", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7], str[8], str[9], str[10], str[11]); proto_tree_add_string(subtree, hf_lte_rrc_absolute_time, abs_time_info_tvb, 0, 6, hf_str); @@ -1514,14 +1516,14 @@ SystemInformationBlockType11/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|B } #.FN_BODY SystemInformationBlockType11/warningMessageSegmentType VAL_PTR=&segment_type - guint32 segment_type; + uint32_t segment_type; %(DEFAULT_BODY)s - private_data_set_warning_message_segment_type(actx, (guint8)segment_type); + private_data_set_warning_message_segment_type(actx, (uint8_t)segment_type); #.FN_BODY SystemInformationBlockType11/warningMessageSegmentNumber VAL_PTR=&segment_number - guint32 segment_number; + uint32_t segment_number; %(DEFAULT_BODY)s - private_data_set_warning_message_segment_number(actx, (guint8)segment_number); + private_data_set_warning_message_segment_number(actx, (uint8_t)segment_number); #.FN_BODY SystemInformationBlockType11/dataCodingScheme VAL_PTR=&data_coding_scheme_tvb tvbuff_t *data_coding_scheme_tvb = NULL; @@ -1530,10 +1532,10 @@ SystemInformationBlockType11/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|B #.FN_FTR SystemInformationBlockType11/dataCodingScheme if (data_coding_scheme_tvb) { proto_tree *subtree; - guint32 dataCodingScheme; + uint32_t dataCodingScheme; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_dataCodingScheme); dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0); - wmem_map_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)), + wmem_map_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)private_data_get_message_identifier(actx)), GUINT_TO_POINTER(dataCodingScheme)); } @@ -1545,16 +1547,16 @@ SystemInformationBlockType11/messageIdentifier TYPE=FT_UINT16 DISPLAY=BASE_DEC|B if (warning_msg_seg_tvb) { proto_tree *subtree; tvbuff_t *frag_tvb; - gpointer p_dcs; + void *p_dcs; fragment_head *frag_data = fragment_add_seq_check(<e_rrc_sib11_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo, private_data_get_message_identifier(actx), NULL, private_data_get_warning_message_segment_number(actx), tvb_reported_length(warning_msg_seg_tvb), - private_data_get_warning_message_segment_type(actx) ? FALSE : TRUE); + private_data_get_warning_message_segment_type(actx) ? false : true); subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_warningMessageSegment); frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB11 warning message", frag_data, <e_rrc_sib11_frag_items, NULL, subtree); - p_dcs = wmem_map_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx))); + p_dcs = wmem_map_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)private_data_get_message_identifier(actx))); if (frag_tvb && p_dcs) { dissect_lte_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs)); } @@ -1589,14 +1591,14 @@ SystemInformationBlockType12-r9/messageIdentifier-r9 TYPE=FT_UINT16 DISPLAY=BASE } #.FN_BODY SystemInformationBlockType12-r9/warningMessageSegmentType-r9 VAL_PTR=&segment_type - guint32 segment_type; + uint32_t segment_type; %(DEFAULT_BODY)s - private_data_set_warning_message_segment_type(actx, (guint8)segment_type); + private_data_set_warning_message_segment_type(actx, (uint8_t)segment_type); #.FN_BODY SystemInformationBlockType12-r9/warningMessageSegmentNumber-r9 VAL_PTR=&segment_number - guint32 segment_number; + uint32_t segment_number; %(DEFAULT_BODY)s - private_data_set_warning_message_segment_number(actx, (guint8)segment_number); + private_data_set_warning_message_segment_number(actx, (uint8_t)segment_number); #.FN_BODY SystemInformationBlockType12-r9/dataCodingScheme-r9 VAL_PTR=&data_coding_scheme_tvb tvbuff_t *data_coding_scheme_tvb = NULL; @@ -1605,10 +1607,10 @@ SystemInformationBlockType12-r9/messageIdentifier-r9 TYPE=FT_UINT16 DISPLAY=BASE #.FN_FTR SystemInformationBlockType12-r9/dataCodingScheme-r9 if (data_coding_scheme_tvb) { proto_tree *subtree; - guint32 dataCodingScheme; + uint32_t dataCodingScheme; subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_dataCodingScheme); dataCodingScheme = dissect_cbs_data_coding_scheme(data_coding_scheme_tvb, actx->pinfo, subtree, 0); - wmem_map_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx)), + wmem_map_insert(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)private_data_get_message_identifier(actx)), GUINT_TO_POINTER(dataCodingScheme)); } @@ -1620,16 +1622,16 @@ SystemInformationBlockType12-r9/messageIdentifier-r9 TYPE=FT_UINT16 DISPLAY=BASE if (warning_msg_seg_tvb) { proto_tree *subtree; tvbuff_t *frag_tvb; - gpointer p_dcs; + void *p_dcs; fragment_head *frag_data = fragment_add_seq_check(<e_rrc_sib12_reassembly_table, warning_msg_seg_tvb, 0, actx->pinfo, private_data_get_message_identifier(actx), NULL, private_data_get_warning_message_segment_number(actx), tvb_reported_length(warning_msg_seg_tvb), - private_data_get_warning_message_segment_type(actx) ? FALSE : TRUE); + private_data_get_warning_message_segment_type(actx) ? false : true); subtree = proto_item_add_subtree(actx->created_item, ett_lte_rrc_warningMessageSegment); frag_tvb = process_reassembled_data(warning_msg_seg_tvb, 0, actx->pinfo, "Reassembled SIB12 warning message", frag_data, <e_rrc_sib12_frag_items, NULL, subtree); - p_dcs = wmem_map_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((guint)private_data_get_message_identifier(actx))); + p_dcs = wmem_map_lookup(lte_rrc_etws_cmas_dcs_hash, GUINT_TO_POINTER((unsigned)private_data_get_message_identifier(actx))); if (frag_tvb && p_dcs) { dissect_lte_rrc_warningMessageSegment(frag_tvb, subtree, actx->pinfo, GPOINTER_TO_UINT(p_dcs)); } @@ -1647,21 +1649,21 @@ SystemInformationBlockType16-r11/timeInfo-r11/dayLightSavingTime-r11 TYPE=FT_UIN #.FN_FTR SystemInformationBlockType16-r11/timeInfo-r11/dayLightSavingTime-r11 if (daylight_saving_time_tvb) { - guint bitvalue = tvb_get_bits8(daylight_saving_time_tvb, 0, 2); + unsigned 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 -SystemInformationBlockType16-r11/timeInfo-r11/leapSeconds-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +SystemInformationBlockType16-r11/timeInfo-r11/leapSeconds-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR SystemInformationBlockType16-r11/timeInfo-r11/localTimeOffset-r11 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_localTimeOffset_fmt) #.FN_BODY SystemInformationBlockType16-r11/timeInfo-r11/timeInfoUTC-r11 VAL_PTR=&timeInfo - guint64 timeInfo; + uint64_t timeInfo; proto_tree *subtree; nstime_t ts; - guint32 old_offset = offset; + uint32_t old_offset = offset; %(DEFAULT_BODY)s #.FN_FTR SystemInformationBlockType16-r11/timeInfo-r11/timeInfoUTC-r11 @@ -1690,19 +1692,19 @@ WLAN-Identifiers-r12/bssid-r12 TYPE=FT_ETHER WLAN-Identifiers-r12/hessid-r12 TYPE=FT_ETHER #.TYPE_ATTR -RRCConnectionReject-r8-IEs/waitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +RRCConnectionReject-r8-IEs/waitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR -RRCConnectionReject-v1020-IEs/extendedWaitTime-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +RRCConnectionReject-v1020-IEs/extendedWaitTime-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR -RRCConnectionRelease-v1020-IEs/extendedWaitTime-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +RRCConnectionRelease-v1020-IEs/extendedWaitTime-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR -RRCConnectionRelease-v1540-IEs/waitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +RRCConnectionRelease-v1540-IEs/waitTime DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR -RRCEarlyDataComplete-r15-IEs/extendedWaitTime-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +RRCEarlyDataComplete-r15-IEs/extendedWaitTime-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR SystemInformationBlockType1/cellSelectionInfo/q-RxLevMinOffset STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals) @@ -1711,19 +1713,19 @@ SystemInformationBlockType1/cellSelectionInfo/q-RxLevMinOffset STRINGS=VALS(lte_ CellSelectionInfoCE1-v1360/delta-RxLevMinCE1-v1360 STRINGS=VALS(lte_rrc_delta_RxLevMin_vals) #.TYPE_ATTR -CellSelectionInfo-v920/q-QualMinOffset-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +CellSelectionInfo-v920/q-QualMinOffset-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR MobilityControlInfo/eag_4/schedulingInfoSIB1-BR-r14 TYPE=FT_UINT32 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_schedulingInfoSIB1_BR_r13_vals_ext #.TYPE_ATTR -TrafficPatternInfo-r14/timingOffset-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_milliseconds +TrafficPatternInfo-r14/timingOffset-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_milliseconds) #.FN_BODY TrafficPatternInfo-r14/messageSize-r14 VAL_PTR = &messageSize_r14_tvb HF_INDEX = -1 tvbuff_t *messageSize_r14_tvb = NULL; %(DEFAULT_BODY)s if (messageSize_r14_tvb) { - guint bitvalue = tvb_get_bits8(messageSize_r14_tvb, 0, 6); + unsigned bitvalue = tvb_get_bits8(messageSize_r14_tvb, 0, 6); actx->created_item = proto_tree_add_uint(tree, hf_index, messageSize_r14_tvb, 0, 1, bitvalue); } @@ -1734,7 +1736,7 @@ TrafficPatternInfo-r14/messageSize-r14 TYPE=FT_UINT8 DISPLAY=BASE_DEC|BASE_EXT_S RLF-Report-r9/eag_1/timeConnFailure-r10 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_timeConnFailure_r10_fmt) #.TYPE_ATTR -LogMeasInfo-r10/relativeTimeStamp-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +LogMeasInfo-r10/relativeTimeStamp-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.FN_BODY LogMeasInfo-r10/eag_9/uncomBarPreMeasResult-r17 VAL_PTR = &sensor_meas_info_tvb tvbuff_t *sensor_meas_info_tvb = NULL; @@ -1754,7 +1756,7 @@ LogMeasInfo-r10/relativeTimeStamp-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS= tvbuff_t *n_r12_tvb = NULL; %(DEFAULT_BODY)s if (n_r12_tvb) { - guint bitvalue = tvb_get_bits8(n_r12_tvb, 0, 3); + unsigned bitvalue = tvb_get_bits8(n_r12_tvb, 0, 3); actx->created_item = proto_tree_add_uint(tree, hf_index, n_r12_tvb, 0, 1, bitvalue); } @@ -1775,10 +1777,10 @@ BLER-Result-r12/blocksReceived-r12/m-r12 TYPE=FT_UINT8 DISPLAY=BASE_CUSTOM STRIN BLER-Range-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_BLER_Range_r12_vals_ext #.TYPE_ATTR -TimeSinceFailure-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +TimeSinceFailure-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR -TimeUntilReconnection-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +TimeUntilReconnection-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.FIELD_ATTR CarrierFreqUTRA-FDD/q-RxLevMin ABBREV=utra_q_RxLevMin @@ -1805,22 +1807,22 @@ CarrierFreqUTRA-TDD-r12/q-RxLevMin-r12 ABBREV=utra_q_RxLevMin_r12 CarrierFreqUTRA-TDD-r12/q-RxLevMin-r12 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_utra_q_RxLevMin_vals_ext #.TYPE_ATTR -CarrierFreqUTRA-FDD/p-MaxUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +CarrierFreqUTRA-FDD/p-MaxUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -CarrierFreqUTRA-FDD-Ext-r12/p-MaxUTRA-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +CarrierFreqUTRA-FDD-Ext-r12/p-MaxUTRA-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -CarrierFreqUTRA-TDD/p-MaxUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +CarrierFreqUTRA-TDD/p-MaxUTRA DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -CarrierFreqUTRA-TDD-r12/p-MaxUTRA-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +CarrierFreqUTRA-TDD-r12/p-MaxUTRA-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -CarrierFreqUTRA-FDD/q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +CarrierFreqUTRA-FDD/q-QualMin DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -CarrierFreqUTRA-FDD-Ext-r12/q-QualMin-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +CarrierFreqUTRA-FDD-Ext-r12/q-QualMin-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.FIELD_ATTR CarrierFreqsInfoGERAN/commonInfo/q-RxLevMin ABBREV=geran_q_RxLevMin @@ -1829,7 +1831,7 @@ CarrierFreqsInfoGERAN/commonInfo/q-RxLevMin ABBREV=geran_q_RxLevMin CarrierFreqsInfoGERAN/commonInfo/q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_geran_q_RxLevMin_vals_ext #.TYPE_ATTR -CarrierFreqsInfoGERAN/commonInfo/p-MaxGERAN DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +CarrierFreqsInfoGERAN/commonInfo/p-MaxGERAN DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR CQI-ReportConfig/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals) @@ -1841,16 +1843,16 @@ CQI-ReportConfig-r10/nomPDSCH-RS-EPRE-Offset STRINGS=VALS(lte_rrc_nomPDSCH_RS_EP CQI-ReportConfigSCell-r10/nomPDSCH-RS-EPRE-Offset-r10 STRINGS=VALS(lte_rrc_nomPDSCH_RS_EPRE_Offset_vals) #.TYPE_ATTR -P-C-AndCBSR-r11/p-C-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +P-C-AndCBSR-r11/p-C-r11 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -P-C-AndCBSR-r13/p-C-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +P-C-AndCBSR-r13/p-C-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -P-C-AndCBSR-r15 /p-C-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +P-C-AndCBSR-r15 /p-C-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -CSI-RS-Config-r10/csi-RS-r10/setup/p-C-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +CSI-RS-Config-r10/csi-RS-r10/setup/p-C-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.FN_BODY IP-Address-r13/ipv4-r13 VAL_PTR=&ipv4_tvb HF_INDEX=-1 tvbuff_t *ipv4_tvb = NULL; @@ -1892,19 +1894,19 @@ IP-Address-r13/ipv6-r13 TYPE=FT_IPv6 DISPLAY=BASE_NONE } /* Clear out state */ - drx_config->configured = FALSE; + drx_config->configured = false; } #.FN_BODY MAC-MainConfig/eag_1/sr-ProhibitTimer-r9 VAL_PTR=&timer - guint32 timer; + uint32_t timer; %(DEFAULT_BODY)s #.TYPE_ATTR -MAC-MainConfig/eag_1/sr-ProhibitTimer-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_sr_periods +MAC-MainConfig/eag_1/sr-ProhibitTimer-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_sr_periods) #.TYPE_ATTR -MAC-MainConfig/eag_9/shortTTI-AndSPT-r15/setup/ssr-ProhibitTimer-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_sr_periods +MAC-MainConfig/eag_9/shortTTI-AndSPT-r15/setup/ssr-ProhibitTimer-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_sr_periods) #.FN_BODY MAC-MainConfig/eag_2/mac-MainConfig-v1020/extendedBSR-Sizes-r10 mac_lte_info* p_mac_lte_info; @@ -1914,95 +1916,95 @@ MAC-MainConfig/eag_9/shortTTI-AndSPT-r15/setup/ssr-ProhibitTimer-r15 DISPLAY=BAS p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* Tell MAC to use extended BSR sizes configuration */ - set_mac_lte_extended_bsr_sizes(p_mac_lte_info->ueid, TRUE, actx->pinfo); + set_mac_lte_extended_bsr_sizes(p_mac_lte_info->ueid, true, actx->pinfo); } #.TYPE_ATTR -PDSCH-ConfigCommon/referenceSignalPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +PDSCH-ConfigCommon/referenceSignalPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -P-Max DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +P-Max DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -P-MaxNR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +P-MaxNR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -SPS-ConfigUL/setup/p0-Persistent/p0-NominalPUSCH-Persistent DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +SPS-ConfigUL/setup/p0-Persistent/p0-NominalPUSCH-Persistent DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -SPS-ConfigUL/setup/p0-Persistent/p0-UE-PUSCH-Persistent DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +SPS-ConfigUL/setup/p0-Persistent/p0-UE-PUSCH-Persistent DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-NominalPUSCH-PersistentSubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-NominalPUSCH-PersistentSubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-UE-PUSCH-PersistentSubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +SPS-ConfigUL/setup/eag_1/p0-PersistentSubframeSet2-r12/setup/p0-UE-PUSCH-PersistentSubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR UplinkPowerControlCommon/deltaPreambleMsg3 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals) #.TYPE_ATTR -UplinkPowerControlCommon/p0-NominalPUSCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +UplinkPowerControlCommon/p0-NominalPUSCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR UplinkPowerControlCommonSCell-v1130/deltaPreambleMsg3-r11 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals) #.TYPE_ATTR -UplinkPowerControlCommon/p0-NominalPUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +UplinkPowerControlCommon/p0-NominalPUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -UplinkPowerControlCommon-v1610/p0-NominalSRS-Add-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +UplinkPowerControlCommon-v1610/p0-NominalSRS-Add-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -UplinkPowerControlCommonPSCell-r12/p0-NominalPUCCH-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +UplinkPowerControlCommonPSCell-r12/p0-NominalPUCCH-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -UplinkPowerControlCommonSCell-v1310/p0-NominalPUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +UplinkPowerControlCommonSCell-v1310/p0-NominalPUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -UplinkPowerControlCommonSCell-r10/p0-NominalPUSCH-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +UplinkPowerControlCommonSCell-r10/p0-NominalPUSCH-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -UplinkPowerControlCommonPUSCH-LessCell-v1430/p0-Nominal-PeriodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +UplinkPowerControlCommonPUSCH-LessCell-v1430/p0-Nominal-PeriodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -UplinkPowerControlCommonPUSCH-LessCell-v1430/p0-Nominal-AperiodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +UplinkPowerControlCommonPUSCH-LessCell-v1430/p0-Nominal-AperiodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -UplinkPowerControlDedicated/p0-UE-PUSCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +UplinkPowerControlDedicated/p0-UE-PUSCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -UplinkPowerControlDedicated/p0-UE-PUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +UplinkPowerControlDedicated/p0-UE-PUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-NominalPUSCH-SubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-NominalPUSCH-SubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-UE-PUSCH-SubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +UplinkPowerControlDedicated-v1250/set2PowerControlParameter/setup/p0-UE-PUSCH-SubframeSet2-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -UplinkPowerControlDedicated-v1530/p0-UE-PUSCH-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +UplinkPowerControlDedicated-v1530/p0-UE-PUSCH-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -UplinkPUSCH-LessPowerControlDedicated-v1430/p0-UE-PeriodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +UplinkPUSCH-LessPowerControlDedicated-v1430/p0-UE-PeriodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -UplinkPUSCH-LessPowerControlDedicated-v1430/p0-UE-AperiodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +UplinkPUSCH-LessPowerControlDedicated-v1430/p0-UE-AperiodicSRS-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -UplinkPowerControlAddSRS-r16/p0-UE-SRS-Add-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +UplinkPowerControlAddSRS-r16/p0-UE-SRS-Add-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -UplinkPowerControlDedicatedSCell-r10/p0-UE-PUSCH-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +UplinkPowerControlDedicatedSCell-r10/p0-UE-PUSCH-r10 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -UplinkPowerControlDedicatedSCell-v1310/p0-UE-PUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +UplinkPowerControlDedicatedSCell-v1310/p0-UE-PUCCH DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR CellSelectionInfoNFreq-r13/q-RxLevMinOffset STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals) #.TYPE_ATTR -Q-QualMin-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +Q-QualMin-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR Q-RxLevMin DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_q_RxLevMin_vals_ext @@ -2014,22 +2016,22 @@ CarrierFreqNR-r15/q-RxLevMin-r15 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_r CarrierFreqNR-r15/q-RxLevMinSUL-r15 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_q_RxLevMin_vals_ext #.TYPE_ATTR -CarrierFreqNR-r15/q-QualMin-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +CarrierFreqNR-r15/q-QualMin-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -Q-OffsetRangeInterRAT DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +Q-OffsetRangeInterRAT DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR ReselectionThreshold DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_ReselectionThreshold_vals_ext #.TYPE_ATTR -ReselectionThresholdQ-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +ReselectionThresholdQ-r9 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +T-Reselection DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR -T-ReselectionEUTRA-CE-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +T-ReselectionEUTRA-CE-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR Hysteresis DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_Hysteresis_vals_ext @@ -2143,10 +2145,10 @@ MeasResultWLAN-r13/availableAdmissionCapacityWLAN-r13 DISPLAY=BASE_CUSTOM STRING MeasResultForECID-r9/ue-RxTxTimeDiffResult-r9 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_ue_RxTxTimeDiffResult_fmt) #.TYPE_ATTR -MeasResultForRSSI-r13/channelOccupancy-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent +MeasResultForRSSI-r13/channelOccupancy-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent) #.TYPE_ATTR -MeasResultForRSSI-NR-r16/channelOccupancyNR-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_percent +MeasResultForRSSI-NR-r16/channelOccupancyNR-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_percent) #.TYPE_ATTR UL-PDCP-DelayResult-r13/excessDelay-r13 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_excessDelay_r13_vals_ext @@ -2164,32 +2166,174 @@ MeasResultSSTD-r13/subframeBoundaryOffsetResult-r13 DISPLAY=BASE_CUSTOM STRINGS= #.TYPE_ATTR SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) +#.FN_FTR DLDedicatedMessageSegment-r16-IEs + if (lte_rrc_reassemble_dcch_segments) { + uint32_t ueid, id, count; + rlc_lte_info *p_rlc_lte_info; + pdcp_lte_info *p_pdcp_lte_info; + mac_lte_info *p_mac_lte_info; + fragment_head *frag_data; + tvbuff_t *frag_tvb, *reassembled_tvb; + wmem_tree_key_t key[3]; + + if ((p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0)) != NULL) { + ueid = p_mac_lte_info->ueid; + } else if ((p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rlc_lte, 0)) != NULL) { + ueid = p_rlc_lte_info->ueid; + } else if ((p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_pdcp_lte, 0)) != NULL) { + ueid = p_pdcp_lte_info->ueid; + } else { + ueid = 0; + } + key[0].length = 1; + key[0].key = &ueid; + key[1].length = 1; + key[1].key = &actx->pinfo->num; + key[2].length = 0; + key[2].key = NULL; + if (!PINFO_FD_VISITED(actx->pinfo)) { + void *value; + + if (wmem_map_lookup_extended(lte_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER((ueid<<16)|(1<<15)), NULL, &value)) { + count = GPOINTER_TO_UINT(value); + } else { + count = 0; + } + if (private_data_get_dcch_segment_number(actx) == 0) { + /* new segmented message */ + count++; + wmem_map_insert(lte_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER((ueid<<16)|(1<<15)), GUINT_TO_POINTER(count)); + } + id = (ueid<<16)|(1<<15)|(count&0x7fff); + wmem_tree_insert32_array(lte_rrc_dcch_segment_id_tree, key, GUINT_TO_POINTER(id)); + } else { + id = GPOINTER_TO_UINT(wmem_tree_lookup32_array(lte_rrc_dcch_segment_id_tree, key)); + } + if ((frag_tvb = private_data_get_dcch_segment(actx)) != NULL) { + frag_data = fragment_add_seq_check(<e_rrc_dcch_segment_reassembly_table, frag_tvb, 0, actx->pinfo, + id, NULL, private_data_get_dcch_segment_number(actx), + tvb_reported_length(frag_tvb), + !private_data_get_dcch_segment_last(actx)); + reassembled_tvb = process_reassembled_data(frag_tvb, 0, actx->pinfo, "Reassembled DL Dedicated Message", + frag_data, <e_rrc_dcch_segment_frag_items, NULL, tree); + if (reassembled_tvb) { + dissect_lte_rrc_DL_DCCH_Message_PDU(reassembled_tvb, actx->pinfo, tree, NULL); + } + } + } + +#.FN_BODY DLDedicatedMessageSegment-r16-IEs/segmentNumber-r16 VAL_PTR=&value + uint32_t value; +%(DEFAULT_BODY)s + private_data_set_dcch_segment_number(actx, (uint8_t)value); + +#.FN_BODY DLDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentContainer-r16 VAL_PTR=&segment + tvbuff_t *segment; +%(DEFAULT_BODY)s + private_data_set_dcch_segment(actx, segment); + +#.FN_BODY DLDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentType-r16 VAL_PTR=&value + uint32_t value; +%(DEFAULT_BODY)s + private_data_set_dcch_segment_last(actx, (value > 0) ? true : false); + +#.FN_FTR ULDedicatedMessageSegment-r16-IEs + if (lte_rrc_reassemble_dcch_segments) { + uint32_t ueid, id, count; + rlc_lte_info *p_rlc_lte_info; + pdcp_lte_info *p_pdcp_lte_info; + mac_lte_info *p_mac_lte_info; + fragment_head *frag_data; + tvbuff_t *frag_tvb, *reassembled_tvb; + wmem_tree_key_t key[3]; + + if ((p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0)) != NULL) { + ueid = p_mac_lte_info->ueid; + } else if ((p_rlc_lte_info = (rlc_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_rlc_lte, 0)) != NULL) { + ueid = p_rlc_lte_info->ueid; + } else if ((p_pdcp_lte_info = (pdcp_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_pdcp_lte, 0)) != NULL) { + ueid = p_pdcp_lte_info->ueid; + } else { + ueid = 0; + } + key[0].length = 1; + key[0].key = &ueid; + key[1].length = 1; + key[1].key = &actx->pinfo->num; + key[2].length = 0; + key[2].key = NULL; + if (!PINFO_FD_VISITED(actx->pinfo)) { + void *value; + + if (wmem_map_lookup_extended(lte_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER(ueid<<16), NULL, &value)) { + count = GPOINTER_TO_UINT(value); + } else { + count = 0; + } + if (private_data_get_dcch_segment_number(actx) == 0) { + /* new segmented message */ + count++; + wmem_map_insert(lte_rrc_dcch_segment_ueid_count_hash, GUINT_TO_POINTER(ueid<<16), GUINT_TO_POINTER(count)); + } + id = (ueid<<16)|(count&0x7fff); + wmem_tree_insert32_array(lte_rrc_dcch_segment_id_tree, key, GUINT_TO_POINTER(id)); + } else { + id = GPOINTER_TO_UINT(wmem_tree_lookup32_array(lte_rrc_dcch_segment_id_tree, key)); + } + if ((frag_tvb = private_data_get_dcch_segment(actx)) != NULL) { + frag_data = fragment_add_seq_check(<e_rrc_dcch_segment_reassembly_table, frag_tvb, 0, actx->pinfo, + id, NULL, private_data_get_dcch_segment_number(actx), + tvb_reported_length(frag_tvb), + !private_data_get_dcch_segment_last(actx)); + reassembled_tvb = process_reassembled_data(frag_tvb, 0, actx->pinfo, "Reassembled UL Dedicated Message", + frag_data, <e_rrc_dcch_segment_frag_items, NULL, tree); + if (reassembled_tvb) { + dissect_lte_rrc_UL_DCCH_Message_PDU(reassembled_tvb, actx->pinfo, tree, NULL); + } + } + } + +#.FN_BODY ULDedicatedMessageSegment-r16-IEs/segmentNumber-r16 VAL_PTR=&value + uint32_t value; +%(DEFAULT_BODY)s + private_data_set_dcch_segment_number(actx, (uint8_t)value); + +#.FN_BODY ULDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentContainer-r16 VAL_PTR=&segment + tvbuff_t *segment; +%(DEFAULT_BODY)s + private_data_set_dcch_segment(actx, segment); + +#.FN_BODY ULDedicatedMessageSegment-r16-IEs/rrc-MessageSegmentType-r16 VAL_PTR=&value + uint32_t value; +%(DEFAULT_BODY)s + private_data_set_dcch_segment_last(actx, (value > 0) ? true : false); + #.FN_HDR MasterInformationBlock col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "MasterInformationBlock"); #.FN_HDR SystemInformation - if (private_data_get_bcch_dl_sch_msg(actx) == FALSE) { + if (private_data_get_bcch_dl_sch_msg(actx) == false) { col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformation ["); } #.FN_BODY SystemInformation %(DEFAULT_BODY)s - if (private_data_get_bcch_dl_sch_msg(actx) == FALSE) { + if (private_data_get_bcch_dl_sch_msg(actx) == false) { col_append_str(actx->pinfo->cinfo, COL_INFO, " ]"); } #.FN_HDR SystemInformationBlockType1 - if (private_data_get_bcch_dl_sch_msg(actx) == FALSE) { + if (private_data_get_bcch_dl_sch_msg(actx) == false) { col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformationBlockType1"); } #.FN_HDR SystemInformation-BR-r13 - private_data_set_bcch_dl_sch_msg(actx, TRUE); + private_data_set_bcch_dl_sch_msg(actx, true); col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformation-BR-r13 ["); #.FN_BODY SystemInformation-BR-r13 @@ -2199,12 +2343,12 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) #.FN_HDR SystemInformationBlockType1-BR-r13 - private_data_set_bcch_dl_sch_msg(actx, TRUE); + private_data_set_bcch_dl_sch_msg(actx, true); col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformationBlockType1-BR-r13"); #.FN_HDR SystemInformation-MBMS-r14 - private_data_set_bcch_dl_sch_msg(actx, TRUE); + private_data_set_bcch_dl_sch_msg(actx, true); col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SystemInformation-MBMS-r14 ["); #.FN_BODY SystemInformation-MBMS-r14 @@ -2336,6 +2480,10 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB32"); +#.FN_HDR SystemInformationBlockType33-r18 + + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB33"); + #.FN_HDR SystemInformationBlockPos-r15 col_append_str(actx->pinfo->cinfo, COL_INFO, " SIBPos"); @@ -2430,19 +2578,48 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DLDedicatedMessageSegment-r16"); #.FN_HDR RRCConnectionReestablishmentRequest - + /* Inform RLC & PDCP - need UE identifier */ + mac_lte_info *p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); + if (p_mac_lte_info) { + /* Tell RLC this UE is trying to (re)connect */ + rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid); + /* And PDCP. Only SRBs and UM (not AM) DRBs */ + pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true); + } col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionReestablishmentRequest"); #.FN_HDR RRCConnectionRequest - + /* Inform RLC & PDCP - need UE identifier */ + mac_lte_info *p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); + if (p_mac_lte_info) { + /* Tell RLC this UE is trying to (re)connect */ + rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid); + /* And PDCP */ + pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true); + } col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionRequest"); #.FN_HDR RRCConnectionResumeRequest-r13 - + /* Inform RLC & PDCP - need UE identifier */ + mac_lte_info *p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); + if (p_mac_lte_info) { + /* Tell RLC this UE is trying to (re)connect */ + rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid); + /* And PDCP */ + /* TODO: more complicated, skip PDCP reset for now */ + // pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true); + } col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionResumeRequest-r13"); #.FN_HDR RRCEarlyDataRequest-r15 - + /* Inform RLC & PDCP - need UE identifier */ + mac_lte_info *p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); + if (p_mac_lte_info) { + /* Tell RLC this UE is trying to (re)connect */ + rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid); + /* And PDCP */ + pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, false); + } col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCEarlyDataRequest-r15"); #.FN_HDR CSFBParametersRequestCDMA2000 @@ -2598,7 +2775,7 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) #.FN_BODY Paging/pagingRecordList /* Number of items is (last 3 bits of first byte and first bit of second) + 1 */ - guint16 number_of_records = ((tvb_get_ntohs(tvb, 0) >> 7) & 0x0f) + 1; + uint16_t number_of_records = ((tvb_get_ntohs(tvb, 0) >> 7) & 0x0f) + 1; %(DEFAULT_BODY)s col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%u PagingRecord%%s)", number_of_records, plurality(number_of_records, "", "s")); @@ -2609,14 +2786,14 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) #.FN_BODY MasterInformationBlock/systemFrameNumber VAL_PTR=&value_tvb tvbuff_t *value_tvb = NULL; - guint32 sfn; + uint32_t sfn; %(DEFAULT_BODY)s /* Show SFN in info column */ - sfn = tvb_get_guint8(value_tvb, 0); + sfn = tvb_get_uint8(value_tvb, 0); col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (SFN=%%u)", sfn); #.FN_BODY SystemInformationBlockType1/systemInfoValueTag VAL_PTR=&value - guint32 value; + uint32_t value; %(DEFAULT_BODY)s /* Track whether systemInfoValue has changed since last seen, indicating new SI config TODO: add link back to previous config and (if known) time since previous config @@ -2627,15 +2804,15 @@ SoundingRS-UL-ConfigDedicated/setup/duration STRINGS=TFS(<e_rrc_duration_val) wmem_map_insert(lte_rrc_system_info_value_changed_hash, GUINT_TO_POINTER(actx->pinfo->num), GUINT_TO_POINTER(system_info_value_current+1)); } - system_info_value_current_set = TRUE; + system_info_value_current_set = true; system_info_value_current = value; } else { /* Look up indication of changed info value from hash table */ - gpointer p_previous = wmem_map_lookup(lte_rrc_system_info_value_changed_hash, GUINT_TO_POINTER(actx->pinfo->num)); + void *p_previous = wmem_map_lookup(lte_rrc_system_info_value_changed_hash, GUINT_TO_POINTER(actx->pinfo->num)); if (p_previous != NULL) { /* Subtract one from stored result to get previous value */ - guint32 previous = GPOINTER_TO_UINT(p_previous) - 1; + uint32_t previous = GPOINTER_TO_UINT(p_previous) - 1; expert_add_info_format(actx->pinfo, actx->created_item, &ei_lte_rrc_si_info_value_changed, "SI Info Value changed (now %%u, was %%u)", value, previous); } @@ -2703,29 +2880,29 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr #.FN_BODY DRB-Identity VAL_PTR=&value - guint32 value; + uint32_t value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { - mapping->drbid = (guint8)value; + mapping->drbid = (uint8_t)value; } #.FN_BODY RLC-Config VAL_PTR=&value - guint32 value; + uint32_t value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlcMode = (value==0) ? RLC_AM_MODE : RLC_UM_MODE; - mapping->rlcMode_present = TRUE; + mapping->rlcMode_present = true; if (mapping->rlcMode == RLC_AM_MODE) { mapping->pdcp_sn_size = 12; - mapping->pdcp_sn_size_present = TRUE; + mapping->pdcp_sn_size_present = true; } } #.FN_BODY RLC-Config-v1250/ul-extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field - gboolean ext_li_field; + bool ext_li_field; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { @@ -2733,7 +2910,7 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr } #.FN_BODY RLC-Config-v1250/dl-extended-RLC-LI-Field-r12 VAL_PTR=&ext_li_field - gboolean ext_li_field; + bool ext_li_field; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { @@ -2741,7 +2918,7 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr } #.FN_BODY RLC-Config-v1310/ul-extended-RLC-AM-SN-r13 VAL_PTR=&ext_am_sn - gboolean ext_am_sn; + bool ext_am_sn; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { @@ -2749,7 +2926,7 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr } #.FN_BODY RLC-Config-v1310/dl-extended-RLC-AM-SN-r13 VAL_PTR=&ext_am_sn - gboolean ext_am_sn; + bool ext_am_sn; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { @@ -2757,51 +2934,51 @@ SL-V2X-ConfigCommon-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rr } #.FN_BODY DRB-ToAddMod/logicalChannelIdentity VAL_PTR=&value - guint32 value; + uint32_t value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { - mapping->lcid = (guint8)value; - mapping->lcid_present = TRUE; + mapping->lcid = (uint8_t)value; + mapping->lcid_present = true; } #.FN_BODY DRB-ToAddMod/eag_5/logicalChannelIdentity-r15 VAL_PTR=&value - guint32 value; + uint32_t value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { - mapping->lcid = (guint8)value; - mapping->lcid_present = TRUE; + mapping->lcid = (uint8_t)value; + mapping->lcid_present = true; } #.FN_BODY SN-FieldLength VAL_PTR=&value - guint32 value; + uint32_t value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->um_sn_length = (value==0) ? 5 : 10; - mapping->um_sn_length_present = TRUE; + mapping->um_sn_length_present = true; } #.FN_BODY LogicalChannelConfig/ul-SpecificParameters/priority VAL_PTR=&value - guint32 value; + uint32_t value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->ul_priority = value; - mapping->ul_priority_present = TRUE; + mapping->ul_priority_present = true; } #.TYPE_ATTR LWA-Config-r13/eag_1/wt-MAC-Address-r14 TYPE=FT_ETHER #.FN_BODY PDCP-Config/rlc-UM/pdcp-SN-Size VAL_PTR=&value - guint32 value; + uint32_t value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->pdcp_sn_size = (value==0) ? 7 : 12; - mapping->pdcp_sn_size_present = TRUE; + mapping->pdcp_sn_size_present = true; } #.FN_BODY PDCP-Config/eag_2/pdcp-SN-Size-v1130 @@ -2809,7 +2986,7 @@ LWA-Config-r13/eag_1/wt-MAC-Address-r14 TYPE=FT_ETHER %(DEFAULT_BODY)s if (mapping != NULL) { mapping->pdcp_sn_size = 15; - mapping->pdcp_sn_size_present = TRUE; + mapping->pdcp_sn_size_present = true; } #.FN_BODY PDCP-Config/eag_4/pdcp-SN-Size-v1310 @@ -2817,14 +2994,14 @@ LWA-Config-r13/eag_1/wt-MAC-Address-r14 TYPE=FT_ETHER %(DEFAULT_BODY)s if (mapping != NULL) { mapping->pdcp_sn_size = 18; - mapping->pdcp_sn_size_present = TRUE; + mapping->pdcp_sn_size_present = true; } #.TYPE_ATTR -LBT-Config-r14/maxEnergyDetectionThreshold-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +LBT-Config-r14/maxEnergyDetectionThreshold-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -LBT-Config-r14/energyDetectionThresholdOffset-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +LBT-Config-r14/energyDetectionThresholdOffset-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.FN_BODY NeighCellsInfo-r12/transmissionModeList-r12 VAL_PTR=&tm_list_tvb tvbuff_t *tm_list_tvb=NULL; @@ -2850,7 +3027,7 @@ LBT-Config-r14/energyDetectionThresholdOffset-r14 DISPLAY=BASE_DEC|BASE_UNIT_STR p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); if (p_mac_lte_info != NULL) { /* Tell MAC to use simultaneous PUCCH/PUSCH configuration */ - set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, private_data_get_simult_pucch_pusch_cell_type(actx), TRUE, actx->pinfo); + set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, private_data_get_simult_pucch_pusch_cell_type(actx), true, actx->pinfo); } #.TYPE_RENAME @@ -2862,13 +3039,13 @@ PUCCH-ConfigDedicated-r13/pucch-Format-r13/channelSelection-r13/n1PUCCH-AN-CS-r1 private_data_set_ra_preambles(actx, 0); #.FN_BODY RACH-ConfigCommon/preambleInfo/numberOfRA-Preambles VAL_PTR=&value - guint value; + unsigned value; %(DEFAULT_BODY)s /* This is mandatory, store value */ private_data_set_ra_preambles(actx, value); #.FN_BODY RACH-ConfigCommon/preambleInfo/preamblesGroupAConfig/sizeOfRA-PreamblesGroupA VAL_PTR=&value - guint ra_value, value; + unsigned ra_value, value; %(DEFAULT_BODY)s /* Retrived stored value for RA (both Group A & Group B) */ ra_value = private_data_get_ra_preambles(actx); @@ -2886,172 +3063,172 @@ PUCCH-ConfigDedicated-r13/pucch-Format-r13/channelSelection-r13/n1PUCCH-AN-CS-r1 private_data_set_ra_preambles(actx, 0); #.TYPE_ATTR -RACH-ConfigCommon-v1250/txFailParams-r12/connEstFailOffset-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +RACH-ConfigCommon-v1250/txFailParams-r12/connEstFailOffset-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.FN_BODY DRX-Config/setup/onDurationTimer VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s /* Set 'configured' state so that config can be examine once complete! */ - config->configured = TRUE; + config->configured = true; config->onDurationTimer = drx_lookup_onDurationTimer(value); #.FN_BODY DRX-Config/setup/drx-InactivityTimer VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->inactivityTimer = drx_lookup_inactivityTimer(value); #.FN_BODY DRX-Config/setup/drx-RetransmissionTimer VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->retransmissionTimer = drx_lookup_retransmissionTimer(value); #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->longCycle = drx_lookup_longCycle(value); #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf10 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf20 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf32 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf40 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf64 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf80 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf128 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf160 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf256 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf320 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf512 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf640 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf1024 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf1280 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf2048 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/longDRX-CycleStartOffset/sf2560 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config/setup/shortDRX/shortDRX-Cycle VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s - config->shortCycleConfigured = TRUE; + config->shortCycleConfigured = true; config->shortCycle = drx_lookup_shortCycle(value); #.FN_BODY DRX-Config/setup/shortDRX/drxShortCycleTimer VAL_PTR=&timer - guint32 timer; + uint32_t timer; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->shortCycleTimer = timer; #.TYPE_ATTR -DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_short_drx_cycles +DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_short_drx_cycles) #.FN_BODY DRX-Config-v1130/drx-RetransmissionTimer-v1130 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->retransmissionTimer = 0; #.FN_BODY DRX-Config-v1130/longDRX-CycleStartOffset-v1130 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->longCycle = drx_lookup_longCycle_v1130(value); #.FN_BODY DRX-Config-v1130/longDRX-CycleStartOffset-v1130/sf60-v1130 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config-v1130/longDRX-CycleStartOffset-v1130/sf70-v1130 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; #.FN_BODY DRX-Config-v1130/shortDRX-Cycle-v1130 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s /* Presumably config->shortCycleConfigured will be set... */ @@ -3063,7 +3240,7 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S config->longCycle = 60; #.FN_BODY DRX-Config-v1310/longDRX-CycleStartOffset-v1310/sf60-v1310 VAL_PTR=&value - guint32 value; + uint32_t value; drx_config_t* config = private_data_get_drx_config(actx); %(DEFAULT_BODY)s config->cycleOffset = value; @@ -3087,10 +3264,10 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S /* as the UE could have locally dropped the previous RRC Connection */ set_mac_lte_drx_config_release(p_mac_lte_info->ueid, actx->pinfo); /* Also tell MAC to release extended BSR sizes configuration */ - set_mac_lte_extended_bsr_sizes(p_mac_lte_info->ueid, FALSE, actx->pinfo); + set_mac_lte_extended_bsr_sizes(p_mac_lte_info->ueid, false, actx->pinfo); /* Also tell MAC to release simutaneous PUCCH/PUSCH configuration */ - set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, SIMULT_PUCCH_PUSCH_PCELL, FALSE, actx->pinfo); - set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, SIMULT_PUCCH_PUSCH_PSCELL, FALSE, actx->pinfo); + set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, SIMULT_PUCCH_PUSCH_PCELL, false, actx->pinfo); + set_mac_lte_simult_pucch_pusch(p_mac_lte_info->ueid, SIMULT_PUCCH_PUSCH_PSCELL, false, actx->pinfo); /* TODO: also release PDCP security config here */ } %(DEFAULT_BODY)s @@ -3114,25 +3291,25 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S } #.FN_BODY CipheringAlgorithm-r12 VAL_PTR=&value - guint32 value; + uint32_t value; pdcp_lte_security_info_t *p_security_algorithms; %(DEFAULT_BODY)s p_security_algorithms = private_data_pdcp_security_algorithms(actx); p_security_algorithms->ciphering = (enum lte_security_ciphering_algorithm_e)value; #.FN_BODY SecurityAlgorithmConfig/integrityProtAlgorithm VAL_PTR=&value - guint32 value; + uint32_t value; pdcp_lte_security_info_t *p_security_algorithms; %(DEFAULT_BODY)s p_security_algorithms = private_data_pdcp_security_algorithms(actx); p_security_algorithms->integrity = (enum lte_security_integrity_algorithm_e)value; #.FN_BODY SchedulingRequestConfig/setup/sr-ConfigIndex VAL_PTR=&value - guint32 value; - guint16 periodicity, subframe_offset; + uint32_t value; + uint16_t periodicity, subframe_offset; proto_item *ti; proto_tree *subtree; - gint index_offset = offset; + int index_offset = offset; %(DEFAULT_BODY)s /* Break config index into its parts */ sr_lookup_configindex(value, &periodicity, &subframe_offset); @@ -3144,11 +3321,11 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S proto_item_set_generated(ti); #.FN_BODY SchedulingRequestConfigSCell-r13/setup/sr-ConfigIndex-r13 VAL_PTR=&value - guint32 value; - guint16 periodicity, subframe_offset; + uint32_t value; + uint16_t periodicity, subframe_offset; proto_item *ti; proto_tree *subtree; - gint index_offset = offset; + int index_offset = offset; %(DEFAULT_BODY)s /* Break config index into its parts */ sr_lookup_configindex(value, &periodicity, &subframe_offset); @@ -3160,7 +3337,7 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S proto_item_set_generated(ti); #.FN_BODY FreqBandIndicator VAL_PTR=&value - guint32 value; + uint32_t value; %(DEFAULT_BODY)s set_freq_band_indicator(value, actx); @@ -3173,8 +3350,8 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S %(DEFAULT_BODY)s mappings = private_data_meas_capabilities_item_band_mappings(actx); if (mappings->number_of_interfreq_serving_read < mappings->number_of_bands_set) { - guint16 serving_band = mappings->band_by_item[mappings->number_of_interfreq_serving_read]; - guint16 target_band = mappings->band_by_item[mappings->number_of_interfreq_target_read++]; + uint16_t serving_band = mappings->band_by_item[mappings->number_of_interfreq_serving_read]; + uint16_t target_band = mappings->band_by_item[mappings->number_of_interfreq_target_read++]; if (mappings->number_of_interfreq_target_read == mappings->number_of_bands_set) { mappings->number_of_interfreq_target_read = 0; mappings->number_of_interfreq_serving_read++; @@ -3194,16 +3371,16 @@ DRX-Config/setup/shortDRX/drxShortCycleTimer DISPLAY=BASE_DEC|BASE_UNIT_STRING S mappings->number_of_bands_set = 0; #.FN_BODY ReleaseCause VAL_PTR=&value - guint32 value; + uint32_t value; %(DEFAULT_BODY)s col_append_fstr(actx->pinfo->cinfo, COL_INFO, " [cause=%%s]", - val_to_str(value, lte_rrc_ReleaseCause_vals, "Unknown")); + val_to_str_const(value, lte_rrc_ReleaseCause_vals, "Unknown")); #.TYPE_ATTR LWA-Parameters-r13/wlan-MAC-Address-r13 TYPE=FT_ETHER #.TYPE_ATTR -VisitedCellInfo-r12/timeSpent-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +VisitedCellInfo-r12/timeSpent-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.FN_BODY WLAN-OffloadConfig-r12/thresholdChannelUtilization-r12/thresholdChannelUtilizationLow-r12 %(DEFAULT_BODY)s @@ -3259,19 +3436,19 @@ SL-CBR-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_SL_CBR_r14_fmt) SL-CommResourcePoolV2X-r14/threshS-RSSI-CBR-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_threshS_RSSI_CBR_r14_fmt) #.TYPE_ATTR -SL-DiscResourcePool-r12/eag_1/txParamsAddNeighFreq-r13/setup/referenceSignalPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +SL-DiscResourcePool-r12/eag_1/txParamsAddNeighFreq-r13/setup/referenceSignalPower DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR SL-DiscSysInfoReport-r13/cellSelectionInfo-r13/q-RxLevMinOffset-r13 STRINGS=VALS(lte_rrc_q_RxLevMinOffset_vals) #.TYPE_ATTR -SL-DiscSysInfoReport-r13/referenceSignalPower-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +SL-DiscSysInfoReport-r13/referenceSignalPower-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR SL-V2X-InterFreqUE-Config-r14/offsetDFN-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_offsetDFN_r14_fmt) #.TYPE_ATTR -P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.FN_BODY RRCConnectionReconfiguration-v1510-IEs/nr-Config-r15/setup/nr-SecondaryCellGroupConfig-r15 VAL_PTR = &rrc_reconfiguration_tvb tvbuff_t *rrc_reconfiguration_tvb = NULL; @@ -3658,6 +3835,27 @@ P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm #.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib1-10-v1700 private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_1_10); +#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib2-17a-v1770 + private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_2_17a); + +#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib2-18a-v1770 + private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_2_18a); + +#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib2-20a-v1770 + private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_2_20a); + +#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib1-11-v1800 + private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_1_11); + +#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib1-12-v1800 + private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_1_12); + +#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib2-26-v1800 + private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_2_26); + +#.FN_HDR PosSystemInformation-r15-IEs/posSIB-TypeAndInfo-r15/_item/posSib2-27-v1800 + private_data_set_pos_sib_type(actx, LPP_POS_SIB_TYPE_2_27); + #.FN_BODY SystemInformationBlockPos-r15/assistanceDataSIB-Element-r15 VAL_PTR = &assist_data_sib_elem_tvb tvbuff_t *assist_data_sib_elem_tvb = NULL; @@ -3685,7 +3883,7 @@ P0-SL-r12 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm } #.TYPE_ATTR -TimeOffsetUTC-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +TimeOffsetUTC-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.FN_BODY OverheatingAssistance-v1610/overheatingAssistanceForSCG-r16 VAL_PTR = &overheating_assist_for_scg_tvb tvbuff_t *overheating_assist_for_scg_tvb = NULL; @@ -3711,6 +3909,20 @@ TimeOffsetUTC-r17 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds dissect_nr_rrc_CondReconfigExecCondSCG_r17_PDU(cond_reconfig_exec_cond_scg_tvb, actx->pinfo, subtree, NULL); } +#.FN_BODY ReferenceLocation-r18 VAL_PTR = &ellipsoid_point_tvb + tvbuff_t *ellipsoid_point_tvb = NULL; +%(DEFAULT_BODY)s + if (ellipsoid_point_tvb) { + dissect_lpp_Ellipsoid_Point_PDU(ellipsoid_point_tvb, actx->pinfo, tree, NULL); + } + +#.FN_BODY RACH-ReportNR-r18 VAL_PTR = &ra_reportlist_tvb + tvbuff_t *ra_reportlist_tvb = NULL; +%(DEFAULT_BODY)s + if (ra_reportlist_tvb) { + dissect_nr_rrc_RA_ReportList_r16_PDU(ra_reportlist_tvb, actx->pinfo, tree, NULL); + } + # # EUTRA-Sidelink-Preconf # @@ -3809,15 +4021,48 @@ SL-V2X-PreconfigCommPool-r14/threshS-RSSI-CBR-r14 DISPLAY=BASE_CUSTOM STRINGS=CF col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEInformationRequest-NB-r16"); #.FN_HDR RRCConnectionReestablishmentRequest-NB + /* Inform RLC & PDCP - need UE identifier */ + mac_lte_info *p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); + if (p_mac_lte_info) { + /* Tell RLC this UE is trying to (re)connect */ + rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid); + /* And PDCP. Only SRBs and UM (not AM) DRBs */ + pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true); + } col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionReestablishmentRequest-NB"); #.FN_HDR RRCConnectionRequest-NB + /* Inform RLC & PDCP - need UE identifier */ + mac_lte_info *p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); + if (p_mac_lte_info) { + /* Tell RLC this UE is trying to (re)connect */ + rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid); + /* And PDCP */ + pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true); + } col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionRequest-NB"); #.FN_HDR RRCConnectionResumeRequest-NB + /* Inform RLC & PDCP - need UE identifier */ + mac_lte_info *p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); + if (p_mac_lte_info) { + /* Tell RLC this UE is trying to (re)connect */ + rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid); + /* And PDCP */ + /* TODO: more complicated, skip PDCP reset for now */ + // pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, true); + } col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCConnectionResumeRequest-NB"); #.FN_HDR RRCEarlyDataRequest-NB-r15 + /* Inform RLC & PDCP - need UE identifier */ + mac_lte_info *p_mac_lte_info = (mac_lte_info *)p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_mac_lte, 0); + if (p_mac_lte_info) { + /* Tell RLC this UE is trying to (re)connect */ + rlc_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid); + /* And PDCP */ + pdcp_lte_reset_ue_bearers(actx->pinfo, p_mac_lte_info->ueid, false); + } col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCEarlyDataRequest-NB-r15"); #.FN_HDR SCPTMConfiguration-NB-r14 @@ -3868,6 +4113,9 @@ SL-V2X-PreconfigCommPool-r14/threshS-RSSI-CBR-r14 DISPLAY=BASE_CUSTOM STRINGS=CF #.FN_HDR SystemInformationBlockType32-NB-r17 col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB32"); +#.FN_HDR SystemInformationBlockType33-NB-r18 + col_append_str(actx->pinfo->cinfo, COL_INFO, " SIB33"); + #.TYPE_ATTR MasterInformationBlock-NB/schedulingInfoSIB1-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_schedulingInfoSIB1_NB_r13_vals_ext @@ -3875,16 +4123,16 @@ MasterInformationBlock-NB/schedulingInfoSIB1-r13 TYPE=FT_UINT32 DISPLAY=BASE_DEC MasterInformationBlock-TDD-NB-r15/schedulingInfoSIB1-r15 TYPE=FT_UINT32 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_schedulingInfoSIB1_NB_r13_vals_ext #.TYPE_ATTR -RRCConnectionReject-NB-r13-IEs/extendedWaitTime-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +RRCConnectionReject-NB-r13-IEs/extendedWaitTime-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR -RRCConnectionRelease-NB-r13-IEs/extendedWaitTime-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +RRCConnectionRelease-NB-r13-IEs/extendedWaitTime-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR -RRCConnectionRelease-NB-v1430-IEs/extendedWaitTime-CPdata-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +RRCConnectionRelease-NB-v1430-IEs/extendedWaitTime-CPdata-r14 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR -RRCEarlyDataComplete-NB-r15-IEs/extendedWaitTime-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds +RRCEarlyDataComplete-NB-r15-IEs/extendedWaitTime-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_seconds) #.TYPE_ATTR CellSelectionInfo-NB-v1350/delta-RxLevMin-v1350 STRINGS=VALS(lte_rrc_delta_RxLevMin_vals) @@ -3905,16 +4153,16 @@ InterFreqCarrierFreqInfo-NB-r13/eag_1/delta-RxLevMin-v1350 STRINGS=VALS(lte_rrc_ AB-Config-NB-r13/ab-Category-r13 STRINGS=VALS(lte_rrc_eab_category_vals) #.TYPE_ATTR -NPDSCH-ConfigCommon-NB-r13/nrs-Power-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +NPDSCH-ConfigCommon-NB-r13/nrs-Power-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR -RACH-ConfigCommon-NB-r13/connEstFailOffset-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +RACH-ConfigCommon-NB-r13/connEstFailOffset-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR -SR-WithoutHARQ-ACK-Config-NB-r15/setup/sr-ProhibitTimer-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_sr_periods +SR-WithoutHARQ-ACK-Config-NB-r15/setup/sr-ProhibitTimer-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_sr_periods) #.TYPE_ATTR -SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.FN_BODY DRB-ToAddMod-NB-r13 struct mac_lte_info *p_mac_lte_info; @@ -3957,9 +4205,9 @@ SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlcMode = RLC_AM_MODE; - mapping->rlcMode_present = TRUE; + mapping->rlcMode_present = true; mapping->pdcp_sn_size = 7; - mapping->pdcp_sn_size_present = TRUE; + mapping->pdcp_sn_size_present = true; } #.FN_BODY RLC-Config-NB-r13/um-Bi-Directional-r15 @@ -3967,11 +4215,11 @@ SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlcMode = RLC_UM_MODE; - mapping->rlcMode_present = TRUE; + mapping->rlcMode_present = true; mapping->um_sn_length = 5; - mapping->um_sn_length_present = TRUE; + mapping->um_sn_length_present = true; mapping->pdcp_sn_size = 7; - mapping->pdcp_sn_size_present = TRUE; + mapping->pdcp_sn_size_present = true; } #.FN_BODY RLC-Config-NB-r13/um-Uni-Directional-UL-r15 @@ -3979,11 +4227,11 @@ SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlcMode = RLC_UM_MODE; - mapping->rlcMode_present = TRUE; + mapping->rlcMode_present = true; mapping->um_sn_length = 5; - mapping->um_sn_length_present = TRUE; + mapping->um_sn_length_present = true; mapping->pdcp_sn_size = 7; - mapping->pdcp_sn_size_present = TRUE; + mapping->pdcp_sn_size_present = true; } #.FN_BODY RLC-Config-NB-r13/um-Uni-Directional-DL-r15 @@ -3991,39 +4239,39 @@ SR-NPRACH-Resource-NB-r15/p0-SR-r15 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&u %(DEFAULT_BODY)s if (mapping != NULL) { mapping->rlcMode = RLC_UM_MODE; - mapping->rlcMode_present = TRUE; + mapping->rlcMode_present = true; mapping->um_sn_length = 5; - mapping->um_sn_length_present = TRUE; + mapping->um_sn_length_present = true; mapping->pdcp_sn_size = 7; - mapping->pdcp_sn_size_present = TRUE; + mapping->pdcp_sn_size_present = true; } #.FN_BODY DRB-ToAddMod-NB-r13/logicalChannelIdentity-r13 VAL_PTR=&value - guint32 value; + uint32_t value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { - mapping->lcid = (guint8)value; - mapping->lcid_present = TRUE; + mapping->lcid = (uint8_t)value; + mapping->lcid_present = true; } #.FN_BODY LogicalChannelConfig-NB-r13/priority-r13 VAL_PTR=&value - guint32 value; + uint32_t value; drb_mapping_t *mapping = private_data_get_drb_mapping(actx); %(DEFAULT_BODY)s if (mapping != NULL) { mapping->ul_priority = value; - mapping->ul_priority_present = TRUE; + mapping->ul_priority_present = true; } #.TYPE_ATTR -UplinkPowerControlCommon-NB-r13/p0-NominalNPUSCH-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm +UplinkPowerControlCommon-NB-r13/p0-NominalNPUSCH-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_dbm) #.TYPE_ATTR UplinkPowerControlCommon-NB-r13/deltaPreambleMsg3-r13 STRINGS=VALS(lte_rrc_deltaPreambleMsg3_vals) #.TYPE_ATTR -UplinkPowerControlDedicated-NB-r13/p0-UE-NPUSCH-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +UplinkPowerControlDedicated-NB-r13/p0-UE-NPUSCH-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) #.TYPE_ATTR ReselectionThreshold-NB-v1360 DISPLAY=BASE_DEC|BASE_EXT_STRING STRINGS=<e_rrc_ReselectionThreshold_NB_vals_ext @@ -4035,4 +4283,4 @@ NRSRP-Range-NB-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_NRSRP_Range_NB_r1 NRSRQ-Range-NB-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lte_rrc_NRSRQ_Range_NB_r14_fmt) #.TYPE_ATTR -PUR-Config-NB-r16/pur-PhysicalConfig-r16/p0-UE-NPUSCH-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_decibels +PUR-Config-NB-r16/pur-PhysicalConfig-r16/p0-UE-NPUSCH-r16 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=UNS(&units_decibels) diff --git a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c index 72d8992e..a391b9cf 100644 --- a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c +++ b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c @@ -1,9 +1,9 @@ /* packet-lte-rrc-template.c * Routines for Evolved Universal Terrestrial Radio Access (E-UTRA); * Radio Resource Control (RRC) protocol specification - * (3GPP TS 36.331 V17.5.0 Release 17) packet dissection + * (3GPP TS 36.331 V18.2.0 Release 18) packet dissection * Copyright 2008, Vincent Helfre - * Copyright 2009-2023, Pascal Quantin + * Copyright 2009-2024, Pascal Quantin * * Wireshark - Network traffic analyzer * By Gerald Combs <gerald@wireshark.org> @@ -25,9 +25,12 @@ #include <epan/exceptions.h> #include <epan/show_exception.h> #include <epan/proto_data.h> +#include <epan/tfs.h> +#include <epan/unit_strings.h> #include <wsutil/str_util.h> #include <wsutil/epochs.h> +#include <wsutil/array.h> #include "packet-per.h" #include "packet-rrc.h" @@ -48,24 +51,28 @@ void proto_register_lte_rrc(void); void proto_reg_handoff_lte_rrc(void); -static dissector_handle_t nas_eps_handle = NULL; -static dissector_handle_t nas_5gs_handle = NULL; -static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle = NULL; -static dissector_handle_t rrc_sys_info_cont_handle = NULL; -static dissector_handle_t gsm_a_dtap_handle = NULL; -static dissector_handle_t gsm_rlcmac_dl_handle = NULL; -static dissector_handle_t nr_rrc_reconf_handle = NULL; +static dissector_handle_t nas_eps_handle; +static dissector_handle_t nas_5gs_handle; +static dissector_handle_t rrc_irat_ho_to_utran_cmd_handle; +static dissector_handle_t rrc_sys_info_cont_handle; +static dissector_handle_t gsm_a_dtap_handle; +static dissector_handle_t gsm_rlcmac_dl_handle; +static dissector_handle_t nr_rrc_reconf_handle; static dissector_handle_t lte_rrc_conn_reconf_handle; static dissector_handle_t lte_rrc_dl_ccch_handle; -static wmem_map_t *lte_rrc_etws_cmas_dcs_hash = NULL; +static wmem_map_t *lte_rrc_etws_cmas_dcs_hash; /* Keep track of where/how the System Info value has changed */ -static wmem_map_t *lte_rrc_system_info_value_changed_hash = NULL; -static guint8 system_info_value_current; -static gboolean system_info_value_current_set; +static wmem_map_t *lte_rrc_system_info_value_changed_hash; +static uint8_t system_info_value_current; +static bool system_info_value_current_set; -static gboolean lte_rrc_nas_in_root_tree; +static wmem_map_t *lte_rrc_dcch_segment_ueid_count_hash; +static wmem_tree_t *lte_rrc_dcch_segment_id_tree; + +static bool lte_rrc_nas_in_root_tree; +static bool lte_rrc_reassemble_dcch_segments; extern int proto_mac_lte; extern int proto_rlc_lte; @@ -76,275 +83,289 @@ extern int proto_pdcp_lte; #include "packet-lte-rrc-val.h" /* Initialize the protocol and registered fields */ -static int proto_lte_rrc = -1; +static int proto_lte_rrc; #include "packet-lte-rrc-hf.c" -static int hf_lte_rrc_eutra_cap_feat_group_ind_1 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_2 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_3 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_4 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_5 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_6 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_7 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_8 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_9 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_10 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_11 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_12 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_13 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_14 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_15 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_16 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_17 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_18 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_19 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_20 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_21 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_22 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_23 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_24 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_25 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_26 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_27 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_28 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_29 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_30 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_31 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_32 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_33 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_34 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_35 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_36 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_37 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_38 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_39 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_40 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_41 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_42 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_43 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_44 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_45 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_46 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_47 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_48 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_49 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_50 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_51 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_52 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_53 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_54 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_55 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_56 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_57 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_58 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_59 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_60 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_61 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_62 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_63 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_64 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_101 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_102 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_103 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_104 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_105 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_106 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_107 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_108 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_109 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_110 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_111 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_112 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_113 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_114 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_115 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_116 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_117 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_118 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_119 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_120 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_121 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_122 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_123 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_124 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_125 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_126 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_127 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_128 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_129 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_130 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_131 = -1; -static int hf_lte_rrc_eutra_cap_feat_group_ind_132 = -1; -static int hf_lte_rrc_serialNumber_gs = -1; -static int hf_lte_rrc_serialNumber_msg_code = -1; -static int hf_lte_rrc_serialNumber_upd_nb = -1; -static int hf_lte_rrc_warningType_value = -1; -static int hf_lte_rrc_warningType_emergency_user_alert = -1; -static int hf_lte_rrc_warningType_popup = -1; -static int hf_lte_rrc_warningMessageSegment_nb_pages = -1; -static int hf_lte_rrc_warningMessageSegment_decoded_page = -1; -static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1 = -1; -static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2 = -1; -static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1 = -1; -static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2 = -1; -static int hf_lte_rrc_aperiodicCSI_Reporting_r13_bit1 = -1; -static int hf_lte_rrc_aperiodicCSI_Reporting_r13_bit2 = -1; -static int hf_lte_rrc_codebook_HARQ_ACK_r13_bit1 = -1; -static int hf_lte_rrc_codebook_HARQ_ACK_r13_bit2 = -1; -static int hf_lte_rrc_sr_config_periodicity = -1; -static int hf_lte_rrc_sr_config_subframe_offset = -1; -static int hf_lte_rrc_cdma_time = -1; -static int hf_lte_rrc_utc_time = -1; -static int hf_lte_rrc_local_time = -1; -static int hf_lte_rrc_absolute_time = -1; -static int hf_lte_rrc_transmissionModeList_r12_tm1 = -1; -static int hf_lte_rrc_transmissionModeList_r12_tm2 = -1; -static int hf_lte_rrc_transmissionModeList_r12_tm3 = -1; -static int hf_lte_rrc_transmissionModeList_r12_tm4 = -1; -static int hf_lte_rrc_transmissionModeList_r12_tm6 = -1; -static int hf_lte_rrc_transmissionModeList_r12_tm8 = -1; -static int hf_lte_rrc_transmissionModeList_r12_tm9 = -1; -static int hf_lte_rrc_transmissionModeList_r12_tm10 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_0 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_1 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_2 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_3 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_4 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_5 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_6 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_7 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_8 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_9 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_10 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_11 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_12 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_13 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_14 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_15 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_16 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_17 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_18 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_19 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_20 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_21 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_22 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_23 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_24 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_25 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_26 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_27 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_28 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_29 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_30 = -1; -static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_31 = -1; -static int hf_lte_rrc_sib11_fragments = -1; -static int hf_lte_rrc_sib11_fragment = -1; -static int hf_lte_rrc_sib11_fragment_overlap = -1; -static int hf_lte_rrc_sib11_fragment_overlap_conflict = -1; -static int hf_lte_rrc_sib11_fragment_multiple_tails = -1; -static int hf_lte_rrc_sib11_fragment_too_long_fragment = -1; -static int hf_lte_rrc_sib11_fragment_error = -1; -static int hf_lte_rrc_sib11_fragment_count = -1; -static int hf_lte_rrc_sib11_reassembled_in = -1; -static int hf_lte_rrc_sib11_reassembled_length = -1; -static int hf_lte_rrc_sib11_reassembled_data = -1; -static int hf_lte_rrc_sib12_fragments = -1; -static int hf_lte_rrc_sib12_fragment = -1; -static int hf_lte_rrc_sib12_fragment_overlap = -1; -static int hf_lte_rrc_sib12_fragment_overlap_conflict = -1; -static int hf_lte_rrc_sib12_fragment_multiple_tails = -1; -static int hf_lte_rrc_sib12_fragment_too_long_fragment = -1; -static int hf_lte_rrc_sib12_fragment_error = -1; -static int hf_lte_rrc_sib12_fragment_count = -1; -static int hf_lte_rrc_sib12_reassembled_in = -1; -static int hf_lte_rrc_sib12_reassembled_length = -1; -static int hf_lte_rrc_sib12_reassembled_data = -1; -static int hf_lte_rrc_measGapPatterns_r15_bit1 = -1; -static int hf_lte_rrc_measGapPatterns_r15_bit2 = -1; -static int hf_lte_rrc_measGapPatterns_r15_bit3 = -1; -static int hf_lte_rrc_measGapPatterns_r15_bit4 = -1; -static int hf_lte_rrc_measGapPatterns_r15_bit5 = -1; -static int hf_lte_rrc_measGapPatterns_r15_bit6 = -1; -static int hf_lte_rrc_measGapPatterns_r15_bit7 = -1; -static int hf_lte_rrc_measGapPatterns_r15_bit8 = -1; +static int hf_lte_rrc_eutra_cap_feat_group_ind_1; +static int hf_lte_rrc_eutra_cap_feat_group_ind_2; +static int hf_lte_rrc_eutra_cap_feat_group_ind_3; +static int hf_lte_rrc_eutra_cap_feat_group_ind_4; +static int hf_lte_rrc_eutra_cap_feat_group_ind_5; +static int hf_lte_rrc_eutra_cap_feat_group_ind_6; +static int hf_lte_rrc_eutra_cap_feat_group_ind_7; +static int hf_lte_rrc_eutra_cap_feat_group_ind_8; +static int hf_lte_rrc_eutra_cap_feat_group_ind_9; +static int hf_lte_rrc_eutra_cap_feat_group_ind_10; +static int hf_lte_rrc_eutra_cap_feat_group_ind_11; +static int hf_lte_rrc_eutra_cap_feat_group_ind_12; +static int hf_lte_rrc_eutra_cap_feat_group_ind_13; +static int hf_lte_rrc_eutra_cap_feat_group_ind_14; +static int hf_lte_rrc_eutra_cap_feat_group_ind_15; +static int hf_lte_rrc_eutra_cap_feat_group_ind_16; +static int hf_lte_rrc_eutra_cap_feat_group_ind_17; +static int hf_lte_rrc_eutra_cap_feat_group_ind_18; +static int hf_lte_rrc_eutra_cap_feat_group_ind_19; +static int hf_lte_rrc_eutra_cap_feat_group_ind_20; +static int hf_lte_rrc_eutra_cap_feat_group_ind_21; +static int hf_lte_rrc_eutra_cap_feat_group_ind_22; +static int hf_lte_rrc_eutra_cap_feat_group_ind_23; +static int hf_lte_rrc_eutra_cap_feat_group_ind_24; +static int hf_lte_rrc_eutra_cap_feat_group_ind_25; +static int hf_lte_rrc_eutra_cap_feat_group_ind_26; +static int hf_lte_rrc_eutra_cap_feat_group_ind_27; +static int hf_lte_rrc_eutra_cap_feat_group_ind_28; +static int hf_lte_rrc_eutra_cap_feat_group_ind_29; +static int hf_lte_rrc_eutra_cap_feat_group_ind_30; +static int hf_lte_rrc_eutra_cap_feat_group_ind_31; +static int hf_lte_rrc_eutra_cap_feat_group_ind_32; +static int hf_lte_rrc_eutra_cap_feat_group_ind_33; +static int hf_lte_rrc_eutra_cap_feat_group_ind_34; +static int hf_lte_rrc_eutra_cap_feat_group_ind_35; +static int hf_lte_rrc_eutra_cap_feat_group_ind_36; +static int hf_lte_rrc_eutra_cap_feat_group_ind_37; +static int hf_lte_rrc_eutra_cap_feat_group_ind_38; +static int hf_lte_rrc_eutra_cap_feat_group_ind_39; +static int hf_lte_rrc_eutra_cap_feat_group_ind_40; +static int hf_lte_rrc_eutra_cap_feat_group_ind_41; +static int hf_lte_rrc_eutra_cap_feat_group_ind_42; +static int hf_lte_rrc_eutra_cap_feat_group_ind_43; +static int hf_lte_rrc_eutra_cap_feat_group_ind_44; +static int hf_lte_rrc_eutra_cap_feat_group_ind_45; +static int hf_lte_rrc_eutra_cap_feat_group_ind_46; +static int hf_lte_rrc_eutra_cap_feat_group_ind_47; +static int hf_lte_rrc_eutra_cap_feat_group_ind_48; +static int hf_lte_rrc_eutra_cap_feat_group_ind_49; +static int hf_lte_rrc_eutra_cap_feat_group_ind_50; +static int hf_lte_rrc_eutra_cap_feat_group_ind_51; +static int hf_lte_rrc_eutra_cap_feat_group_ind_52; +static int hf_lte_rrc_eutra_cap_feat_group_ind_53; +static int hf_lte_rrc_eutra_cap_feat_group_ind_54; +static int hf_lte_rrc_eutra_cap_feat_group_ind_55; +static int hf_lte_rrc_eutra_cap_feat_group_ind_56; +static int hf_lte_rrc_eutra_cap_feat_group_ind_57; +static int hf_lte_rrc_eutra_cap_feat_group_ind_58; +static int hf_lte_rrc_eutra_cap_feat_group_ind_59; +static int hf_lte_rrc_eutra_cap_feat_group_ind_60; +static int hf_lte_rrc_eutra_cap_feat_group_ind_61; +static int hf_lte_rrc_eutra_cap_feat_group_ind_62; +static int hf_lte_rrc_eutra_cap_feat_group_ind_63; +static int hf_lte_rrc_eutra_cap_feat_group_ind_64; +static int hf_lte_rrc_eutra_cap_feat_group_ind_101; +static int hf_lte_rrc_eutra_cap_feat_group_ind_102; +static int hf_lte_rrc_eutra_cap_feat_group_ind_103; +static int hf_lte_rrc_eutra_cap_feat_group_ind_104; +static int hf_lte_rrc_eutra_cap_feat_group_ind_105; +static int hf_lte_rrc_eutra_cap_feat_group_ind_106; +static int hf_lte_rrc_eutra_cap_feat_group_ind_107; +static int hf_lte_rrc_eutra_cap_feat_group_ind_108; +static int hf_lte_rrc_eutra_cap_feat_group_ind_109; +static int hf_lte_rrc_eutra_cap_feat_group_ind_110; +static int hf_lte_rrc_eutra_cap_feat_group_ind_111; +static int hf_lte_rrc_eutra_cap_feat_group_ind_112; +static int hf_lte_rrc_eutra_cap_feat_group_ind_113; +static int hf_lte_rrc_eutra_cap_feat_group_ind_114; +static int hf_lte_rrc_eutra_cap_feat_group_ind_115; +static int hf_lte_rrc_eutra_cap_feat_group_ind_116; +static int hf_lte_rrc_eutra_cap_feat_group_ind_117; +static int hf_lte_rrc_eutra_cap_feat_group_ind_118; +static int hf_lte_rrc_eutra_cap_feat_group_ind_119; +static int hf_lte_rrc_eutra_cap_feat_group_ind_120; +static int hf_lte_rrc_eutra_cap_feat_group_ind_121; +static int hf_lte_rrc_eutra_cap_feat_group_ind_122; +static int hf_lte_rrc_eutra_cap_feat_group_ind_123; +static int hf_lte_rrc_eutra_cap_feat_group_ind_124; +static int hf_lte_rrc_eutra_cap_feat_group_ind_125; +static int hf_lte_rrc_eutra_cap_feat_group_ind_126; +static int hf_lte_rrc_eutra_cap_feat_group_ind_127; +static int hf_lte_rrc_eutra_cap_feat_group_ind_128; +static int hf_lte_rrc_eutra_cap_feat_group_ind_129; +static int hf_lte_rrc_eutra_cap_feat_group_ind_130; +static int hf_lte_rrc_eutra_cap_feat_group_ind_131; +static int hf_lte_rrc_eutra_cap_feat_group_ind_132; +static int hf_lte_rrc_serialNumber_gs; +static int hf_lte_rrc_serialNumber_msg_code; +static int hf_lte_rrc_serialNumber_upd_nb; +static int hf_lte_rrc_warningType_value; +static int hf_lte_rrc_warningType_emergency_user_alert; +static int hf_lte_rrc_warningType_popup; +static int hf_lte_rrc_warningMessageSegment_nb_pages; +static int hf_lte_rrc_warningMessageSegment_decoded_page; +static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit1; +static int hf_lte_rrc_interBandTDD_CA_WithDifferentConfig_bit2; +static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit1; +static int hf_lte_rrc_tdd_FDD_CA_PCellDuplex_r12_bit2; +static int hf_lte_rrc_aperiodicCSI_Reporting_r13_bit1; +static int hf_lte_rrc_aperiodicCSI_Reporting_r13_bit2; +static int hf_lte_rrc_codebook_HARQ_ACK_r13_bit1; +static int hf_lte_rrc_codebook_HARQ_ACK_r13_bit2; +static int hf_lte_rrc_sr_config_periodicity; +static int hf_lte_rrc_sr_config_subframe_offset; +static int hf_lte_rrc_cdma_time; +static int hf_lte_rrc_utc_time; +static int hf_lte_rrc_local_time; +static int hf_lte_rrc_absolute_time; +static int hf_lte_rrc_transmissionModeList_r12_tm1; +static int hf_lte_rrc_transmissionModeList_r12_tm2; +static int hf_lte_rrc_transmissionModeList_r12_tm3; +static int hf_lte_rrc_transmissionModeList_r12_tm4; +static int hf_lte_rrc_transmissionModeList_r12_tm6; +static int hf_lte_rrc_transmissionModeList_r12_tm8; +static int hf_lte_rrc_transmissionModeList_r12_tm9; +static int hf_lte_rrc_transmissionModeList_r12_tm10; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_0; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_1; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_2; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_3; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_4; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_5; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_6; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_7; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_8; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_9; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_10; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_11; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_12; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_13; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_14; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_15; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_16; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_17; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_18; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_19; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_20; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_21; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_22; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_23; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_24; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_25; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_26; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_27; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_28; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_29; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_30; +static int hf_lte_rrc_modifiedMPR_Behavior_r10_mpr_ampr_31; +static int hf_lte_rrc_sib11_fragments; +static int hf_lte_rrc_sib11_fragment; +static int hf_lte_rrc_sib11_fragment_overlap; +static int hf_lte_rrc_sib11_fragment_overlap_conflict; +static int hf_lte_rrc_sib11_fragment_multiple_tails; +static int hf_lte_rrc_sib11_fragment_too_long_fragment; +static int hf_lte_rrc_sib11_fragment_error; +static int hf_lte_rrc_sib11_fragment_count; +static int hf_lte_rrc_sib11_reassembled_in; +static int hf_lte_rrc_sib11_reassembled_length; +static int hf_lte_rrc_sib11_reassembled_data; +static int hf_lte_rrc_sib12_fragments; +static int hf_lte_rrc_sib12_fragment; +static int hf_lte_rrc_sib12_fragment_overlap; +static int hf_lte_rrc_sib12_fragment_overlap_conflict; +static int hf_lte_rrc_sib12_fragment_multiple_tails; +static int hf_lte_rrc_sib12_fragment_too_long_fragment; +static int hf_lte_rrc_sib12_fragment_error; +static int hf_lte_rrc_sib12_fragment_count; +static int hf_lte_rrc_sib12_reassembled_in; +static int hf_lte_rrc_sib12_reassembled_length; +static int hf_lte_rrc_sib12_reassembled_data; +static int hf_lte_rrc_dcch_segment_fragments; +static int hf_lte_rrc_dcch_segment_fragment; +static int hf_lte_rrc_dcch_segment_fragment_overlap; +static int hf_lte_rrc_dcch_segment_fragment_overlap_conflict; +static int hf_lte_rrc_dcch_segment_fragment_multiple_tails; +static int hf_lte_rrc_dcch_segment_fragment_too_long_fragment; +static int hf_lte_rrc_dcch_segment_fragment_error; +static int hf_lte_rrc_dcch_segment_fragment_count; +static int hf_lte_rrc_dcch_segment_reassembled_in; +static int hf_lte_rrc_dcch_segment_reassembled_length; +static int hf_lte_rrc_dcch_segment_reassembled_data; +static int hf_lte_rrc_measGapPatterns_r15_bit1; +static int hf_lte_rrc_measGapPatterns_r15_bit2; +static int hf_lte_rrc_measGapPatterns_r15_bit3; +static int hf_lte_rrc_measGapPatterns_r15_bit4; +static int hf_lte_rrc_measGapPatterns_r15_bit5; +static int hf_lte_rrc_measGapPatterns_r15_bit6; +static int hf_lte_rrc_measGapPatterns_r15_bit7; +static int hf_lte_rrc_measGapPatterns_r15_bit8; /* Initialize the subtree pointers */ -static int ett_lte_rrc = -1; +static int ett_lte_rrc; #include "packet-lte-rrc-ett.c" -static gint ett_lte_rrc_featureGroupIndicators = -1; -static gint ett_lte_rrc_featureGroupIndRel9Add = -1; -static gint ett_lte_rrc_featureGroupIndRel10 = -1; -static gint ett_lte_rrc_absTimeInfo = -1; -static gint ett_lte_rrc_nas_SecurityParam = -1; -static gint ett_lte_rrc_targetRAT_MessageContainer = -1; -static gint ett_lte_rrc_siPsiSibContainer = -1; -static gint ett_lte_rrc_dedicatedInfoNAS = -1; -static gint ett_lte_rrc_timeInfo = -1; -static gint ett_lte_rrc_serialNumber = -1; -static gint ett_lte_rrc_warningType = -1; -static gint ett_lte_rrc_dataCodingScheme = -1; -static gint ett_lte_rrc_warningMessageSegment = -1; -static gint ett_lte_rrc_interBandTDD_CA_WithDifferentConfig = -1; -static gint ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12 = -1; -static gint ett_lte_rrc_aperiodicCSI_Reporting_r13 = -1; -static gint ett_lte_rrc_codebook_HARQ_ACK_r13 = -1; -static gint ett_lte_rrc_sr_ConfigIndex = -1; -static gint ett_lte_rrc_transmissionModeList_r12 = -1; -static gint ett_lte_rrc_modifiedMPR_Behavior_r10 = -1; -static gint ett_lte_rrc_sib11_fragment = -1; -static gint ett_lte_rrc_sib11_fragments = -1; -static gint ett_lte_rrc_sib12_fragment = -1; -static gint ett_lte_rrc_sib12_fragments = -1; -static gint ett_lte_rrc_nr_SecondaryCellGroupConfig_r15 = -1; -static gint ett_lte_rrc_nr_RadioBearerConfig_r15 = -1; -static gint ett_lte_rrc_nr_RadioBearerConfigS_r15 = -1; -static gint ett_lte_rrc_sl_ConfigDedicatedForNR_r16 = -1; -static gint ett_lte_rrc_nr_SecondaryCellGroupConfig = -1; -static gint ett_lte_rrc_scg_ConfigResponseNR_r15 = -1; -static gint ett_lte_rrc_scg_ConfigResponseNR_r16 = -1; -static gint ett_lte_rrc_measResultSCG_r15 = -1; -static gint ett_lte_rrc_measResultSCG_r16 = -1; -static gint ett_lte_rrc_ul_DCCH_MessageNR_r15 = -1; -static gint ett_lte_rrc_ul_DCCH_MessageNR_r16 = -1; -static gint ett_lte_rrc_sourceRB_ConfigNR_r15 = -1; -static gint ett_lte_rrc_sourceRB_ConfigSN_NR_r15 = -1; -static gint ett_lte_rrc_sourceOtherConfigSN_NR_r15 = -1; -static gint ett_lte_rrc_sourceContextEN_DC_r15 = -1; -static gint ett_lte_rrc_requestedFreqBandsNR_MRDC_r15 = -1; -static gint ett_lte_rrc_measGapPatterns_r15 = -1; -static gint ett_lte_rrc_nas_Container_r15 = -1; -static gint ett_lte_rrc_sourceRB_ConfigIntra5GC_r15 = -1; -static gint ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540 = -1; -static gint ett_lte_rrc_requestedCapabilityCommon_r15 = -1; -static gint ett_lte_rrc_sidelinkUEInformationNR_r16 = -1; -static gint ett_lte_rrc_ueAssistanceInformationNR_r16 = -1; -static gint ett_lte_rrc_sl_ParameterNR_r16 = -1; -static gint ett_lte_rrc_v2x_BandParametersNR_r16 = -1; -static gint ett_lte_rrc_ueAssistanceInformationNR_SCG_r16 = -1; -static gint ett_lte_rrc_assistanceDataSIB_Element_r15 = -1; -static gint ett_lte_rrc_overheatingAssistanceForSCG_r16 = -1; -static gint ett_lte_rrc_overheatingAssistanceForSCG_FR2_2_r17 = -1; -static gint ett_lte_rrc_triggerConditionSN_r17 = -1; - -static expert_field ei_lte_rrc_number_pages_le15 = EI_INIT; -static expert_field ei_lte_rrc_si_info_value_changed = EI_INIT; -static expert_field ei_lte_rrc_sibs_changing = EI_INIT; -static expert_field ei_lte_rrc_sibs_changing_edrx = EI_INIT; -static expert_field ei_lte_rrc_earthquake_warning_sys = EI_INIT; -static expert_field ei_lte_rrc_commercial_mobile_alert_sys = EI_INIT; -static expert_field ei_lte_rrc_unexpected_type_value = EI_INIT; -static expert_field ei_lte_rrc_unexpected_length_value = EI_INIT; -static expert_field ei_lte_rrc_too_many_group_a_rapids = EI_INIT; -static expert_field ei_lte_rrc_invalid_drx_config = EI_INIT; +static int ett_lte_rrc_featureGroupIndicators; +static int ett_lte_rrc_featureGroupIndRel9Add; +static int ett_lte_rrc_featureGroupIndRel10; +static int ett_lte_rrc_absTimeInfo; +static int ett_lte_rrc_nas_SecurityParam; +static int ett_lte_rrc_targetRAT_MessageContainer; +static int ett_lte_rrc_siPsiSibContainer; +static int ett_lte_rrc_dedicatedInfoNAS; +static int ett_lte_rrc_timeInfo; +static int ett_lte_rrc_serialNumber; +static int ett_lte_rrc_warningType; +static int ett_lte_rrc_dataCodingScheme; +static int ett_lte_rrc_warningMessageSegment; +static int ett_lte_rrc_interBandTDD_CA_WithDifferentConfig; +static int ett_lte_rrc_tdd_FDD_CA_PCellDuplex_r12; +static int ett_lte_rrc_aperiodicCSI_Reporting_r13; +static int ett_lte_rrc_codebook_HARQ_ACK_r13; +static int ett_lte_rrc_sr_ConfigIndex; +static int ett_lte_rrc_transmissionModeList_r12; +static int ett_lte_rrc_modifiedMPR_Behavior_r10; +static int ett_lte_rrc_sib11_fragment; +static int ett_lte_rrc_sib11_fragments; +static int ett_lte_rrc_sib12_fragment; +static int ett_lte_rrc_sib12_fragments; +static int ett_lte_rrc_dcch_segment_fragment; +static int ett_lte_rrc_dcch_segment_fragments; +static int ett_lte_rrc_nr_SecondaryCellGroupConfig_r15; +static int ett_lte_rrc_nr_RadioBearerConfig_r15; +static int ett_lte_rrc_nr_RadioBearerConfigS_r15; +static int ett_lte_rrc_sl_ConfigDedicatedForNR_r16; +static int ett_lte_rrc_nr_SecondaryCellGroupConfig; +static int ett_lte_rrc_scg_ConfigResponseNR_r15; +static int ett_lte_rrc_scg_ConfigResponseNR_r16; +static int ett_lte_rrc_measResultSCG_r15; +static int ett_lte_rrc_measResultSCG_r16; +static int ett_lte_rrc_ul_DCCH_MessageNR_r15; +static int ett_lte_rrc_ul_DCCH_MessageNR_r16; +static int ett_lte_rrc_sourceRB_ConfigNR_r15; +static int ett_lte_rrc_sourceRB_ConfigSN_NR_r15; +static int ett_lte_rrc_sourceOtherConfigSN_NR_r15; +static int ett_lte_rrc_sourceContextEN_DC_r15; +static int ett_lte_rrc_requestedFreqBandsNR_MRDC_r15; +static int ett_lte_rrc_measGapPatterns_r15; +static int ett_lte_rrc_nas_Container_r15; +static int ett_lte_rrc_sourceRB_ConfigIntra5GC_r15; +static int ett_lte_rrc_selectedbandCombinationInfoEN_DC_v1540; +static int ett_lte_rrc_requestedCapabilityCommon_r15; +static int ett_lte_rrc_sidelinkUEInformationNR_r16; +static int ett_lte_rrc_ueAssistanceInformationNR_r16; +static int ett_lte_rrc_sl_ParameterNR_r16; +static int ett_lte_rrc_v2x_BandParametersNR_r16; +static int ett_lte_rrc_ueAssistanceInformationNR_SCG_r16; +static int ett_lte_rrc_assistanceDataSIB_Element_r15; +static int ett_lte_rrc_overheatingAssistanceForSCG_r16; +static int ett_lte_rrc_overheatingAssistanceForSCG_FR2_2_r17; +static int ett_lte_rrc_triggerConditionSN_r17; + +static expert_field ei_lte_rrc_number_pages_le15; +static expert_field ei_lte_rrc_si_info_value_changed; +static expert_field ei_lte_rrc_sibs_changing; +static expert_field ei_lte_rrc_sibs_changing_edrx; +static expert_field ei_lte_rrc_earthquake_warning_sys; +static expert_field ei_lte_rrc_commercial_mobile_alert_sys; +static expert_field ei_lte_rrc_unexpected_type_value; +static expert_field ei_lte_rrc_unexpected_length_value; +static expert_field ei_lte_rrc_too_many_group_a_rapids; +static expert_field ei_lte_rrc_invalid_drx_config; static const unit_name_string units_sr_periods = { " SR period", " SR periods" }; static const unit_name_string units_short_drx_cycles = { " shortDRX-Cycle", " shortDRX-Cycles" }; static reassembly_table lte_rrc_sib11_reassembly_table; static reassembly_table lte_rrc_sib12_reassembly_table; +static reassembly_table lte_rrc_dcch_segment_reassembly_table; static const fragment_items lte_rrc_sib11_frag_items = { &ett_lte_rrc_sib11_fragment, @@ -380,6 +401,23 @@ static const fragment_items lte_rrc_sib12_frag_items = { "SIB12 warning message segments" }; +static const fragment_items lte_rrc_dcch_segment_frag_items = { + &ett_lte_rrc_dcch_segment_fragment, + &ett_lte_rrc_dcch_segment_fragments, + &hf_lte_rrc_dcch_segment_fragments, + &hf_lte_rrc_dcch_segment_fragment, + &hf_lte_rrc_dcch_segment_fragment_overlap, + &hf_lte_rrc_dcch_segment_fragment_overlap_conflict, + &hf_lte_rrc_dcch_segment_fragment_multiple_tails, + &hf_lte_rrc_dcch_segment_fragment_too_long_fragment, + &hf_lte_rrc_dcch_segment_fragment_error, + &hf_lte_rrc_dcch_segment_fragment_count, + &hf_lte_rrc_dcch_segment_reassembled_in, + &hf_lte_rrc_dcch_segment_reassembled_length, + &hf_lte_rrc_dcch_segment_reassembled_data, + "DCCH message segments" +}; + /* Forward declarations */ static int dissect_UECapabilityInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); static int dissect_RRCConnectionReconfiguration_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); @@ -942,7 +980,7 @@ static const value_string lte_rrc_messageSize_r14_vals[] = static value_string_ext lte_rrc_messageSize_r14_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_messageSize_r14_vals); static void -lte_rrc_timeConnFailure_r10_fmt(gchar *s, guint32 v) +lte_rrc_timeConnFailure_r10_fmt(char *s, uint32_t v) { snprintf(s, ITEM_LABEL_LENGTH, "%ums (%u)", 100*v, v); } @@ -960,7 +998,7 @@ static const value_string lte_rrc_n_r12_vals[] = { }; static void -lte_rrc_m_r12_fmt(gchar *s, guint32 v) +lte_rrc_m_r12_fmt(char *s, uint32_t v) { if (v == 255) { snprintf(s, ITEM_LABEL_LENGTH, "255 <= f(Nr) (255)"); @@ -2168,7 +2206,7 @@ static const value_string lte_rrc_RSRP_RangeSL4_vals[] = { static value_string_ext lte_rrc_RSRP_RangeSL4_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_RSRP_RangeSL4_vals); static void -lte_rrc_RSRP_RangeNR_r15_fmt(gchar *s, guint32 v) +lte_rrc_RSRP_RangeNR_r15_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRP < -156dBm (0)"); @@ -2268,7 +2306,7 @@ static const value_string lte_rrc_RSRQ_Range_vals[] = { static value_string_ext lte_rrc_RSRQ_Range_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_RSRQ_Range_vals); static void -lte_rrc_RSRQ_RangeNR_r15_fmt(gchar *s, guint32 v) +lte_rrc_RSRQ_RangeNR_r15_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "SS-RSRQ < -43dB (0)"); @@ -2317,13 +2355,13 @@ static const value_string lte_rrc_MBSFN_RSRQ_Range_vals[] = { static value_string_ext lte_rrc_MBSFN_RSRQ_Range_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_MBSFN_RSRQ_Range_vals); static void -lte_rrc_availableAdmissionCapacityWLAN_fmt(gchar *s, guint32 v) +lte_rrc_availableAdmissionCapacityWLAN_fmt(char *s, uint32_t v) { snprintf(s, ITEM_LABEL_LENGTH, "%uus/s (%u)", 32*v, v); } static void -lte_rrc_ue_RxTxTimeDiffResult_fmt(gchar *s, guint32 v) +lte_rrc_ue_RxTxTimeDiffResult_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "T < 2Ts (0)"); @@ -2535,13 +2573,13 @@ static const value_string lte_rrc_excessDelay_r13_vals[] = { static value_string_ext lte_rrc_excessDelay_r13_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_excessDelay_r13_vals); static void -lte_rrc_averageDelay_r16_fmt(gchar *s, guint32 v) +lte_rrc_averageDelay_r16_fmt(char *s, uint32_t v) { snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/10, v); } static void -lte_rrc_subframeBoundaryOffsetResult_r13_fmt(gchar *s, guint32 v) +lte_rrc_subframeBoundaryOffsetResult_r13_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "abs(deltaZ) < 700Ts (0)"); @@ -2553,7 +2591,7 @@ lte_rrc_subframeBoundaryOffsetResult_r13_fmt(gchar *s, guint32 v) } static void -lte_rrc_RS_SINR_Range_r13_fmt(gchar *s, guint32 v) +lte_rrc_RS_SINR_Range_r13_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "RS-SINR < -23dB (0)"); @@ -2565,7 +2603,7 @@ lte_rrc_RS_SINR_Range_r13_fmt(gchar *s, guint32 v) } static void -lte_rrc_RS_SINR_RangeNR_r15_fmt(gchar *s, guint32 v) +lte_rrc_RS_SINR_RangeNR_r15_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "SS-SINR < -23dB (0)"); @@ -2577,7 +2615,7 @@ lte_rrc_RS_SINR_RangeNR_r15_fmt(gchar *s, guint32 v) } static void -lte_rrc_RSSI_Range_r13_fmt(gchar *s, guint32 v) +lte_rrc_RSSI_Range_r13_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "RSSI < -100dBm (0)"); @@ -2589,13 +2627,13 @@ lte_rrc_RSSI_Range_r13_fmt(gchar *s, guint32 v) } static void -lte_rrc_scptm_FreqOffset_r14_fmt(gchar *s, guint32 v) +lte_rrc_scptm_FreqOffset_r14_fmt(char *s, uint32_t v) { snprintf(s, ITEM_LABEL_LENGTH, "%udB (%u)", 2*v, v); } static void -lte_rrc_offsetDFN_r14_fmt(gchar *s, guint32 v) +lte_rrc_offsetDFN_r14_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "0ms (0)"); @@ -2607,13 +2645,13 @@ lte_rrc_offsetDFN_r14_fmt(gchar *s, guint32 v) } static void -lte_rrc_thresholdWLAN_RSSI_fmt(gchar *s, guint32 v) +lte_rrc_thresholdWLAN_RSSI_fmt(char *s, uint32_t v) { snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", -128+v, v); } static void -lte_rrc_cr_Limit_r14_fmt(gchar *s, guint32 v) +lte_rrc_cr_Limit_r14_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "0 (0)"); @@ -2625,7 +2663,7 @@ lte_rrc_cr_Limit_r14_fmt(gchar *s, guint32 v) } static void -lte_rrc_SL_CBR_r14_fmt(gchar *s, guint32 v) +lte_rrc_SL_CBR_r14_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "0 (0)"); @@ -2637,7 +2675,7 @@ lte_rrc_SL_CBR_r14_fmt(gchar *s, guint32 v) } static void -lte_rrc_threshS_RSSI_CBR_r14_fmt(gchar *s, guint32 v) +lte_rrc_threshS_RSSI_CBR_r14_fmt(char *s, uint32_t v) { snprintf(s, ITEM_LABEL_LENGTH, "%ddBm (%u)", -112+(2*v), v); } @@ -2660,7 +2698,7 @@ static const value_string lte_rrc_schedulingInfoSIB1_NB_r13_vals[] = { static value_string_ext lte_rrc_schedulingInfoSIB1_NB_r13_vals_ext = VALUE_STRING_EXT_INIT(lte_rrc_schedulingInfoSIB1_NB_r13_vals); static void -lte_rrc_NRSRP_Range_NB_r14_fmt(gchar *s, guint32 v) +lte_rrc_NRSRP_Range_NB_r14_fmt(char *s, uint32_t v) { if (v == 0) { snprintf(s, ITEM_LABEL_LENGTH, "NRSRP < -156dBm (0)"); @@ -2672,9 +2710,9 @@ lte_rrc_NRSRP_Range_NB_r14_fmt(gchar *s, guint32 v) } static void -lte_rrc_NRSRQ_Range_NB_r14_fmt(gchar *s, guint32 v) +lte_rrc_NRSRQ_Range_NB_r14_fmt(char *s, uint32_t v) { - gint32 rsrq = (guint32)v; + int32_t rsrq = (uint32_t)v; if (rsrq == -30) { snprintf(s, ITEM_LABEL_LENGTH, "NRSRQ < -34dB (-30)"); } else if (rsrq < 0) { @@ -2693,13 +2731,13 @@ lte_rrc_NRSRQ_Range_NB_r14_fmt(gchar *s, guint32 v) } static void -lte_rrc_mbms_MaxBW_r14_fmt(gchar *s, guint32 v) +lte_rrc_mbms_MaxBW_r14_fmt(char *s, uint32_t v) { snprintf(s, ITEM_LABEL_LENGTH, "%u MHz (%u)", 40*v, v); } static void -lte_rrc_dl_1024QAM_TotalWeightedLayers_r15_fmt(gchar *s, guint32 v) +lte_rrc_dl_1024QAM_TotalWeightedLayers_r15_fmt(char *s, uint32_t v) { snprintf(s, ITEM_LABEL_LENGTH, "%u (%u)", 10+(2*v), v); } @@ -2723,10 +2761,10 @@ lte_rrc_call_dissector(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pi /*****************************************************************************/ typedef struct meas_capabilities_item_band_mappings_t { - guint16 number_of_bands_set; - guint16 number_of_interfreq_serving_read; - guint16 number_of_interfreq_target_read; - guint16 band_by_item[256]; + uint16_t number_of_bands_set; + uint16_t number_of_interfreq_serving_read; + uint16_t number_of_interfreq_target_read; + uint16_t band_by_item[256]; } meas_capabilities_item_band_mappings_t; @@ -2734,20 +2772,23 @@ typedef struct meas_capabilities_item_band_mappings_t { /* Struct to store all current uses of packet private data */ typedef struct lte_rrc_private_data_t { - guint8 rat_type; - guint8 target_rat_type; - guint8 si_or_psi_geran; - guint8 ra_preambles; - guint16 message_identifier; - guint8 warning_message_segment_type; - guint8 warning_message_segment_number; + uint8_t rat_type; + uint8_t target_rat_type; + uint8_t si_or_psi_geran; + uint8_t ra_preambles; + uint16_t message_identifier; + uint8_t warning_message_segment_type; + uint8_t warning_message_segment_number; drb_mapping_t drb_mapping; drx_config_t drx_config; pdcp_lte_security_info_t pdcp_security; meas_capabilities_item_band_mappings_t meas_capabilities_item_band_mappings; simult_pucch_pusch_cell_type cell_type; - gboolean bcch_dl_sch_msg; + bool bcch_dl_sch_msg; lpp_pos_sib_type_t pos_sib_type; + uint8_t dcch_segment_number; + tvbuff_t *dcch_segment; + bool dcch_segment_last; } lte_rrc_private_data_t; /* Helper function to get or create a struct that will be actx->private_data */ @@ -2781,13 +2822,13 @@ static drb_mapping_t* private_data_get_drb_mapping(asn1_ctx_t *actx) /* RAT type */ -static guint8 private_data_get_rat_type(asn1_ctx_t *actx) +static uint8_t private_data_get_rat_type(asn1_ctx_t *actx) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); return private_data->rat_type; } -static void private_data_set_rat_type(asn1_ctx_t *actx, guint8 rat_type) +static void private_data_set_rat_type(asn1_ctx_t *actx, uint8_t rat_type) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); private_data->rat_type = rat_type; @@ -2795,13 +2836,13 @@ static void private_data_set_rat_type(asn1_ctx_t *actx, guint8 rat_type) /* Target RAT type */ -static guint8 private_data_get_rat_target_type(asn1_ctx_t *actx) +static uint8_t private_data_get_rat_target_type(asn1_ctx_t *actx) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); return private_data->target_rat_type; } -static void private_data_set_rat_target_type(asn1_ctx_t *actx, guint8 target_rat_type) +static void private_data_set_rat_target_type(asn1_ctx_t *actx, uint8_t target_rat_type) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); private_data->target_rat_type = target_rat_type; @@ -2809,13 +2850,13 @@ static void private_data_set_rat_target_type(asn1_ctx_t *actx, guint8 target_rat /* si_or_psi_geran */ -static guint8 private_data_get_si_or_psi_geran(asn1_ctx_t *actx) +static uint8_t private_data_get_si_or_psi_geran(asn1_ctx_t *actx) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); return private_data->si_or_psi_geran; } -static void private_data_set_si_or_psi_geran(asn1_ctx_t *actx, guint8 si_or_psi_geran) +static void private_data_set_si_or_psi_geran(asn1_ctx_t *actx, uint8_t si_or_psi_geran) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); private_data->si_or_psi_geran = si_or_psi_geran; @@ -2823,13 +2864,13 @@ static void private_data_set_si_or_psi_geran(asn1_ctx_t *actx, guint8 si_or_psi_ /* Message identifier */ -static guint16 private_data_get_message_identifier(asn1_ctx_t *actx) +static uint16_t private_data_get_message_identifier(asn1_ctx_t *actx) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); return private_data->message_identifier; } -static void private_data_set_message_identifier(asn1_ctx_t *actx, guint16 message_identifier) +static void private_data_set_message_identifier(asn1_ctx_t *actx, uint16_t message_identifier) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); private_data->message_identifier = message_identifier; @@ -2837,13 +2878,13 @@ static void private_data_set_message_identifier(asn1_ctx_t *actx, guint16 messag /* Warning message segment type */ -static guint16 private_data_get_warning_message_segment_type(asn1_ctx_t *actx) +static uint16_t private_data_get_warning_message_segment_type(asn1_ctx_t *actx) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); return private_data->warning_message_segment_type; } -static void private_data_set_warning_message_segment_type(asn1_ctx_t *actx, guint8 segment_type) +static void private_data_set_warning_message_segment_type(asn1_ctx_t *actx, uint8_t segment_type) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); private_data->warning_message_segment_type = segment_type; @@ -2851,13 +2892,13 @@ static void private_data_set_warning_message_segment_type(asn1_ctx_t *actx, guin /* Warning message segment number */ -static guint16 private_data_get_warning_message_segment_number(asn1_ctx_t *actx) +static uint16_t private_data_get_warning_message_segment_number(asn1_ctx_t *actx) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); return private_data->warning_message_segment_number; } -static void private_data_set_warning_message_segment_number(asn1_ctx_t *actx, guint8 segment_number) +static void private_data_set_warning_message_segment_number(asn1_ctx_t *actx, uint8_t segment_number) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); private_data->warning_message_segment_number = segment_number; @@ -2865,13 +2906,13 @@ static void private_data_set_warning_message_segment_number(asn1_ctx_t *actx, gu /* Number of RA-preambles */ -static guint8 private_data_get_ra_preambles(asn1_ctx_t *actx) +static uint8_t private_data_get_ra_preambles(asn1_ctx_t *actx) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); return private_data->ra_preambles; } -static void private_data_set_ra_preambles(asn1_ctx_t *actx, guint8 ra_preambles) +static void private_data_set_ra_preambles(asn1_ctx_t *actx, uint8_t ra_preambles) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); private_data->ra_preambles = ra_preambles; @@ -2893,12 +2934,12 @@ static meas_capabilities_item_band_mappings_t* private_data_meas_capabilities_it return &private_data->meas_capabilities_item_band_mappings; } -static void set_freq_band_indicator(guint32 value, asn1_ctx_t *actx) +static void set_freq_band_indicator(uint32_t value, asn1_ctx_t *actx) { /* Store band mapping for this item in the next position */ meas_capabilities_item_band_mappings_t *mappings = private_data_meas_capabilities_item_band_mappings(actx); if (mappings->number_of_bands_set < 256) { - mappings->band_by_item[mappings->number_of_bands_set++] = (guint16)value; + mappings->band_by_item[mappings->number_of_bands_set++] = (uint16_t)value; } } @@ -2924,13 +2965,13 @@ static void private_data_set_simult_pucch_pusch_cell_type(asn1_ctx_t *actx, simu } /* Is top message a BCCH DL-SCH BR/MBMS */ -static gboolean private_data_get_bcch_dl_sch_msg(asn1_ctx_t *actx) +static bool private_data_get_bcch_dl_sch_msg(asn1_ctx_t *actx) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); return private_data->bcch_dl_sch_msg; } -static void private_data_set_bcch_dl_sch_msg(asn1_ctx_t *actx, gboolean is_bcch_dl_sch) +static void private_data_set_bcch_dl_sch_msg(asn1_ctx_t *actx, bool is_bcch_dl_sch) { lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); private_data->bcch_dl_sch_msg = is_bcch_dl_sch; @@ -2948,13 +2989,49 @@ static void private_data_set_pos_sib_type(asn1_ctx_t *actx, lpp_pos_sib_type_t p private_data->pos_sib_type = pos_sib_type; } +static uint8_t private_data_get_dcch_segment_number(asn1_ctx_t *actx) +{ + lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); + return private_data->dcch_segment_number; +} + +static void private_data_set_dcch_segment_number(asn1_ctx_t *actx, uint8_t dcch_segment_number) +{ + lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); + private_data->dcch_segment_number = dcch_segment_number; +} + +static tvbuff_t *private_data_get_dcch_segment(asn1_ctx_t *actx) +{ + lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); + return private_data->dcch_segment; +} + +static void private_data_set_dcch_segment(asn1_ctx_t *actx, tvbuff_t *dcch_segment) +{ + lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); + private_data->dcch_segment = dcch_segment; +} + +static bool private_data_get_dcch_segment_last(asn1_ctx_t *actx) +{ + lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); + return private_data->dcch_segment_last; +} + +static void private_data_set_dcch_segment_last(asn1_ctx_t *actx, bool dcch_segment_last) +{ + lte_rrc_private_data_t *private_data = (lte_rrc_private_data_t*)lte_rrc_get_private_data(actx); + private_data->dcch_segment_last = dcch_segment_last; +} + /*****************************************************************************/ static void -lte_rrc_localTimeOffset_fmt(gchar *s, guint32 v) +lte_rrc_localTimeOffset_fmt(char *s, uint32_t v) { - gint32 time_offset = (gint32) v; + int32_t time_offset = (int32_t) v; snprintf(s, ITEM_LABEL_LENGTH, "UTC time %c %dhr %dmin (%d)", (time_offset < 0) ? '-':'+', abs(time_offset) >> 2, @@ -2962,15 +3039,15 @@ lte_rrc_localTimeOffset_fmt(gchar *s, guint32 v) } static void -dissect_lte_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree *tree, packet_info *pinfo, guint8 dataCodingScheme) +dissect_lte_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree *tree, packet_info *pinfo, uint8_t dataCodingScheme) { - guint32 offset; - guint8 nb_of_pages, length, *str; + uint32_t offset; + uint8_t 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); + nb_of_pages = tvb_get_uint8(warning_msg_seg_tvb, 0); ti = proto_tree_add_uint(tree, hf_lte_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_lte_rrc_number_pages_le15, @@ -2978,7 +3055,7 @@ dissect_lte_rrc_warningMessageSegment(tvbuff_t *warning_msg_seg_tvb, proto_tree nb_of_pages = 15; } for (i = 0, offset = 1; i < nb_of_pages; i++) { - length = tvb_get_guint8(warning_msg_seg_tvb, offset+82); + length = tvb_get_uint8(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) { @@ -3112,73 +3189,55 @@ dissect_lte_rrc_featureGroupIndRel9Add(tvbuff_t *featureGroupIndRel9Add_tvb, asn /* Functions to get enum values out of indices parsed */ /* If entry not found, return last element of array */ -static guint32 drx_lookup_onDurationTimer(guint32 idx) +static uint32_t drx_lookup_onDurationTimer(uint32_t idx) { - static const guint32 vals[] = {1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200}; + static const uint32_t vals[] = {1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200}; - if (idx < (sizeof(vals)/sizeof(guint32))) { - return vals[idx]; - } - return (sizeof(vals)/(sizeof(guint32)) - 1); + return vals[MIN(idx, array_length(vals) - 1)]; } -static guint32 drx_lookup_inactivityTimer(guint32 idx) +static uint32_t drx_lookup_inactivityTimer(uint32_t idx) { - static const guint32 vals[] = { - 1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200,300, 500,750,1280,1920,2560,0 + static const uint32_t vals[] = { + 1,2,3,4,5,6,8,10,20,30,40,50,60,80,100,200,300,500,750,1280,1920,2560,0 }; - if (idx < (sizeof(vals)/sizeof(guint32))) { - return vals[idx]; - } - return (sizeof(vals)/(sizeof(guint32)) - 1); + return vals[MIN(idx, array_length(vals) - 1)]; } -static guint32 drx_lookup_retransmissionTimer(guint32 idx) +static uint32_t drx_lookup_retransmissionTimer(uint32_t idx) { - static const guint32 vals[] = {1,2,4,6,8,16,24,33}; + static const uint32_t vals[] = {1,2,4,6,8,16,24,33}; - if (idx < (sizeof(vals)/sizeof(guint32))) { - return vals[idx]; - } - return (sizeof(vals)/(sizeof(guint32)) - 1); + return vals[MIN(idx, array_length(vals) - 1)]; } -static guint32 drx_lookup_longCycle(guint32 idx) +static uint32_t drx_lookup_longCycle(uint32_t idx) { - static const guint32 vals[] = { + static const uint32_t vals[] = { 10,20,32,40,64,80,128,160,256,320,512,640,1024,1280,2048,2560 }; - if (idx < (sizeof(vals)/sizeof(guint32))) { - return vals[idx]; - } - return (sizeof(vals)/(sizeof(guint32)) - 1); + return vals[MIN(idx, array_length(vals) - 1)]; } -static guint32 drx_lookup_longCycle_v1130(guint32 idx) +static uint32_t drx_lookup_longCycle_v1130(uint32_t idx) { - static const guint32 vals[] = { + static const uint32_t vals[] = { 60,70 }; - if (idx < (sizeof(vals)/sizeof(guint32))) { - return vals[idx]; - } - return (sizeof(vals)/(sizeof(guint32)) - 1); + return vals[MIN(idx, array_length(vals) - 1)]; } -static guint32 drx_lookup_shortCycle(guint32 idx) +static uint32_t drx_lookup_shortCycle(uint32_t idx) { - static const guint32 vals[] = { + static const uint32_t vals[] = { 2,5,8,10,16,20,32,40,64,80,128,160,256,320,512,640 }; - if (idx < (sizeof(vals)/sizeof(guint32))) { - return vals[idx]; - } - return (sizeof(vals)/(sizeof(guint32)) - 1); + return vals[MIN(idx, array_length(vals) - 1)]; } static void drx_check_config_sane(drx_config_t *config, asn1_ctx_t *actx) @@ -3216,7 +3275,7 @@ static void drx_check_config_sane(drx_config_t *config, asn1_ctx_t *actx) } /* Break sr-configIndex down into periodicity and offset. From 36.231, 10.1 */ -static void sr_lookup_configindex(guint32 config_index, guint16 *periodicity, guint16 *offset) +static void sr_lookup_configindex(uint32_t config_index, uint16_t *periodicity, uint16_t *offset) { if (config_index < 5) { *periodicity = 5; @@ -3396,13 +3455,13 @@ dissect_lte_rrc_Handover_Preparation_Info(tvbuff_t *tvb, packet_info *pinfo, pro /* Don't want elements inside message updating Info column, so set now and freeze during dissection of PDU */ col_set_str(pinfo->cinfo, COL_INFO, "HandoverPreparationInformation"); - col_set_writable(pinfo->cinfo, COL_INFO, FALSE); + col_set_writable(pinfo->cinfo, COL_INFO, false); ti = proto_tree_add_item(tree, proto_lte_rrc, tvb, 0, -1, ENC_NA); lte_rrc_tree = proto_item_add_subtree(ti, ett_lte_rrc); dissect_lte_rrc_HandoverPreparationInformation_PDU(tvb, pinfo, lte_rrc_tree, NULL); - col_set_writable(pinfo->cinfo, COL_INFO, TRUE); + col_set_writable(pinfo->cinfo, COL_INFO, true); return tvb_captured_length(tvb); } @@ -4391,6 +4450,50 @@ void proto_register_lte_rrc(void) { { "Reassembled Data", "lte-rrc.warningMessageSegment_r9.reassembled_data", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_fragments, + { "Fragments", "lte-rrc.dedicatedMessageSegment_r16.fragments", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_fragment, + { "Fragment", "lte-rrc.dedicatedMessageSegment_r16.fragment", + FT_FRAMENUM, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_fragment_overlap, + { "Fragment Overlap", "lte-rrc.dedicatedMessageSegment_r16.fragment_overlap", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_fragment_overlap_conflict, + { "Fragment Overlap Conflict", "lte-rrc.dedicatedMessageSegment_r16.fragment_overlap_conflict", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_fragment_multiple_tails, + { "Fragment Multiple Tails", "lte-rrc.dedicatedMessageSegment_r16.fragment_multiple_tails", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_fragment_too_long_fragment, + { "Too Long Fragment", "lte-rrc.dedicatedMessageSegment_r16.fragment_too_long_fragment", + FT_BOOLEAN, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_fragment_error, + { "Fragment Error", "lte-rrc.dedicatedMessageSegment_r16.fragment_error", + FT_FRAMENUM, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_fragment_count, + { "Fragment Count", "lte-rrc.dedicatedMessageSegment_r16.fragment_count", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_reassembled_in, + { "Reassembled In", "lte-rrc.dedicatedMessageSegment_r16.reassembled_in", + FT_FRAMENUM, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_reassembled_length, + { "Reassembled Length", "lte-rrc.dedicatedMessageSegment_r16.reassembled_length", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_lte_rrc_dcch_segment_reassembled_data, + { "Reassembled Data", "lte-rrc.dedicatedMessageSegment_r16.reassembled_data", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_lte_rrc_measGapPatterns_r15_bit1, { "Gap Pattern 4", "lte-rrc.measGapPatterns_r15.bit1", FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x80, @@ -4426,7 +4529,7 @@ void proto_register_lte_rrc(void) { }; /* List of subtrees */ - static gint *ett[] = { + static int *ett[] = { &ett_lte_rrc, #include "packet-lte-rrc-ettarr.c" @@ -4454,6 +4557,8 @@ void proto_register_lte_rrc(void) { &ett_lte_rrc_sib11_fragments, &ett_lte_rrc_sib12_fragment, &ett_lte_rrc_sib12_fragments, + &ett_lte_rrc_dcch_segment_fragment, + &ett_lte_rrc_dcch_segment_fragments, &ett_lte_rrc_nr_SecondaryCellGroupConfig_r15, &ett_lte_rrc_nr_RadioBearerConfig_r15, &ett_lte_rrc_nr_RadioBearerConfigS_r15, @@ -4545,11 +4650,15 @@ void proto_register_lte_rrc(void) { lte_rrc_etws_cmas_dcs_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal); lte_rrc_system_info_value_changed_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal); + lte_rrc_dcch_segment_ueid_count_hash = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal); + lte_rrc_dcch_segment_id_tree = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope()); reassembly_table_register(<e_rrc_sib11_reassembly_table, - &addresses_reassembly_table_functions); + &addresses_reassembly_table_functions); reassembly_table_register(<e_rrc_sib12_reassembly_table, - &addresses_reassembly_table_functions); + &addresses_reassembly_table_functions); + reassembly_table_register(<e_rrc_dcch_segment_reassembly_table, + &addresses_reassembly_table_functions); /* Register configuration preferences */ lte_rrc_module = prefs_register_protocol(proto_lte_rrc, NULL); @@ -4557,6 +4666,10 @@ void proto_register_lte_rrc(void) { "Show NAS PDU in root packet details", "Whether the NAS PDU should be shown in the root packet details tree", <e_rrc_nas_in_root_tree); + prefs_register_bool_preference(lte_rrc_module, "reassemble_dcch_segments", + "Try to reassemble DCCH segmented messages", + "Whether the LTE RRC dissector should attempt to reassemble DCCH segmented messages", + <e_rrc_reassemble_dcch_segments); } |