aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Quantin <pascal.quantin@gmail.com>2019-01-13 14:52:19 +0100
committerPascal Quantin <pascal.quantin@gmail.com>2019-01-13 14:32:10 +0000
commit4242fc9904e80edbda15dfa8a9d2ade64aaa28d1 (patch)
tree74c805ed4c925fd422800c1a2c9ecd0ae0930331
parent178d81f8047f36a68fdef6eaefa8990eaa560a49 (diff)
LPP: upgrade dissector to v15.2.0
Change-Id: If94146ac8f4a54d45c0448e236543927df438aeb Reviewed-on: https://code.wireshark.org/review/31529 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
-rw-r--r--epan/dissectors/asn1/lpp/LPP.asn121
-rw-r--r--epan/dissectors/asn1/lpp/lpp.cnf29
-rw-r--r--epan/dissectors/asn1/lpp/packet-lpp-template.c24
-rw-r--r--epan/dissectors/asn1/lpp/packet-lpp-template.h4
-rw-r--r--epan/dissectors/packet-lpp.c700
-rw-r--r--epan/dissectors/packet-lpp.h4
6 files changed, 683 insertions, 199 deletions
diff --git a/epan/dissectors/asn1/lpp/LPP.asn b/epan/dissectors/asn1/lpp/LPP.asn
index c5e3f658c5..0e4fd05106 100644
--- a/epan/dissectors/asn1/lpp/LPP.asn
+++ b/epan/dissectors/asn1/lpp/LPP.asn
@@ -1,4 +1,4 @@
--- 3GPP TS 36.355 V15.1.0 (2018-09)
+-- 3GPP TS 36.355 V15.2.0 (2018-12)
--
LPP-PDU-Definitions {
@@ -257,7 +257,7 @@ ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)
ARFCN-ValueEUTRA-v9a0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2)
-ARFCN-ValueEUTRA-r14 ::= INTEGER (0..maxEARFCN2)
+ARFCN-ValueEUTRA-r14 ::= INTEGER (0..maxEARFCN2)
maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency
@@ -281,7 +281,7 @@ CarrierFreq-NB-r14 ::= SEQUENCE {
CarrierFreqOffsetNB-r14 ::= ENUMERATED {
v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5,
- v0, v1, v2, v3, v4, v5, v6, v7, v8, v9
+ v0, v1, v2, v3, v4, v5, v6, v7, v8, v9
}
@@ -500,7 +500,8 @@ PolygonPoints ::= SEQUENCE {
PositioningModes ::= SEQUENCE {
posModes BIT STRING { standalone (0),
ue-based (1),
- ue-assisted (2) } (SIZE (1..8)),
+ ue-assisted (2)
+ } (SIZE (1..8)),
...
}
@@ -566,7 +567,7 @@ CommonIEsProvideAssistanceData ::= SEQUENCE {
CommonIEsRequestLocationInformation ::= SEQUENCE {
locationInformationType LocationInformationType,
triggeredReporting TriggeredReportingCriteria OPTIONAL, -- Cond ECID
- periodicalReporting PeriodicalReportingCriteria OPTIONAL, -- Need ON
+ periodicalReporting PeriodicalReportingCriteria OPTIONAL, -- Need ON
additionalInformation AdditionalInformation OPTIONAL, -- Need ON
qos QoS OPTIONAL, -- Need ON
environment Environment OPTIONAL, -- Need ON
@@ -796,7 +797,7 @@ OTDOA-ReferenceCellInfo ::= SEQUENCE {
...,
[[ earfcnRef-v9a0 ARFCN-ValueEUTRA-v9a0 OPTIONAL -- Cond NotSameAsServ2
]],
- [[ tpId-r14 INTEGER (0..4095) OPTIONAL, -- Need ON
+ [[ tpId-r14 INTEGER (0..4095) OPTIONAL, -- Need ON
cpLengthCRS-r14 ENUMERATED { normal, extended, ... }
OPTIONAL, -- Cond CRS
sameMBSFNconfigRef-r14 BOOLEAN OPTIONAL, -- Need ON
@@ -807,6 +808,10 @@ OTDOA-ReferenceCellInfo ::= SEQUENCE {
]],
[[
nr-LTE-SFN-Offset-r15 INTEGER (0..1023) OPTIONAL -- Cond NR
+ ]],
+ [[
+ tdd-config-v1520 TDD-Config-v1520 OPTIONAL, -- Need ON
+ nr-LTE-fineTiming-Offset-r15 INTEGER (0..19) OPTIONAL -- Cond FineOffset
]]
}
@@ -846,6 +851,12 @@ PRS-Info ::= SEQUENCE {
maxAvailNarrowBands-Minus1-r14 INTEGER ::= 15 -- Maximum number of narrowbands minus 1
+TDD-Config-v1520 ::= SEQUENCE {
+ subframeAssignment-v1520 ENUMERATED { sa0, sa1, sa2, sa3, sa4, sa5, sa6 },
+ ...
+}
+
+
OTDOA-NeighbourCellInfoList ::= SEQUENCE (SIZE (1..maxFreqLayers)) OF OTDOA-NeighbourFreqInfo
OTDOA-NeighbourFreqInfo ::= SEQUENCE (SIZE (1..24)) OF OTDOA-NeighbourCellInfoElement
@@ -865,7 +876,7 @@ OTDOA-NeighbourCellInfoElement ::= SEQUENCE {
...,
[[ earfcn-v9a0 ARFCN-ValueEUTRA-v9a0 OPTIONAL -- Cond NotSameAsRef5
]],
- [[ tpId-r14 INTEGER (0..4095) OPTIONAL, -- Need ON
+ [[ tpId-r14 INTEGER (0..4095) OPTIONAL, -- Need ON
prs-only-tp-r14 ENUMERATED { true } OPTIONAL, -- Cond TBS
cpLengthCRS-r14 ENUMERATED { normal, extended, ... }
OPTIONAL, -- Cond CRS
@@ -875,6 +886,9 @@ OTDOA-NeighbourCellInfoElement ::= SEQUENCE {
addPRSconfigNeighbour-r14 SEQUENCE (SIZE (1..maxAddPRSconfig-r14)) OF
Add-PRSconfigNeighbourElement-r14
OPTIONAL -- Need ON
+ ]],
+ [[
+ tdd-config-v1520 TDD-Config-v1520 OPTIONAL -- Need ON
]]
}
@@ -898,6 +912,8 @@ OTDOA-ReferenceCellInfoNB-r14 ::= SEQUENCE {
...,
[[
nprsInfo-Type2-v1470 PRS-Info-NB-r14 OPTIONAL -- Cond NPRS-Type2
+ ]],
+ [[ tdd-config-r15 TDD-Config-v1520 OPTIONAL -- Need ON
]]
}
@@ -986,6 +1002,8 @@ OTDOA-NeighbourCellInfoNB-r14 ::= SEQUENCE {
...,
[[
nprsInfo-Type2-v1470 PRS-Info-NB-r14 OPTIONAL -- Cond NotSameAsRef4
+ ]],
+ [[ tdd-config-r15 TDD-Config-v1520 OPTIONAL -- Need ON
]]
}
@@ -1066,7 +1084,7 @@ NeighbourMeasurementElement ::= SEQUENCE {
AdditionalPathList-r14 ::= SEQUENCE (SIZE(1..maxPaths-r14)) OF AdditionalPath-r14
-maxPaths-r14 INTEGER ::= 2
+maxPaths-r14 INTEGER ::= 2
MotionTimeSource-r15 ::= SEQUENCE {
timeSource-r15 ENUMERATED {servingCell, referenceCell, gnss, mixed,
@@ -1130,7 +1148,7 @@ OTDOA-RequestLocationInformation ::= SEQUENCE {
...,
[[
multipathRSTD-r14 ENUMERATED { requested } OPTIONAL, -- Need ON
- maxNoOfRSTDmeas-r14 INTEGER (1..32) OPTIONAL -- Need ON
+ maxNoOfRSTDmeas-r14 INTEGER (1..32) OPTIONAL -- Need ON
]],
[[
motionMeasurements-r15 ENUMERATED { requested } OPTIONAL -- Need ON
@@ -1291,20 +1309,20 @@ GNSS-PeriodicAssistData-r15 ::= SEQUENCE {
GNSS-PeriodicControlParam-r15 OPTIONAL, -- Need ON
gnss-SSR-PeriodicClockCorrections-r15
GNSS-PeriodicControlParam-r15 OPTIONAL, -- Need ON
- gnss-SSR-PeriodicCodeBias-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Need ON
+ gnss-SSR-PeriodicCodeBias-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Need ON
...
}
-GNSS-ReferenceTime ::= SEQUENCE {
+GNSS-ReferenceTime ::= SEQUENCE {
gnss-SystemTime GNSS-SystemTime,
referenceTimeUnc INTEGER (0..127) OPTIONAL, -- Cond noFTA
- gnss-ReferenceTimeForCells SEQUENCE (SIZE (1..16)) OF
+ gnss-ReferenceTimeForCells SEQUENCE (SIZE (1..16)) OF
GNSS-ReferenceTimeForOneCell OPTIONAL, -- Need ON
...
}
-GNSS-ReferenceTimeForOneCell ::= SEQUENCE {
+GNSS-ReferenceTimeForOneCell ::= SEQUENCE {
networkTime NetworkTime,
referenceTimeUnc INTEGER (0..127),
bsAlign ENUMERATED {true} OPTIONAL,
@@ -1853,7 +1871,7 @@ GNSS-AcquisitionAssistance ::= SEQUENCE {
GNSS-AcquisitionAssistList ::= SEQUENCE (SIZE(1..64)) OF GNSS-AcquisitionAssistElement
-GNSS-AcquisitionAssistElement ::= SEQUENCE {
+GNSS-AcquisitionAssistElement ::= SEQUENCE {
svID SV-ID,
doppler0 INTEGER (-2048..2047),
doppler1 INTEGER (0..63),
@@ -2160,7 +2178,7 @@ GNSS-ObservationList-r15 ::= SEQUENCE (SIZE(1..64)) OF GNSS-RTK-SatelliteDataEle
GNSS-RTK-SatelliteDataElement-r15 ::= SEQUENCE{
svID-r15 SV-ID,
integer-ms-r15 INTEGER (0..254) OPTIONAL, -- Need ON
- rough-range-r15 INTEGER (0..1023),
+ rough-range-r15 INTEGER (0..1023),
rough-phase-range-rate-r15 INTEGER (-8192..8191) OPTIONAL, -- Need ON
gnss-rtk-SatelliteSignalDataList-r15 GNSS-RTK-SatelliteSignalDataList-r15,
...
@@ -2347,7 +2365,7 @@ A-GNSS-RequestAssistanceData ::= SEQUENCE {
...,
[[
gnss-PeriodicAssistDataReq-r15
- GNSS-PeriodicAssistDataReq-r15 OPTIONAL -- Cond PerADReq
+ GNSS-PeriodicAssistDataReq-r15 OPTIONAL -- Cond PerADReq
]]
}
@@ -2365,10 +2383,10 @@ GNSS-CommonAssistDataReq ::= SEQUENCE {
[[
gnss-RTK-ReferenceStationInfoReq-r15
GNSS-RTK-ReferenceStationInfoReq-r15
- OPTIONAL, -- Cond ARPReq
+ OPTIONAL, -- Cond ARPReq
gnss-RTK-AuxiliaryStationDataReq-r15
GNSS-RTK-AuxiliaryStationDataReq-r15
- OPTIONAL -- Cond AuxARPReq
+ OPTIONAL -- Cond AuxARPReq
]]
}
@@ -2411,23 +2429,23 @@ GNSS-GenericAssistDataReqElement ::= SEQUENCE {
gnss-SSR-ClockCorrectionsReq-r15
GNSS-SSR-ClockCorrectionsReq-r15
OPTIONAL, -- Cond CC-Req
- gnss-SSR-CodeBiasReq-r15 GNSS-SSR-CodeBiasReq-r15 OPTIONAL -- Cond CB-Req
+ gnss-SSR-CodeBiasReq-r15 GNSS-SSR-CodeBiasReq-r15 OPTIONAL -- Cond CB-Req
]]
}
GNSS-PeriodicAssistDataReq-r15 ::= SEQUENCE {
- gnss-RTK-PeriodicObservationsReq-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pOSR
- glo-RTK-PeriodicBiasInformationReq-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pCPB
+ gnss-RTK-PeriodicObservationsReq-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pOSR
+ glo-RTK-PeriodicBiasInformationReq-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pCPB
gnss-RTK-MAC-PeriodicCorrectionDifferencesReq-r15
- GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pMAC
- gnss-RTK-PeriodicResidualsReq-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pRes
- gnss-RTK-FKP-PeriodicGradientsReq-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pFKP
+ GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pMAC
+ gnss-RTK-PeriodicResidualsReq-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pRes
+ gnss-RTK-FKP-PeriodicGradientsReq-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pFKP
gnss-SSR-PeriodicOrbitCorrectionsReq-r15
- GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pOC
+ GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pOC
gnss-SSR-PeriodicClockCorrectionsReq-r15
- GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pCC
- gnss-SSR-PeriodicCodeBiasReq-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pCB
+ GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pCC
+ gnss-SSR-PeriodicCodeBiasReq-r15 GNSS-PeriodicControlParam-r15 OPTIONAL, -- Cond pCB
...
}
@@ -2658,7 +2676,7 @@ GNSS-SignalMeasurementInformation ::= SEQUENCE {
}
-MeasurementReferenceTime ::= SEQUENCE {
+MeasurementReferenceTime ::= SEQUENCE {
gnss-TOD-msec INTEGER (0..3599999),
gnss-TOD-frac INTEGER (0..3999) OPTIONAL,
gnss-TOD-unc INTEGER (0..127) OPTIONAL,
@@ -2718,7 +2736,7 @@ MeasurementReferenceTime ::= SEQUENCE {
}
-GNSS-MeasurementList ::= SEQUENCE (SIZE(1..16)) OF GNSS-MeasurementForOneGNSS
+GNSS-MeasurementList ::= SEQUENCE (SIZE(1..16)) OF GNSS-MeasurementForOneGNSS
GNSS-MeasurementForOneGNSS ::= SEQUENCE {
gnss-ID GNSS-ID,
@@ -2845,7 +2863,7 @@ GNSS-CommonAssistanceDataSupport ::= SEQUENCE {
OPTIONAL, -- Cond ARPSup
gnss-RTK-AuxiliaryStationDataSupport-r15
GNSS-RTK-AuxiliaryStationDataSupport-r15
- OPTIONAL -- Cond AuxARPSup
+ OPTIONAL -- Cond AuxARPSup
]]
}
@@ -2938,7 +2956,7 @@ GNSS-GenericAssistDataSupportElement ::= SEQUENCE {
GNSS-SSR-ClockCorrectionsSupport-r15
OPTIONAL, -- Cond CC-Sup
gnss-SSR-CodeBiasSupport-r15 GNSS-SSR-CodeBiasSupport-r15
- OPTIONAL -- Cond CB-Sup
+ OPTIONAL -- Cond CB-Sup
]]
}
@@ -3528,7 +3546,7 @@ Displacement-r15 ::= SEQUENCE {
horizontalDistanceUnc-r15 INTEGER (0..255) OPTIONAL,
horizontalUncConfidence-r15 INTEGER (0..100) OPTIONAL,
verticalDirection-r15 ENUMERATED{upward, downward} OPTIONAL,
- verticalDistance-r15 INTEGER(0..8191) OPTIONAL,
+ verticalDistance-r15 INTEGER(0..8191) OPTIONAL,
verticalDistanceUnc-r15 INTEGER (0..255) OPTIONAL,
verticalUncConfidence-r15 INTEGER (0..100) OPTIONAL,
...
@@ -3565,8 +3583,10 @@ Sensor-ProvideCapabilities-r13 ::= SEQUENCE {
}
Sensor-AssistanceDataSupportList-r14 ::= SEQUENCE {
- ...
-
+ ...,
+ [[ validityPeriodSupported-v1520 ENUMERATED { true } OPTIONAL,
+ validityAreaSupported-v1520 ENUMERATED { true } OPTIONAL
+ ]]
}
@@ -3612,6 +3632,33 @@ Sensor-AssistanceDataList-r14::= SEQUENCE {
refPressure-r14 INTEGER (-20000..10000),
refPosition-r14 EllipsoidPointWithAltitudeAndUncertaintyEllipsoid OPTIONAL, -- Need ON
refTemperature-r14 INTEGER (-64..63) OPTIONAL, -- Need ON
+ ...,
+ [[
+ period-v1520 SEQUENCE {
+ pressureValidityPeriod-v1520 PressureValidityPeriod-v1520,
+ referencePressureRate-v1520 INTEGER (-128..127) OPTIONAL, -- Need ON
+ ...
+ } OPTIONAL, -- Need ON
+ area-v1520 SEQUENCE {
+ pressureValidityArea-v1520 PressureValidityArea-v1520,
+ gN-pressure-v1520 INTEGER (-1024..1023) OPTIONAL, -- Need ON
+ gE-pressure-v1520 INTEGER (-1024..1023) OPTIONAL, -- Need ON
+ ...
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+PressureValidityArea-v1520 ::= SEQUENCE {
+ centerPoint-v1520 Ellipsoid-Point,
+ validityAreaWidth-v1520 INTEGER (1..128),
+ validityAreaHeight-v1520 INTEGER (1..128),
+ ...
+}
+
+PressureValidityPeriod-v1520 ::= SEQUENCE {
+ beginTime-v1520 GNSS-SystemTime,
+ beginTimeAlt-v1520 INTEGER (0..2881) OPTIONAL, -- Need ON
+ duration-v1520 INTEGER (1..2881),
...
}
@@ -3652,14 +3699,14 @@ WLAN-AP-Identifier-r13 ::= SEQUENCE {
}
WLAN-RTT-r13 ::= SEQUENCE {
- rttValue-r13 INTEGER (0..16777215),
- rttUnits-r13 ENUMERATED { microseconds,
+ rttValue-r13 INTEGER (0..16777215),
+ rttUnits-r13 ENUMERATED { microseconds,
hundredsofnanoseconds,
tensofnanoseconds,
nanoseconds,
tenthsofnanoseconds,
... },
- rttAccuracy-r13 INTEGER (0..255) OPTIONAL,
+ rttAccuracy-r13 INTEGER (0..255) OPTIONAL,
...
}
diff --git a/epan/dissectors/asn1/lpp/lpp.cnf b/epan/dissectors/asn1/lpp/lpp.cnf
index 08d78a0f65..b7008250e8 100644
--- a/epan/dissectors/asn1/lpp/lpp.cnf
+++ b/epan/dissectors/asn1/lpp/lpp.cnf
@@ -1,12 +1,15 @@
# lpp.cnf
# lpp conformation file
-# Copyright 2011-2018 Pascal Quantin
+# Copyright 2011-2019 Pascal Quantin
#.OPT
PER
UNALIGNED
#.END
+#.USE_VALS_EXT
+CarrierFreqOffsetNB-r14
+
#.EXPORTS
Ellipsoid-Point_PDU
EllipsoidPointWithAltitude_PDU
@@ -376,6 +379,9 @@ MessageSizeLimitNB-r14/measurementLimit-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(
}
#.TYPE_ATTR
+OTDOA-ReferenceCellInfo/eag_4/nr-LTE-fineTiming-Offset-r15 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_nr_LTE_fineTiming_Offset_fmt)
+
+#.TYPE_ATTR
OTDOA-NeighbourCellInfoElement/expectedRSTD DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_expectedRSTD_fmt)
#.TYPE_ATTR
@@ -2146,6 +2152,27 @@ Sensor-AssistanceDataList-r14/refPressure-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUN
Sensor-AssistanceDataList-r14/refTemperature-r14 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_refTemperature_fmt)
#.TYPE_ATTR
+Sensor-AssistanceDataList-r14/eag_1/period-v1520/referencePressureRate-v1520 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_referencePressureRate_v1520_fmt)
+
+#.FN_FTR Sensor-AssistanceDataList-r14/eag_1/area-v1520/gN-pressure-v1520
+ proto_item_append_text(actx->created_item, "Pa/Km");
+
+#.FN_FTR Sensor-AssistanceDataList-r14/eag_1/area-v1520/gE-pressure-v1520
+ proto_item_append_text(actx->created_item, "Pa/Km");
+
+#.TYPE_ATTR
+PressureValidityArea-v1520/validityAreaWidth-v1520 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_km
+
+#.TYPE_ATTR
+PressureValidityArea-v1520/vvalidityAreaHeight-v1520 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_km
+
+#.TYPE_ATTR
+PressureValidityPeriod-v1520/beginTimeAlt-v1520 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_PressureValidityPeriod_v1520_fmt)
+
+#.TYPE_ATTR
+PressureValidityPeriod-v1520/duration-v1520 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(lpp_PressureValidityPeriod_v1520_fmt)
+
+#.TYPE_ATTR
WLAN-MeasurementElement-r13/rssi-r13 DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_dbm
#.TYPE_ATTR
diff --git a/epan/dissectors/asn1/lpp/packet-lpp-template.c b/epan/dissectors/asn1/lpp/packet-lpp-template.c
index 57e1f0953b..b09990c3c4 100644
--- a/epan/dissectors/asn1/lpp/packet-lpp-template.c
+++ b/epan/dissectors/asn1/lpp/packet-lpp-template.c
@@ -1,6 +1,6 @@
/* packet-lpp.c
* Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
- * Copyright 2011-2018 Pascal Quantin <pascal.quantin@gmail.com>
+ * Copyright 2011-2019 Pascal Quantin <pascal.quantin@gmail.com>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -8,7 +8,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * Ref 3GPP TS 36.355 version 15.1.0 Release 15
+ * Ref 3GPP TS 36.355 version 15.2.0 Release 15
* http://www.3gpp.org
*/
@@ -152,6 +152,12 @@ lpp_radius_fmt(gchar *s, guint32 v)
}
static void
+lpp_nr_LTE_fineTiming_Offset_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/2, v);
+}
+
+static void
lpp_expectedRSTD_fmt(gchar *s, guint32 v)
{
gint32 rstd = 3*((gint32)v-8192);
@@ -1832,6 +1838,20 @@ lpp_refTemperature_fmt(gchar *s, guint32 v)
}
static void
+lpp_referencePressureRate_v1520_fmt(gchar *s, guint32 v)
+{
+ gint32 rate = (gint32)v;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%dPa/hour (%d)", 10*rate, rate);
+}
+
+static void
+lpp_PressureValidityPeriod_v1520_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%umin (%u)", 15*v, v);
+}
+
+static void
lpp_doppler_fmt(gchar *s, guint32 v)
{
g_snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", (gint32)v*0.04, (gint32)v);
diff --git a/epan/dissectors/asn1/lpp/packet-lpp-template.h b/epan/dissectors/asn1/lpp/packet-lpp-template.h
index 8632427306..ea781aa177 100644
--- a/epan/dissectors/asn1/lpp/packet-lpp-template.h
+++ b/epan/dissectors/asn1/lpp/packet-lpp-template.h
@@ -1,6 +1,6 @@
/* packet-lpp.h
* Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
- * Copyright 2011-2018 Pascal Quantin <pascal.quantin@gmail.com>
+ * Copyright 2011-2019 Pascal Quantin <pascal.quantin@gmail.com>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -8,7 +8,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * Ref 3GPP TS 36.355 version 15.0.0 Release 15
+ * Ref 3GPP TS 36.355 version 15.2.0 Release 15
* http://www.3gpp.org
*/
diff --git a/epan/dissectors/packet-lpp.c b/epan/dissectors/packet-lpp.c
index 2a13344e71..ca4f242d07 100644
--- a/epan/dissectors/packet-lpp.c
+++ b/epan/dissectors/packet-lpp.c
@@ -8,7 +8,7 @@
#line 1 "./asn1/lpp/packet-lpp-template.c"
/* packet-lpp.c
* Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
- * Copyright 2011-2018 Pascal Quantin <pascal.quantin@gmail.com>
+ * Copyright 2011-2019 Pascal Quantin <pascal.quantin@gmail.com>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -16,7 +16,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * Ref 3GPP TS 36.355 version 15.1.0 Release 15
+ * Ref 3GPP TS 36.355 version 15.2.0 Release 15
* http://www.3gpp.org
*/
@@ -331,6 +331,8 @@ static int hf_lpp_dlBandwidth_r14 = -1; /* T_dlBandwidth_r14 */
static int hf_lpp_addPRSconfigRef_r14 = -1; /* SEQUENCE_SIZE_1_maxAddPRSconfig_r14_OF_PRS_Info */
static int hf_lpp_addPRSconfigRef_r14_item = -1; /* PRS_Info */
static int hf_lpp_nr_LTE_SFN_Offset_r15 = -1; /* INTEGER_0_1023 */
+static int hf_lpp_tdd_config_v1520 = -1; /* TDD_Config_v1520 */
+static int hf_lpp_nr_LTE_fineTiming_Offset_r15 = -1; /* INTEGER_0_19 */
static int hf_lpp_prs_Bandwidth = -1; /* T_prs_Bandwidth */
static int hf_lpp_prs_ConfigurationIndex = -1; /* INTEGER_0_4095 */
static int hf_lpp_numDL_Frames = -1; /* T_numDL_Frames */
@@ -352,6 +354,7 @@ static int hf_lpp_prsHoppingInfo_r14 = -1; /* T_prsHoppingInfo_r14 */
static int hf_lpp_nb2_r14 = -1; /* INTEGER_0_maxAvailNarrowBands_Minus1_r14 */
static int hf_lpp_nb4_r14 = -1; /* T_nb4_r14 */
static int hf_lpp_nb4_r14_item = -1; /* INTEGER_0_maxAvailNarrowBands_Minus1_r14 */
+static int hf_lpp_subframeAssignment_v1520 = -1; /* T_subframeAssignment_v1520 */
static int hf_lpp_OTDOA_NeighbourCellInfoList_item = -1; /* OTDOA_NeighbourFreqInfo */
static int hf_lpp_OTDOA_NeighbourFreqInfo_item = -1; /* OTDOA_NeighbourCellInfoElement */
static int hf_lpp_earfcn = -1; /* ARFCN_ValueEUTRA */
@@ -377,6 +380,7 @@ static int hf_lpp_eutra_NumCRS_Ports_r14 = -1; /* T_eutra_NumCRS_Ports_r14 */
static int hf_lpp_otdoa_SIB1_NB_repetitions_r14 = -1; /* T_otdoa_SIB1_NB_repetitions_r14 */
static int hf_lpp_nprsInfo_r14 = -1; /* PRS_Info_NB_r14 */
static int hf_lpp_nprsInfo_Type2_v1470 = -1; /* PRS_Info_NB_r14 */
+static int hf_lpp_tdd_config_r15 = -1; /* TDD_Config_v1520 */
static int hf_lpp_PRS_Info_NB_r14_item = -1; /* NPRS_Info_r14 */
static int hf_lpp_operationModeInfoNPRS_r14 = -1; /* T_operationModeInfoNPRS_r14 */
static int hf_lpp_nprs_carrier_r14 = -1; /* CarrierFreq_NB_r14 */
@@ -1400,6 +1404,8 @@ static int hf_lpp_sensor_Modes_r13 = -1; /* T_sensor_Modes_r13 */
static int hf_lpp_sensor_AssistanceDataSupportList_r14 = -1; /* Sensor_AssistanceDataSupportList_r14 */
static int hf_lpp_idleStateForMeasurements_r14_03 = -1; /* T_idleStateForMeasurements_r14_03 */
static int hf_lpp_sensor_MotionInformationSup_r15 = -1; /* T_sensor_MotionInformationSup_r15 */
+static int hf_lpp_validityPeriodSupported_v1520 = -1; /* T_validityPeriodSupported_v1520 */
+static int hf_lpp_validityAreaSupported_v1520 = -1; /* T_validityAreaSupported_v1520 */
static int hf_lpp_locationServerErrorCauses_r13_01 = -1; /* Sensor_LocationServerErrorCauses_r13 */
static int hf_lpp_targetDeviceErrorCauses_r13_01 = -1; /* Sensor_TargetDeviceErrorCauses_r13 */
static int hf_lpp_cause_r13_02 = -1; /* T_cause_r13_02 */
@@ -1409,6 +1415,19 @@ static int hf_lpp_sensor_Error_r14 = -1; /* Sensor_Error_r13 */
static int hf_lpp_refPressure_r14 = -1; /* INTEGER_M20000_10000 */
static int hf_lpp_refPosition_r14 = -1; /* EllipsoidPointWithAltitudeAndUncertaintyEllipsoid */
static int hf_lpp_refTemperature_r14 = -1; /* INTEGER_M64_63 */
+static int hf_lpp_period_v1520 = -1; /* T_period_v1520 */
+static int hf_lpp_pressureValidityPeriod_v1520 = -1; /* PressureValidityPeriod_v1520 */
+static int hf_lpp_referencePressureRate_v1520 = -1; /* INTEGER_M128_127 */
+static int hf_lpp_area_v1520 = -1; /* T_area_v1520 */
+static int hf_lpp_pressureValidityArea_v1520 = -1; /* PressureValidityArea_v1520 */
+static int hf_lpp_gN_pressure_v1520 = -1; /* T_gN_pressure_v1520 */
+static int hf_lpp_gE_pressure_v1520 = -1; /* T_gE_pressure_v1520 */
+static int hf_lpp_centerPoint_v1520 = -1; /* Ellipsoid_Point */
+static int hf_lpp_validityAreaWidth_v1520 = -1; /* INTEGER_1_128 */
+static int hf_lpp_validityAreaHeight_v1520 = -1; /* INTEGER_1_128 */
+static int hf_lpp_beginTime_v1520 = -1; /* GNSS_SystemTime */
+static int hf_lpp_beginTimeAlt_v1520 = -1; /* INTEGER_0_2881 */
+static int hf_lpp_duration_v1520 = -1; /* INTEGER_1_2881 */
static int hf_lpp_wlan_MeasurementInformation_r13 = -1; /* WLAN_MeasurementInformation_r13 */
static int hf_lpp_wlan_Error_r13 = -1; /* WLAN_Error_r13 */
static int hf_lpp_wlan_MeasurementList_r13 = -1; /* WLAN_MeasurementList_r13 */
@@ -1744,6 +1763,7 @@ static gint ett_lpp_PRS_Info = -1;
static gint ett_lpp_T_prs_MutingInfo_r9 = -1;
static gint ett_lpp_T_prsHoppingInfo_r14 = -1;
static gint ett_lpp_T_nb4_r14 = -1;
+static gint ett_lpp_TDD_Config_v1520 = -1;
static gint ett_lpp_OTDOA_NeighbourCellInfoList = -1;
static gint ett_lpp_OTDOA_NeighbourFreqInfo = -1;
static gint ett_lpp_OTDOA_NeighbourCellInfoElement = -1;
@@ -2095,6 +2115,10 @@ static gint ett_lpp_Sensor_LocationServerErrorCauses_r13 = -1;
static gint ett_lpp_Sensor_TargetDeviceErrorCauses_r13 = -1;
static gint ett_lpp_Sensor_ProvideAssistanceData_r14 = -1;
static gint ett_lpp_Sensor_AssistanceDataList_r14 = -1;
+static gint ett_lpp_T_period_v1520 = -1;
+static gint ett_lpp_T_area_v1520 = -1;
+static gint ett_lpp_PressureValidityArea_v1520 = -1;
+static gint ett_lpp_PressureValidityPeriod_v1520 = -1;
static gint ett_lpp_Sensor_RequestAssistanceData_r14 = -1;
static gint ett_lpp_WLAN_ProvideLocationInformation_r13 = -1;
static gint ett_lpp_WLAN_MeasurementInformation_r13 = -1;
@@ -2272,6 +2296,12 @@ lpp_radius_fmt(gchar *s, guint32 v)
}
static void
+lpp_nr_LTE_fineTiming_Offset_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%.1fms (%u)", (float)v/2, v);
+}
+
+static void
lpp_expectedRSTD_fmt(gchar *s, guint32 v)
{
gint32 rstd = 3*((gint32)v-8192);
@@ -3952,6 +3982,20 @@ lpp_refTemperature_fmt(gchar *s, guint32 v)
}
static void
+lpp_referencePressureRate_v1520_fmt(gchar *s, guint32 v)
+{
+ gint32 rate = (gint32)v;
+
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%dPa/hour (%d)", 10*rate, rate);
+}
+
+static void
+lpp_PressureValidityPeriod_v1520_fmt(gchar *s, guint32 v)
+{
+ g_snprintf(s, ITEM_LABEL_LENGTH, "%umin (%u)", 15*v, v);
+}
+
+static void
lpp_doppler_fmt(gchar *s, guint32 v)
{
g_snprintf(s, ITEM_LABEL_LENGTH, "%gm/s (%d)", (gint32)v*0.04, (gint32)v);
@@ -4166,7 +4210,7 @@ dissect_lpp_Acknowledgement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_T_lpp_message_segmentation_req_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 273 "./asn1/lpp/lpp.cnf"
+#line 276 "./asn1/lpp/lpp.cnf"
tvbuff_t *segmentation_req_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -4258,7 +4302,7 @@ dissect_lpp_ECID_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_lpp_EPDU_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 84 "./asn1/lpp/lpp.cnf"
+#line 87 "./asn1/lpp/lpp.cnf"
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1U, 256U, &lpp_epdu_id, FALSE);
@@ -4297,7 +4341,7 @@ dissect_lpp_EPDU_Identifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_EPDU_Body(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 90 "./asn1/lpp/lpp.cnf"
+#line 93 "./asn1/lpp/lpp.cnf"
tvbuff_t *lppe_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
NO_BOUND, NO_BOUND, FALSE, &lppe_tvb);
@@ -4512,7 +4556,7 @@ static const per_sequence_t RequestCapabilities_sequence[] = {
static int
dissect_lpp_RequestCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 60 "./asn1/lpp/lpp.cnf"
+#line 63 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Capabilities");
@@ -4542,7 +4586,7 @@ dissect_lpp_SegmentationInfo_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_lpp_T_lpp_message_segmentation_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 285 "./asn1/lpp/lpp.cnf"
+#line 288 "./asn1/lpp/lpp.cnf"
tvbuff_t *segmentation_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -4603,7 +4647,7 @@ static const value_string lpp_T_gnss_id_vals[] = {
static int
dissect_lpp_T_gnss_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1852 "./asn1/lpp/lpp.cnf"
+#line 1858 "./asn1/lpp/lpp.cnf"
guint32 gnss_id;
offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
5, &gnss_id, TRUE, 1, NULL);
@@ -4633,7 +4677,7 @@ dissect_lpp_GNSS_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_lpp_T_sbas_IDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1892 "./asn1/lpp/lpp.cnf"
+#line 1898 "./asn1/lpp/lpp.cnf"
tvbuff_t *sbas_IDs_tvb = NULL;
int len;
@@ -4681,7 +4725,7 @@ dissect_lpp_SBAS_IDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_lpp_T_posModes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 253 "./asn1/lpp/lpp.cnf"
+#line 256 "./asn1/lpp/lpp.cnf"
tvbuff_t *posModes_tvb = NULL;
int len;
@@ -4774,7 +4818,7 @@ dissect_lpp_GNSS_SignalIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_lpp_T_accessTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 104 "./asn1/lpp/lpp.cnf"
+#line 107 "./asn1/lpp/lpp.cnf"
tvbuff_t *accessTypes_tvb = NULL;
int len;
@@ -4904,7 +4948,7 @@ dissect_lpp_GNSS_SupportList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_T_gnss_ids(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1857 "./asn1/lpp/lpp.cnf"
+#line 1863 "./asn1/lpp/lpp.cnf"
tvbuff_t *gnss_ids_tvb = NULL;
int len;
@@ -4986,7 +5030,7 @@ dissect_lpp_GNSS_ReferenceLocationSupport(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_lpp_T_ionoModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1719 "./asn1/lpp/lpp.cnf"
+#line 1725 "./asn1/lpp/lpp.cnf"
tvbuff_t *ionoModel_tvb = NULL;
int len;
@@ -5159,7 +5203,7 @@ dissect_lpp_GNSS_DifferentialCorrectionsSupport(tvbuff_t *tvb _U_, int offset _U
static int
dissect_lpp_T_clockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1736 "./asn1/lpp/lpp.cnf"
+#line 1742 "./asn1/lpp/lpp.cnf"
tvbuff_t *clockModel_tvb = NULL;
int len;
@@ -5199,7 +5243,7 @@ dissect_lpp_T_clockModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_lpp_T_orbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1765 "./asn1/lpp/lpp.cnf"
+#line 1771 "./asn1/lpp/lpp.cnf"
tvbuff_t *orbitModel_tvb = NULL;
int len;
@@ -5325,7 +5369,7 @@ dissect_lpp_GNSS_AcquisitionAssistanceSupport(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lpp_T_almanacModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1794 "./asn1/lpp/lpp.cnf"
+#line 1800 "./asn1/lpp/lpp.cnf"
tvbuff_t *almanacModel_tvb = NULL;
int len;
@@ -5382,7 +5426,7 @@ dissect_lpp_GNSS_AlmanacSupport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_lpp_T_utc_Model(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1826 "./asn1/lpp/lpp.cnf"
+#line 1832 "./asn1/lpp/lpp.cnf"
tvbuff_t *utc_Model_tvb = NULL;
int len;
@@ -5805,7 +5849,7 @@ dissect_lpp_A_GNSS_ProvideCapabilities_eag_1(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lpp_T_periodicAssistanceData_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1702 "./asn1/lpp/lpp.cnf"
+#line 1708 "./asn1/lpp/lpp.cnf"
tvbuff_t *periodicAssistanceData_tvb = NULL;
int len;
@@ -5865,7 +5909,7 @@ dissect_lpp_A_GNSS_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_lpp_T_otdoa_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 448 "./asn1/lpp/lpp.cnf"
+#line 454 "./asn1/lpp/lpp.cnf"
tvbuff_t *otdoa_Mode_tvb = NULL;
int len;
@@ -6282,7 +6326,7 @@ dissect_lpp_OTDOA_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_lpp_T_ecid_MeasSupported(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1962 "./asn1/lpp/lpp.cnf"
+#line 1968 "./asn1/lpp/lpp.cnf"
tvbuff_t *ecid_MeasSupported_tvb = NULL;
int len;
@@ -6423,7 +6467,7 @@ dissect_lpp_ECID_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_lpp_T_sensor_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2123 "./asn1/lpp/lpp.cnf"
+#line 2129 "./asn1/lpp/lpp.cnf"
tvbuff_t *sensor_Modes_tvb = NULL;
int len;
@@ -6451,8 +6495,53 @@ dissect_lpp_T_sensor_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
}
+static const value_string lpp_T_validityPeriodSupported_v1520_vals[] = {
+ { 0, "true" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_lpp_T_validityPeriodSupported_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const value_string lpp_T_validityAreaSupported_v1520_vals[] = {
+ { 0, "true" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_lpp_T_validityAreaSupported_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 1, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t Sensor_AssistanceDataSupportList_r14_eag_1_sequence[] = {
+ { &hf_lpp_validityPeriodSupported_v1520, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lpp_T_validityPeriodSupported_v1520 },
+ { &hf_lpp_validityAreaSupported_v1520, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lpp_T_validityAreaSupported_v1520 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_Sensor_AssistanceDataSupportList_r14_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_AssistanceDataSupportList_r14_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t Sensor_AssistanceDataSupportList_r14_sequence[] = {
- { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
+ { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_AssistanceDataSupportList_r14_eag_1 },
+ { NULL, 0, 0, NULL }
};
static int
@@ -6541,7 +6630,7 @@ dissect_lpp_Sensor_ProvideCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, as
static int
dissect_lpp_T_tbs_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2011 "./asn1/lpp/lpp.cnf"
+#line 2017 "./asn1/lpp/lpp.cnf"
tvbuff_t *tbs_Modes_tvb = NULL;
int len;
@@ -6587,7 +6676,7 @@ dissect_lpp_MBS_AssistanceDataSupportList_r14(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lpp_T_mbs_ConfigSupport_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2031 "./asn1/lpp/lpp.cnf"
+#line 2037 "./asn1/lpp/lpp.cnf"
tvbuff_t *mbs_ConfigSupport_tvb = NULL;
int len;
@@ -6667,7 +6756,7 @@ dissect_lpp_TBS_ProvideCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_lpp_T_wlan_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2181 "./asn1/lpp/lpp.cnf"
+#line 2208 "./asn1/lpp/lpp.cnf"
tvbuff_t *wlan_Modes_tvb = NULL;
int len;
@@ -6698,7 +6787,7 @@ dissect_lpp_T_wlan_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_T_wlan_MeasSupported_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2201 "./asn1/lpp/lpp.cnf"
+#line 2228 "./asn1/lpp/lpp.cnf"
tvbuff_t *wlan_MeasSupported_tvb = NULL;
int len;
@@ -6726,7 +6815,7 @@ dissect_lpp_T_wlan_MeasSupported_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_lpp_T_wlan_AP_AD_Supported_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2218 "./asn1/lpp/lpp.cnf"
+#line 2245 "./asn1/lpp/lpp.cnf"
tvbuff_t *wlan_AP_AD_Supported_tvb = NULL;
int len;
@@ -6800,7 +6889,7 @@ dissect_lpp_WLAN_ProvideCapabilities_r13(tvbuff_t *tvb _U_, int offset _U_, asn1
static int
dissect_lpp_T_bt_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2278 "./asn1/lpp/lpp.cnf"
+#line 2305 "./asn1/lpp/lpp.cnf"
tvbuff_t *bt_Modes_tvb = NULL;
int len;
@@ -6828,7 +6917,7 @@ dissect_lpp_T_bt_Modes_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
static int
dissect_lpp_T_bt_MeasSupported_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2295 "./asn1/lpp/lpp.cnf"
+#line 2322 "./asn1/lpp/lpp.cnf"
tvbuff_t *bt_MeasSupported_tvb = NULL;
int len;
@@ -6997,7 +7086,7 @@ static const per_sequence_t ProvideCapabilities_sequence[] = {
static int
dissect_lpp_ProvideCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 63 "./asn1/lpp/lpp.cnf"
+#line 66 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Capabilities");
@@ -7463,7 +7552,7 @@ dissect_lpp_T_gnss_WeekOrDay(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 4095U, NULL, FALSE);
-#line 1639 "./asn1/lpp/lpp.cnf"
+#line 1645 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " (days for glonass, weeks otherwise)");
@@ -7477,7 +7566,7 @@ dissect_lpp_T_gnss_Toe(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 255U, NULL, FALSE);
-#line 1642 "./asn1/lpp/lpp.cnf"
+#line 1648 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " (units of 15 mns for glonass, hours otherwise)");
@@ -7491,7 +7580,7 @@ dissect_lpp_T_t_toeLimit(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 15U, NULL, FALSE);
-#line 1645 "./asn1/lpp/lpp.cnf"
+#line 1651 "./asn1/lpp/lpp.cnf"
proto_item_append_text(actx->created_item, " (units of 30 mns for glonass, hours otherwise)");
@@ -8227,7 +8316,7 @@ dissect_lpp_INTEGER_0_503(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_lpp_T_adType_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 385 "./asn1/lpp/lpp.cnf"
+#line 391 "./asn1/lpp/lpp.cnf"
tvbuff_t *adType_tvb = NULL;
int len;
@@ -8336,7 +8425,7 @@ dissect_lpp_TBS_RequestAssistanceData_r14(tvbuff_t *tvb _U_, int offset _U_, asn
static int
dissect_lpp_T_requestedAD_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2235 "./asn1/lpp/lpp.cnf"
+#line 2262 "./asn1/lpp/lpp.cnf"
tvbuff_t *requestedAD_tvb = NULL;
int len;
@@ -8374,7 +8463,7 @@ dissect_lpp_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
static int
dissect_lpp_T_ssid_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2158 "./asn1/lpp/lpp.cnf"
+#line 2185 "./asn1/lpp/lpp.cnf"
tvbuff_t *ssid_tvb = NULL;
offset = dissect_per_octet_string(tvb, offset, actx, tree, -1,
@@ -8548,7 +8637,7 @@ static const per_sequence_t RequestAssistanceData_sequence[] = {
static int
dissect_lpp_RequestAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 66 "./asn1/lpp/lpp.cnf"
+#line 69 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Assistance Data");
@@ -8623,7 +8712,7 @@ dissect_lpp_INTEGER_0_86399(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_T_notificationOfLeapSecond(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 474 "./asn1/lpp/lpp.cnf"
+#line 480 "./asn1/lpp/lpp.cnf"
tvbuff_t *notificationOfLeapSecond_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &notificationOfLeapSecond_tvb, NULL);
@@ -8631,7 +8720,7 @@ dissect_lpp_T_notificationOfLeapSecond(tvbuff_t *tvb _U_, int offset _U_, asn1_c
-#line 478 "./asn1/lpp/lpp.cnf"
+#line 484 "./asn1/lpp/lpp.cnf"
if (notificationOfLeapSecond_tvb) {
guint bitvalue = tvb_get_bits8(notificationOfLeapSecond_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, notificationOfLeapSecond_tvb, 0, 1, bitvalue);
@@ -9109,6 +9198,8 @@ static const value_string lpp_CarrierFreqOffsetNB_r14_vals[] = {
{ 0, NULL }
};
+static value_string_ext lpp_CarrierFreqOffsetNB_r14_vals_ext = VALUE_STRING_EXT_INIT(lpp_CarrierFreqOffsetNB_r14_vals);
+
static int
dissect_lpp_CarrierFreqOffsetNB_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -9394,7 +9485,7 @@ dissect_lpp_GNSS_ReferenceLocation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
dissect_lpp_T_dataID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 493 "./asn1/lpp/lpp.cnf"
+#line 499 "./asn1/lpp/lpp.cnf"
tvbuff_t *dataID_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &dataID_tvb, NULL);
@@ -9402,7 +9493,7 @@ dissect_lpp_T_dataID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
-#line 497 "./asn1/lpp/lpp.cnf"
+#line 503 "./asn1/lpp/lpp.cnf"
if (dataID_tvb) {
guint bitvalue = tvb_get_bits8(dataID_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, dataID_tvb, 0, 1, bitvalue);
@@ -9699,7 +9790,7 @@ dissect_lpp_GNSS_RTK_ReferenceStationInfo_r15(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lpp_T_smoothingIndicator_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 599 "./asn1/lpp/lpp.cnf"
+#line 605 "./asn1/lpp/lpp.cnf"
tvbuff_t *param_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
1, 1, FALSE, &param_tvb, NULL);
@@ -9707,7 +9798,7 @@ dissect_lpp_T_smoothingIndicator_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
-#line 603 "./asn1/lpp/lpp.cnf"
+#line 609 "./asn1/lpp/lpp.cnf"
if (param_tvb) {
guint bitvalue = tvb_get_bits8(param_tvb, 0, 1);
actx->created_item = proto_tree_add_uint(tree, hf_index, param_tvb, 0, 1, bitvalue);
@@ -9721,7 +9812,7 @@ dissect_lpp_T_smoothingIndicator_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx
static int
dissect_lpp_T_smoothingInterval_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 612 "./asn1/lpp/lpp.cnf"
+#line 618 "./asn1/lpp/lpp.cnf"
tvbuff_t *param_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
3, 3, FALSE, &param_tvb, NULL);
@@ -9729,7 +9820,7 @@ dissect_lpp_T_smoothingInterval_r15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
-#line 616 "./asn1/lpp/lpp.cnf"
+#line 622 "./asn1/lpp/lpp.cnf"
if (param_tvb) {
guint bitvalue = tvb_get_bits8(param_tvb, 0, 3);
actx->created_item = proto_tree_add_uint(tree, hf_index, param_tvb, 0, 1, bitvalue);
@@ -10497,7 +10588,7 @@ dissect_lpp_INTEGER_M65536_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
static int
dissect_lpp_T_cnavMo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 907 "./asn1/lpp/lpp.cnf"
+#line 913 "./asn1/lpp/lpp.cnf"
gint64 cnavMo;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
@@ -10506,7 +10597,7 @@ dissect_lpp_T_cnavMo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
-#line 912 "./asn1/lpp/lpp.cnf"
+#line 918 "./asn1/lpp/lpp.cnf"
PROTO_ITEM_SET_HIDDEN(actx->created_item);
actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
cnavMo, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
@@ -10520,7 +10611,7 @@ dissect_lpp_T_cnavMo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
static int
dissect_lpp_T_cnavE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 918 "./asn1/lpp/lpp.cnf"
+#line 924 "./asn1/lpp/lpp.cnf"
guint64 cnavE;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
@@ -10529,7 +10620,7 @@ dissect_lpp_T_cnavE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
-#line 923 "./asn1/lpp/lpp.cnf"
+#line 929 "./asn1/lpp/lpp.cnf"
PROTO_ITEM_SET_HIDDEN(actx->created_item);
actx->created_item = proto_tree_add_uint64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
cnavE, "%g (%"G_GINT64_MODIFIER"u)",
@@ -10543,7 +10634,7 @@ dissect_lpp_T_cnavE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
static int
dissect_lpp_T_cnavOmega(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 929 "./asn1/lpp/lpp.cnf"
+#line 935 "./asn1/lpp/lpp.cnf"
gint64 cnavOmega;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
@@ -10552,7 +10643,7 @@ dissect_lpp_T_cnavOmega(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
-#line 934 "./asn1/lpp/lpp.cnf"
+#line 940 "./asn1/lpp/lpp.cnf"
PROTO_ITEM_SET_HIDDEN(actx->created_item);
actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
cnavOmega, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
@@ -10566,7 +10657,7 @@ dissect_lpp_T_cnavOmega(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
static int
dissect_lpp_T_cnavOMEGA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 940 "./asn1/lpp/lpp.cnf"
+#line 946 "./asn1/lpp/lpp.cnf"
gint64 cnavOMEGA0;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
@@ -10575,7 +10666,7 @@ dissect_lpp_T_cnavOMEGA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
-#line 945 "./asn1/lpp/lpp.cnf"
+#line 951 "./asn1/lpp/lpp.cnf"
PROTO_ITEM_SET_HIDDEN(actx->created_item);
actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
cnavOMEGA0, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
@@ -10589,7 +10680,7 @@ dissect_lpp_T_cnavOMEGA0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
static int
dissect_lpp_T_cnavIo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 954 "./asn1/lpp/lpp.cnf"
+#line 960 "./asn1/lpp/lpp.cnf"
gint64 cnavIo;
int curr_offset = offset;
offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
@@ -10598,7 +10689,7 @@ dissect_lpp_T_cnavIo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr
-#line 959 "./asn1/lpp/lpp.cnf"
+#line 965 "./asn1/lpp/lpp.cnf"
PROTO_ITEM_SET_HIDDEN(actx->created_item);
actx->created_item = proto_tree_add_int64_format_value(tree, hf_index, tvb, curr_offset>>3, (offset+7-curr_offset)>>3,
cnavIo, "%g semi-circles (%"G_GINT64_MODIFIER"d)",
@@ -10644,7 +10735,7 @@ dissect_lpp_NavModelCNAV_KeplerianSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_lpp_T_gloP1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 989 "./asn1/lpp/lpp.cnf"
+#line 995 "./asn1/lpp/lpp.cnf"
tvbuff_t *gloP1_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &gloP1_tvb, NULL);
@@ -10652,7 +10743,7 @@ dissect_lpp_T_gloP1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
-#line 993 "./asn1/lpp/lpp.cnf"
+#line 999 "./asn1/lpp/lpp.cnf"
if (gloP1_tvb) {
guint bitvalue = tvb_get_bits8(gloP1_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, gloP1_tvb, 0, 1, bitvalue);
@@ -10807,7 +10898,7 @@ dissect_lpp_GNSS_OrbitModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_T_svHealthExt_v1240(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 676 "./asn1/lpp/lpp.cnf"
+#line 682 "./asn1/lpp/lpp.cnf"
tvbuff_t *svHealthExt_tvb = NULL;
proto_tree *subtree;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -10816,7 +10907,7 @@ dissect_lpp_T_svHealthExt_v1240(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
-#line 681 "./asn1/lpp/lpp.cnf"
+#line 687 "./asn1/lpp/lpp.cnf"
if (svHealthExt_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_lpp_svHealthExt_v1240);
proto_tree_add_bits_item(subtree, hf_lpp_svHealthExt_v1240_e5bhs, svHealthExt_tvb, 0, 2, ENC_BIG_ENDIAN);
@@ -11112,7 +11203,7 @@ dissect_lpp_GNSS_AcquisitionAssistance(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_lpp_T_toa(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1146 "./asn1/lpp/lpp.cnf"
+#line 1152 "./asn1/lpp/lpp.cnf"
guint32 toa, val;
int len, old_offset = offset;
T_GNSS_ID_enum gnss_id = (T_GNSS_ID_enum)GPOINTER_TO_UINT(actx->private_data);
@@ -11122,7 +11213,7 @@ dissect_lpp_T_toa(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
-#line 1152 "./asn1/lpp/lpp.cnf"
+#line 1158 "./asn1/lpp/lpp.cnf"
len = (offset-old_offset) >> 3 ? (offset-old_offset) >> 3 : 1;
val = (gnss_id == T_GNSS_ID_GALILEO) ? 600*toa : 4096*toa;
actx->created_item = proto_tree_add_uint_format_value(tree, hf_lpp_toa, tvb, old_offset, len,
@@ -11136,7 +11227,7 @@ dissect_lpp_T_toa(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
static int
dissect_lpp_T_kepSV_StatusINAV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1179 "./asn1/lpp/lpp.cnf"
+#line 1185 "./asn1/lpp/lpp.cnf"
tvbuff_t *statusINAV_tvb = NULL;
proto_tree *subtree;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -11145,7 +11236,7 @@ dissect_lpp_T_kepSV_StatusINAV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
-#line 1184 "./asn1/lpp/lpp.cnf"
+#line 1190 "./asn1/lpp/lpp.cnf"
if (statusINAV_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_kepSV_StatusINAV);
proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusINAV_e5bhs, statusINAV_tvb, 0, 2, ENC_BIG_ENDIAN);
@@ -11160,7 +11251,7 @@ dissect_lpp_T_kepSV_StatusINAV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_lpp_T_kepSV_StatusFNAV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1191 "./asn1/lpp/lpp.cnf"
+#line 1197 "./asn1/lpp/lpp.cnf"
tvbuff_t *statusFNAV_tvb = NULL;
proto_tree *subtree;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -11169,7 +11260,7 @@ dissect_lpp_T_kepSV_StatusFNAV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
-#line 1196 "./asn1/lpp/lpp.cnf"
+#line 1202 "./asn1/lpp/lpp.cnf"
if (statusFNAV_tvb) {
subtree = proto_item_add_subtree(actx->created_item, ett_kepSV_StatusFNAV);
proto_tree_add_bits_item(subtree, hf_lpp_kepSV_StatusFNAV_e5ahs, statusFNAV_tvb, 0, 2, ENC_BIG_ENDIAN);
@@ -11387,7 +11478,7 @@ dissect_lpp_AlmanacECEF_SBAS_AlmanacSet(tvbuff_t *tvb _U_, int offset _U_, asn1_
static int
dissect_lpp_T_bdsSvHealth_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1358 "./asn1/lpp/lpp.cnf"
+#line 1364 "./asn1/lpp/lpp.cnf"
tvbuff_t *bdsSvHealth_tvb = NULL;
proto_tree *subtree;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
@@ -11396,7 +11487,7 @@ dissect_lpp_T_bdsSvHealth_r12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
-#line 1363 "./asn1/lpp/lpp.cnf"
+#line 1369 "./asn1/lpp/lpp.cnf"
if (bdsSvHealth_tvb) {
guint16 bits;
subtree = proto_item_add_subtree(actx->created_item, ett_lpp_bdsSvHealth_r12);
@@ -11494,7 +11585,7 @@ dissect_lpp_GNSS_AlmanacList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
static int
dissect_lpp_T_toa_ext_v1240(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1158 "./asn1/lpp/lpp.cnf"
+#line 1164 "./asn1/lpp/lpp.cnf"
guint32 toa_ext, val;
int len, old_offset = offset;
T_GNSS_ID_enum gnss_id = (T_GNSS_ID_enum)GPOINTER_TO_UINT(actx->private_data);
@@ -11504,7 +11595,7 @@ dissect_lpp_T_toa_ext_v1240(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
-#line 1164 "./asn1/lpp/lpp.cnf"
+#line 1170 "./asn1/lpp/lpp.cnf"
len = (offset-old_offset) >> 3 ? (offset-old_offset) >> 3 : 1;
val = (gnss_id == T_GNSS_ID_GALILEO) ? 600*toa_ext : 4096*toa_ext;
actx->created_item = proto_tree_add_uint_format_value(tree, hf_lpp_toa_ext_v1240, tvb, old_offset, len,
@@ -11582,7 +11673,7 @@ dissect_lpp_UTC_ModelSet1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_lpp_T_utcDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1427 "./asn1/lpp/lpp.cnf"
+#line 1433 "./asn1/lpp/lpp.cnf"
tvbuff_t *utcDN_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
4, 4, FALSE, &utcDN_tvb, NULL);
@@ -11590,7 +11681,7 @@ dissect_lpp_T_utcDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro
-#line 1431 "./asn1/lpp/lpp.cnf"
+#line 1437 "./asn1/lpp/lpp.cnf"
if (utcDN_tvb) {
guint bitvalue = tvb_get_bits8(utcDN_tvb, 0, 4);
actx->created_item = proto_tree_add_uint(tree, hf_index, utcDN_tvb, 0, 1, bitvalue);
@@ -11626,7 +11717,7 @@ dissect_lpp_UTC_ModelSet2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_lpp_T_kp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1455 "./asn1/lpp/lpp.cnf"
+#line 1461 "./asn1/lpp/lpp.cnf"
tvbuff_t *kp_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &kp_tvb, NULL);
@@ -11634,7 +11725,7 @@ dissect_lpp_T_kp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_
-#line 1459 "./asn1/lpp/lpp.cnf"
+#line 1465 "./asn1/lpp/lpp.cnf"
if (kp_tvb) {
guint bitvalue = tvb_get_bits8(kp_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, kp_tvb, 0, 1, bitvalue);
@@ -13031,6 +13122,65 @@ dissect_lpp_OTDOA_ReferenceCellInfo_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn
}
+static const value_string lpp_T_subframeAssignment_v1520_vals[] = {
+ { 0, "sa0" },
+ { 1, "sa1" },
+ { 2, "sa2" },
+ { 3, "sa3" },
+ { 4, "sa4" },
+ { 5, "sa5" },
+ { 6, "sa6" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_lpp_T_subframeAssignment_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 7, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t TDD_Config_v1520_sequence[] = {
+ { &hf_lpp_subframeAssignment_v1520, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_T_subframeAssignment_v1520 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_TDD_Config_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lpp_TDD_Config_v1520, TDD_Config_v1520_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_lpp_INTEGER_0_19(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 19U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t OTDOA_ReferenceCellInfo_eag_4_sequence[] = {
+ { &hf_lpp_tdd_config_v1520, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lpp_TDD_Config_v1520 },
+ { &hf_lpp_nr_LTE_fineTiming_Offset_r15, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lpp_INTEGER_0_19 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_OTDOA_ReferenceCellInfo_eag_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_ReferenceCellInfo_eag_4_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t OTDOA_ReferenceCellInfo_sequence[] = {
{ &hf_lpp_physCellId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
{ &hf_lpp_cellGlobalId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_ECGI },
@@ -13041,6 +13191,7 @@ static const per_sequence_t OTDOA_ReferenceCellInfo_sequence[] = {
{ &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfo_eag_1 },
{ &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfo_eag_2 },
{ &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfo_eag_3 },
+ { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfo_eag_4 },
{ NULL, 0, 0, NULL }
};
@@ -13087,16 +13238,6 @@ dissect_lpp_T_antennaPortConfig_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
-dissect_lpp_INTEGER_0_19(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 0U, 19U, NULL, FALSE);
-
- return offset;
-}
-
-
-
-static int
dissect_lpp_INTEGER_0_1279(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
0U, 1279U, NULL, FALSE);
@@ -13215,6 +13356,19 @@ dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_2(tvbuff_t *tvb _U_, int offset _
}
+static const per_sequence_t OTDOA_NeighbourCellInfoElement_eag_3_sequence[] = {
+ { &hf_lpp_tdd_config_v1520, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lpp_TDD_Config_v1520 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_NeighbourCellInfoElement_eag_3_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t OTDOA_NeighbourCellInfoElement_sequence[] = {
{ &hf_lpp_physCellId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_503 },
{ &hf_lpp_cellGlobalId , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_ECGI },
@@ -13228,6 +13382,7 @@ static const per_sequence_t OTDOA_NeighbourCellInfoElement_sequence[] = {
{ &hf_lpp_expectedRSTD_Uncertainty, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_1023 },
{ &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_1 },
{ &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_2 },
+ { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoElement_eag_3 },
{ NULL, 0, 0, NULL }
};
@@ -13757,6 +13912,19 @@ dissect_lpp_OTDOA_ReferenceCellInfoNB_r14_eag_1(tvbuff_t *tvb _U_, int offset _U
}
+static const per_sequence_t OTDOA_ReferenceCellInfoNB_r14_eag_2_sequence[] = {
+ { &hf_lpp_tdd_config_r15 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lpp_TDD_Config_v1520 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_OTDOA_ReferenceCellInfoNB_r14_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_ReferenceCellInfoNB_r14_eag_2_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t OTDOA_ReferenceCellInfoNB_r14_sequence[] = {
{ &hf_lpp_physCellIdNB_r14, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_INTEGER_0_503 },
{ &hf_lpp_cellGlobalIdNB_r14, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_ECGI },
@@ -13766,6 +13934,7 @@ static const per_sequence_t OTDOA_ReferenceCellInfoNB_r14_sequence[] = {
{ &hf_lpp_otdoa_SIB1_NB_repetitions_r14, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_T_otdoa_SIB1_NB_repetitions_r14 },
{ &hf_lpp_nprsInfo_r14 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_PRS_Info_NB_r14 },
{ &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfoNB_r14_eag_1 },
+ { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_ReferenceCellInfoNB_r14_eag_2 },
{ NULL, 0, 0, NULL }
};
@@ -13834,6 +14003,19 @@ dissect_lpp_OTDOA_NeighbourCellInfoNB_r14_eag_1(tvbuff_t *tvb _U_, int offset _U
}
+static const per_sequence_t OTDOA_NeighbourCellInfoNB_r14_eag_2_sequence[] = {
+ { &hf_lpp_tdd_config_r15 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lpp_TDD_Config_v1520 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_OTDOA_NeighbourCellInfoNB_r14_eag_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, OTDOA_NeighbourCellInfoNB_r14_eag_2_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t OTDOA_NeighbourCellInfoNB_r14_sequence[] = {
{ &hf_lpp_physCellIdNB_r14, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_INTEGER_0_503 },
{ &hf_lpp_cellGlobalIdNB_r14, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_ECGI },
@@ -13849,6 +14031,7 @@ static const per_sequence_t OTDOA_NeighbourCellInfoNB_r14_sequence[] = {
{ &hf_lpp_expectedRSTD_Uncertainty_r14, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_INTEGER_0_1023 },
{ &hf_lpp_prsNeighbourCellIndex_r14, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_INTEGER_1_72 },
{ &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoNB_r14_eag_1 },
+ { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_OTDOA_NeighbourCellInfoNB_r14_eag_2 },
{ NULL, 0, 0, NULL }
};
@@ -13916,10 +14099,178 @@ dissect_lpp_INTEGER_M20000_10000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
}
+
+static int
+dissect_lpp_INTEGER_0_2881(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 0U, 2881U, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_lpp_INTEGER_1_2881(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 1U, 2881U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PressureValidityPeriod_v1520_sequence[] = {
+ { &hf_lpp_beginTime_v1520 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_GNSS_SystemTime },
+ { &hf_lpp_beginTimeAlt_v1520, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_INTEGER_0_2881 },
+ { &hf_lpp_duration_v1520 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_2881 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_PressureValidityPeriod_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lpp_PressureValidityPeriod_v1520, PressureValidityPeriod_v1520_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t T_period_v1520_sequence[] = {
+ { &hf_lpp_pressureValidityPeriod_v1520, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_PressureValidityPeriod_v1520 },
+ { &hf_lpp_referencePressureRate_v1520, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_INTEGER_M128_127 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_T_period_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lpp_T_period_v1520, T_period_v1520_sequence);
+
+ return offset;
+}
+
+
+static const value_string lpp_T_latitudeSign_vals[] = {
+ { 0, "north" },
+ { 1, "south" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_lpp_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
+ 2, NULL, FALSE, 0, NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t Ellipsoid_Point_sequence[] = {
+ { &hf_lpp_latitudeSign , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign },
+ { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
+ { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
+ { NULL, 0, 0, NULL }
+};
+
+int
+dissect_lpp_Ellipsoid_Point(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lpp_Ellipsoid_Point, Ellipsoid_Point_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_lpp_INTEGER_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ 1U, 128U, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t PressureValidityArea_v1520_sequence[] = {
+ { &hf_lpp_centerPoint_v1520, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_Ellipsoid_Point },
+ { &hf_lpp_validityAreaWidth_v1520, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_128 },
+ { &hf_lpp_validityAreaHeight_v1520, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_1_128 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_PressureValidityArea_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lpp_PressureValidityArea_v1520, PressureValidityArea_v1520_sequence);
+
+ return offset;
+}
+
+
+
+static int
+dissect_lpp_T_gN_pressure_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -1024, 1023U, NULL, FALSE);
+
+#line 2158 "./asn1/lpp/lpp.cnf"
+ proto_item_append_text(actx->created_item, "Pa/Km");
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_lpp_T_gE_pressure_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
+ -1024, 1023U, NULL, FALSE);
+
+#line 2161 "./asn1/lpp/lpp.cnf"
+ proto_item_append_text(actx->created_item, "Pa/Km");
+
+
+ return offset;
+}
+
+
+static const per_sequence_t T_area_v1520_sequence[] = {
+ { &hf_lpp_pressureValidityArea_v1520, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_PressureValidityArea_v1520 },
+ { &hf_lpp_gN_pressure_v1520, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_T_gN_pressure_v1520 },
+ { &hf_lpp_gE_pressure_v1520, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_T_gE_pressure_v1520 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_T_area_v1520(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
+ ett_lpp_T_area_v1520, T_area_v1520_sequence);
+
+ return offset;
+}
+
+
+static const per_sequence_t Sensor_AssistanceDataList_r14_eag_1_sequence[] = {
+ { &hf_lpp_period_v1520 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lpp_T_period_v1520 },
+ { &hf_lpp_area_v1520 , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_lpp_T_area_v1520 },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_lpp_Sensor_AssistanceDataList_r14_eag_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_per_sequence_eag(tvb, offset, actx, tree, Sensor_AssistanceDataList_r14_eag_1_sequence);
+
+ return offset;
+}
+
+
static const per_sequence_t Sensor_AssistanceDataList_r14_sequence[] = {
{ &hf_lpp_refPressure_r14 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M20000_10000 },
{ &hf_lpp_refPosition_r14 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_EllipsoidPointWithAltitudeAndUncertaintyEllipsoid },
{ &hf_lpp_refTemperature_r14, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_lpp_INTEGER_M64_63 },
+ { &dummy_hf_lpp_eag_field , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_lpp_Sensor_AssistanceDataList_r14_eag_1 },
{ NULL, 0, 0, NULL }
};
@@ -14033,7 +14384,7 @@ dissect_lpp_Sensor_ProvideAssistanceData_r14(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lpp_T_transmitterLatitude_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2084 "./asn1/lpp/lpp.cnf"
+#line 2090 "./asn1/lpp/lpp.cnf"
tvbuff_t *transmitterLatitude_tvb = NULL;
guint32 val;
@@ -14052,7 +14403,7 @@ dissect_lpp_T_transmitterLatitude_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ct
static int
dissect_lpp_T_transmitterLongitude_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2095 "./asn1/lpp/lpp.cnf"
+#line 2101 "./asn1/lpp/lpp.cnf"
tvbuff_t *transmitterLongitude_tvb = NULL;
guint32 val;
@@ -14071,7 +14422,7 @@ dissect_lpp_T_transmitterLongitude_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_c
static int
dissect_lpp_T_transmitterAltitude_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2106 "./asn1/lpp/lpp.cnf"
+#line 2112 "./asn1/lpp/lpp.cnf"
tvbuff_t *transmitterAltitude_tvb = NULL;
guint32 val;
@@ -14135,16 +14486,6 @@ dissect_lpp_T_mbsConfiguration_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
static int
-dissect_lpp_INTEGER_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
- 1U, 128U, NULL, FALSE);
-
- return offset;
-}
-
-
-
-static int
dissect_lpp_INTEGER_919750000_927250000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
919750000U, 927250000U, NULL, FALSE);
@@ -14707,7 +15048,7 @@ static const per_sequence_t ProvideAssistanceData_sequence[] = {
static int
dissect_lpp_ProvideAssistanceData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 69 "./asn1/lpp/lpp.cnf"
+#line 72 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Assistance Data");
@@ -14739,7 +15080,7 @@ dissect_lpp_LocationInformationType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
static int
dissect_lpp_ReportingDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 309 "./asn1/lpp/lpp.cnf"
+#line 312 "./asn1/lpp/lpp.cnf"
guint32 duration;
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
@@ -14809,7 +15150,7 @@ static const value_string lpp_T_reportingInterval_vals[] = {
static int
dissect_lpp_T_reportingInterval(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 297 "./asn1/lpp/lpp.cnf"
+#line 300 "./asn1/lpp/lpp.cnf"
guint32 idx;
const gchar *interval[10] = {"", ": 1s", ": 2s", ": 4s", ": 8s", ": 10s",
": 16s", ": 20s", ": 32s", ": 64s"};
@@ -14820,7 +15161,7 @@ dissect_lpp_T_reportingInterval(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
-#line 304 "./asn1/lpp/lpp.cnf"
+#line 307 "./asn1/lpp/lpp.cnf"
if (idx < 10) {
proto_item_append_text(actx->created_item, "%s", interval[idx]);
}
@@ -15296,7 +15637,7 @@ dissect_lpp_OTDOA_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lpp_T_requestedMeasurements(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1936 "./asn1/lpp/lpp.cnf"
+#line 1942 "./asn1/lpp/lpp.cnf"
tvbuff_t *requestedMeasurements_tvb = NULL;
int len;
@@ -15389,7 +15730,7 @@ dissect_lpp_Sensor_RequestLocationInformation_r13(tvbuff_t *tvb _U_, int offset
static int
dissect_lpp_T_mbsRequestedMeasurements_r14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 1997 "./asn1/lpp/lpp.cnf"
+#line 2003 "./asn1/lpp/lpp.cnf"
tvbuff_t *mbsRequestedMeasurements_tvb = NULL;
int len;
@@ -15443,7 +15784,7 @@ dissect_lpp_TBS_RequestLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U_
static int
dissect_lpp_T_requestedMeasurements_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2164 "./asn1/lpp/lpp.cnf"
+#line 2191 "./asn1/lpp/lpp.cnf"
tvbuff_t *requestedMeasurements_tvb = NULL;
int len;
@@ -15499,7 +15840,7 @@ dissect_lpp_WLAN_RequestLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U
static int
dissect_lpp_T_requestedMeasurements_r13_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2264 "./asn1/lpp/lpp.cnf"
+#line 2291 "./asn1/lpp/lpp.cnf"
tvbuff_t *requestedMeasurements_tvb = NULL;
int len;
@@ -15638,7 +15979,7 @@ static const per_sequence_t RequestLocationInformation_sequence[] = {
static int
dissect_lpp_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 72 "./asn1/lpp/lpp.cnf"
+#line 75 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Request Location Information");
@@ -15649,38 +15990,6 @@ dissect_lpp_RequestLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_c
}
-static const value_string lpp_T_latitudeSign_vals[] = {
- { 0, "north" },
- { 1, "south" },
- { 0, NULL }
-};
-
-
-static int
-dissect_lpp_T_latitudeSign(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
- 2, NULL, FALSE, 0, NULL);
-
- return offset;
-}
-
-
-static const per_sequence_t Ellipsoid_Point_sequence[] = {
- { &hf_lpp_latitudeSign , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lpp_T_latitudeSign },
- { &hf_lpp_degreesLatitude , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_0_8388607 },
- { &hf_lpp_degreesLongitude, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lpp_INTEGER_M8388608_8388607 },
- { NULL, 0, 0, NULL }
-};
-
-int
-dissect_lpp_Ellipsoid_Point(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
- ett_lpp_Ellipsoid_Point, Ellipsoid_Point_sequence);
-
- return offset;
-}
-
-
static const value_string lpp_T_latitudeSign_01_vals[] = {
{ 0, "north" },
{ 1, "south" },
@@ -16169,7 +16478,7 @@ dissect_lpp_CommonIEsProvideLocationInformation_eag_1(tvbuff_t *tvb _U_, int off
static int
dissect_lpp_LocationSource_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 350 "./asn1/lpp/lpp.cnf"
+#line 353 "./asn1/lpp/lpp.cnf"
tvbuff_t *locSource_tvb = NULL;
int len;
@@ -16681,7 +16990,7 @@ dissect_lpp_A_GNSS_ProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_,
static int
dissect_lpp_T_error_Resolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 406 "./asn1/lpp/lpp.cnf"
+#line 412 "./asn1/lpp/lpp.cnf"
tvbuff_t *error_Resolution_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
2, 2, FALSE, &error_Resolution_tvb, NULL);
@@ -16689,7 +16998,7 @@ dissect_lpp_T_error_Resolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
-#line 410 "./asn1/lpp/lpp.cnf"
+#line 416 "./asn1/lpp/lpp.cnf"
if (error_Resolution_tvb) {
guint bitvalue = tvb_get_bits8(error_Resolution_tvb, 0, 2);
actx->created_item = proto_tree_add_uint(tree, hf_index, error_Resolution_tvb, 0, 1, bitvalue);
@@ -16703,7 +17012,7 @@ dissect_lpp_T_error_Resolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
static int
dissect_lpp_T_error_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 419 "./asn1/lpp/lpp.cnf"
+#line 425 "./asn1/lpp/lpp.cnf"
tvbuff_t *error_Value_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
5, 5, FALSE, &error_Value_tvb, NULL);
@@ -16711,7 +17020,7 @@ dissect_lpp_T_error_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
-#line 423 "./asn1/lpp/lpp.cnf"
+#line 429 "./asn1/lpp/lpp.cnf"
if (error_Value_tvb) {
guint bitvalue = tvb_get_bits8(error_Value_tvb, 0, 5);
actx->created_item = proto_tree_add_uint(tree, hf_index, error_Value_tvb, 0, 1, bitvalue);
@@ -16725,7 +17034,7 @@ dissect_lpp_T_error_Value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
static int
dissect_lpp_T_error_NumSamples(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 432 "./asn1/lpp/lpp.cnf"
+#line 438 "./asn1/lpp/lpp.cnf"
tvbuff_t *error_NumSamples_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
3, 3, FALSE, &error_NumSamples_tvb, NULL);
@@ -16733,7 +17042,7 @@ dissect_lpp_T_error_NumSamples(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
-#line 436 "./asn1/lpp/lpp.cnf"
+#line 442 "./asn1/lpp/lpp.cnf"
if (error_NumSamples_tvb) {
guint bitvalue = tvb_get_bits8(error_NumSamples_tvb, 0, 3);
actx->created_item = proto_tree_add_uint(tree, hf_index, error_NumSamples_tvb, 0, 1, bitvalue);
@@ -17865,7 +18174,7 @@ dissect_lpp_WLAN_ProvideLocationInformation_r13(tvbuff_t *tvb _U_, int offset _U
static int
dissect_lpp_T_btAddr_r13(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 2255 "./asn1/lpp/lpp.cnf"
+#line 2282 "./asn1/lpp/lpp.cnf"
tvbuff_t *btAddr_tvb = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, -1,
@@ -18124,7 +18433,7 @@ static const per_sequence_t ProvideLocationInformation_sequence[] = {
static int
dissect_lpp_ProvideLocationInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 75 "./asn1/lpp/lpp.cnf"
+#line 78 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Provide Location Information");
@@ -18251,7 +18560,7 @@ static const per_sequence_t Abort_sequence[] = {
static int
dissect_lpp_Abort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 78 "./asn1/lpp/lpp.cnf"
+#line 81 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Abort");
@@ -18338,7 +18647,7 @@ static const per_choice_t Error_choice[] = {
static int
dissect_lpp_Error(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 81 "./asn1/lpp/lpp.cnf"
+#line 84 "./asn1/lpp/lpp.cnf"
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Error");
@@ -18545,7 +18854,7 @@ int dissect_lpp_Polygon_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tre
/*--- End of included file: packet-lpp-fn.c ---*/
-#line 1968 "./asn1/lpp/packet-lpp-template.c"
+#line 1988 "./asn1/lpp/packet-lpp-template.c"
static int dissect_lpp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
proto_tree *subtree;
@@ -19065,7 +19374,7 @@ void proto_register_lpp(void) {
"ARFCN_ValueEUTRA_r14", HFILL }},
{ &hf_lpp_carrierFreqOffset_r14,
{ "carrierFreqOffset-r14", "lpp.carrierFreqOffset_r14",
- FT_UINT32, BASE_DEC, VALS(lpp_CarrierFreqOffsetNB_r14_vals), 0,
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &lpp_CarrierFreqOffsetNB_r14_vals_ext, 0,
"CarrierFreqOffsetNB_r14", HFILL }},
{ &hf_lpp_plmn_Identity,
{ "plmn-Identity", "lpp.plmn_Identity_element",
@@ -19715,6 +20024,14 @@ void proto_register_lpp(void) {
{ "nr-LTE-SFN-Offset-r15", "lpp.nr_LTE_SFN_Offset_r15",
FT_UINT32, BASE_DEC, NULL, 0,
"INTEGER_0_1023", HFILL }},
+ { &hf_lpp_tdd_config_v1520,
+ { "tdd-config-v1520", "lpp.tdd_config_v1520_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lpp_nr_LTE_fineTiming_Offset_r15,
+ { "nr-LTE-fineTiming-Offset-r15", "lpp.nr_LTE_fineTiming_Offset_r15",
+ FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_nr_LTE_fineTiming_Offset_fmt), 0,
+ "INTEGER_0_19", HFILL }},
{ &hf_lpp_prs_Bandwidth,
{ "prs-Bandwidth", "lpp.prs_Bandwidth",
FT_UINT32, BASE_DEC, VALS(lpp_T_prs_Bandwidth_vals), 0,
@@ -19799,6 +20116,10 @@ void proto_register_lpp(void) {
{ "nb4-r14 item", "lpp.nb4_r14_item",
FT_UINT32, BASE_DEC, NULL, 0,
"INTEGER_0_maxAvailNarrowBands_Minus1_r14", HFILL }},
+ { &hf_lpp_subframeAssignment_v1520,
+ { "subframeAssignment-v1520", "lpp.subframeAssignment_v1520",
+ FT_UINT32, BASE_DEC, VALS(lpp_T_subframeAssignment_v1520_vals), 0,
+ "T_subframeAssignment_v1520", HFILL }},
{ &hf_lpp_OTDOA_NeighbourCellInfoList_item,
{ "OTDOA-NeighbourFreqInfo", "lpp.OTDOA_NeighbourFreqInfo",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -19899,6 +20220,10 @@ void proto_register_lpp(void) {
{ "nprsInfo-Type2-v1470", "lpp.nprsInfo_Type2_v1470",
FT_UINT32, BASE_DEC, NULL, 0,
"PRS_Info_NB_r14", HFILL }},
+ { &hf_lpp_tdd_config_r15,
+ { "tdd-config-r15", "lpp.tdd_config_r15_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "TDD_Config_v1520", HFILL }},
{ &hf_lpp_PRS_Info_NB_r14_item,
{ "NPRS-Info-r14", "lpp.NPRS_Info_r14_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -20109,7 +20434,7 @@ void proto_register_lpp(void) {
"INTEGER_0_4095", HFILL }},
{ &hf_lpp_carrierFreqOffsetNB_Ref_r14,
{ "carrierFreqOffsetNB-Ref-r14", "lpp.carrierFreqOffsetNB_Ref_r14",
- FT_UINT32, BASE_DEC, VALS(lpp_CarrierFreqOffsetNB_r14_vals), 0,
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &lpp_CarrierFreqOffsetNB_r14_vals_ext, 0,
"CarrierFreqOffsetNB_r14", HFILL }},
{ &hf_lpp_hyperSFN_r14,
{ "hyperSFN-r14", "lpp.hyperSFN_r14",
@@ -20169,7 +20494,7 @@ void proto_register_lpp(void) {
"INTEGER_0_4095", HFILL }},
{ &hf_lpp_carrierFreqOffsetNB_Neighbour_r14,
{ "carrierFreqOffsetNB-Neighbour-r14", "lpp.carrierFreqOffsetNB_Neighbour_r14",
- FT_UINT32, BASE_DEC, VALS(lpp_CarrierFreqOffsetNB_r14_vals), 0,
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &lpp_CarrierFreqOffsetNB_r14_vals_ext, 0,
"CarrierFreqOffsetNB_r14", HFILL }},
{ &hf_lpp_delta_SFN_r15,
{ "delta-SFN-r15", "lpp.delta_SFN_r15",
@@ -23609,7 +23934,7 @@ void proto_register_lpp(void) {
"INTEGER_0_74", HFILL }},
{ &hf_lpp_carrierFreqOffsetNB_r14,
{ "carrierFreqOffsetNB-r14", "lpp.carrierFreqOffsetNB_r14",
- FT_UINT32, BASE_DEC, VALS(lpp_CarrierFreqOffsetNB_r14_vals), 0,
+ FT_UINT32, BASE_DEC|BASE_EXT_STRING, &lpp_CarrierFreqOffsetNB_r14_vals_ext, 0,
NULL, HFILL }},
{ &hf_lpp_rsrp_Result_v1470,
{ "rsrp-Result-v1470", "lpp.rsrp_Result_v1470",
@@ -23991,6 +24316,14 @@ void proto_register_lpp(void) {
{ "sensor-MotionInformationSup-r15", "lpp.sensor_MotionInformationSup_r15",
FT_UINT32, BASE_DEC, VALS(lpp_T_sensor_MotionInformationSup_r15_vals), 0,
NULL, HFILL }},
+ { &hf_lpp_validityPeriodSupported_v1520,
+ { "validityPeriodSupported-v1520", "lpp.validityPeriodSupported_v1520",
+ FT_UINT32, BASE_DEC, VALS(lpp_T_validityPeriodSupported_v1520_vals), 0,
+ NULL, HFILL }},
+ { &hf_lpp_validityAreaSupported_v1520,
+ { "validityAreaSupported-v1520", "lpp.validityAreaSupported_v1520",
+ FT_UINT32, BASE_DEC, VALS(lpp_T_validityAreaSupported_v1520_vals), 0,
+ NULL, HFILL }},
{ &hf_lpp_locationServerErrorCauses_r13_01,
{ "locationServerErrorCauses-r13", "lpp.locationServerErrorCauses_r13_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -24027,6 +24360,58 @@ void proto_register_lpp(void) {
{ "refTemperature-r14", "lpp.refTemperature_r14",
FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_refTemperature_fmt), 0,
"INTEGER_M64_63", HFILL }},
+ { &hf_lpp_period_v1520,
+ { "period-v1520", "lpp.period_v1520_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lpp_pressureValidityPeriod_v1520,
+ { "pressureValidityPeriod-v1520", "lpp.pressureValidityPeriod_v1520_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lpp_referencePressureRate_v1520,
+ { "referencePressureRate-v1520", "lpp.referencePressureRate_v1520",
+ FT_INT32, BASE_CUSTOM, CF_FUNC(lpp_referencePressureRate_v1520_fmt), 0,
+ "INTEGER_M128_127", HFILL }},
+ { &hf_lpp_area_v1520,
+ { "area-v1520", "lpp.area_v1520_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lpp_pressureValidityArea_v1520,
+ { "pressureValidityArea-v1520", "lpp.pressureValidityArea_v1520_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lpp_gN_pressure_v1520,
+ { "gN-pressure-v1520", "lpp.gN_pressure_v1520",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lpp_gE_pressure_v1520,
+ { "gE-pressure-v1520", "lpp.gE_pressure_v1520",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_lpp_centerPoint_v1520,
+ { "centerPoint-v1520", "lpp.centerPoint_v1520_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Ellipsoid_Point", HFILL }},
+ { &hf_lpp_validityAreaWidth_v1520,
+ { "validityAreaWidth-v1520", "lpp.validityAreaWidth_v1520",
+ FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &units_km, 0,
+ "INTEGER_1_128", HFILL }},
+ { &hf_lpp_validityAreaHeight_v1520,
+ { "validityAreaHeight-v1520", "lpp.validityAreaHeight_v1520",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "INTEGER_1_128", HFILL }},
+ { &hf_lpp_beginTime_v1520,
+ { "beginTime-v1520", "lpp.beginTime_v1520_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GNSS_SystemTime", HFILL }},
+ { &hf_lpp_beginTimeAlt_v1520,
+ { "beginTimeAlt-v1520", "lpp.beginTimeAlt_v1520",
+ FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_PressureValidityPeriod_v1520_fmt), 0,
+ "INTEGER_0_2881", HFILL }},
+ { &hf_lpp_duration_v1520,
+ { "duration-v1520", "lpp.duration_v1520",
+ FT_UINT32, BASE_CUSTOM, CF_FUNC(lpp_PressureValidityPeriod_v1520_fmt), 0,
+ "INTEGER_1_2881", HFILL }},
{ &hf_lpp_wlan_MeasurementInformation_r13,
{ "wlan-MeasurementInformation-r13", "lpp.wlan_MeasurementInformation_r13_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -24789,7 +25174,7 @@ void proto_register_lpp(void) {
NULL, HFILL }},
/*--- End of included file: packet-lpp-hfarr.c ---*/
-#line 1987 "./asn1/lpp/packet-lpp-template.c"
+#line 2007 "./asn1/lpp/packet-lpp-template.c"
{ &hf_lpp_svHealthExt_v1240_e5bhs,
{ "E5b Signal Health Status", "lpp.svHealthExt_v1240.e5bhs",
FT_UINT8, BASE_DEC, VALS(lpp_signal_health_status_vals), 0,
@@ -24955,6 +25340,7 @@ void proto_register_lpp(void) {
&ett_lpp_T_prs_MutingInfo_r9,
&ett_lpp_T_prsHoppingInfo_r14,
&ett_lpp_T_nb4_r14,
+ &ett_lpp_TDD_Config_v1520,
&ett_lpp_OTDOA_NeighbourCellInfoList,
&ett_lpp_OTDOA_NeighbourFreqInfo,
&ett_lpp_OTDOA_NeighbourCellInfoElement,
@@ -25306,6 +25692,10 @@ void proto_register_lpp(void) {
&ett_lpp_Sensor_TargetDeviceErrorCauses_r13,
&ett_lpp_Sensor_ProvideAssistanceData_r14,
&ett_lpp_Sensor_AssistanceDataList_r14,
+ &ett_lpp_T_period_v1520,
+ &ett_lpp_T_area_v1520,
+ &ett_lpp_PressureValidityArea_v1520,
+ &ett_lpp_PressureValidityPeriod_v1520,
&ett_lpp_Sensor_RequestAssistanceData_r14,
&ett_lpp_WLAN_ProvideLocationInformation_r13,
&ett_lpp_WLAN_MeasurementInformation_r13,
@@ -25351,7 +25741,7 @@ void proto_register_lpp(void) {
&ett_lpp_BT_TargetDeviceErrorCauses_r13,
/*--- End of included file: packet-lpp-ettarr.c ---*/
-#line 2034 "./asn1/lpp/packet-lpp-template.c"
+#line 2054 "./asn1/lpp/packet-lpp-template.c"
};
diff --git a/epan/dissectors/packet-lpp.h b/epan/dissectors/packet-lpp.h
index fbf09ae742..c46d874531 100644
--- a/epan/dissectors/packet-lpp.h
+++ b/epan/dissectors/packet-lpp.h
@@ -8,7 +8,7 @@
#line 1 "./asn1/lpp/packet-lpp-template.h"
/* packet-lpp.h
* Routines for 3GPP LTE Positioning Protocol (LPP) packet dissection
- * Copyright 2011-2018 Pascal Quantin <pascal.quantin@gmail.com>
+ * Copyright 2011-2019 Pascal Quantin <pascal.quantin@gmail.com>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
@@ -16,7 +16,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
- * Ref 3GPP TS 36.355 version 15.0.0 Release 15
+ * Ref 3GPP TS 36.355 version 15.2.0 Release 15
* http://www.3gpp.org
*/